diff --git a/.gitignore b/.gitignore index 19ec0e6..455c5df 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,36 @@ -.idea/ -resourcesync.iml +*.bak +## Ignore the MVN compiled output directories from version tracking target/ +## Ignore project files created by Eclipse +.settings/ +/bin/ +.project +.classpath + +## Ignore project files created by IntelliJ IDEA +*.iml +*.ipr +*.iws +.idea/ +overlays/ + +## Ignore project files created by NetBeans +nbproject/private/ +build/ +nbbuild/ +dist/ +nbdist/ +nbactions.xml +nb-configuration.xml +META-INF/ + +## Ignore all *.properties file in root folder, EXCEPT build.properties (the default) +/*.properties +!/build.properties + +##Mac noise +.DS_Store +rebel.xml +.externalToolBuilders/ +local.cfg diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9fa1f31 --- /dev/null +++ b/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2002-2018, DuraSpace. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +See https://opensource.org/licenses/BSD-3-Clause \ No newline at end of file diff --git a/LICENSE_HEADER b/LICENSE_HEADER new file mode 100644 index 0000000..e3153d9 --- /dev/null +++ b/LICENSE_HEADER @@ -0,0 +1,3 @@ +The contents of this file are subject to the license and copyright +detailed in the LICENSE and NOTICE files at the root of the source +tree \ No newline at end of file diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..d3e4a50 --- /dev/null +++ b/NOTICE @@ -0,0 +1,6 @@ + +Licensing Notice + +The project is based on code initially developed by Richard Jones at CottageLabs. +In May 2018 the copyright was waived in favour of the DuraSpace Foundation to +allow wide contribution and simplify the adoption by the DSpace community. \ No newline at end of file diff --git a/pom.xml b/pom.xml index 9249e66..25472ca 100644 --- a/pom.xml +++ b/pom.xml @@ -4,10 +4,14 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - org.openarchives + org.dspace resourcesync - 0.9-SNAPSHOT + 1.1-SNAPSHOT + + ${basedir} + + @@ -19,6 +23,60 @@ 1.6 + + com.mycila + license-maven-plugin + + +
${root.basedir}/LICENSE_HEADER
+ + + src/** + + + true + + + **/src/test/resources/** + **/src/test/data/** + **/src/main/license/** + **/testEnvironment.properties + **/META-INF/** + **/robots.txt + **/*.LICENSE + **/LICENSE* + **/README* + **/readme* + **/.gitignore + **/build.properties* + **/rebel.xml + + + + XML_STYLE + XML_STYLE + XML_STYLE + XML_STYLE + SCRIPT_STYLE + TEXT + + UTF-8 + + true +
+ + + check-headers + verify + + check + + + +
diff --git a/src/main/java/org/openarchives/resourcesync/CapabilityList.java b/src/main/java/org/openarchives/resourcesync/CapabilityList.java index 224ebd1..edcef9b 100644 --- a/src/main/java/org/openarchives/resourcesync/CapabilityList.java +++ b/src/main/java/org/openarchives/resourcesync/CapabilityList.java @@ -1,9 +1,17 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync; import java.util.ArrayList; import java.util.Date; import java.util.List; +/** + * @author Richard Jones + */ public class CapabilityList extends UrlSet { private List allowedCapabilities = new ArrayList(); diff --git a/src/main/java/org/openarchives/resourcesync/ChangeDump.java b/src/main/java/org/openarchives/resourcesync/ChangeDump.java new file mode 100644 index 0000000..d94a7fa --- /dev/null +++ b/src/main/java/org/openarchives/resourcesync/ChangeDump.java @@ -0,0 +1,46 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ +package org.openarchives.resourcesync; + +import java.util.Date; + +/** + * @author Richard Jones + */ +public class ChangeDump extends UrlSet +{ + + public ChangeDump(Date from, String resourceSync) + { + super(ResourceSync.CAPABILITY_CHANGEDUMP); + this.setFrom(from); + if (resourceSync != null) + { + this.addLn(ResourceSync.CAPABILITY_RESOURCESYNC, resourceSync); + } + } + + public ChangeDump() + { + this(new Date(), null); + } + + public void addResourceZip(URL zip) + { + this.addUrl(zip); + } + + public URL addResourceZip(String zipUrl, Date lastMod, String type, long length) + { + URL url = new URL(); + url.setLoc(zipUrl); + url.setLastModified(lastMod); + url.setType(type); + url.setLength(length); + this.addResourceZip(url); + return url; + } +} \ No newline at end of file diff --git a/src/main/java/org/openarchives/resourcesync/ChangeList.java b/src/main/java/org/openarchives/resourcesync/ChangeList.java index 96fb48d..f5a7046 100644 --- a/src/main/java/org/openarchives/resourcesync/ChangeList.java +++ b/src/main/java/org/openarchives/resourcesync/ChangeList.java @@ -1,9 +1,18 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync; import java.util.Date; - +/** + * @author Richard Jones + */ public class ChangeList extends UrlSet { + + public ChangeList() { this(null, null, null, null); @@ -31,7 +40,7 @@ public ChangeList(Date from, Date until, String capabilityList, String changeLis if (capabilityList != null) { - this.addLn(ResourceSync.REL_RESOURCESYNC, capabilityList); + this.addLn(ResourceSync.REL_UP, capabilityList); } } diff --git a/src/main/java/org/openarchives/resourcesync/ChangeListArchive.java b/src/main/java/org/openarchives/resourcesync/ChangeListArchive.java index 0b39fd8..f799cc6 100644 --- a/src/main/java/org/openarchives/resourcesync/ChangeListArchive.java +++ b/src/main/java/org/openarchives/resourcesync/ChangeListArchive.java @@ -1,8 +1,15 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync; import java.io.InputStream; import java.util.Date; - +/** + * @author Richard Jones + */ public class ChangeListArchive extends SitemapIndex { public ChangeListArchive() @@ -44,7 +51,7 @@ public ChangeListArchive(Date from, Date until, String capabilityList) if (capabilityList != null) { - this.addLn(ResourceSync.REL_RESOURCESYNC, capabilityList); + this.addLn(ResourceSync.REL_UP, capabilityList); } } diff --git a/src/main/java/org/openarchives/resourcesync/ResourceDump.java b/src/main/java/org/openarchives/resourcesync/ResourceDump.java index d753b7f..542d3bf 100644 --- a/src/main/java/org/openarchives/resourcesync/ResourceDump.java +++ b/src/main/java/org/openarchives/resourcesync/ResourceDump.java @@ -1,9 +1,15 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync; -import com.sun.org.apache.xpath.internal.functions.FuncStringLength; import java.util.Date; - +/** + * @author Richard Jones + */ public class ResourceDump extends UrlSet { @@ -13,7 +19,7 @@ public ResourceDump(Date from, String resourceSync) this.setFrom(from); if (resourceSync != null) { - this.addLn(ResourceSync.CAPABILITY_RESOURCESYNC, resourceSync); + this.addLn(ResourceSync.REL_UP, resourceSync); } } @@ -37,4 +43,13 @@ public URL addResourceZip(String zipUrl, Date lastMod, String type, long length) this.addResourceZip(url); return url; } + public URL addResourceZip(String zipUrl, Date lastMod, String type) + { + URL url = new URL(); + url.setLoc(zipUrl); + url.setLastModified(lastMod); + url.setType(type); + this.addResourceZip(url); + return url; + } } diff --git a/src/main/java/org/openarchives/resourcesync/ResourceList.java b/src/main/java/org/openarchives/resourcesync/ResourceList.java index a485d52..f51d90f 100644 --- a/src/main/java/org/openarchives/resourcesync/ResourceList.java +++ b/src/main/java/org/openarchives/resourcesync/ResourceList.java @@ -1,7 +1,14 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync; import java.util.Date; - +/** + * @author Richard Jones + */ public class ResourceList extends UrlSet { public ResourceList() @@ -54,10 +61,27 @@ public ResourceList(Date lastMod, String capabilityList, boolean dump) if (capabilityList != null) { - this.addLn(ResourceSync.REL_RESOURCESYNC, capabilityList); + this.addLn(ResourceSync.REL_UP, capabilityList); } } + public ResourceList(Date lastMod, String capabilityList, boolean dump,boolean changeDump) + { + super(changeDump ? ResourceSync.CAPABILITY_CHANGEDUMP_MANIFEST : ResourceSync.CAPABILITY_RESOURCELIST); + if (lastMod == null) + { + this.setFrom(new Date()); + } + else + { + this.setFrom(lastMod); + } + + if (capabilityList != null) + { + this.addLn(ResourceSync.REL_UP, capabilityList); + } + } public void addResource(URL resource) { this.addEntry(resource); diff --git a/src/main/java/org/openarchives/resourcesync/ResourceSync.java b/src/main/java/org/openarchives/resourcesync/ResourceSync.java index 8f6684b..a1519d3 100644 --- a/src/main/java/org/openarchives/resourcesync/ResourceSync.java +++ b/src/main/java/org/openarchives/resourcesync/ResourceSync.java @@ -1,9 +1,16 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync; import org.jdom2.Namespace; import java.text.SimpleDateFormat; - +/** + * @author Richard Jones + */ public class ResourceSync { // namespaces @@ -30,11 +37,11 @@ public class ResourceSync public static String REL_PROFILE = "profile"; // capabilities - public static String CAPABILITY_RESOURCESYNC = "resourcesync"; + public static String CAPABILITY_RESOURCESYNC = "description"; public static String CAPABILITY_RESOURCELIST = "resourcelist"; public static String CAPABILITY_RESOURCELIST_ARCHIVE = "resourcelist-archive"; public static String CAPABILITY_CHANGELIST = "changelist"; - public static String CAPABILITY_CHANGELIST_ARCHIVE = "changelist-archive"; + public static String CAPABILITY_CHANGELIST_ARCHIVE = "changelistindex"; public static String CAPABILITY_RESOURCEDUMP = "resourcedump"; public static String CAPABILITY_RESOURCEDUMP_ARCHIVE = "resourcedump-archive"; public static String CAPABILITY_CHANGEDUMP = "changedump"; diff --git a/src/main/java/org/openarchives/resourcesync/ResourceSyncDescription.java b/src/main/java/org/openarchives/resourcesync/ResourceSyncDescription.java index 5b8dd5a..dcca1c6 100644 --- a/src/main/java/org/openarchives/resourcesync/ResourceSyncDescription.java +++ b/src/main/java/org/openarchives/resourcesync/ResourceSyncDescription.java @@ -1,7 +1,14 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync; import java.util.List; - +/** + * @author Richard Jones + */ public class ResourceSyncDescription extends UrlSet { public ResourceSyncDescription() @@ -47,4 +54,29 @@ public List getCapabilityLists() { return this.getUrls(); } + public void addSourceDescription(URL sourceDesc) + { + if (!ResourceSync.CAPABILITY_RESOURCESYNC.equals(sourceDesc.getCapability())) + { + throw new SpecComplianceException("URL added to ResourceSyncDescription is not a Capability List"); + } + this.addUrl(sourceDesc); + } + public URL addSourceDescription(String loc) + { + return this.addSourceDescription(loc, null); + } + + public URL addSourceDescription(String loc, String describedby) + { + URL sourceDesc = new URL(); + sourceDesc.setLoc(loc); + if (describedby != null) + { + sourceDesc.addLn(ResourceSync.REL_DESCRIBED_BY, describedby); + } + sourceDesc.setCapability(ResourceSync.CAPABILITY_RESOURCESYNC); + this.addSourceDescription(sourceDesc); + return sourceDesc; + } } diff --git a/src/main/java/org/openarchives/resourcesync/ResourceSyncDescriptionIndex.java b/src/main/java/org/openarchives/resourcesync/ResourceSyncDescriptionIndex.java new file mode 100644 index 0000000..931215e --- /dev/null +++ b/src/main/java/org/openarchives/resourcesync/ResourceSyncDescriptionIndex.java @@ -0,0 +1,44 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ +package org.openarchives.resourcesync; +/** + * @author Richard Jones + */ +public class ResourceSyncDescriptionIndex extends SitemapIndex{ + + public ResourceSyncDescriptionIndex(String capability) { + super(capability); + } + + public void addSourceDescription(Sitemap sourceDesc) + { + if (!ResourceSync.CAPABILITY_RESOURCESYNC.equals(sourceDesc.getCapability())) +// { +// throw new SpecComplianceException("URL added to ResourceSyncDescription is not a Capability List"); +// } + this.addSitemap(sourceDesc); + } + public Sitemap addSourceDescription(String loc) + { + return this.addSourceDescription(loc, null); + } + + public Sitemap addSourceDescription(String loc, String describedby) + { + Sitemap sourceDesc = new Sitemap(); + sourceDesc.setLoc(loc); + if (describedby != null) + { + sourceDesc.addLn(ResourceSync.REL_DESCRIBED_BY, describedby); + } +// sourceDesc.setCapability(ResourceSync.CAPABILITY_RESOURCESYNC); + this.addSourceDescription(sourceDesc); + return sourceDesc; + } + + + +} diff --git a/src/main/java/org/openarchives/resourcesync/ResourceSyncDocument.java b/src/main/java/org/openarchives/resourcesync/ResourceSyncDocument.java index 71be0b2..eab3b35 100644 --- a/src/main/java/org/openarchives/resourcesync/ResourceSyncDocument.java +++ b/src/main/java/org/openarchives/resourcesync/ResourceSyncDocument.java @@ -1,3 +1,8 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync; import org.jdom2.Document; @@ -13,24 +18,43 @@ import java.text.ParseException; import java.util.ArrayList; import java.util.Date; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.TreeMap; - +/** + * @author Richard Jones + */ public abstract class ResourceSyncDocument { // these options should be provided by the extending class through the constructor overrides protected String capability; protected String root; - + //ADD at and completed + protected Date at; + protected Date completed; // these options can be accessed using getters and setters protected Date from; protected Date until; protected List unorderedEntries = new ArrayList(); protected TreeMap> orderedEntries = new TreeMap>(); protected List lns = new ArrayList(); - + + private String changeType = null; + + public String getChangeType() { + return changeType; + } + + public void setChangeType(String changeType) { + if (changeType.toLowerCase().equals("create")) { + this.changeType = ResourceSync.CHANGE_CREATED; + }else if (changeType.toLowerCase().equals("update")) { + this.changeType = ResourceSync.CHANGE_UPDATED; + }else if (changeType.toLowerCase().equals("delete")) { + this.changeType = ResourceSync.CHANGE_DELETED; + } + } + + public ResourceSyncDocument(String root, String capability, InputStream in) { this.root = root; @@ -133,7 +157,23 @@ public void setFromUntil(Date from, Date until) this.setUntil(until); } - public String getCapability() + public Date getAt() { + return this.at; + } + + public void setAt(Date at) { + this.at = at; + } + + public Date getCompleted() { + return this.completed; + } + + public void setCompleted(Date completed) { + this.completed = completed; + } + + public String getCapability() { return capability; } @@ -163,6 +203,8 @@ protected void populateDocument(Element element) // - until String until = mdElement.getAttributeValue("until"); + + if (until != null && !"".equals(until)) { Date ud = ResourceSync.DATE_FORMAT.parse(until); @@ -179,6 +221,7 @@ protected void populateDocument(Element element) if (rel != null && !"".equals(rel) && href != null && !"".equals(href)) { this.addLn(rel, href); + } } @@ -240,6 +283,7 @@ public void serialise(OutputStream out) throws IOException { Element element = this.getElement(); + Document doc = new Document(element); XMLOutputter xmlOutputter = new XMLOutputter(Format.getPrettyFormat()); xmlOutputter.output(doc, out); diff --git a/src/main/java/org/openarchives/resourcesync/ResourceSyncEntry.java b/src/main/java/org/openarchives/resourcesync/ResourceSyncEntry.java index 234d500..db66f64 100644 --- a/src/main/java/org/openarchives/resourcesync/ResourceSyncEntry.java +++ b/src/main/java/org/openarchives/resourcesync/ResourceSyncEntry.java @@ -1,3 +1,8 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync; import org.jdom2.Element; @@ -9,9 +14,12 @@ import java.util.HashMap; import java.util.List; import java.util.Map; - +/** + * @author Richard Jones + */ public abstract class ResourceSyncEntry { + protected String root; protected String loc = null; diff --git a/src/main/java/org/openarchives/resourcesync/ResourceSyncLn.java b/src/main/java/org/openarchives/resourcesync/ResourceSyncLn.java index c3a7129..16964da 100644 --- a/src/main/java/org/openarchives/resourcesync/ResourceSyncLn.java +++ b/src/main/java/org/openarchives/resourcesync/ResourceSyncLn.java @@ -1,12 +1,21 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync; import java.io.InputStream; import java.util.Date; import java.util.HashMap; import java.util.Map; - +/** + * @author Richard Jones + */ public class ResourceSyncLn { + + protected Map hashes = new HashMap(); protected String href = null; protected long length = -1; diff --git a/src/main/java/org/openarchives/resourcesync/Sitemap.java b/src/main/java/org/openarchives/resourcesync/Sitemap.java index e9ed204..77279fa 100644 --- a/src/main/java/org/openarchives/resourcesync/Sitemap.java +++ b/src/main/java/org/openarchives/resourcesync/Sitemap.java @@ -1,5 +1,12 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync; - +/** + * @author Richard Jones + */ public class Sitemap extends ResourceSyncEntry { public Sitemap() diff --git a/src/main/java/org/openarchives/resourcesync/SitemapIndex.java b/src/main/java/org/openarchives/resourcesync/SitemapIndex.java index 2ae86da..0721de1 100644 --- a/src/main/java/org/openarchives/resourcesync/SitemapIndex.java +++ b/src/main/java/org/openarchives/resourcesync/SitemapIndex.java @@ -1,3 +1,8 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync; import org.jdom2.Element; @@ -5,7 +10,9 @@ import java.io.InputStream; import java.text.ParseException; import java.util.List; - +/** + * @author Richard Jones + */ public class SitemapIndex extends ResourceSyncDocument { public SitemapIndex(String capability) diff --git a/src/main/java/org/openarchives/resourcesync/SpecComplianceException.java b/src/main/java/org/openarchives/resourcesync/SpecComplianceException.java index 4e20ded..b614e9a 100644 --- a/src/main/java/org/openarchives/resourcesync/SpecComplianceException.java +++ b/src/main/java/org/openarchives/resourcesync/SpecComplianceException.java @@ -1,5 +1,12 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync; - +/** + * @author Richard Jones + */ public class SpecComplianceException extends RuntimeException { public SpecComplianceException() diff --git a/src/main/java/org/openarchives/resourcesync/URL.java b/src/main/java/org/openarchives/resourcesync/URL.java index 0b52aa2..a73c0b4 100644 --- a/src/main/java/org/openarchives/resourcesync/URL.java +++ b/src/main/java/org/openarchives/resourcesync/URL.java @@ -1,5 +1,12 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync; - +/** + * @author Richard Jones + */ public class URL extends ResourceSyncEntry { public URL() diff --git a/src/main/java/org/openarchives/resourcesync/UrlSet.java b/src/main/java/org/openarchives/resourcesync/UrlSet.java index 6ea2420..1b50adb 100644 --- a/src/main/java/org/openarchives/resourcesync/UrlSet.java +++ b/src/main/java/org/openarchives/resourcesync/UrlSet.java @@ -1,9 +1,16 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync; import org.jdom2.Element; import java.util.List; - +/** + * @author Richard Jones + */ public class UrlSet extends ResourceSyncDocument { public UrlSet(String capability) @@ -21,7 +28,11 @@ public void addUrl(URL url) { this.addEntry(url); } - + public void addSitemap(Sitemap sitemap ) + { + this.addEntry(sitemap); + } + public List getUrls() { return this.getEntries(); diff --git a/src/test/java/org/openarchives/resourcesync/test/TestBaseClasses.java b/src/test/java/org/openarchives/resourcesync/test/TestBaseClasses.java index 4181ed7..dbb6f7c 100644 --- a/src/test/java/org/openarchives/resourcesync/test/TestBaseClasses.java +++ b/src/test/java/org/openarchives/resourcesync/test/TestBaseClasses.java @@ -1,3 +1,8 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync.test; import static org.junit.Assert.assertEquals; diff --git a/src/test/java/org/openarchives/resourcesync/test/TestCapabilityList.java b/src/test/java/org/openarchives/resourcesync/test/TestCapabilityList.java index dde6e29..94dad93 100644 --- a/src/test/java/org/openarchives/resourcesync/test/TestCapabilityList.java +++ b/src/test/java/org/openarchives/resourcesync/test/TestCapabilityList.java @@ -1,3 +1,8 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync.test; import org.junit.Test; diff --git a/src/test/java/org/openarchives/resourcesync/test/TestChangeList.java b/src/test/java/org/openarchives/resourcesync/test/TestChangeList.java index 25f27db..a0c676c 100644 --- a/src/test/java/org/openarchives/resourcesync/test/TestChangeList.java +++ b/src/test/java/org/openarchives/resourcesync/test/TestChangeList.java @@ -1,3 +1,8 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync.test; import org.junit.Test; diff --git a/src/test/java/org/openarchives/resourcesync/test/TestChangeListArchive.java b/src/test/java/org/openarchives/resourcesync/test/TestChangeListArchive.java index 5f5a682..9a307ef 100644 --- a/src/test/java/org/openarchives/resourcesync/test/TestChangeListArchive.java +++ b/src/test/java/org/openarchives/resourcesync/test/TestChangeListArchive.java @@ -1,3 +1,8 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync.test; import org.junit.Test; diff --git a/src/test/java/org/openarchives/resourcesync/test/TestDescription.java b/src/test/java/org/openarchives/resourcesync/test/TestDescription.java index 783e986..0ec98aa 100644 --- a/src/test/java/org/openarchives/resourcesync/test/TestDescription.java +++ b/src/test/java/org/openarchives/resourcesync/test/TestDescription.java @@ -1,3 +1,8 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync.test; import org.junit.Test; diff --git a/src/test/java/org/openarchives/resourcesync/test/TestParsing.java b/src/test/java/org/openarchives/resourcesync/test/TestParsing.java index 14cd7e6..f7b2738 100644 --- a/src/test/java/org/openarchives/resourcesync/test/TestParsing.java +++ b/src/test/java/org/openarchives/resourcesync/test/TestParsing.java @@ -1,3 +1,8 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync.test; import org.jdom2.Element; diff --git a/src/test/java/org/openarchives/resourcesync/test/TestResourceList.java b/src/test/java/org/openarchives/resourcesync/test/TestResourceList.java index 4dbc0e1..564602f 100644 --- a/src/test/java/org/openarchives/resourcesync/test/TestResourceList.java +++ b/src/test/java/org/openarchives/resourcesync/test/TestResourceList.java @@ -1,3 +1,8 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree + */ package org.openarchives.resourcesync.test; import org.junit.Test;