diff --git a/build.gradle b/build.gradle index b13fe4f..f72c2bf 100644 --- a/build.gradle +++ b/build.gradle @@ -1,17 +1,13 @@ plugins { - id "checkstyle" - id "pmd" id 'maven-publish' id 'signing' id "io.github.gradle-nexus.publish-plugin" version "1.3.0" - id "com.github.spotbugs" version "5.0.14" - id "org.cyclonedx.bom" version "1.7.2" } wrapper { gradleVersion = libs.versions.gradle.get() - distributionType = Wrapper.DistributionType.ALL + distributionType = Wrapper.DistributionType.BIN } ext { @@ -30,14 +26,10 @@ ext { } subprojects { - apply from: rootProject.file('gradle/ide/idea.gradle') apply from: rootProject.file('gradle/repositories/maven.gradle') apply from: rootProject.file('gradle/compile/java.gradle') apply from: rootProject.file('gradle/test/junit5.gradle') apply from: rootProject.file('gradle/publish/maven.gradle') - apply from: rootProject.file('gradle/quality/checkstyle.gradle') - apply from: rootProject.file('gradle/quality/pmd.gradle') - apply from: rootProject.file('gradle/quality/spotbugs.gradle') } apply from: rootProject.file('gradle/publish/sonatype.gradle') apply from: rootProject.file('gradle/publish/forgejo.gradle') diff --git a/gradle.properties b/gradle.properties index 0b479b5..07ef028 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,3 @@ group = org.xbib name = oai -version = 3.0.0 - -gradle.wrapper.version = 7.5.1 +version = 4.0.0 diff --git a/gradle/compile/java.gradle b/gradle/compile/java.gradle index 5f54d0b..25a53d9 100644 --- a/gradle/compile/java.gradle +++ b/gradle/compile/java.gradle @@ -1,34 +1,47 @@ - apply plugin: 'java-library' java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } modularity.inferModulePath.set(true) withSourcesJar() withJavadocJar() } -compileJava { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 -} - -compileTestJava { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 -} - jar { manifest { attributes('Implementation-Version': project.version) } + duplicatesStrategy = DuplicatesStrategy.INCLUDE } -tasks.withType(JavaCompile) { - options.compilerArgs << '-Xlint:all' - options.encoding = 'UTF-8' +tasks.withType(JavaCompile).configureEach { + doFirst { + options.fork = true + options.forkOptions.jvmArgs += ['-Duser.language=en', '-Duser.country=US'] + options.encoding = 'UTF-8' + options.compilerArgs.add('-Xlint:all') + // enforce presence of module-info.java + options.compilerArgs.add("--module-version") + options.compilerArgs.add(project.version as String) + options.compilerArgs.add("--module-path") + options.compilerArgs.add(classpath.asPath) + classpath = files() + } } -tasks.withType(Javadoc) { - options.addStringOption('Xdoclint:none', '-quiet') - options.encoding = 'UTF-8' +tasks.withType(Javadoc).configureEach { + doFirst { + options.addStringOption('Xdoclint:none', '-quiet') + options.encoding = 'UTF-8' + } +} + +tasks.withType(JavaExec).configureEach { + doFirst { + jvmArguments.add("--module-path") + jvmArguments.add(classpath.asPath) + classpath = files() + } } diff --git a/gradle/test/junit5.gradle b/gradle/test/junit5.gradle index 21a428b..a0d2b6f 100644 --- a/gradle/test/junit5.gradle +++ b/gradle/test/junit5.gradle @@ -1,34 +1,32 @@ dependencies { - testImplementation libs.junit.jupiter.api - testImplementation libs.junit.jupiter.params - testImplementation libs.hamcrest - testRuntimeOnly libs.junit.jupiter.engine + testImplementation testLibs.junit.jupiter.api + testImplementation testLibs.junit.jupiter.params + testImplementation testLibs.hamcrest + testRuntimeOnly testLibs.junit.jupiter.engine + testRuntimeOnly testLibs.junit.jupiter.platform.launcher } test { useJUnitPlatform() failFast = false - ignoreFailures = true jvmArgs '--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED', '--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED', '--add-exports=java.base/sun.nio.ch=ALL-UNNAMED', - '--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED', - '--add-opens=jdk.compiler/com.sun.tools.javac=ALL-UNNAMED', '--add-opens=java.base/java.lang=ALL-UNNAMED', '--add-opens=java.base/java.lang.reflect=ALL-UNNAMED', '--add-opens=java.base/java.io=ALL-UNNAMED', '--add-opens=java.base/java.nio=ALL-UNNAMED', '--add-opens=java.base/java.util=ALL-UNNAMED' systemProperty 'java.util.logging.config.file', 'src/test/resources/logging.properties' - systemProperty 'io.netty.tryReflectionSetAccessible', 'true' + systemProperty 'io.netty.tryReflectionSetAccessible', 'false' + systemProperty 'io.netty.allocator.typ', 'pooled' + systemProperty 'io.netty.noUnsafe', 'true' + systemProperty 'io.netty.noKeySetOptimization', 'true' + systemProperty 'io.netty.eventLoopThreads', '8' + systemProperty 'io.netty.recycler.maxCapacityPerThread', '0' + systemProperty 'io.netty.transport.noNative', 'true' testLogging { events 'STARTED', 'PASSED', 'FAILED', 'SKIPPED' - showStandardStreams = true - } - reports { - html.required = false - junitXml.outputLocation.set(layout.buildDirectory.dir("test-junit-xml")) } afterSuite { desc, result -> if (!desc.parent) { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index c1962a7..e644113 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8707e8b..b82aa23 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index aeb74cb..1aa94a4 100755 --- a/gradlew +++ b/gradlew @@ -83,7 +83,8 @@ done # This is normally unused # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -130,10 +131,13 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. @@ -141,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -149,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -198,11 +202,11 @@ fi # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/gradlew.bat b/gradlew.bat index 6689b85..7101f8e 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/oai-client/build.gradle b/oai-client/build.gradle index 051227c..8328722 100644 --- a/oai-client/build.gradle +++ b/oai-client/build.gradle @@ -3,3 +3,13 @@ dependencies { testImplementation libs.marc testImplementation libs.charactersets } + +def patchArgs = ['--patch-module', "org.xbib.oai.client.test=" + sourceSets.test.resources.sourceDirectories.singleFile] + +tasks.named('compileTestJava') { + options.compilerArgs += patchArgs +} + +tasks.named('test') { + jvmArgs += patchArgs +} diff --git a/oai-client/src/main/java/module-info.java b/oai-client/src/main/java/module-info.java index 06fcbb0..4b030d0 100644 --- a/oai-client/src/main/java/module-info.java +++ b/oai-client/src/main/java/module-info.java @@ -6,8 +6,8 @@ module org.xbib.oai.client { exports org.xbib.oai.client.listmetadataformats; exports org.xbib.oai.client.listrecords; exports org.xbib.oai.client.listsets; - requires org.xbib.oai; - //requires org.xbib.net; + exports org.xbib.oai.client.util; + requires transitive org.xbib.oai; requires org.xbib.content.xml; requires java.xml; requires java.logging; diff --git a/oai-client/src/main/java/org/xbib/oai/client/getrecord/GetRecordRequest.java b/oai-client/src/main/java/org/xbib/oai/client/getrecord/GetRecordRequest.java index ad12ab1..4caf703 100644 --- a/oai-client/src/main/java/org/xbib/oai/client/getrecord/GetRecordRequest.java +++ b/oai-client/src/main/java/org/xbib/oai/client/getrecord/GetRecordRequest.java @@ -2,11 +2,9 @@ package org.xbib.oai.client.getrecord; import org.xbib.oai.client.AbstractOAIRequest; -/** - * - */ public class GetRecordRequest extends AbstractOAIRequest { + @SuppressWarnings("this-escape") public GetRecordRequest() { super(); addParameter(VERB_PARAMETER, GET_RECORD); diff --git a/oai-client/src/main/java/org/xbib/oai/client/getrecord/GetRecordResponse.java b/oai-client/src/main/java/org/xbib/oai/client/getrecord/GetRecordResponse.java index f6db907..ee06ffa 100644 --- a/oai-client/src/main/java/org/xbib/oai/client/getrecord/GetRecordResponse.java +++ b/oai-client/src/main/java/org/xbib/oai/client/getrecord/GetRecordResponse.java @@ -2,9 +2,8 @@ package org.xbib.oai.client.getrecord; import org.xbib.oai.OAIResponse; -/** - * - */ public class GetRecordResponse implements OAIResponse { + public GetRecordResponse() { + } } diff --git a/oai-client/src/main/java/org/xbib/oai/client/getrecord/package-info.java b/oai-client/src/main/java/org/xbib/oai/client/getrecord/package-info.java deleted file mode 100644 index 25df66d..0000000 --- a/oai-client/src/main/java/org/xbib/oai/client/getrecord/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * OAI get record verb. - */ -package org.xbib.oai.client.getrecord; diff --git a/oai-client/src/main/java/org/xbib/oai/client/identify/IdentifyRequest.java b/oai-client/src/main/java/org/xbib/oai/client/identify/IdentifyRequest.java index 61934cb..47cb907 100644 --- a/oai-client/src/main/java/org/xbib/oai/client/identify/IdentifyRequest.java +++ b/oai-client/src/main/java/org/xbib/oai/client/identify/IdentifyRequest.java @@ -2,11 +2,9 @@ package org.xbib.oai.client.identify; import org.xbib.oai.client.AbstractOAIRequest; -/** - * - */ public class IdentifyRequest extends AbstractOAIRequest { + @SuppressWarnings("this-escape") public IdentifyRequest() { super(); addParameter(VERB_PARAMETER, IDENTIFY); diff --git a/oai-client/src/main/java/org/xbib/oai/client/identify/IdentifyResponse.java b/oai-client/src/main/java/org/xbib/oai/client/identify/IdentifyResponse.java index 3d84730..f8a38a1 100644 --- a/oai-client/src/main/java/org/xbib/oai/client/identify/IdentifyResponse.java +++ b/oai-client/src/main/java/org/xbib/oai/client/identify/IdentifyResponse.java @@ -19,9 +19,6 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -/** - * - */ public class IdentifyResponse implements OAIResponse { private String repositoryName; @@ -40,6 +37,9 @@ public class IdentifyResponse implements OAIResponse { private String compression; + public IdentifyResponse() { + } + public void receivedResponse(String message, int statusCode, String contentType, String retryAfter, Writer writer) { try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); diff --git a/oai-client/src/main/java/org/xbib/oai/client/identify/package-info.java b/oai-client/src/main/java/org/xbib/oai/client/identify/package-info.java deleted file mode 100644 index d84d84d..0000000 --- a/oai-client/src/main/java/org/xbib/oai/client/identify/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * OAI identify verb. - */ -package org.xbib.oai.client.identify; diff --git a/oai-client/src/main/java/org/xbib/oai/client/listidentifiers/ListIdentifiersRequest.java b/oai-client/src/main/java/org/xbib/oai/client/listidentifiers/ListIdentifiersRequest.java index 405ebc4..8ccb6f6 100644 --- a/oai-client/src/main/java/org/xbib/oai/client/listidentifiers/ListIdentifiersRequest.java +++ b/oai-client/src/main/java/org/xbib/oai/client/listidentifiers/ListIdentifiersRequest.java @@ -2,11 +2,9 @@ package org.xbib.oai.client.listidentifiers; import org.xbib.oai.client.AbstractOAIRequest; -/** - * - */ public class ListIdentifiersRequest extends AbstractOAIRequest { + @SuppressWarnings("this-escape") public ListIdentifiersRequest() { super(); addParameter(VERB_PARAMETER, LIST_IDENTIFIERS); diff --git a/oai-client/src/main/java/org/xbib/oai/client/listidentifiers/ListIdentifiersResponse.java b/oai-client/src/main/java/org/xbib/oai/client/listidentifiers/ListIdentifiersResponse.java index 8665aa8..df0e4d2 100644 --- a/oai-client/src/main/java/org/xbib/oai/client/listidentifiers/ListIdentifiersResponse.java +++ b/oai-client/src/main/java/org/xbib/oai/client/listidentifiers/ListIdentifiersResponse.java @@ -4,4 +4,6 @@ import org.xbib.oai.OAIResponse; public class ListIdentifiersResponse implements OAIResponse { + public ListIdentifiersResponse() { + } } diff --git a/oai-client/src/main/java/org/xbib/oai/client/listidentifiers/package-info.java b/oai-client/src/main/java/org/xbib/oai/client/listidentifiers/package-info.java deleted file mode 100644 index a73e8b2..0000000 --- a/oai-client/src/main/java/org/xbib/oai/client/listidentifiers/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * OAI list identifiers verb. - */ -package org.xbib.oai.client.listidentifiers; diff --git a/oai-client/src/main/java/org/xbib/oai/client/listmetadataformats/ListMetadataFormatsRequest.java b/oai-client/src/main/java/org/xbib/oai/client/listmetadataformats/ListMetadataFormatsRequest.java index aa27825..fb6100e 100644 --- a/oai-client/src/main/java/org/xbib/oai/client/listmetadataformats/ListMetadataFormatsRequest.java +++ b/oai-client/src/main/java/org/xbib/oai/client/listmetadataformats/ListMetadataFormatsRequest.java @@ -2,11 +2,9 @@ package org.xbib.oai.client.listmetadataformats; import org.xbib.oai.client.AbstractOAIRequest; -/** - * - */ public class ListMetadataFormatsRequest extends AbstractOAIRequest { + @SuppressWarnings("this-escape") public ListMetadataFormatsRequest() { super(); addParameter(VERB_PARAMETER, LIST_METADATA_FORMATS); diff --git a/oai-client/src/main/java/org/xbib/oai/client/listmetadataformats/ListMetadataFormatsResponse.java b/oai-client/src/main/java/org/xbib/oai/client/listmetadataformats/ListMetadataFormatsResponse.java index 891e027..26b3356 100644 --- a/oai-client/src/main/java/org/xbib/oai/client/listmetadataformats/ListMetadataFormatsResponse.java +++ b/oai-client/src/main/java/org/xbib/oai/client/listmetadataformats/ListMetadataFormatsResponse.java @@ -4,4 +4,6 @@ import org.xbib.oai.OAIResponse; public class ListMetadataFormatsResponse implements OAIResponse { + public ListMetadataFormatsResponse() { + } } diff --git a/oai-client/src/main/java/org/xbib/oai/client/listmetadataformats/package-info.java b/oai-client/src/main/java/org/xbib/oai/client/listmetadataformats/package-info.java deleted file mode 100644 index 7007096..0000000 --- a/oai-client/src/main/java/org/xbib/oai/client/listmetadataformats/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * OAI list metadata formats verb. - */ -package org.xbib.oai.client.listmetadataformats; diff --git a/oai-client/src/main/java/org/xbib/oai/client/listrecords/ListRecordsRequest.java b/oai-client/src/main/java/org/xbib/oai/client/listrecords/ListRecordsRequest.java index d85c67b..408ee80 100644 --- a/oai-client/src/main/java/org/xbib/oai/client/listrecords/ListRecordsRequest.java +++ b/oai-client/src/main/java/org/xbib/oai/client/listrecords/ListRecordsRequest.java @@ -11,10 +11,12 @@ public class ListRecordsRequest extends AbstractOAIRequest { private final List handlers = new LinkedList<>(); + @SuppressWarnings("this-escape") public ListRecordsRequest() { super(); addParameter(OAIConstants.VERB_PARAMETER, LIST_RECORDS); } + public ListRecordsRequest addHandler(MetadataHandler handler) { handlers.add(handler); return this; diff --git a/oai-client/src/main/java/org/xbib/oai/client/listrecords/package-info.java b/oai-client/src/main/java/org/xbib/oai/client/listrecords/package-info.java deleted file mode 100644 index eb9ad16..0000000 --- a/oai-client/src/main/java/org/xbib/oai/client/listrecords/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * OAI list records verb. - */ -package org.xbib.oai.client.listrecords; diff --git a/oai-client/src/main/java/org/xbib/oai/client/listsets/ListSetsRequest.java b/oai-client/src/main/java/org/xbib/oai/client/listsets/ListSetsRequest.java index f32dcf5..b298574 100644 --- a/oai-client/src/main/java/org/xbib/oai/client/listsets/ListSetsRequest.java +++ b/oai-client/src/main/java/org/xbib/oai/client/listsets/ListSetsRequest.java @@ -2,11 +2,9 @@ package org.xbib.oai.client.listsets; import org.xbib.oai.client.AbstractOAIRequest; -/** - * - */ public class ListSetsRequest extends AbstractOAIRequest { + @SuppressWarnings("this-escape") public ListSetsRequest() { super(); addParameter(VERB_PARAMETER, LIST_SETS); diff --git a/oai-client/src/main/java/org/xbib/oai/client/listsets/ListSetsResponse.java b/oai-client/src/main/java/org/xbib/oai/client/listsets/ListSetsResponse.java index 7a9d7b3..8f50221 100644 --- a/oai-client/src/main/java/org/xbib/oai/client/listsets/ListSetsResponse.java +++ b/oai-client/src/main/java/org/xbib/oai/client/listsets/ListSetsResponse.java @@ -3,4 +3,7 @@ package org.xbib.oai.client.listsets; import org.xbib.oai.OAIResponse; public class ListSetsResponse implements OAIResponse { + + public ListSetsResponse() { + } } diff --git a/oai-client/src/main/java/org/xbib/oai/client/listsets/package-info.java b/oai-client/src/main/java/org/xbib/oai/client/listsets/package-info.java deleted file mode 100644 index 56a18c7..0000000 --- a/oai-client/src/main/java/org/xbib/oai/client/listsets/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * OAI list sets verb. - */ -package org.xbib.oai.client.listsets; diff --git a/oai-client/src/main/java/org/xbib/oai/client/package-info.java b/oai-client/src/main/java/org/xbib/oai/client/package-info.java deleted file mode 100644 index 4f83d4f..0000000 --- a/oai-client/src/main/java/org/xbib/oai/client/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Classes for OAI client. - */ -package org.xbib.oai.client; diff --git a/oai-client/src/main/java/org/xbib/oai/client/util/PercentEncoder.java b/oai-client/src/main/java/org/xbib/oai/client/util/PercentEncoder.java index 5ef12b4..e23c452 100755 --- a/oai-client/src/main/java/org/xbib/oai/client/util/PercentEncoder.java +++ b/oai-client/src/main/java/org/xbib/oai/client/util/PercentEncoder.java @@ -160,27 +160,27 @@ public final class PercentEncoder { } } - private class StringBuilderPercentEncoderOutputHandler { + public static class StringBuilderPercentEncoderOutputHandler { private final StringBuilder stringBuilder; - StringBuilderPercentEncoderOutputHandler() { + public StringBuilderPercentEncoderOutputHandler() { stringBuilder = new StringBuilder(); } - String getContents() { + public String getContents() { return stringBuilder.toString(); } - void reset() { + public void reset() { stringBuilder.setLength(0); } - void ensureCapacity(int length) { + public void ensureCapacity(int length) { stringBuilder.ensureCapacity(length); } - void onOutputChar(char c) { + public void onOutputChar(char c) { stringBuilder.append(c); } } diff --git a/oai-client/src/main/java/org/xbib/oai/client/util/UrlBuilder.java b/oai-client/src/main/java/org/xbib/oai/client/util/UrlBuilder.java index 5feb051..cfff4cf 100755 --- a/oai-client/src/main/java/org/xbib/oai/client/util/UrlBuilder.java +++ b/oai-client/src/main/java/org/xbib/oai/client/util/UrlBuilder.java @@ -1,6 +1,7 @@ package org.xbib.oai.client.util; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.nio.charset.CharacterCodingException; import java.nio.charset.CharsetDecoder; @@ -103,7 +104,7 @@ public final class UrlBuilder { } public static UrlBuilder fromUrl(String urlSpec) throws CharacterCodingException, MalformedURLException { - return fromUrl(new URL(urlSpec)); + return fromUrl(URI.create(urlSpec).toURL()); } /** @@ -297,7 +298,7 @@ public final class UrlBuilder { } public URL build() throws CharacterCodingException, MalformedURLException { - return new URL(toUrlString()); + return URI.create(toUrlString()).toURL(); } /** diff --git a/oai-client/src/test/java/module-info.java b/oai-client/src/test/java/module-info.java new file mode 100644 index 0000000..9d8e258 --- /dev/null +++ b/oai-client/src/test/java/module-info.java @@ -0,0 +1,8 @@ +module org.xbib.oai.client.test { + requires java.logging; + requires org.junit.jupiter.api; + requires org.xbib.marc; + requires org.xbib.oai; + requires org.xbib.oai.client; + opens org.xbib.oai.client.test to org.junit.platform.commons; +} diff --git a/oai-client/src/test/java/org/xbib/oai/client/package-info.java b/oai-client/src/test/java/org/xbib/oai/client/package-info.java deleted file mode 100644 index d0875c1..0000000 --- a/oai-client/src/test/java/org/xbib/oai/client/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Classes for testing OAI client. - */ -package org.xbib.oai.client; diff --git a/oai-client/src/test/java/org/xbib/oai/client/ArxivClientTest.java b/oai-client/src/test/java/org/xbib/oai/client/test/ArxivClientTest.java similarity index 95% rename from oai-client/src/test/java/org/xbib/oai/client/ArxivClientTest.java rename to oai-client/src/test/java/org/xbib/oai/client/test/ArxivClientTest.java index a5ca5b7..7595535 100644 --- a/oai-client/src/test/java/org/xbib/oai/client/ArxivClientTest.java +++ b/oai-client/src/test/java/org/xbib/oai/client/test/ArxivClientTest.java @@ -1,8 +1,10 @@ -package org.xbib.oai.client; +package org.xbib.oai.client.test; import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.Test; +import org.xbib.oai.client.OAIClient; +import org.xbib.oai.client.SplitWriter; import org.xbib.oai.client.identify.IdentifyResponse; import org.xbib.oai.xml.SimpleMetadataHandler; diff --git a/oai-client/src/test/java/org/xbib/oai/client/BundeskunsthalleTest.java b/oai-client/src/test/java/org/xbib/oai/client/test/BundeskunsthalleTest.java similarity index 97% rename from oai-client/src/test/java/org/xbib/oai/client/BundeskunsthalleTest.java rename to oai-client/src/test/java/org/xbib/oai/client/test/BundeskunsthalleTest.java index fda959a..5f00934 100644 --- a/oai-client/src/test/java/org/xbib/oai/client/BundeskunsthalleTest.java +++ b/oai-client/src/test/java/org/xbib/oai/client/test/BundeskunsthalleTest.java @@ -1,10 +1,11 @@ -package org.xbib.oai.client; +package org.xbib.oai.client.test; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.xbib.marc.Marc; import org.xbib.marc.json.MarcJsonWriter; import org.xbib.marc.xml.MarcContentHandler; +import org.xbib.oai.client.OAIClient; import org.xbib.oai.client.identify.IdentifyResponse; import org.xbib.oai.exceptions.OAIException; diff --git a/oai-client/src/test/java/org/xbib/oai/client/DNBClientTest.java b/oai-client/src/test/java/org/xbib/oai/client/test/DNBClientTest.java similarity index 92% rename from oai-client/src/test/java/org/xbib/oai/client/DNBClientTest.java rename to oai-client/src/test/java/org/xbib/oai/client/test/DNBClientTest.java index 51c9541..223e0cf 100644 --- a/oai-client/src/test/java/org/xbib/oai/client/DNBClientTest.java +++ b/oai-client/src/test/java/org/xbib/oai/client/test/DNBClientTest.java @@ -1,7 +1,9 @@ -package org.xbib.oai.client; +package org.xbib.oai.client.test; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; +import org.xbib.oai.client.OAIClient; +import org.xbib.oai.client.SplitWriter; import java.time.Instant; diff --git a/oai-client/src/test/java/org/xbib/oai/client/DOAJClientTest.java b/oai-client/src/test/java/org/xbib/oai/client/test/DOAJClientTest.java similarity index 94% rename from oai-client/src/test/java/org/xbib/oai/client/DOAJClientTest.java rename to oai-client/src/test/java/org/xbib/oai/client/test/DOAJClientTest.java index 933515a..3f0b790 100644 --- a/oai-client/src/test/java/org/xbib/oai/client/DOAJClientTest.java +++ b/oai-client/src/test/java/org/xbib/oai/client/test/DOAJClientTest.java @@ -1,6 +1,8 @@ -package org.xbib.oai.client; +package org.xbib.oai.client.test; import org.junit.jupiter.api.Test; +import org.xbib.oai.client.OAIClient; +import org.xbib.oai.client.SplitWriter; import org.xbib.oai.client.identify.IdentifyResponse; import org.xbib.oai.xml.SimpleMetadataHandler; diff --git a/oai-client/src/test/java/org/xbib/oai/client/util/PercentEncoderTest.java b/oai-client/src/test/java/org/xbib/oai/client/test/PercentEncoderTest.java similarity index 97% rename from oai-client/src/test/java/org/xbib/oai/client/util/PercentEncoderTest.java rename to oai-client/src/test/java/org/xbib/oai/client/test/PercentEncoderTest.java index 9a61649..902d3cc 100755 --- a/oai-client/src/test/java/org/xbib/oai/client/util/PercentEncoderTest.java +++ b/oai-client/src/test/java/org/xbib/oai/client/test/PercentEncoderTest.java @@ -1,7 +1,8 @@ -package org.xbib.oai.client.util; +package org.xbib.oai.client.test; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.xbib.oai.client.util.PercentEncoder; import java.nio.charset.CharacterCodingException; import java.nio.charset.MalformedInputException; diff --git a/oai-client/src/test/java/org/xbib/oai/client/util/UrlBuilderTest.java b/oai-client/src/test/java/org/xbib/oai/client/test/UrlBuilderTest.java similarity index 97% rename from oai-client/src/test/java/org/xbib/oai/client/util/UrlBuilderTest.java rename to oai-client/src/test/java/org/xbib/oai/client/test/UrlBuilderTest.java index 0d3d30a..e3194db 100755 --- a/oai-client/src/test/java/org/xbib/oai/client/util/UrlBuilderTest.java +++ b/oai-client/src/test/java/org/xbib/oai/client/test/UrlBuilderTest.java @@ -1,6 +1,7 @@ -package org.xbib.oai.client.util; +package org.xbib.oai.client.test; import org.junit.jupiter.api.Test; +import org.xbib.oai.client.util.UrlBuilder; import java.net.MalformedURLException; import java.net.URI; @@ -9,6 +10,7 @@ import java.net.URL; import java.nio.charset.CharacterCodingException; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; public final class UrlBuilderTest { @@ -310,7 +312,7 @@ public final class UrlBuilderTest { UrlBuilder.fromUrl("http://foo.com/fo%2o"); fail(); } catch (IllegalArgumentException e) { - assertEquals("Invalid %-tuple <%2o>", e.getMessage()); + assertTrue(e.getMessage().startsWith("Malformed escape pair")); } } @@ -414,12 +416,13 @@ public final class UrlBuilderTest { * @param finalUrl the URL string it should end up as */ private void assertUrlBuilderRoundtrip(String origUrl, String finalUrl) throws MalformedURLException, CharacterCodingException, URISyntaxException { - assertUrlEquals(finalUrl, UrlBuilder.fromUrl(new URL(origUrl)).toUrlString()); + URL url = URI.create(origUrl).toURL(); + assertUrlEquals(finalUrl, UrlBuilder.fromUrl(url).toUrlString()); } private static void assertUrlEquals(String expected, String actual) throws URISyntaxException, MalformedURLException { assertEquals(expected, actual); assertEquals(expected, new URI(actual).toString()); - assertEquals(expected, new URL(actual).toString()); + assertEquals(expected, URI.create(actual).toURL().toString()); } } diff --git a/oai-client/src/test/resources/logging.properties b/oai-client/src/test/resources/logging.properties index e1e91de..6ded50c 100644 --- a/oai-client/src/test/resources/logging.properties +++ b/oai-client/src/test/resources/logging.properties @@ -1,11 +1,8 @@ -handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler +handlers=java.util.logging.ConsoleHandler .level=ALL java.util.logging.SimpleFormatter.format=%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS.%1$tL %4$-7s [%3$s] %5$s %6$s%n java.util.logging.ConsoleHandler.level=ALL java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter -java.util.logging.FileHandler.level=ALL -java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter -java.util.logging.FileHandler.pattern=build/oai.log jdk.event.security.level=INFO jdk.internal.httpclient.hpack.debug.level=INFO jdk.internal.httpclient.debug.level=INFO diff --git a/oai-client/src/test/resources/org/xbib/oai/client/doaj-list-records.xml b/oai-client/src/test/resources/org/xbib/oai/client/test/doaj-list-records.xml similarity index 100% rename from oai-client/src/test/resources/org/xbib/oai/client/doaj-list-records.xml rename to oai-client/src/test/resources/org/xbib/oai/client/test/doaj-list-records.xml diff --git a/oai-client/src/test/resources/org/xbib/xml/namespace.properties b/oai-client/src/test/resources/org/xbib/oai/client/test/namespace.properties similarity index 100% rename from oai-client/src/test/resources/org/xbib/xml/namespace.properties rename to oai-client/src/test/resources/org/xbib/oai/client/test/namespace.properties diff --git a/oai-client/src/test/resources/xsl/oai2.xsl b/oai-client/src/test/resources/org/xbib/oai/client/test/oai2.xsl similarity index 100% rename from oai-client/src/test/resources/xsl/oai2.xsl rename to oai-client/src/test/resources/org/xbib/oai/client/test/oai2.xsl diff --git a/oai-common/src/main/java/module-info.java b/oai-common/src/main/java/module-info.java index 0d70dc7..41cd6a9 100644 --- a/oai-common/src/main/java/module-info.java +++ b/oai-common/src/main/java/module-info.java @@ -4,9 +4,6 @@ module org.xbib.oai { exports org.xbib.oai.rdf; exports org.xbib.oai.util; exports org.xbib.oai.xml; - requires org.xbib.content.core; - requires org.xbib.content.rdf; - requires org.xbib.content.resource; - requires org.xbib.content.xml; + requires transitive org.xbib.content.rdf; requires java.xml; } diff --git a/oai-common/src/main/java/org/xbib/oai/util/RecordHeader.java b/oai-common/src/main/java/org/xbib/oai/util/RecordHeader.java index 3a1acdc..b3e5459 100644 --- a/oai-common/src/main/java/org/xbib/oai/util/RecordHeader.java +++ b/oai-common/src/main/java/org/xbib/oai/util/RecordHeader.java @@ -2,9 +2,6 @@ package org.xbib.oai.util; import java.time.Instant; -/** - * - */ public class RecordHeader { private String identifier; @@ -12,7 +9,10 @@ public class RecordHeader { private Instant date; private String set; - + + public RecordHeader() { + } + public RecordHeader setIdentifier(String identifier) { this.identifier = identifier; return this; diff --git a/oai-common/src/main/java/org/xbib/oai/xml/SimpleMetadataHandler.java b/oai-common/src/main/java/org/xbib/oai/xml/SimpleMetadataHandler.java index 3c41817..22755fa 100644 --- a/oai-common/src/main/java/org/xbib/oai/xml/SimpleMetadataHandler.java +++ b/oai-common/src/main/java/org/xbib/oai/xml/SimpleMetadataHandler.java @@ -3,13 +3,13 @@ package org.xbib.oai.xml; import org.xbib.content.xml.util.XMLFilterReader; import org.xbib.oai.util.RecordHeader; -/** - * - */ public class SimpleMetadataHandler extends XMLFilterReader implements MetadataHandler { private RecordHeader header; + public SimpleMetadataHandler() { + } + @Override public SimpleMetadataHandler setHeader(RecordHeader header) { this.header = header; diff --git a/oai-common/src/main/java/org/xbib/oai/xml/XmlSimpleMetadataHandler.java b/oai-common/src/main/java/org/xbib/oai/xml/XmlSimpleMetadataHandler.java index acb9748..3431ef7 100644 --- a/oai-common/src/main/java/org/xbib/oai/xml/XmlSimpleMetadataHandler.java +++ b/oai-common/src/main/java/org/xbib/oai/xml/XmlSimpleMetadataHandler.java @@ -22,9 +22,6 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.events.Attribute; import javax.xml.stream.events.Namespace; -/** - * - */ public class XmlSimpleMetadataHandler extends SimpleMetadataHandler implements OAIConstants { private static final XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); @@ -45,6 +42,9 @@ public class XmlSimpleMetadataHandler extends SimpleMetadataHandler implements O private boolean needToCallStartDocument = false; + public XmlSimpleMetadataHandler() { + } + public XmlSimpleMetadataHandler setWriter(Writer writer) throws XMLStreamException { this.writer = writer; outputFactory.setProperty("javax.xml.stream.isRepairingNamespaces", Boolean.TRUE); diff --git a/oai-server/src/main/java/module-info.java b/oai-server/src/main/java/module-info.java new file mode 100644 index 0000000..494d582 --- /dev/null +++ b/oai-server/src/main/java/module-info.java @@ -0,0 +1,16 @@ +import org.xbib.oai.server.OAIServer; + +module org.xbib.oai.server.main { + requires java.logging; + requires transitive java.xml; + requires transitive org.xbib.oai; + exports org.xbib.oai.server; + exports org.xbib.oai.server.getrecord; + exports org.xbib.oai.server.identify; + exports org.xbib.oai.server.listidentifiers; + exports org.xbib.oai.server.listmetadataformats; + exports org.xbib.oai.server.listrecords; + exports org.xbib.oai.server.listsets; + exports org.xbib.oai.server.verb; + uses OAIServer; +} diff --git a/oai-server/src/main/java/org/xbib/oai/server/AbstractOAIRequest.java b/oai-server/src/main/java/org/xbib/oai/server/AbstractOAIRequest.java index d6d7a31..bf7cdde 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/AbstractOAIRequest.java +++ b/oai-server/src/main/java/org/xbib/oai/server/AbstractOAIRequest.java @@ -8,9 +8,6 @@ import java.time.Instant; import java.util.HashMap; import java.util.Map; -/** - * - */ public abstract class AbstractOAIRequest implements OAIRequest { private String path; diff --git a/oai-server/src/main/java/org/xbib/oai/server/AbstractOAIResponse.java b/oai-server/src/main/java/org/xbib/oai/server/AbstractOAIResponse.java index bcea4d2..7a3c85e 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/AbstractOAIResponse.java +++ b/oai-server/src/main/java/org/xbib/oai/server/AbstractOAIResponse.java @@ -11,6 +11,9 @@ public abstract class AbstractOAIResponse implements OAIResponse { private XMLEventConsumer consumer; + public AbstractOAIResponse() { + } + public AbstractOAIResponse setConsumer(XMLEventConsumer consumer) { this.consumer = consumer; return this; diff --git a/oai-server/src/main/java/org/xbib/oai/server/OAIServiceFactory.java b/oai-server/src/main/java/org/xbib/oai/server/OAIServiceFactory.java index 7d52e19..72ea06d 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/OAIServiceFactory.java +++ b/oai-server/src/main/java/org/xbib/oai/server/OAIServiceFactory.java @@ -11,9 +11,6 @@ import java.util.ServiceLoader; import java.util.logging.Level; import java.util.logging.Logger; -/** - * - */ public class OAIServiceFactory { private static final Logger logger = Logger.getLogger(OAIServiceFactory.class.getName()); diff --git a/oai-server/src/main/java/org/xbib/oai/server/PropertiesOAIServer.java b/oai-server/src/main/java/org/xbib/oai/server/PropertiesOAIServer.java index 482abdc..6bd031b 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/PropertiesOAIServer.java +++ b/oai-server/src/main/java/org/xbib/oai/server/PropertiesOAIServer.java @@ -15,13 +15,11 @@ import org.xbib.oai.server.listsets.ListSetsServerRequest; import org.xbib.oai.server.listsets.ListSetsServerResponse; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.util.Date; import java.util.Properties; -/** - * - */ public class PropertiesOAIServer implements OAIServer { private static final String ADAPTER_URI = "uri"; @@ -42,7 +40,7 @@ public class PropertiesOAIServer implements OAIServer { private static final String GRANULARITY = "identify.granularity"; - private Properties properties; + private final Properties properties; public PropertiesOAIServer(Properties properties) { this.properties = properties; @@ -51,7 +49,7 @@ public class PropertiesOAIServer implements OAIServer { @Override public URL getURL() { try { - return new URL(properties.getProperty(ADAPTER_URI).trim()); + return URI.create(properties.getProperty(ADAPTER_URI).trim()).toURL(); } catch (MalformedURLException e) { // } @@ -70,7 +68,7 @@ public class PropertiesOAIServer implements OAIServer { @Override public URL getBaseURL() { try { - return new URL(properties.getProperty(BASE_URL)); + return URI.create(properties.getProperty(BASE_URL)).toURL(); } catch (MalformedURLException e) { return null; } diff --git a/oai-server/src/main/java/org/xbib/oai/server/getrecord/GetRecordServerRequest.java b/oai-server/src/main/java/org/xbib/oai/server/getrecord/GetRecordServerRequest.java index a3e9fcf..be52a98 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/getrecord/GetRecordServerRequest.java +++ b/oai-server/src/main/java/org/xbib/oai/server/getrecord/GetRecordServerRequest.java @@ -2,9 +2,8 @@ package org.xbib.oai.server.getrecord; import org.xbib.oai.server.AbstractOAIRequest; -/** - * - */ public class GetRecordServerRequest extends AbstractOAIRequest { + public GetRecordServerRequest() { + } } diff --git a/oai-server/src/main/java/org/xbib/oai/server/getrecord/GetRecordServerResponse.java b/oai-server/src/main/java/org/xbib/oai/server/getrecord/GetRecordServerResponse.java index bb8ee5a..69a9c65 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/getrecord/GetRecordServerResponse.java +++ b/oai-server/src/main/java/org/xbib/oai/server/getrecord/GetRecordServerResponse.java @@ -2,8 +2,8 @@ package org.xbib.oai.server.getrecord; import org.xbib.oai.server.AbstractOAIResponse; -/** - * - */ public class GetRecordServerResponse extends AbstractOAIResponse { + + public GetRecordServerResponse() { + } } diff --git a/oai-server/src/main/java/org/xbib/oai/server/getrecord/package-info.java b/oai-server/src/main/java/org/xbib/oai/server/getrecord/package-info.java deleted file mode 100644 index ff75d21..0000000 --- a/oai-server/src/main/java/org/xbib/oai/server/getrecord/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * OAI get record. - */ -package org.xbib.oai.server.getrecord; diff --git a/oai-server/src/main/java/org/xbib/oai/server/identify/IdentifyServerRequest.java b/oai-server/src/main/java/org/xbib/oai/server/identify/IdentifyServerRequest.java index 5f1e386..29778e7 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/identify/IdentifyServerRequest.java +++ b/oai-server/src/main/java/org/xbib/oai/server/identify/IdentifyServerRequest.java @@ -2,8 +2,8 @@ package org.xbib.oai.server.identify; import org.xbib.oai.server.AbstractOAIRequest; -/** - * - */ public class IdentifyServerRequest extends AbstractOAIRequest { + + public IdentifyServerRequest() { + } } diff --git a/oai-server/src/main/java/org/xbib/oai/server/identify/IdentifyServerResponse.java b/oai-server/src/main/java/org/xbib/oai/server/identify/IdentifyServerResponse.java index 8e0904d..d07ad68 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/identify/IdentifyServerResponse.java +++ b/oai-server/src/main/java/org/xbib/oai/server/identify/IdentifyServerResponse.java @@ -7,9 +7,6 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; -/** - * - */ public class IdentifyServerResponse extends AbstractOAIResponse { private String repositoryName; @@ -18,7 +15,7 @@ public class IdentifyServerResponse extends AbstractOAIResponse { private String protocolVersion; - private List adminEmails = new ArrayList<>(); + private final List adminEmails = new ArrayList<>(); private Date earliestDatestamp; @@ -28,6 +25,9 @@ public class IdentifyServerResponse extends AbstractOAIResponse { private String compression; + public IdentifyServerResponse() { + } + public void setRepositoryName(String repositoryName) { this.repositoryName = repositoryName; } diff --git a/oai-server/src/main/java/org/xbib/oai/server/identify/package-info.java b/oai-server/src/main/java/org/xbib/oai/server/identify/package-info.java deleted file mode 100644 index 55925e2..0000000 --- a/oai-server/src/main/java/org/xbib/oai/server/identify/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * OAI identify verb. - */ -package org.xbib.oai.server.identify; diff --git a/oai-server/src/main/java/org/xbib/oai/server/listidentifiers/ListIdentifiersServerRequest.java b/oai-server/src/main/java/org/xbib/oai/server/listidentifiers/ListIdentifiersServerRequest.java index d45637c..00b762b 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/listidentifiers/ListIdentifiersServerRequest.java +++ b/oai-server/src/main/java/org/xbib/oai/server/listidentifiers/ListIdentifiersServerRequest.java @@ -2,9 +2,8 @@ package org.xbib.oai.server.listidentifiers; import org.xbib.oai.server.AbstractOAIRequest; -/** - * - */ public class ListIdentifiersServerRequest extends AbstractOAIRequest { + public ListIdentifiersServerRequest() { + } } diff --git a/oai-server/src/main/java/org/xbib/oai/server/listidentifiers/ListIdentifiersServerResponse.java b/oai-server/src/main/java/org/xbib/oai/server/listidentifiers/ListIdentifiersServerResponse.java index 9af1f7f..f40af14 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/listidentifiers/ListIdentifiersServerResponse.java +++ b/oai-server/src/main/java/org/xbib/oai/server/listidentifiers/ListIdentifiersServerResponse.java @@ -2,9 +2,8 @@ package org.xbib.oai.server.listidentifiers; import org.xbib.oai.server.AbstractOAIResponse; -/** - * - */ public class ListIdentifiersServerResponse extends AbstractOAIResponse { + public ListIdentifiersServerResponse() { + } } diff --git a/oai-server/src/main/java/org/xbib/oai/server/listidentifiers/package-info.java b/oai-server/src/main/java/org/xbib/oai/server/listidentifiers/package-info.java deleted file mode 100644 index 707a72f..0000000 --- a/oai-server/src/main/java/org/xbib/oai/server/listidentifiers/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * OAI list identifiers verb. - */ -package org.xbib.oai.server.listidentifiers; diff --git a/oai-server/src/main/java/org/xbib/oai/server/listmetadataformats/ListMetadataFormatsServerRequest.java b/oai-server/src/main/java/org/xbib/oai/server/listmetadataformats/ListMetadataFormatsServerRequest.java index fc5ef51..809cacb 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/listmetadataformats/ListMetadataFormatsServerRequest.java +++ b/oai-server/src/main/java/org/xbib/oai/server/listmetadataformats/ListMetadataFormatsServerRequest.java @@ -2,9 +2,8 @@ package org.xbib.oai.server.listmetadataformats; import org.xbib.oai.server.AbstractOAIRequest; -/** - * - */ public class ListMetadataFormatsServerRequest extends AbstractOAIRequest { + public ListMetadataFormatsServerRequest() { + } } diff --git a/oai-server/src/main/java/org/xbib/oai/server/listmetadataformats/ListMetadataFormatsServerResponse.java b/oai-server/src/main/java/org/xbib/oai/server/listmetadataformats/ListMetadataFormatsServerResponse.java index e6d26bb..179173d 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/listmetadataformats/ListMetadataFormatsServerResponse.java +++ b/oai-server/src/main/java/org/xbib/oai/server/listmetadataformats/ListMetadataFormatsServerResponse.java @@ -2,9 +2,8 @@ package org.xbib.oai.server.listmetadataformats; import org.xbib.oai.server.AbstractOAIResponse; -/** - * - */ public class ListMetadataFormatsServerResponse extends AbstractOAIResponse { + public ListMetadataFormatsServerResponse() { + } } diff --git a/oai-server/src/main/java/org/xbib/oai/server/listmetadataformats/package-info.java b/oai-server/src/main/java/org/xbib/oai/server/listmetadataformats/package-info.java deleted file mode 100644 index 6411372..0000000 --- a/oai-server/src/main/java/org/xbib/oai/server/listmetadataformats/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * OAI list metadata formats verb. - */ -package org.xbib.oai.server.listmetadataformats; diff --git a/oai-server/src/main/java/org/xbib/oai/server/listrecords/ListRecordsServerRequest.java b/oai-server/src/main/java/org/xbib/oai/server/listrecords/ListRecordsServerRequest.java index fc16e56..bfb4756 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/listrecords/ListRecordsServerRequest.java +++ b/oai-server/src/main/java/org/xbib/oai/server/listrecords/ListRecordsServerRequest.java @@ -2,9 +2,8 @@ package org.xbib.oai.server.listrecords; import org.xbib.oai.server.AbstractOAIRequest; -/** - * - */ public class ListRecordsServerRequest extends AbstractOAIRequest { + public ListRecordsServerRequest() { + } } diff --git a/oai-server/src/main/java/org/xbib/oai/server/listrecords/ListRecordsServerResponse.java b/oai-server/src/main/java/org/xbib/oai/server/listrecords/ListRecordsServerResponse.java index 8cdda87..0ebea52 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/listrecords/ListRecordsServerResponse.java +++ b/oai-server/src/main/java/org/xbib/oai/server/listrecords/ListRecordsServerResponse.java @@ -4,9 +4,6 @@ import org.xbib.oai.server.AbstractOAIResponse; import java.util.Date; -/** - * - */ public class ListRecordsServerResponse extends AbstractOAIResponse { private String error; @@ -15,6 +12,9 @@ public class ListRecordsServerResponse extends AbstractOAIResponse { private long expire; + public ListRecordsServerResponse() { + } + public void setError(String error) { this.error = error; } diff --git a/oai-server/src/main/java/org/xbib/oai/server/listrecords/package-info.java b/oai-server/src/main/java/org/xbib/oai/server/listrecords/package-info.java deleted file mode 100644 index afa1f27..0000000 --- a/oai-server/src/main/java/org/xbib/oai/server/listrecords/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * OAI list records verb. - */ -package org.xbib.oai.server.listrecords; diff --git a/oai-server/src/main/java/org/xbib/oai/server/listsets/ListSetsServerRequest.java b/oai-server/src/main/java/org/xbib/oai/server/listsets/ListSetsServerRequest.java index 8e59dd8..a45d40e 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/listsets/ListSetsServerRequest.java +++ b/oai-server/src/main/java/org/xbib/oai/server/listsets/ListSetsServerRequest.java @@ -2,9 +2,8 @@ package org.xbib.oai.server.listsets; import org.xbib.oai.server.AbstractOAIRequest; -/** - * - */ public class ListSetsServerRequest extends AbstractOAIRequest { + public ListSetsServerRequest() { + } } diff --git a/oai-server/src/main/java/org/xbib/oai/server/listsets/ListSetsServerResponse.java b/oai-server/src/main/java/org/xbib/oai/server/listsets/ListSetsServerResponse.java index 4b62228..37d4dce 100644 --- a/oai-server/src/main/java/org/xbib/oai/server/listsets/ListSetsServerResponse.java +++ b/oai-server/src/main/java/org/xbib/oai/server/listsets/ListSetsServerResponse.java @@ -2,8 +2,8 @@ package org.xbib.oai.server.listsets; import org.xbib.oai.server.AbstractOAIResponse; -/** - * - */ public class ListSetsServerResponse extends AbstractOAIResponse { + + public ListSetsServerResponse() { + } } diff --git a/oai-server/src/main/java/org/xbib/oai/server/listsets/package-info.java b/oai-server/src/main/java/org/xbib/oai/server/listsets/package-info.java deleted file mode 100644 index 87af901..0000000 --- a/oai-server/src/main/java/org/xbib/oai/server/listsets/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * OAI list sets verb. - */ -package org.xbib.oai.server.listsets; diff --git a/oai-server/src/main/java/org/xbib/oai/server/package-info.java b/oai-server/src/main/java/org/xbib/oai/server/package-info.java deleted file mode 100644 index 4ca983e..0000000 --- a/oai-server/src/main/java/org/xbib/oai/server/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Classes for OAI server. - */ -package org.xbib.oai.server; diff --git a/oai-server/src/main/java/org/xbib/oai/server/verb/package-info.java b/oai-server/src/main/java/org/xbib/oai/server/verb/package-info.java deleted file mode 100644 index aa99c77..0000000 --- a/oai-server/src/main/java/org/xbib/oai/server/verb/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Classes for OAI server verbs. - */ -package org.xbib.oai.server.verb; diff --git a/oai-server/src/test/java/module-info.java b/oai-server/src/test/java/module-info.java new file mode 100644 index 0000000..b1768aa --- /dev/null +++ b/oai-server/src/test/java/module-info.java @@ -0,0 +1,7 @@ +module org.xbib.oai.server.test { + requires java.xml; + requires org.junit.jupiter.api; + requires org.xbib.oai; + requires org.xbib.oai.server.main; + opens org.xbib.oai.server.test to org.junit.platform.commons; +} diff --git a/oai-server/src/test/java/org/xbib/oai/server/package-info.java b/oai-server/src/test/java/org/xbib/oai/server/package-info.java deleted file mode 100644 index 4ca983e..0000000 --- a/oai-server/src/test/java/org/xbib/oai/server/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Classes for OAI server. - */ -package org.xbib.oai.server; diff --git a/oai-server/src/test/java/org/xbib/oai/server/SimpleServer.java b/oai-server/src/test/java/org/xbib/oai/server/test/SimpleServer.java similarity index 94% rename from oai-server/src/test/java/org/xbib/oai/server/SimpleServer.java rename to oai-server/src/test/java/org/xbib/oai/server/test/SimpleServer.java index a5007e4..ca4ff23 100644 --- a/oai-server/src/test/java/org/xbib/oai/server/SimpleServer.java +++ b/oai-server/src/test/java/org/xbib/oai/server/test/SimpleServer.java @@ -1,6 +1,7 @@ -package org.xbib.oai.server; +package org.xbib.oai.server.test; import org.xbib.oai.exceptions.OAIException; +import org.xbib.oai.server.OAIServer; import org.xbib.oai.server.getrecord.GetRecordServerRequest; import org.xbib.oai.server.getrecord.GetRecordServerResponse; import org.xbib.oai.server.identify.IdentifyServerRequest; @@ -16,6 +17,7 @@ import org.xbib.oai.server.listsets.ListSetsServerResponse; import org.xbib.oai.server.verb.Identify; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.util.Date; @@ -58,7 +60,7 @@ public class SimpleServer implements OAIServer { @Override public URL getURL() { try { - return new URL("http://localhost:8080/oai"); + return URI.create("http://localhost:8080/oai").toURL(); } catch (MalformedURLException e) { // } diff --git a/oai-server/src/test/java/org/xbib/oai/server/SimpleServiceTest.java b/oai-server/src/test/java/org/xbib/oai/server/test/SimpleServiceTest.java similarity index 87% rename from oai-server/src/test/java/org/xbib/oai/server/SimpleServiceTest.java rename to oai-server/src/test/java/org/xbib/oai/server/test/SimpleServiceTest.java index 1f0d123..20b7dc1 100644 --- a/oai-server/src/test/java/org/xbib/oai/server/SimpleServiceTest.java +++ b/oai-server/src/test/java/org/xbib/oai/server/test/SimpleServiceTest.java @@ -1,6 +1,8 @@ -package org.xbib.oai.server; +package org.xbib.oai.server.test; import org.junit.jupiter.api.Test; +import org.xbib.oai.server.OAIServer; +import org.xbib.oai.server.OAIServiceFactory; import org.xbib.oai.server.identify.IdentifyServerRequest; import org.xbib.oai.server.identify.IdentifyServerResponse; diff --git a/oai-server/src/test/resources/META-INF/services/org.xbib.oai.server.OAIServer b/oai-server/src/test/resources/META-INF/services/org.xbib.oai.server.OAIServer index e1d21db..5bf1f24 100644 --- a/oai-server/src/test/resources/META-INF/services/org.xbib.oai.server.OAIServer +++ b/oai-server/src/test/resources/META-INF/services/org.xbib.oai.server.OAIServer @@ -1 +1 @@ -org.xbib.oai.server.SimpleServer +org.xbib.oai.server.test.SimpleServer diff --git a/oai-server/src/test/resources/org/xbib/oai/server/test.properties b/oai-server/src/test/resources/org/xbib/oai/server/test/test.properties similarity index 100% rename from oai-server/src/test/resources/org/xbib/oai/server/test.properties rename to oai-server/src/test/resources/org/xbib/oai/server/test/test.properties diff --git a/settings.gradle b/settings.gradle index b40cd6d..fa08025 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,20 +1,23 @@ dependencyResolutionManagement { versionCatalogs { libs { - version('gradle', '8.1.1') - version('junit', '5.9.3') - version('content', '5.0.3') - library('junit-jupiter-api', 'org.junit.jupiter', 'junit-jupiter-api').versionRef('junit') - library('junit-jupiter-params', 'org.junit.jupiter', 'junit-jupiter-params').versionRef('junit') - library('junit-jupiter-engine', 'org.junit.jupiter', 'junit-jupiter-engine').versionRef('junit') - library('hamcrest', 'org.hamcrest', 'hamcrest-library').version('2.2') + version('gradle', '8.7') + version('content', '5.2.0') library('content-core', 'org.xbib', 'content-json').versionRef('content') library('content-rdf', 'org.xbib', 'content-rdf').versionRef('content') library('content-resource', 'org.xbib', 'content-resource').versionRef('content') library('content-xml', 'org.xbib', 'content-xml').versionRef('content') - library('marc', 'org.xbib', 'marc').version('2.11.0') + library('marc', 'org.xbib', 'marc').version('2.14.1') library('charactersets', 'org.xbib', 'bibliographic-character-sets').version('3.0.0') } + testLibs { + version('junit', '5.10.2') + library('junit-jupiter-api', 'org.junit.jupiter', 'junit-jupiter-api').versionRef('junit') + library('junit-jupiter-params', 'org.junit.jupiter', 'junit-jupiter-params').versionRef('junit') + library('junit-jupiter-engine', 'org.junit.jupiter', 'junit-jupiter-engine').versionRef('junit') + library('junit-jupiter-platform-launcher', 'org.junit.platform', 'junit-platform-launcher').version('1.10.1') + library('hamcrest', 'org.hamcrest', 'hamcrest-library').version('2.2') + } } }