diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreBuilder.java b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreBuilder.java index 932b478826529d9eaab5143a30496bd996285b85..a9849f7935f6b29682ecfd278ea4ebabdcec719b 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreBuilder.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreBuilder.java @@ -4,9 +4,9 @@ import java.util.List; import javax.xml.bind.JAXB; import javax.xml.bind.JAXBElement; import info.textgrid.middleware.oaidc.ElementType; -import info.textgrid.middleware.oaipmh.MetadataType; import info.textgrid.middleware.oaidc.OaiDcType; import info.textgrid.middleware.oaidc.ObjectFactory; +import info.textgrid.middleware.oaipmh.MetadataType; /** * <p> @@ -15,19 +15,21 @@ import info.textgrid.middleware.oaidc.ObjectFactory; * specific DC-field. * </p> * - * @author Maximilian Brodhun SUB - * @version 1.1 - * @since 18.02.2014 + * @author Maximilian Brodhun, SUB Göttingen + * @author Stefan E. Funk, SUB Göttingen + * @version 2019-10-17 + * @since 2014-02.18 */ public final class DublinCoreBuilder { + // Object factory for all the DC elements. + private static ObjectFactory oaiDcObj = new ObjectFactory(); + // MetadataType of OAI schema. private MetadataType metadata = new MetadataType(); // OAI_DC type of oai_dc schema. private OaiDcType tgMappedDC = new OaiDcType(); - // Object factory for all the DC elements. - private ObjectFactory oaiDcObj = new ObjectFactory(); /** * <p> @@ -56,8 +58,7 @@ public final class DublinCoreBuilder { public void setContributor(List<String> contributors) { for (String dccontributor : contributors) { ElementType contributorElement = new ElementType(); - JAXBElement<ElementType> dcCoreContributor = - this.oaiDcObj.createContributor(contributorElement); + JAXBElement<ElementType> dcCoreContributor = oaiDcObj.createContributor(contributorElement); contributorElement.setValue(dccontributor); this.tgMappedDC.getTitleOrCreatorOrSubject().add(dcCoreContributor); } @@ -75,7 +76,7 @@ public final class DublinCoreBuilder { for (String dccreator : creators) { ElementType creatorElement = new ElementType(); creatorElement.setValue(dccreator); - JAXBElement<ElementType> dcCoreCreator = this.oaiDcObj.createCreator(creatorElement); + JAXBElement<ElementType> dcCoreCreator = oaiDcObj.createCreator(creatorElement); this.tgMappedDC.getTitleOrCreatorOrSubject().add(dcCoreCreator); } } @@ -92,7 +93,7 @@ public final class DublinCoreBuilder { for (String dccoverage : coverages) { ElementType coverageElement = new ElementType(); coverageElement.setValue(dccoverage); - JAXBElement<ElementType> dcCoreCoverage = this.oaiDcObj.createCoverage(coverageElement); + JAXBElement<ElementType> dcCoreCoverage = oaiDcObj.createCoverage(coverageElement); this.tgMappedDC.getTitleOrCreatorOrSubject().add(dcCoreCoverage); } } @@ -108,7 +109,7 @@ public final class DublinCoreBuilder { public void setDate(List<String> dates) { for (String dcdate : dates) { ElementType dateElement = new ElementType(); - JAXBElement<ElementType> dcCoreDate = this.oaiDcObj.createDate(dateElement); + JAXBElement<ElementType> dcCoreDate = oaiDcObj.createDate(dateElement); dateElement.setValue(dcdate); this.tgMappedDC.getTitleOrCreatorOrSubject().add(dcCoreDate); } @@ -126,8 +127,7 @@ public final class DublinCoreBuilder { for (String dcdescription : descriptions) { ElementType descriptionElement = new ElementType(); descriptionElement.setValue(dcdescription); - JAXBElement<ElementType> dcCoreDescription = - this.oaiDcObj.createDescription(descriptionElement); + JAXBElement<ElementType> dcCoreDescription = oaiDcObj.createDescription(descriptionElement); this.tgMappedDC.getTitleOrCreatorOrSubject().add(dcCoreDescription); } } @@ -144,7 +144,7 @@ public final class DublinCoreBuilder { for (String dcformat : formats) { ElementType formatElement = new ElementType(); formatElement.setValue(dcformat); - JAXBElement<ElementType> dcCoreFormat = this.oaiDcObj.createFormat(formatElement); + JAXBElement<ElementType> dcCoreFormat = oaiDcObj.createFormat(formatElement); this.tgMappedDC.getTitleOrCreatorOrSubject().add(dcCoreFormat); } } @@ -161,7 +161,7 @@ public final class DublinCoreBuilder { for (String dcidentifier : identifiers) { ElementType identifierElement = new ElementType(); identifierElement.setValue(dcidentifier); - JAXBElement<ElementType> dcCoreIdentifier = this.oaiDcObj.createIdentifier(identifierElement); + JAXBElement<ElementType> dcCoreIdentifier = oaiDcObj.createIdentifier(identifierElement); this.tgMappedDC.getTitleOrCreatorOrSubject().add(dcCoreIdentifier); } } @@ -178,7 +178,7 @@ public final class DublinCoreBuilder { for (String dclanguage : languages) { ElementType languageElement = new ElementType(); languageElement.setValue(dclanguage); - JAXBElement<ElementType> dcCoreLanguage = this.oaiDcObj.createLanguage(languageElement); + JAXBElement<ElementType> dcCoreLanguage = oaiDcObj.createLanguage(languageElement); this.tgMappedDC.getTitleOrCreatorOrSubject().add(dcCoreLanguage); } } @@ -195,7 +195,7 @@ public final class DublinCoreBuilder { for (String dcpublisher : publishers) { ElementType publisherElement = new ElementType(); publisherElement.setValue(dcpublisher); - JAXBElement<ElementType> dcCorePublisher = this.oaiDcObj.createPublisher(publisherElement); + JAXBElement<ElementType> dcCorePublisher = oaiDcObj.createPublisher(publisherElement); this.tgMappedDC.getTitleOrCreatorOrSubject().add(dcCorePublisher); } } @@ -212,7 +212,7 @@ public final class DublinCoreBuilder { for (String dcrelation : relations) { ElementType relationElement = new ElementType(); relationElement.setValue(dcrelation); - JAXBElement<ElementType> dcCoreRelation = this.oaiDcObj.createRelation(relationElement); + JAXBElement<ElementType> dcCoreRelation = oaiDcObj.createRelation(relationElement); this.tgMappedDC.getTitleOrCreatorOrSubject().add(dcCoreRelation); } } @@ -229,7 +229,7 @@ public final class DublinCoreBuilder { for (String dcrights : rights) { ElementType rightsElement = new ElementType(); rightsElement.setValue(dcrights); - JAXBElement<ElementType> dcCoreRights = this.oaiDcObj.createRights(rightsElement); + JAXBElement<ElementType> dcCoreRights = oaiDcObj.createRights(rightsElement); this.tgMappedDC.getTitleOrCreatorOrSubject().add(dcCoreRights); } } @@ -246,7 +246,7 @@ public final class DublinCoreBuilder { for (String dcsource : sources) { ElementType sourcesElement = new ElementType(); sourcesElement.setValue(dcsource); - JAXBElement<ElementType> dcCoreSource = this.oaiDcObj.createSource(sourcesElement); + JAXBElement<ElementType> dcCoreSource = oaiDcObj.createSource(sourcesElement); this.tgMappedDC.getTitleOrCreatorOrSubject().add(dcCoreSource); } } @@ -263,7 +263,7 @@ public final class DublinCoreBuilder { for (String dcsubject : subjects) { ElementType subjectElement = new ElementType(); subjectElement.setValue(dcsubject); - JAXBElement<ElementType> dcCoreSubject = this.oaiDcObj.createSubject(subjectElement); + JAXBElement<ElementType> dcCoreSubject = oaiDcObj.createSubject(subjectElement); this.tgMappedDC.getTitleOrCreatorOrSubject().add(dcCoreSubject); } } @@ -280,7 +280,7 @@ public final class DublinCoreBuilder { for (String dctitle : titles) { ElementType titlesElement = new ElementType(); titlesElement.setValue(dctitle); - JAXBElement<ElementType> dcCoreTitle = this.oaiDcObj.createTitle(titlesElement); + JAXBElement<ElementType> dcCoreTitle = oaiDcObj.createTitle(titlesElement); this.tgMappedDC.getTitleOrCreatorOrSubject().add(dcCoreTitle); } } @@ -297,7 +297,7 @@ public final class DublinCoreBuilder { for (String dctype : types) { ElementType typeElement = new ElementType(); typeElement.setValue(dctype); - JAXBElement<ElementType> dcCoreType = this.oaiDcObj.createType(typeElement); + JAXBElement<ElementType> dcCoreType = oaiDcObj.createType(typeElement); this.tgMappedDC.getTitleOrCreatorOrSubject().add(dcCoreType); } } @@ -311,7 +311,12 @@ public final class DublinCoreBuilder { * @return metadata element with the dublinCore values for a specific object */ public MetadataType getDC() { - this.metadata.setAny(this.oaiDcObj.createDc(this.tgMappedDC)); + + System.out.println("## ARGL ##"); + JAXB.marshal(this.tgMappedDC, System.out); + + this.metadata.setAny(oaiDcObj.createDc(this.tgMappedDC)); + return this.metadata; } @@ -329,8 +334,8 @@ public final class DublinCoreBuilder { * @deprecated */ @Deprecated - public ObjectFactory getOaiDcObj() { - return this.oaiDcObj; + public static ObjectFactory getOaiDcObj() { + return oaiDcObj; } } diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java index e88f54a8a750a18cb9c8298f09ccb5a24cc4be3d..dfc6d91aad5ea0a6eae059ac2f00513a22f05898 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/MetadataFormatListDeliverer.java @@ -31,7 +31,7 @@ public class MetadataFormatListDeliverer { setIdExist(true); mft.setMetadataNamespace("http://www.openarchives.org/OAI/2.0/oai_dc/"); mft.setMetadataPrefix(TGConstants.METADATA_DC_PREFIX); - mft.setSchema("http://www.openarchives.org/OAI/2.0/oai_dc.xsd"); + mft.setSchema("https://www.openarchives.org/OAI/2.0/oai_dc.xsd"); lmft.getMetadataFormat().add(mft); } else { setIdExist(false); diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java index ef3a4ccbff61cc98d91067b9e5329afcaa247c9c..ab41d7d131a95a484dfc5ab84f90f5060e6fc6ef 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java @@ -436,6 +436,8 @@ public class OAIPMHImpl implements OAIPMHProducer { } } + // JAXB.marshal(oaipmhRoot, System.out); + return oaipmhRoot; } @@ -591,7 +593,7 @@ public class OAIPMHImpl implements OAIPMHProducer { // Create new OAIPMH XML document from template, set result. // OAIPMHtype response = JAXB.unmarshal(new File(OAIPMH_XML_TEMPLATE), OAIPMHtype.class); - OAIPMHtype response = obf.createOAIPMHtype(); + OAIPMHtype response = new OAIPMHtype(); VerbType verbParam = setVerb(verb); RequestType request = new RequestType(); diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java index 5a89c741b4788da53d8cdf6a7b98c1ba42164619..2e81caf1b3dcadc435a5c8ea20ada593351a4d54 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java @@ -78,7 +78,7 @@ public class SetDeliverer { String projectName = hit.getFields().get("project.value").values().get(0).toString(); String projectID = hit.getFields().get("project.id").values().get(0).toString(); String projectSetSpec = projectName.concat(":").concat(projectID); - this.setSet.put(projectID, projectName); + SetDeliverer.setSet.put(projectID, projectName); } } @@ -237,5 +237,4 @@ public class SetDeliverer { this.dariah = dariah; } - }