fixed sets and formats

This commit is contained in:
Michele Artini 2024-04-23 14:32:43 +02:00
parent e05ed26ff5
commit b654faa55b
5 changed files with 19 additions and 25 deletions

View File

@ -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));
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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<String, String> getTransformerByXSLT(final String xsltText, final Map<String, Object> params) {
public Function<String, String> getTransformer(final String xsltPath, final Map<String, Object> params) {
final Processor processor = new Processor(false);
final List<XmlProcessingError> 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

View File

@ -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"
}
]