fixed sets and formats
This commit is contained in:
parent
e05ed26ff5
commit
b654faa55b
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue