diff --git a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/OaiApplication.java b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/OaiApplication.java index b380486..6ff776e 100644 --- a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/OaiApplication.java +++ b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/OaiApplication.java @@ -7,12 +7,12 @@ import org.springframework.boot.autoconfigure.domain.EntityScan; import eu.dnetlib.common.app.AbstractDnetApp; import eu.dnetlib.domain.oai.OaiConfiguration; import eu.dnetlib.domain.oai.OaiMetadataFormat; -import eu.dnetlib.domain.oai.OaiRecord; -import eu.dnetlib.domain.oai.OaiSet; +import eu.dnetlib.domain.oai.ExportedOaiRecord; +import eu.dnetlib.domain.oai.ExportedOaiSet; import eu.dnetlib.domain.service.ServiceType; @SpringBootApplication -@EntityScan(basePackageClasses = { OaiConfiguration.class, OaiSet.class, OaiMetadataFormat.class, OaiRecord.class }) +@EntityScan(basePackageClasses = { OaiConfiguration.class, ExportedOaiSet.class, OaiMetadataFormat.class, ExportedOaiRecord.class }) public class OaiApplication extends AbstractDnetApp { public static void main(final String[] args) { diff --git a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/controller/ApiController.java b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/controller/ApiController.java index 9362724..a6a84c2 100644 --- a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/controller/ApiController.java +++ b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/controller/ApiController.java @@ -11,9 +11,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import eu.dnetlib.common.controller.DnetRestController; +import eu.dnetlib.domain.oai.ExportedOaiMetadataFormat; +import eu.dnetlib.domain.oai.ExportedOaiSet; import eu.dnetlib.domain.oai.OaiConfiguration; -import eu.dnetlib.domain.oai.OaiMetadataFormat; -import eu.dnetlib.domain.oai.OaiSet; import eu.dnetlib.errors.DnetException; import eu.dnetlib.services.oai.service.OaiService; import io.swagger.v3.oas.annotations.parameters.RequestBody; @@ -27,45 +27,45 @@ public class ApiController extends DnetRestController { @GetMapping("/conf") public OaiConfiguration oaiConfiguration() throws DnetException { - return oaiService.oaiConfiguration(); + return this.oaiService.oaiConfiguration(); } @PostMapping("/conf") public OaiConfiguration oaiConfiguration(@RequestBody final OaiConfiguration conf) throws DnetException { - return oaiService.oaiConfiguration(conf); + return this.oaiService.oaiConfiguration(conf); } @GetMapping("/md-formats") - public List listMdFormats() throws DnetException { - return oaiService.listMetadataFormats(); + public List listMdFormats() throws DnetException { + return this.oaiService.listMetadataFormats(); } @PostMapping("/md-formats") - public List addOrUpdateMdFormats(@RequestBody final OaiMetadataFormat mdFormat) throws DnetException { - oaiService.addOrUpdateMetadataFormat(mdFormat); - return oaiService.listMetadataFormats(); + public List addOrUpdateMdFormats(@RequestBody final ExportedOaiMetadataFormat mdFormat) throws DnetException { + this.oaiService.addOrUpdateMetadataFormat(mdFormat); + return this.oaiService.listMetadataFormats(); } @DeleteMapping("/md-formats/{mdprefix}") - public List deleteMdFormats(@PathVariable final String mdprefix) throws DnetException { - oaiService.deleteMetadataFormat(mdprefix); - return oaiService.listMetadataFormats(); + public List deleteMdFormats(@PathVariable final String mdprefix) throws DnetException { + this.oaiService.deleteMetadataFormat(mdprefix); + return this.oaiService.listMetadataFormats(); } @GetMapping("/sets") - public List listOaiSets() throws DnetException { - return oaiService.listSets(); + public List listOaiSets() throws DnetException { + return this.oaiService.listSets(); } @PostMapping("/sets") - public List addOrUpdateOaiSet(@RequestBody final OaiSet oaiSet) throws DnetException { - oaiService.addOrUpdateSet(oaiSet); - return oaiService.listSets(); + public List addOrUpdateOaiSet(@RequestBody final ExportedOaiSet oaiSet) throws DnetException { + this.oaiService.addOrUpdateSet(oaiSet); + return this.oaiService.listSets(); } @DeleteMapping("/sets/{setSpec}") - public List deleteOaiSet(@PathVariable final String setSpec) throws DnetException { - oaiService.deleteSet(setSpec); - return oaiService.listSets(); + public List deleteOaiSet(@PathVariable final String setSpec) throws DnetException { + this.oaiService.deleteSet(setSpec); + return this.oaiService.listSets(); } } diff --git a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/controller/OaiController.java b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/controller/OaiController.java index 36e0986..122329c 100644 --- a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/controller/OaiController.java +++ b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/controller/OaiController.java @@ -23,10 +23,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; +import eu.dnetlib.domain.oai.ExportedOaiMetadataFormat; +import eu.dnetlib.domain.oai.ExportedOaiRecord; +import eu.dnetlib.domain.oai.ExportedOaiSet; import eu.dnetlib.domain.oai.OaiConfiguration; import eu.dnetlib.domain.oai.OaiMetadataFormat; -import eu.dnetlib.domain.oai.OaiRecord; -import eu.dnetlib.domain.oai.OaiSet; import eu.dnetlib.errors.DnetRuntimeException; import eu.dnetlib.services.oai.domain.OaiPage; import eu.dnetlib.services.oai.service.OaiService; @@ -77,7 +78,7 @@ public class OaiController { private String oaiIdentify(final Map params) { if (!params.isEmpty()) { return prepareErrorResponseXml(OaiError.badArgument); } - final OaiConfiguration conf = oaiService.oaiConfiguration(); + final OaiConfiguration conf = this.oaiService.oaiConfiguration(); final Document doc = genericOaiResponse(OaiVerb.IDENTIFY.getVerb()); final Element dataNode = doc.getRootElement().addElement(OaiVerb.IDENTIFY.getVerb()); @@ -100,7 +101,8 @@ public class OaiController { final Document doc = genericOaiResponse(OaiVerb.LIST_METADATA_FORMATS.getVerb()); final Element dataNode = doc.getRootElement().addElement(OaiVerb.LIST_METADATA_FORMATS.getVerb()); - final List formats = StringUtils.isBlank(id) ? oaiService.listMetadataFormats(id) : oaiService.listMetadataFormats(); + final List formats = + StringUtils.isBlank(id) ? this.oaiService.listMetadataFormats(id) : this.oaiService.listMetadataFormats(); for (final OaiMetadataFormat oaiFormat : formats) { final Element formatNode = dataNode.addElement("metadataFormat"); @@ -117,7 +119,7 @@ public class OaiController { final Document doc = genericOaiResponse(OaiVerb.LIST_SETS.getVerb()); final Element dataNode = doc.getRootElement().addElement(OaiVerb.LIST_SETS.getVerb()); - for (final OaiSet oaiSet : oaiService.listSets()) { + for (final ExportedOaiSet oaiSet : this.oaiService.listSets()) { final Element setNode = dataNode.addElement("set"); setNode.addElement("setSpec").setText(oaiSet.getSetSpec()); setNode.addElement("setName").setText(oaiSet.getSetName()); @@ -132,7 +134,7 @@ public class OaiController { final String identifier = params.remove("identifier"); if (!params.isEmpty() || StringUtils.isAnyBlank(prefix, identifier)) { return prepareErrorResponseXml(OaiError.badArgument); } - final OaiRecord record = oaiService.getRecord(identifier, prefix); + final ExportedOaiRecord record = this.oaiService.getRecord(identifier, prefix); if (record == null) { return prepareErrorResponseXml(OaiError.idDoesNotExist); } final Document doc = genericOaiResponse(OaiVerb.GET_RECORD.getVerb()); @@ -148,7 +150,7 @@ public class OaiController { if (params.containsKey("resumptionToken")) { final String resumptionToken = params.remove("resumptionToken"); if (!params.isEmpty()) { return prepareErrorResponseXml(OaiError.badArgument); } - page = oaiService.listRecords(resumptionToken); + page = this.oaiService.listRecords(resumptionToken); } else { final String metadataPrefix = params.remove("metadataPrefix"); @@ -156,8 +158,8 @@ public class OaiController { final String until = params.remove("until"); final String set = params.remove("set"); - if (!StringUtils.isNotBlank(metadataPrefix) || !oaiService.verifySet(set)) { return prepareErrorResponseXml(OaiError.badArgument); } - page = oaiService.listRecords(metadataPrefix, set, from, until); + if (!StringUtils.isNotBlank(metadataPrefix) || !this.oaiService.verifySet(set)) { return prepareErrorResponseXml(OaiError.badArgument); } + page = this.oaiService.listRecords(metadataPrefix, set, from, until); } final Document doc = genericOaiResponse(OaiVerb.LIST_RECORDS.getVerb()); @@ -170,7 +172,7 @@ public class OaiController { return doc.asXML(); } - private void insertSingleRecord(final Element parentNode, final OaiRecord record) { + private void insertSingleRecord(final Element parentNode, final ExportedOaiRecord record) { final Element recordNode = parentNode.addElement("record"); insertRecordHeader(recordNode, record); try { @@ -188,16 +190,16 @@ public class OaiController { if (params.containsKey("resumptionToken")) { final String resumptionToken = params.remove("resumptionToken"); if (!params.isEmpty()) { return prepareErrorResponseXml(OaiError.badArgument); } - page = oaiService.listRecords(resumptionToken); + page = this.oaiService.listRecords(resumptionToken); } else { final String metadataPrefix = params.remove("metadataPrefix"); final String from = params.remove("from"); final String until = params.remove("until"); final String set = params.remove("set"); - if (!StringUtils.isNotBlank(metadataPrefix) || !oaiService.verifySet(set)) { return prepareErrorResponseXml(OaiError.badArgument); } + if (!StringUtils.isNotBlank(metadataPrefix) || !this.oaiService.verifySet(set)) { return prepareErrorResponseXml(OaiError.badArgument); } - page = oaiService.listRecords(metadataPrefix, set, from, until); + page = this.oaiService.listRecords(metadataPrefix, set, from, until); } final Document doc = genericOaiResponse(OaiVerb.LIST_IDENTIFIERS.getVerb()); @@ -210,7 +212,7 @@ public class OaiController { return doc.asXML(); } - private void insertRecordHeader(final Element parentNode, final OaiRecord r) { + private void insertRecordHeader(final Element parentNode, final ExportedOaiRecord r) { final Element headerNode = parentNode.addElement("header"); headerNode.addElement("identifier").setText(r.getId()); headerNode.addElement("datestamp").setText(DateUtils.calculate_ISO8601(r.getDate())); @@ -260,7 +262,7 @@ public class OaiController { private Document genericOaiResponse(final String verb) { try (InputStream is = getClass().getResourceAsStream("/oai/oai_response.xml")) { - final OaiConfiguration conf = oaiService.oaiConfiguration(); + final OaiConfiguration conf = this.oaiService.oaiConfiguration(); final Document doc = new SAXReader().read(is); doc.selectSingleNode("//*[local-name() = 'responseDate']").setText(DateUtils.now_ISO8601()); doc.selectSingleNode("//*[local-name() = 'request']").setText(conf.getPublicBaseUrl()); diff --git a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/domain/OaiPage.java b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/domain/OaiPage.java index 55dfac8..79f7454 100644 --- a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/domain/OaiPage.java +++ b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/domain/OaiPage.java @@ -3,13 +3,13 @@ package eu.dnetlib.services.oai.domain; import java.io.Serializable; import java.util.List; -import eu.dnetlib.domain.oai.OaiRecord; +import eu.dnetlib.domain.oai.ExportedOaiRecord; public class OaiPage implements Serializable { private static final long serialVersionUID = -7512951692582271344L; - private List list; + private List list; private long total; @@ -17,11 +17,11 @@ public class OaiPage implements Serializable { private String resumptionToken; - public List getList() { + public List getList() { return list; } - public void setList(final List list) { + public void setList(final List list) { this.list = list; } diff --git a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/repository/ExportedOaiMetadataFormatRepository.java b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/repository/ExportedOaiMetadataFormatRepository.java new file mode 100644 index 0000000..f04720c --- /dev/null +++ b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/repository/ExportedOaiMetadataFormatRepository.java @@ -0,0 +1,9 @@ +package eu.dnetlib.services.oai.repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +import eu.dnetlib.domain.oai.ExportedOaiMetadataFormat; + +public interface ExportedOaiMetadataFormatRepository extends JpaRepository { + +} diff --git a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/repository/OaiMetadataFormatRepository.java b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/repository/OaiMetadataFormatRepository.java deleted file mode 100644 index 985f3b5..0000000 --- a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/repository/OaiMetadataFormatRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package eu.dnetlib.services.oai.repository; - -import org.springframework.data.jpa.repository.JpaRepository; - -import eu.dnetlib.domain.oai.OaiMetadataFormat; - -public interface OaiMetadataFormatRepository extends JpaRepository { - -} diff --git a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/repository/OaiRecordRepository.java b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/repository/OaiRecordRepository.java index 5240571..d7b4251 100644 --- a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/repository/OaiRecordRepository.java +++ b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/repository/OaiRecordRepository.java @@ -6,13 +6,13 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import eu.dnetlib.domain.oai.OaiRecord; +import eu.dnetlib.domain.oai.ExportedOaiRecord; -public interface OaiRecordRepository extends JpaRepository { +public interface OaiRecordRepository extends JpaRepository { - Page findByOaiSetAndDateBetween(String oaiSet, LocalDate from, LocalDate until, Pageable page); + Page findByOaiSetAndDateBetween(String oaiSet, LocalDate from, LocalDate until, Pageable page); - Page findByDateBetween(LocalDate from, LocalDate until, Pageable page); + Page findByDateBetween(LocalDate from, LocalDate until, Pageable page); void deleteByOaiSet(String oaiSet); diff --git a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/repository/OaiSetRepository.java b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/repository/OaiSetRepository.java index 535eff5..12d8568 100644 --- a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/repository/OaiSetRepository.java +++ b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/repository/OaiSetRepository.java @@ -2,8 +2,8 @@ package eu.dnetlib.services.oai.repository; import org.springframework.data.jpa.repository.JpaRepository; -import eu.dnetlib.domain.oai.OaiSet; +import eu.dnetlib.domain.oai.ExportedOaiSet; -public interface OaiSetRepository extends JpaRepository { +public interface OaiSetRepository extends JpaRepository { } diff --git a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/service/OaiService.java b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/service/OaiService.java index c0521cc..069e33c 100644 --- a/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/service/OaiService.java +++ b/dnet-app/apps/dnet-oai-manager/src/main/java/eu/dnetlib/services/oai/service/OaiService.java @@ -14,14 +14,14 @@ import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import eu.dnetlib.common.mapping.xslt.XsltUtils; +import eu.dnetlib.domain.oai.ExportedOaiMetadataFormat; +import eu.dnetlib.domain.oai.ExportedOaiRecord; +import eu.dnetlib.domain.oai.ExportedOaiSet; import eu.dnetlib.domain.oai.OaiConfiguration; -import eu.dnetlib.domain.oai.OaiMetadataFormat; -import eu.dnetlib.domain.oai.OaiRecord; -import eu.dnetlib.domain.oai.OaiSet; import eu.dnetlib.errors.DnetRuntimeException; import eu.dnetlib.services.oai.domain.OaiPage; +import eu.dnetlib.services.oai.repository.ExportedOaiMetadataFormatRepository; import eu.dnetlib.services.oai.repository.OaiConfigurationRepository; -import eu.dnetlib.services.oai.repository.OaiMetadataFormatRepository; import eu.dnetlib.services.oai.repository.OaiRecordRepository; import eu.dnetlib.services.oai.repository.OaiSetRepository; import eu.dnetlib.services.oai.utils.OaiPageRequest; @@ -37,7 +37,7 @@ public class OaiService { private OaiSetRepository oaiSetRepository; @Autowired - private OaiMetadataFormatRepository oaiMetadataFormatRepository; + private ExportedOaiMetadataFormatRepository oaiMetadataFormatRepository; @Autowired private OaiRecordRepository oaiRecordRepository; @@ -48,65 +48,65 @@ public class OaiService { @Cacheable(value = "oaiConfiguration", key = "#root.methodName") public OaiConfiguration oaiConfiguration() { - return oaiConfigurationRepository.findById(CONFIGURATION_ID).orElseThrow(() -> new DnetRuntimeException("Missing OAI Configuration")); + return this.oaiConfigurationRepository.findById(CONFIGURATION_ID).orElseThrow(() -> new DnetRuntimeException("Missing OAI Configuration")); } @CacheEvict(value = "oaiConfiguration", allEntries = true) public OaiConfiguration oaiConfiguration(final OaiConfiguration conf) { conf.setId(CONFIGURATION_ID); - return oaiConfigurationRepository.save(conf); + return this.oaiConfigurationRepository.save(conf); } @Cacheable(value = "oaiSets", key = "#root.methodName") - public List listSets() { - return oaiSetRepository.findAll(); + public List listSets() { + return this.oaiSetRepository.findAll(); } @CacheEvict(value = "oaiSets", allEntries = true) - public void addOrUpdateSet(final OaiSet set) { - oaiSetRepository.save(set); + public void addOrUpdateSet(final ExportedOaiSet set) { + this.oaiSetRepository.save(set); } @CacheEvict(value = "oaiSets", allEntries = true) public void deleteSet(final String setSpec) { - oaiRecordRepository.deleteByOaiSet(setSpec); - oaiSetRepository.deleteById(setSpec); + this.oaiRecordRepository.deleteByOaiSet(setSpec); + this.oaiSetRepository.deleteById(setSpec); } - public List listMetadataFormats(final String id) { - return oaiRecordRepository.existsById(id) ? oaiMetadataFormatRepository.findAll() : new ArrayList<>(); + public List listMetadataFormats(final String id) { + return this.oaiRecordRepository.existsById(id) ? this.oaiMetadataFormatRepository.findAll() : new ArrayList<>(); } @Cacheable(value = "oaiMetadataFormats", key = "#root.methodName") - public List listMetadataFormats() { - return oaiMetadataFormatRepository.findAll(); + public List listMetadataFormats() { + return this.oaiMetadataFormatRepository.findAll(); } @CacheEvict(value = "oaiMetadataFormats", allEntries = true) - public void addOrUpdateMetadataFormat(final OaiMetadataFormat format) { + public void addOrUpdateMetadataFormat(final ExportedOaiMetadataFormat format) { // TODO (LOW PRIORITY) : probably other controls are necessary - oaiMetadataFormatRepository.save(format); + this.oaiMetadataFormatRepository.save(format); } @CacheEvict(value = "oaiMetadataFormats", allEntries = true) public void deleteMetadataFormat(final String metadataPrefix) { // TODO (LOW PRIORITY) : probably other controls are necessary - oaiMetadataFormatRepository.deleteById(metadataPrefix); + this.oaiMetadataFormatRepository.deleteById(metadataPrefix); } public boolean verifySet(final String setSpec) { // a blank setSpec is correct (it is equivalent to all sets) - return StringUtils.isBlank(setSpec) || oaiSetRepository.existsById(setSpec); + return StringUtils.isBlank(setSpec) || this.oaiSetRepository.existsById(setSpec); } - public OaiRecord getRecord(final String id, final String metadataPrefix) { - final OaiRecord record = oaiRecordRepository.findById(id).orElseThrow(() -> new DnetRuntimeException("Missing ID: " + id)); + public ExportedOaiRecord getRecord(final String id, final String metadataPrefix) { + final ExportedOaiRecord record = this.oaiRecordRepository.findById(id).orElseThrow(() -> new DnetRuntimeException("Missing ID: " + id)); if (!metadataPrefix.equalsIgnoreCase(oaiConfiguration().getNativeFormat())) { final String xslt = listMetadataFormats() .stream() .filter(f -> f.getMetadataPrefix().equalsIgnoreCase(metadataPrefix)) - .map(OaiMetadataFormat::getXslt) + .map(ExportedOaiMetadataFormat::getXslt) .findFirst() .orElseThrow(() -> new DnetRuntimeException("Invalid metadata format: " + metadataPrefix)); @@ -136,8 +136,9 @@ public class OaiService { final LocalDate from = req.getFrom(); final LocalDate until = req.getUntil(); - final Page page = StringUtils.isBlank(req.getSet()) ? oaiRecordRepository.findByOaiSetAndDateBetween(req.getSet(), from, until, pageRequest) - : oaiRecordRepository.findByDateBetween(from, until, pageRequest); + final Page page = + StringUtils.isBlank(req.getSet()) ? this.oaiRecordRepository.findByOaiSetAndDateBetween(req.getSet(), from, until, pageRequest) + : this.oaiRecordRepository.findByDateBetween(from, until, pageRequest); final OaiPage res = new OaiPage(); res.setCursor(req.getPageSize() * req.getPageNumber()); diff --git a/dnet-app/apps/dnet-wf-aggregation-postgres/src/main/java/eu/dnetlib/wfs/nodes/MdExportOaiJobNode.java b/dnet-app/apps/dnet-wf-aggregation-postgres/src/main/java/eu/dnetlib/wfs/nodes/MdExportOaiJobNode.java index 15a6730..95327af 100644 --- a/dnet-app/apps/dnet-wf-aggregation-postgres/src/main/java/eu/dnetlib/wfs/nodes/MdExportOaiJobNode.java +++ b/dnet-app/apps/dnet-wf-aggregation-postgres/src/main/java/eu/dnetlib/wfs/nodes/MdExportOaiJobNode.java @@ -16,7 +16,7 @@ import eu.dnetlib.domain.mdstore.MDStoreVersion; import eu.dnetlib.domain.mdstore.MDStoreWithInfo; import eu.dnetlib.domain.mdstore.records.MetadataRecord; import eu.dnetlib.domain.oai.OaiConfiguration; -import eu.dnetlib.domain.oai.OaiSet; +import eu.dnetlib.domain.oai.ExportedOaiSet; import eu.dnetlib.errors.DnetException; import eu.dnetlib.wfs.annotations.WfInputParam; import eu.dnetlib.wfs.annotations.WfNode; @@ -64,13 +64,13 @@ public class MdExportOaiJobNode extends ProcessNode { if (mdstore.getFormat().equals(conf.getNativeFormat())) { final boolean isSetRegistered = oaiManager.listSets() .stream() - .map(OaiSet::getSetSpec) + .map(ExportedOaiSet::getSetSpec) .filter(s -> s.equals(this.oaiSetSpec)) .findFirst() .isPresent(); if (!isSetRegistered) { - final OaiSet oaiSet = new OaiSet(); + final ExportedOaiSet oaiSet = new ExportedOaiSet(); oaiSet.setSetSpec(this.oaiSetSpec); oaiSet.setSetName(this.ds.getOfficialname()); oaiSet.setDescription("Publications of " + this.ds.getOfficialname()); diff --git a/dnet-app/libs/dnet-app-common/src/main/java/eu/dnetlib/common/clients/OaiManagerClient.java b/dnet-app/libs/dnet-app-common/src/main/java/eu/dnetlib/common/clients/OaiManagerClient.java index 7f4331b..d823657 100644 --- a/dnet-app/libs/dnet-app-common/src/main/java/eu/dnetlib/common/clients/OaiManagerClient.java +++ b/dnet-app/libs/dnet-app-common/src/main/java/eu/dnetlib/common/clients/OaiManagerClient.java @@ -5,7 +5,7 @@ import java.util.List; import java.util.Map; import eu.dnetlib.domain.oai.OaiConfiguration; -import eu.dnetlib.domain.oai.OaiSet; +import eu.dnetlib.domain.oai.ExportedOaiSet; public class OaiManagerClient extends DnetServiceClient { @@ -13,12 +13,12 @@ public class OaiManagerClient extends DnetServiceClient { return httpGet("/api/oai/conf", OaiConfiguration.class, Map.of()); } - public List listSets() { - return Arrays.asList(httpGet("/api/oai/sets", OaiSet[].class, Map.of())); + public List listSets() { + return Arrays.asList(httpGet("/api/oai/sets", ExportedOaiSet[].class, Map.of())); } - public void createOaiSet(final OaiSet oaiSet) { - httpPostObject("/api/oai/sets", oaiSet, OaiSet[].class, Map.of()); + public void createOaiSet(final ExportedOaiSet oaiSet) { + httpPostObject("/api/oai/sets", oaiSet, ExportedOaiSet[].class, Map.of()); } } diff --git a/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/ExportedOaiMetadataFormat.java b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/ExportedOaiMetadataFormat.java new file mode 100644 index 0000000..fd5a182 --- /dev/null +++ b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/ExportedOaiMetadataFormat.java @@ -0,0 +1,65 @@ +package eu.dnetlib.domain.oai; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +@Entity +@Table(name = "oai_md_formats") +public class ExportedOaiMetadataFormat implements OaiMetadataFormat { + + private static final long serialVersionUID = -4526570547812092275L; + + @Id + @Column(name = "prefix") + private String metadataPrefix; + + @Column(name = "schema") + private String metadataSchema; + + @Column(name = "namespace") + private String metadataNamespace; + + @Column(name = "xslt") + private String xslt; + + @Override + public String getMetadataPrefix() { + return this.metadataPrefix; + } + + @Override + public void setMetadataPrefix(final String metadataPrefix) { + this.metadataPrefix = metadataPrefix; + } + + @Override + public String getMetadataSchema() { + return this.metadataSchema; + } + + @Override + public void setMetadataSchema(final String metadataSchema) { + this.metadataSchema = metadataSchema; + } + + @Override + public String getMetadataNamespace() { + return this.metadataNamespace; + } + + @Override + public void setMetadataNamespace(final String metadataNamespace) { + this.metadataNamespace = metadataNamespace; + } + + public String getXslt() { + return this.xslt; + } + + public void setXslt(final String xslt) { + this.xslt = xslt; + } + +} diff --git a/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/ExportedOaiRecord.java b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/ExportedOaiRecord.java new file mode 100644 index 0000000..ffc3338 --- /dev/null +++ b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/ExportedOaiRecord.java @@ -0,0 +1,66 @@ +package eu.dnetlib.domain.oai; + +import java.time.LocalDateTime; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +@Entity +@Table(name = "oai_records") +public class ExportedOaiRecord implements OaiRecord { + + private static final long serialVersionUID = 9178403183427337500L; + + @Id + @Column(name = "id") + private String id; + + @Column(name = "body") + private String body; + + @Column(name = "date") + private LocalDateTime date; + + @Column(name = "oai_set") + private String oaiSet; + + @Override + public String getId() { + return this.id; + } + + @Override + public void setId(final String id) { + this.id = id; + } + + @Override + public String getBody() { + return this.body; + } + + @Override + public void setBody(final String body) { + this.body = body; + } + + @Override + public LocalDateTime getDate() { + return this.date; + } + + @Override + public void setDate(final LocalDateTime date) { + this.date = date; + } + + public String getOaiSet() { + return this.oaiSet; + } + + public void setOaiSet(final String oaiSet) { + this.oaiSet = oaiSet; + } +} diff --git a/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/ExportedOaiSet.java b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/ExportedOaiSet.java new file mode 100644 index 0000000..68c5f87 --- /dev/null +++ b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/ExportedOaiSet.java @@ -0,0 +1,68 @@ +package eu.dnetlib.domain.oai; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +@Entity +@Table(name = "oai_sets") +public class ExportedOaiSet implements OaiSet { + + private static final long serialVersionUID = 7405955731269852254L; + + @Id + @Column(name = "set_spec") + private String setSpec; + + @Column(name = "set_name") + private String setName; + + @Column(name = "description") + private String description; + + @Column(name = "ds_id") + private String dsId; + + public String getSetSpec() { + return this.setSpec; + } + + @Override + public void setSetSpec(final String setSpec) { + this.setSpec = setSpec; + } + + @Override + public String getSetName() { + return this.setName; + } + + @Override + public void setSetName(final String setName) { + this.setName = setName; + } + + @Override + public String getDescription() { + return this.description; + } + + @Override + public void setDescription(final String description) { + this.description = description; + } + + public String getDsId() { + return this.dsId; + } + + public void setDsId(final String dsId) { + this.dsId = dsId; + } + + public static long getSerialversionuid() { + return serialVersionUID; + } + +} diff --git a/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiIdentifier.java b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiIdentifier.java new file mode 100644 index 0000000..4814299 --- /dev/null +++ b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiIdentifier.java @@ -0,0 +1,7 @@ +package eu.dnetlib.domain.oai; + +import java.io.Serializable; + +public interface OaiIdentifier extends Serializable { + +} diff --git a/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiInfo.java b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiInfo.java new file mode 100644 index 0000000..6a137f1 --- /dev/null +++ b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiInfo.java @@ -0,0 +1,7 @@ +package eu.dnetlib.domain.oai; + +import java.io.Serializable; + +public interface OaiInfo extends Serializable { + +} diff --git a/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiMetadataFormat.java b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiMetadataFormat.java index 824dda7..a51ac87 100644 --- a/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiMetadataFormat.java +++ b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiMetadataFormat.java @@ -2,60 +2,18 @@ package eu.dnetlib.domain.oai; import java.io.Serializable; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.Id; -import jakarta.persistence.Table; +public interface OaiMetadataFormat extends Serializable { -@Entity -@Table(name = "oai_md_formats") -public class OaiMetadataFormat implements Serializable { + String getMetadataPrefix(); - private static final long serialVersionUID = -4526570547812092275L; + void setMetadataPrefix(final String metadataPrefix); - @Id - @Column(name = "prefix") - private String metadataPrefix; + String getMetadataSchema(); - @Column(name = "schema") - private String metadataSchema; + void setMetadataSchema(final String metadataSchema); - @Column(name = "namespace") - private String metadataNamespace; + String getMetadataNamespace(); - @Column(name = "xslt") - private String xslt; - - public String getMetadataPrefix() { - return metadataPrefix; - } - - public void setMetadataPrefix(final String metadataPrefix) { - this.metadataPrefix = metadataPrefix; - } - - public String getMetadataSchema() { - return metadataSchema; - } - - public void setMetadataSchema(final String metadataSchema) { - this.metadataSchema = metadataSchema; - } - - public String getMetadataNamespace() { - return metadataNamespace; - } - - public void setMetadataNamespace(final String metadataNamespace) { - this.metadataNamespace = metadataNamespace; - } - - public String getXslt() { - return xslt; - } - - public void setXslt(final String xslt) { - this.xslt = xslt; - } + void setMetadataNamespace(String metadataNamespace); } diff --git a/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiRecord.java b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiRecord.java index 5fc7cce..ee3ce46 100644 --- a/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiRecord.java +++ b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiRecord.java @@ -3,59 +3,17 @@ package eu.dnetlib.domain.oai; import java.io.Serializable; import java.time.LocalDateTime; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.Id; -import jakarta.persistence.Table; +public interface OaiRecord extends Serializable { -@Entity -@Table(name = "oai_records") -public class OaiRecord implements Serializable { + String getId(); - private static final long serialVersionUID = 9178403183427337500L; + void setId(String id); - @Id - @Column(name = "id") - private String id; + String getBody(); - @Column(name = "body") - private String body; + void setBody(String body); - @Column(name = "date") - private LocalDateTime date; + LocalDateTime getDate(); - @Column(name = "oai_set") - private String oaiSet; - - public String getId() { - return id; - } - - public void setId(final String id) { - this.id = id; - } - - public String getBody() { - return body; - } - - public void setBody(final String body) { - this.body = body; - } - - public LocalDateTime getDate() { - return date; - } - - public void setDate(final LocalDateTime date) { - this.date = date; - } - - public String getOaiSet() { - return oaiSet; - } - - public void setOaiSet(final String oaiSet) { - this.oaiSet = oaiSet; - } + void setDate(LocalDateTime date); } diff --git a/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiSet.java b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiSet.java index 6809e95..9445295 100644 --- a/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiSet.java +++ b/dnet-app/libs/dnet-domain/src/main/java/eu/dnetlib/domain/oai/OaiSet.java @@ -2,64 +2,15 @@ package eu.dnetlib.domain.oai; import java.io.Serializable; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.Id; -import jakarta.persistence.Table; +public interface OaiSet extends Serializable { -@Entity -@Table(name = "oai_sets") -public class OaiSet implements Serializable { + void setSetSpec(String setSpec); - private static final long serialVersionUID = 7405955731269852254L; + String getSetName(); - @Id - @Column(name = "set_spec") - private String setSpec; + void setSetName(String setName); - @Column(name = "set_name") - private String setName; - - @Column(name = "description") - private String description; - - @Column(name = "ds_id") - private String dsId; - - public String getSetSpec() { - return setSpec; - } - - public void setSetSpec(final String setSpec) { - this.setSpec = setSpec; - } - - public String getSetName() { - return setName; - } - - public void setSetName(final String setName) { - this.setName = setName; - } - - public String getDescription() { - return description; - } - - public void setDescription(final String description) { - this.description = description; - } - - public String getDsId() { - return dsId; - } - - public void setDsId(final String dsId) { - this.dsId = dsId; - } - - public static long getSerialversionuid() { - return serialVersionUID; - } + String getDescription(); + void setDescription(String description); } diff --git a/dnet-app/libs/dnet-oai-common/pom.xml b/dnet-app/libs/dnet-oai-common/pom.xml new file mode 100644 index 0000000..70b7686 --- /dev/null +++ b/dnet-app/libs/dnet-oai-common/pom.xml @@ -0,0 +1,61 @@ + + + + + eu.dnetlib.docker + libs + 7.0.0-SNAPSHOT + + + 4.0.0 + + dnet-oai-common + jar + + + + + ${project.groupId} + dnet-common-mapping + ${project.version} + + + + net.sf.saxon + Saxon-HE + + + + com.github.sisyphsu + dateparser + 1.0.11 + + + + + org.junit.jupiter + junit-jupiter + test + + + + org.mockito + mockito-core + test + + + + org.mockito + mockito-junit-jupiter + test + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + diff --git a/dnet-app/libs/dnet-oai-common/src/main/java/eu/dnetlib/common/oai/domain/OaiClient.java b/dnet-app/libs/dnet-oai-common/src/main/java/eu/dnetlib/common/oai/domain/OaiClient.java new file mode 100644 index 0000000..43945e4 --- /dev/null +++ b/dnet-app/libs/dnet-oai-common/src/main/java/eu/dnetlib/common/oai/domain/OaiClient.java @@ -0,0 +1,43 @@ +package eu.dnetlib.common.oai.domain; + +import java.util.List; + +import eu.dnetlib.domain.oai.OaiIdentifier; +import eu.dnetlib.domain.oai.OaiInfo; +import eu.dnetlib.domain.oai.OaiMetadataFormat; +import eu.dnetlib.domain.oai.OaiRecord; +import eu.dnetlib.domain.oai.OaiSet; + +public class OaiClient { + + public List listSets(final String baseUrl) { + + // TODO + return null; + } + + public List listMetadataFormat(final String baseUrl) { + + // TODO + return null; + } + + public List listRecords(final String baseUrl) { + + // TODO + return null; + } + + public List listIdentifier(final String baseUrl) { + + // TODO + return null; + } + + public OaiInfo info(final String baseUrl) { + + // TODO + return null; + } + +} diff --git a/dnet-app/libs/dnet-wf-executor-common/src/main/java/eu/dnetlib/wfs/collector/oai/OaiIterator.java b/dnet-app/libs/dnet-oai-common/src/main/java/eu/dnetlib/common/oai/domain/OaiIterator.java similarity index 98% rename from dnet-app/libs/dnet-wf-executor-common/src/main/java/eu/dnetlib/wfs/collector/oai/OaiIterator.java rename to dnet-app/libs/dnet-oai-common/src/main/java/eu/dnetlib/common/oai/domain/OaiIterator.java index e18b45b..99db6a8 100644 --- a/dnet-app/libs/dnet-wf-executor-common/src/main/java/eu/dnetlib/wfs/collector/oai/OaiIterator.java +++ b/dnet-app/libs/dnet-oai-common/src/main/java/eu/dnetlib/common/oai/domain/OaiIterator.java @@ -1,4 +1,4 @@ -package eu.dnetlib.wfs.collector.oai; +package eu.dnetlib.common.oai.domain; import java.io.StringReader; import java.net.URLEncoder; @@ -21,7 +21,7 @@ import org.springframework.web.client.RestTemplate; import eu.dnetlib.errors.CollectorException; import eu.dnetlib.utils.XmlCleaner; -class OaiIterator implements Iterator { +public class OaiIterator implements Iterator { private static final DateTimeFormatter oaiDateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); diff --git a/dnet-app/libs/dnet-wf-executor-common/pom.xml b/dnet-app/libs/dnet-wf-executor-common/pom.xml index dba0079..3d1df39 100644 --- a/dnet-app/libs/dnet-wf-executor-common/pom.xml +++ b/dnet-app/libs/dnet-wf-executor-common/pom.xml @@ -21,6 +21,12 @@ true + + ${project.groupId} + dnet-oai-common + ${project.version} + + ${project.groupId} dnet-wf-common diff --git a/dnet-app/libs/dnet-wf-executor-common/src/main/java/eu/dnetlib/wfs/collector/oai/OaiCollectorPlugin.java b/dnet-app/libs/dnet-wf-executor-common/src/main/java/eu/dnetlib/wfs/collector/oai/OaiCollectorPlugin.java index 7b9d843..fc28f65 100644 --- a/dnet-app/libs/dnet-wf-executor-common/src/main/java/eu/dnetlib/wfs/collector/oai/OaiCollectorPlugin.java +++ b/dnet-app/libs/dnet-wf-executor-common/src/main/java/eu/dnetlib/wfs/collector/oai/OaiCollectorPlugin.java @@ -1,10 +1,12 @@ package eu.dnetlib.wfs.collector.oai; import java.time.LocalDateTime; + import java.util.Iterator; import java.util.Map; import java.util.stream.Stream; +import eu.dnetlib.common.oai.domain.OaiIterator; import eu.dnetlib.utils.DnetStreamSupport; import eu.dnetlib.wfs.annotations.CollectorPlugin; import eu.dnetlib.wfs.collector.DnetCollectorPlugin; diff --git a/dnet-app/libs/pom.xml b/dnet-app/libs/pom.xml index 1ea4863..94a5780 100644 --- a/dnet-app/libs/pom.xml +++ b/dnet-app/libs/pom.xml @@ -18,6 +18,7 @@ dnet-common-mapping dnet-mdstore-postgres dnet-index-solr + dnet-oai-common dnet-wf-common dnet-wf-executor-common