diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b72fc2b..7ab8794 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [ 17 ] + java: [ 21 ] experimental: [false] fail-fast: false continue-on-error: ${{ matrix.experimental }} diff --git a/build.gradle b/build.gradle index c27c25a..a6e5b4c 100644 --- a/build.gradle +++ b/build.gradle @@ -11,8 +11,9 @@ wrapper { } java { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } } group = 'org.broadinstitute' diff --git a/src/main/java/org/broadinstitute/barclay/argparser/ArgumentDefinition.java b/src/main/java/org/broadinstitute/barclay/argparser/ArgumentDefinition.java index c8e618d..205917c 100644 --- a/src/main/java/org/broadinstitute/barclay/argparser/ArgumentDefinition.java +++ b/src/main/java/org/broadinstitute/barclay/argparser/ArgumentDefinition.java @@ -29,6 +29,7 @@ public abstract class ArgumentDefinition { * @param containingObject the parent {@code Object} containing the {@code Field} for this argument. cannot be null. * @param underlyingField the {@code Field} object for this argument. cannot be null. */ + @SuppressWarnings("this-escape") public ArgumentDefinition(final Object containingObject, final Field underlyingField) { Utils.nonNull(underlyingField, "An underlying field must be provided"); Utils.nonNull(containingObject, "A containing object must be provided"); diff --git a/src/main/java/org/broadinstitute/barclay/argparser/ClassFinder.java b/src/main/java/org/broadinstitute/barclay/argparser/ClassFinder.java index e0ebd3c..c1a29eb 100644 --- a/src/main/java/org/broadinstitute/barclay/argparser/ClassFinder.java +++ b/src/main/java/org/broadinstitute/barclay/argparser/ClassFinder.java @@ -10,6 +10,7 @@ import java.net.URLClassLoader; import java.net.URLDecoder; import java.nio.charset.StandardCharsets; +import java.nio.file.Paths; import java.util.Enumeration; import java.util.LinkedHashSet; import java.util.Set; @@ -44,7 +45,7 @@ public ClassFinder(final File jarFile) throws IOException { // but the jarPath is remembered so that the iteration over the classpath skips anything other than // the jarPath. jarPath = jarFile.getCanonicalPath(); - final URL[] urls = {new URL("file", "", jarPath)}; + final URL[] urls = {Paths.get(jarPath).toUri().toURL()}; loader = new URLClassLoader(urls, Thread.currentThread().getContextClassLoader()); } diff --git a/src/main/java/org/broadinstitute/barclay/argparser/NamedArgumentDefinition.java b/src/main/java/org/broadinstitute/barclay/argparser/NamedArgumentDefinition.java index 92706c2..19afd61 100644 --- a/src/main/java/org/broadinstitute/barclay/argparser/NamedArgumentDefinition.java +++ b/src/main/java/org/broadinstitute/barclay/argparser/NamedArgumentDefinition.java @@ -42,6 +42,7 @@ public class NamedArgumentDefinition extends ArgumentDefinition { * {@code CommandLinePluginDescriptor} itself are not contained in a plugin, * and will not have a {@code descriptorForControllingPlugin}. can be null. */ + @SuppressWarnings("this-escape") public NamedArgumentDefinition( final Argument argumentAnnotation, final Object containingObject, diff --git a/src/main/java/org/broadinstitute/barclay/argparser/PositionalArgumentDefinition.java b/src/main/java/org/broadinstitute/barclay/argparser/PositionalArgumentDefinition.java index f93ebad..ba6890f 100644 --- a/src/main/java/org/broadinstitute/barclay/argparser/PositionalArgumentDefinition.java +++ b/src/main/java/org/broadinstitute/barclay/argparser/PositionalArgumentDefinition.java @@ -22,6 +22,7 @@ public class PositionalArgumentDefinition extends ArgumentDefinition { * @param containingObject the parent {@code Object} containing this argument. cannot be null. * @param argField the {@code Field} for this argument. cannot be null. */ + @SuppressWarnings("this-escape") public PositionalArgumentDefinition( final PositionalArguments positionalArgumentsAnnotation, final Object containingObject, diff --git a/src/main/java/org/broadinstitute/barclay/help/DocWorkUnit.java b/src/main/java/org/broadinstitute/barclay/help/DocWorkUnit.java index 2eb57d1..37a0f8e 100644 --- a/src/main/java/org/broadinstitute/barclay/help/DocWorkUnit.java +++ b/src/main/java/org/broadinstitute/barclay/help/DocWorkUnit.java @@ -48,6 +48,7 @@ public class DocWorkUnit implements Comparable { * @param clazz * @param documentedFeatureAnnotation */ + @SuppressWarnings("this-escape") public DocWorkUnit( final DocWorkUnitHandler workUnitHandler, final Element docElement,