java rewrite
This commit is contained in:
6
jpacrepo-api/src/main/java/module-info.java
Normal file
6
jpacrepo-api/src/main/java/module-info.java
Normal file
@@ -0,0 +1,6 @@
|
||||
module net.woggioni.jpacrepo.api {
|
||||
requires static lombok;
|
||||
requires static java.xml.bind;
|
||||
exports net.woggioni.jpacrepo.api.model;
|
||||
exports net.woggioni.jpacrepo.api.service;
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
package net.woggioni.jpacrepo.api.model;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public enum CompressionFormat {
|
||||
XZ("xz"), GZIP("gz"), Z_STANDARD("zst");
|
||||
|
||||
@Getter
|
||||
private final String value;
|
||||
}
|
@@ -0,0 +1,93 @@
|
||||
package net.woggioni.jpacrepo.api.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.persistence.Access;
|
||||
import javax.persistence.AccessType;
|
||||
import javax.persistence.ElementCollection;
|
||||
import javax.persistence.EmbeddedId;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.FetchType;
|
||||
import javax.persistence.Index;
|
||||
import javax.persistence.NamedQueries;
|
||||
import javax.persistence.NamedQuery;
|
||||
import javax.persistence.PrePersist;
|
||||
import javax.persistence.PreUpdate;
|
||||
import javax.persistence.Table;
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.util.Set;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Access(AccessType.FIELD)
|
||||
@NamedQueries(value = {
|
||||
@NamedQuery(name = "searchByFileName", query = "SELECT p FROM PkgData p WHERE p.fileName = :fileName"),
|
||||
@NamedQuery(name = "searchByName", query = "SELECT p FROM PkgData p WHERE p.id.name = :name"),
|
||||
@NamedQuery(name = "searchById", query = "SELECT p FROM PkgData p WHERE p.id = :id"),
|
||||
@NamedQuery(name = "searchByHash", query = "SELECT p FROM PkgData p WHERE p.md5sum = :md5sum")
|
||||
})
|
||||
@Table(indexes = {
|
||||
@Index(columnList = "md5sum", unique = true),
|
||||
@Index(columnList = "fileName", unique = true)
|
||||
})
|
||||
@XmlRootElement
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public class PkgData {
|
||||
|
||||
@EmbeddedId
|
||||
private PkgId id;
|
||||
|
||||
private String base;
|
||||
|
||||
private String description;
|
||||
|
||||
private String url;
|
||||
|
||||
private OffsetDateTime buildDate;
|
||||
|
||||
private String packager;
|
||||
|
||||
private long size;
|
||||
|
||||
private String license;
|
||||
|
||||
private String md5sum;
|
||||
|
||||
private String fileName;
|
||||
|
||||
@ElementCollection(fetch = FetchType.EAGER)
|
||||
private Set<String> replaces;
|
||||
|
||||
@ElementCollection(fetch = FetchType.EAGER)
|
||||
private Set<String> conflict;
|
||||
|
||||
@ElementCollection(fetch = FetchType.EAGER)
|
||||
private Set<String> provides;
|
||||
|
||||
@ElementCollection(fetch = FetchType.EAGER)
|
||||
private Set<String> depend;
|
||||
|
||||
@ElementCollection(fetch = FetchType.EAGER)
|
||||
private Set<String> optdepend;
|
||||
|
||||
@ElementCollection(fetch = FetchType.EAGER)
|
||||
private Set<String> makedepend;
|
||||
|
||||
@ElementCollection(fetch = FetchType.EAGER)
|
||||
private Set<String> makeopkgopt;
|
||||
|
||||
@ElementCollection(fetch = FetchType.EAGER)
|
||||
private Set<String> backup;
|
||||
|
||||
private OffsetDateTime updTimestamp;
|
||||
|
||||
@PreUpdate
|
||||
@PrePersist
|
||||
private void writeTimestamp() {
|
||||
updTimestamp = OffsetDateTime.now();
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,30 @@
|
||||
package net.woggioni.jpacrepo.api.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.persistence.Access;
|
||||
import javax.persistence.AccessType;
|
||||
import javax.persistence.Embeddable;
|
||||
import javax.persistence.EnumType;
|
||||
import javax.persistence.Enumerated;
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@Embeddable
|
||||
@Access(AccessType.FIELD)
|
||||
@XmlRootElement
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public class PkgId implements Serializable {
|
||||
|
||||
private String name;
|
||||
|
||||
private String version;
|
||||
|
||||
private String arch;
|
||||
|
||||
@Enumerated(EnumType.ORDINAL)
|
||||
private CompressionFormat compressionFormat;
|
||||
}
|
@@ -0,0 +1,13 @@
|
||||
package net.woggioni.jpacrepo.api.service;
|
||||
|
||||
|
||||
import net.woggioni.jpacrepo.api.model.PkgData;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import java.util.List;
|
||||
|
||||
@Local
|
||||
public interface PacmanServiceLocal extends PacmanServiceRemote {
|
||||
long countResults(String name, String version, String arch);
|
||||
List<PkgData> searchPackage(String name, String version, String arch, int page, int pageSize, String fileName);
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
package net.woggioni.jpacrepo.api.service;
|
||||
|
||||
import javax.ejb.Remote;
|
||||
|
||||
@Remote
|
||||
public interface PacmanServiceRemote {
|
||||
void syncDB();
|
||||
void deletePackage(String filename);
|
||||
}
|
Reference in New Issue
Block a user