diff --git a/src/main/java/eu/dnetlib/apps/oai/OaiService.java b/src/main/java/eu/dnetlib/apps/oai/OaiService.java index aea83bf..5fce9bd 100644 --- a/src/main/java/eu/dnetlib/apps/oai/OaiService.java +++ b/src/main/java/eu/dnetlib/apps/oai/OaiService.java @@ -165,9 +165,9 @@ public class OaiService { return listMetadataFormats() .stream() .filter(f -> f.getMetadataPrefix().equalsIgnoreCase(metadataPrefix)) - .map(OaiMetadataFormat::getXslt) + .map(OaiMetadataFormat::getXsltPath) + .map(xsltPath -> this.xsltTransformerFactory.getTransformer(xsltPath, null)) .findFirst() - .map(xslt -> this.xsltTransformerFactory.getTransformerByXSLT(xslt, null)) .orElseThrow(() -> new RuntimeException("Invalid metadata format: " + metadataPrefix)); } diff --git a/src/main/java/eu/dnetlib/apps/oai/domain/OaiMetadataFormat.java b/src/main/java/eu/dnetlib/apps/oai/domain/OaiMetadataFormat.java index bfc4b85..5eda62a 100644 --- a/src/main/java/eu/dnetlib/apps/oai/domain/OaiMetadataFormat.java +++ b/src/main/java/eu/dnetlib/apps/oai/domain/OaiMetadataFormat.java @@ -12,7 +12,7 @@ public class OaiMetadataFormat implements Serializable { private String metadataNamespace; - private String xslt; + private String xsltPath; public String getMetadataPrefix() { return this.metadataPrefix; @@ -38,12 +38,12 @@ public class OaiMetadataFormat implements Serializable { this.metadataNamespace = metadataNamespace; } - public String getXslt() { - return this.xslt; + public String getXsltPath() { + return this.xsltPath; } - public void setXslt(final String xslt) { - this.xslt = xslt; + public void setXslt(final String xsltPath) { + this.xsltPath = xsltPath; } } diff --git a/src/main/java/eu/dnetlib/apps/oai/domain/OaiSet.java b/src/main/java/eu/dnetlib/apps/oai/domain/OaiSet.java index a61fea9..a7dc6a8 100644 --- a/src/main/java/eu/dnetlib/apps/oai/domain/OaiSet.java +++ b/src/main/java/eu/dnetlib/apps/oai/domain/OaiSet.java @@ -12,8 +12,6 @@ public class OaiSet implements Serializable { private String description; - private String dsId; - public String getSetSpec() { return this.setSpec; } @@ -38,16 +36,4 @@ public class OaiSet implements Serializable { 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/src/main/java/eu/dnetlib/apps/oai/utils/XsltTransformerFactory.java b/src/main/java/eu/dnetlib/apps/oai/utils/XsltTransformerFactory.java index d735d95..585c61a 100644 --- a/src/main/java/eu/dnetlib/apps/oai/utils/XsltTransformerFactory.java +++ b/src/main/java/eu/dnetlib/apps/oai/utils/XsltTransformerFactory.java @@ -1,5 +1,6 @@ package eu.dnetlib.apps.oai.utils; +import java.io.FileInputStream; import java.io.StringWriter; import java.nio.charset.StandardCharsets; import java.util.ArrayList; @@ -26,7 +27,7 @@ import net.sf.saxon.s9api.XsltTransformer; @Component public class XsltTransformerFactory { - public Function getTransformerByXSLT(final String xsltText, final Map params) { + public Function getTransformer(final String xsltPath, final Map params) { final Processor processor = new Processor(false); final List errorList = new ArrayList<>(); @@ -35,8 +36,8 @@ public class XsltTransformerFactory { comp.setErrorList(errorList); params.forEach((k, v) -> comp.setParameter(new QName(k), XdmAtomicValue.makeAtomicValue(v))); - try { - final XsltExecutable xslt = comp.compile(new StreamSource(IOUtils.toInputStream(xsltText, StandardCharsets.UTF_8))); + try (FileInputStream fileInputStream = new FileInputStream(xsltPath)) { + final XsltExecutable xslt = comp.compile(new StreamSource(fileInputStream)); return xml -> { try { final XdmNode source = processor diff --git a/src/main/resources/oai-metadata-formats.json b/src/main/resources/oai-metadata-formats.json index fe51488..150152b 100644 --- a/src/main/resources/oai-metadata-formats.json +++ b/src/main/resources/oai-metadata-formats.json @@ -1 +1,8 @@ -[] +[ + { + "metadataPrefix" : "oai_dc", + "metadataSchema" : "http://www.openarchives.org/OAI/2.0/oai_dc.xsd", + "metadataNamespace": "http://www.openarchives.org/OAI/2.0/oai_dc/", + "xsltPath" : "xslt/raw_to_dc.xslt" + } +]