diff --git a/src/main/java/org/codehaus/classworlds/BytesURLConnection.java b/src/main/java/org/codehaus/classworlds/BytesURLConnection.java
index c0f20ad..c42c168 100644
--- a/src/main/java/org/codehaus/classworlds/BytesURLConnection.java
+++ b/src/main/java/org/codehaus/classworlds/BytesURLConnection.java
@@ -25,7 +25,7 @@
*/
@Deprecated
public class BytesURLConnection extends URLConnection {
- protected byte[] content;
+ protected final byte[] content;
protected int offset;
diff --git a/src/main/java/org/codehaus/classworlds/BytesURLStreamHandler.java b/src/main/java/org/codehaus/classworlds/BytesURLStreamHandler.java
index b3a1c3b..894adaf 100644
--- a/src/main/java/org/codehaus/classworlds/BytesURLStreamHandler.java
+++ b/src/main/java/org/codehaus/classworlds/BytesURLStreamHandler.java
@@ -27,7 +27,7 @@
*/
@Deprecated
public class BytesURLStreamHandler extends URLStreamHandler {
- byte[] content;
+ final byte[] content;
int offset;
diff --git a/src/main/java/org/codehaus/classworlds/ClassRealm.java b/src/main/java/org/codehaus/classworlds/ClassRealm.java
index 5d1e2c5..389b52a 100644
--- a/src/main/java/org/codehaus/classworlds/ClassRealm.java
+++ b/src/main/java/org/codehaus/classworlds/ClassRealm.java
@@ -60,6 +60,7 @@ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* @author bob mcwhirter
* @author Jason van Zyl
*/
+@SuppressWarnings("rawtypes")
@Deprecated
public interface ClassRealm {
String getId();
diff --git a/src/main/java/org/codehaus/classworlds/ClassRealmAdapter.java b/src/main/java/org/codehaus/classworlds/ClassRealmAdapter.java
index b86f35d..27b8cd9 100644
--- a/src/main/java/org/codehaus/classworlds/ClassRealmAdapter.java
+++ b/src/main/java/org/codehaus/classworlds/ClassRealmAdapter.java
@@ -26,6 +26,7 @@
*
* @author Andrew Williams
*/
+@SuppressWarnings({"UnnecessaryLocalVariable", "DeprecatedIsStillUsed", "rawtypes"})
@Deprecated
public class ClassRealmAdapter implements ClassRealm {
@@ -35,7 +36,7 @@ public static ClassRealmAdapter getInstance(org.codehaus.plexus.classworlds.real
return adapter;
}
- private org.codehaus.plexus.classworlds.realm.ClassRealm realm;
+ private final org.codehaus.plexus.classworlds.realm.ClassRealm realm;
private ClassRealmAdapter(org.codehaus.plexus.classworlds.realm.ClassRealm newRealm) {
this.realm = newRealm;
diff --git a/src/main/java/org/codehaus/classworlds/ClassRealmReverseAdapter.java b/src/main/java/org/codehaus/classworlds/ClassRealmReverseAdapter.java
index a657ba6..f6eca5d 100644
--- a/src/main/java/org/codehaus/classworlds/ClassRealmReverseAdapter.java
+++ b/src/main/java/org/codehaus/classworlds/ClassRealmReverseAdapter.java
@@ -26,6 +26,7 @@
*
* @author Andrew Williams
*/
+@SuppressWarnings({"UnnecessaryLocalVariable", "rawtypes"})
@Deprecated
public class ClassRealmReverseAdapter extends org.codehaus.plexus.classworlds.realm.ClassRealm {
@@ -35,7 +36,7 @@ public static ClassRealmReverseAdapter getInstance(ClassRealm oldRealm) {
return adapter;
}
- private ClassRealm realm;
+ private final ClassRealm realm;
private ClassRealmReverseAdapter(ClassRealm oldRealm) {
super(ClassWorldReverseAdapter.getInstance(oldRealm.getWorld()), oldRealm.getId(), oldRealm.getClassLoader());
@@ -100,6 +101,7 @@ public URL getResource(String name) {
return realm.getResource(name);
}
+ @SuppressWarnings("unchecked")
public Enumeration findResources(String name) throws IOException {
return realm.findResources(name);
}
diff --git a/src/main/java/org/codehaus/classworlds/ClassWorld.java b/src/main/java/org/codehaus/classworlds/ClassWorld.java
index 87690dd..3e497ba 100644
--- a/src/main/java/org/codehaus/classworlds/ClassWorld.java
+++ b/src/main/java/org/codehaus/classworlds/ClassWorld.java
@@ -24,6 +24,7 @@
*
* @author Andrew Williams
*/
+@SuppressWarnings("rawtypes")
@Deprecated
public class ClassWorld {
private ClassWorldAdapter adapter;
diff --git a/src/main/java/org/codehaus/classworlds/ClassWorldAdapter.java b/src/main/java/org/codehaus/classworlds/ClassWorldAdapter.java
index b77aa72..0bc4af9 100644
--- a/src/main/java/org/codehaus/classworlds/ClassWorldAdapter.java
+++ b/src/main/java/org/codehaus/classworlds/ClassWorldAdapter.java
@@ -24,6 +24,7 @@
*
* @author Andrew Williams
*/
+@SuppressWarnings("rawtypes")
@Deprecated
public class ClassWorldAdapter extends ClassWorld {
@@ -31,7 +32,7 @@ public static ClassWorldAdapter getInstance(org.codehaus.plexus.classworlds.Clas
return new ClassWorldAdapter(newWorld);
}
- private org.codehaus.plexus.classworlds.ClassWorld world;
+ private final org.codehaus.plexus.classworlds.ClassWorld world;
private ClassWorldAdapter(org.codehaus.plexus.classworlds.ClassWorld newWorld) {
super(false);
diff --git a/src/main/java/org/codehaus/classworlds/ClassWorldException.java b/src/main/java/org/codehaus/classworlds/ClassWorldException.java
index e7b0897..749752d 100644
--- a/src/main/java/org/codehaus/classworlds/ClassWorldException.java
+++ b/src/main/java/org/codehaus/classworlds/ClassWorldException.java
@@ -59,7 +59,7 @@ public class ClassWorldException extends Exception {
/**
* The world.
*/
- private ClassWorld world;
+ private final ClassWorld world;
// ------------------------------------------------------------
// Constructors
diff --git a/src/main/java/org/codehaus/classworlds/ClassWorldReverseAdapter.java b/src/main/java/org/codehaus/classworlds/ClassWorldReverseAdapter.java
index 736c76f..31c9131 100644
--- a/src/main/java/org/codehaus/classworlds/ClassWorldReverseAdapter.java
+++ b/src/main/java/org/codehaus/classworlds/ClassWorldReverseAdapter.java
@@ -25,9 +25,10 @@
*
* @author Andrew Williams
*/
+@SuppressWarnings({"unchecked", "rawtypes"})
@Deprecated
public class ClassWorldReverseAdapter extends org.codehaus.plexus.classworlds.ClassWorld {
- private static HashMap instances = new HashMap();
+ private static final HashMap instances = new HashMap();
public static ClassWorldReverseAdapter getInstance(ClassWorld oldWorld) {
if (instances.containsKey(oldWorld)) return (ClassWorldReverseAdapter) instances.get(oldWorld);
@@ -38,7 +39,7 @@ public static ClassWorldReverseAdapter getInstance(ClassWorld oldWorld) {
return adapter;
}
- private ClassWorld world;
+ private final ClassWorld world;
private ClassWorldReverseAdapter(ClassWorld newWorld) {
super();
diff --git a/src/main/java/org/codehaus/classworlds/Configurator.java b/src/main/java/org/codehaus/classworlds/Configurator.java
index fe79c5e..5f76e53 100644
--- a/src/main/java/org/codehaus/classworlds/Configurator.java
+++ b/src/main/java/org/codehaus/classworlds/Configurator.java
@@ -29,7 +29,7 @@
*/
@Deprecated
public class Configurator {
- private ConfiguratorAdapter config;
+ private final ConfiguratorAdapter config;
/** Construct.
*
@@ -108,6 +108,7 @@ protected void loadGlob(String line, ClassRealm realm) throws MalformedURLExcept
* @throws FileNotFoundException If the line does not represent
* a valid path element in the filesystem.
*/
+ @SuppressWarnings("RedundantThrows")
protected void loadGlob(String line, ClassRealm realm, boolean optionally)
throws MalformedURLException, FileNotFoundException {
config.loadGlob(line, realm, optionally);
@@ -121,6 +122,7 @@ protected void loadGlob(String line, ClassRealm realm, boolean optionally)
* @throws ConfigurationException If the property does not
* exist or if there is a syntax error.
*/
+ @SuppressWarnings("RedundantThrows")
protected String filter(String text) throws ConfigurationException {
return config.filter(text);
}
diff --git a/src/main/java/org/codehaus/classworlds/ConfiguratorAdapter.java b/src/main/java/org/codehaus/classworlds/ConfiguratorAdapter.java
index 1731174..3704171 100644
--- a/src/main/java/org/codehaus/classworlds/ConfiguratorAdapter.java
+++ b/src/main/java/org/codehaus/classworlds/ConfiguratorAdapter.java
@@ -27,19 +27,15 @@ public class ConfiguratorAdapter extends Configurator {
public static ConfiguratorAdapter getInstance(
org.codehaus.plexus.classworlds.launcher.Configurator newConfig, Launcher launcher) {
- ConfiguratorAdapter adapter = new ConfiguratorAdapter(newConfig, launcher);
-
- return adapter;
+ return new ConfiguratorAdapter(newConfig, launcher);
}
public static ConfiguratorAdapter getInstance(
org.codehaus.plexus.classworlds.launcher.Configurator newConfig, ClassWorld world) {
- ConfiguratorAdapter adapter = new ConfiguratorAdapter(newConfig, world);
-
- return adapter;
+ return new ConfiguratorAdapter(newConfig, world);
}
- private org.codehaus.plexus.classworlds.launcher.Configurator config;
+ private final org.codehaus.plexus.classworlds.launcher.Configurator config;
private ConfiguratorAdapter(org.codehaus.plexus.classworlds.launcher.Configurator config, Launcher launcher) {
super(launcher);
@@ -55,6 +51,7 @@ public void associateRealms() {
config.associateRealms();
}
+ @SuppressWarnings("DuplicateThrows")
public void configureAdapter(InputStream is)
throws IOException, MalformedURLException, ConfigurationException, DuplicateRealmException,
NoSuchRealmException {
diff --git a/src/main/java/org/codehaus/classworlds/DefaultClassRealm.java b/src/main/java/org/codehaus/classworlds/DefaultClassRealm.java
index 2f85a5e..d743525 100644
--- a/src/main/java/org/codehaus/classworlds/DefaultClassRealm.java
+++ b/src/main/java/org/codehaus/classworlds/DefaultClassRealm.java
@@ -29,9 +29,10 @@
import java.net.URL;
import java.util.Enumeration;
+@SuppressWarnings("rawtypes")
@Deprecated
public class DefaultClassRealm implements ClassRealm {
- private ClassRealmAdapter adapter;
+ private final ClassRealmAdapter adapter;
public DefaultClassRealm(ClassWorld world, String id) {
this(world, id, null);
diff --git a/src/main/java/org/codehaus/classworlds/DuplicateRealmException.java b/src/main/java/org/codehaus/classworlds/DuplicateRealmException.java
index dd2d011..cc8df3f 100644
--- a/src/main/java/org/codehaus/classworlds/DuplicateRealmException.java
+++ b/src/main/java/org/codehaus/classworlds/DuplicateRealmException.java
@@ -60,7 +60,7 @@ public class DuplicateRealmException extends ClassWorldException {
/**
* The realm id.
*/
- private String id;
+ private final String id;
// ------------------------------------------------------------
// Constructors
diff --git a/src/main/java/org/codehaus/classworlds/NoSuchRealmException.java b/src/main/java/org/codehaus/classworlds/NoSuchRealmException.java
index 861d725..4e388ed 100644
--- a/src/main/java/org/codehaus/classworlds/NoSuchRealmException.java
+++ b/src/main/java/org/codehaus/classworlds/NoSuchRealmException.java
@@ -60,7 +60,7 @@ public class NoSuchRealmException extends ClassWorldException {
/**
* The realm id.
*/
- private String id;
+ private final String id;
// ------------------------------------------------------------
// Constructors
diff --git a/src/main/java/org/codehaus/plexus/classworlds/ClassWorld.java b/src/main/java/org/codehaus/plexus/classworlds/ClassWorld.java
index 97dc729..55e77fa 100644
--- a/src/main/java/org/codehaus/plexus/classworlds/ClassWorld.java
+++ b/src/main/java/org/codehaus/plexus/classworlds/ClassWorld.java
@@ -37,7 +37,7 @@
* @author bob mcwhirter
*/
public class ClassWorld implements Closeable {
- private Map realms;
+ private final Map realms;
private final List listeners = new ArrayList<>();
@@ -101,9 +101,10 @@ public synchronized ClassRealm newRealm(String id, ClassLoader classLoader, Pred
* Closes all contained class realms.
* @since 2.7.0
*/
+ @SuppressWarnings("RedundantThrows")
@Override
public synchronized void close() throws IOException {
- realms.values().stream().forEach(this::disposeRealm);
+ realms.values().forEach(this::disposeRealm);
realms.clear();
}
diff --git a/src/main/java/org/codehaus/plexus/classworlds/ClassWorldException.java b/src/main/java/org/codehaus/plexus/classworlds/ClassWorldException.java
index 0dbcd19..e9c43a6 100644
--- a/src/main/java/org/codehaus/plexus/classworlds/ClassWorldException.java
+++ b/src/main/java/org/codehaus/plexus/classworlds/ClassWorldException.java
@@ -29,7 +29,7 @@ public class ClassWorldException extends Exception {
/**
* The world.
*/
- private ClassWorld world;
+ private final ClassWorld world;
// ------------------------------------------------------------
// Constructors
diff --git a/src/main/java/org/codehaus/plexus/classworlds/launcher/ConfigurationParser.java b/src/main/java/org/codehaus/plexus/classworlds/launcher/ConfigurationParser.java
index 7f9f5b1..4861c09 100644
--- a/src/main/java/org/codehaus/plexus/classworlds/launcher/ConfigurationParser.java
+++ b/src/main/java/org/codehaus/plexus/classworlds/launcher/ConfigurationParser.java
@@ -312,6 +312,7 @@ public void parse(InputStream is)
* a valid path element in the filesystem.
* @throws ConfigurationException will never occur (thrown for backwards compatibility)
*/
+ @SuppressWarnings("RedundantThrows")
protected void loadGlob(String line, boolean optionally)
throws MalformedURLException, FileNotFoundException, ConfigurationException {
File globFile = new File(line);
@@ -333,20 +334,12 @@ protected void loadGlob(String line, boolean optionally)
final String suffix = localName.substring(starLoc + 1);
- File[] matches = dir.listFiles((dir1, name) -> {
- if (!name.startsWith(prefix)) {
- return false;
- }
+ File[] matches = dir.listFiles((dir1, name) -> name.startsWith(prefix) || name.endsWith(suffix));
- if (!name.endsWith(suffix)) {
- return false;
+ if (matches != null) {
+ for (File match : matches) {
+ handler.addLoadFile(match);
}
-
- return true;
- });
-
- for (File match : matches) {
- handler.addLoadFile(match);
}
}
@@ -390,7 +383,7 @@ protected String filter(String text) throws ConfigurationException {
propValue = systemProperties.getProperty(propName);
/* do our best if we are not running from surefire */
- if (propName.equals("basedir") && (propValue == null || propValue.equals(""))) {
+ if (propName.equals("basedir") && (propValue == null || propValue.isEmpty())) {
propValue = (new File("")).getAbsolutePath();
}
diff --git a/src/main/java/org/codehaus/plexus/classworlds/launcher/Launcher.java b/src/main/java/org/codehaus/plexus/classworlds/launcher/Launcher.java
index 83c4fcd..a59fb6c 100644
--- a/src/main/java/org/codehaus/plexus/classworlds/launcher/Launcher.java
+++ b/src/main/java/org/codehaus/plexus/classworlds/launcher/Launcher.java
@@ -315,6 +315,7 @@ public static void main(String[] args) {
System.exit(exitCode);
} catch (Exception e) {
+ //noinspection CallToPrintStackTrace
e.printStackTrace();
System.exit(100);
diff --git a/src/main/java/org/codehaus/plexus/classworlds/realm/ClassRealm.java b/src/main/java/org/codehaus/plexus/classworlds/realm/ClassRealm.java
index 4513f99..bbeacee 100644
--- a/src/main/java/org/codehaus/plexus/classworlds/realm/ClassRealm.java
+++ b/src/main/java/org/codehaus/plexus/classworlds/realm/ClassRealm.java
@@ -16,7 +16,6 @@
* limitations under the License.
*/
-import java.io.Closeable;
import java.io.IOException;
import java.io.PrintStream;
import java.net.MalformedURLException;
@@ -48,20 +47,18 @@
*/
public class ClassRealm extends URLClassLoader {
- private ClassWorld world;
+ private final ClassWorld world;
- private String id;
+ private final String id;
- private SortedSet foreignImports;
+ private final SortedSet foreignImports;
private SortedSet parentImports;
- private Strategy strategy;
+ private final Strategy strategy;
private ClassLoader parentClassLoader;
- private static final boolean isParallelCapable = Closeable.class.isAssignableFrom(URLClassLoader.class);
-
private final ConcurrentMap lockMap;
/**
@@ -83,13 +80,10 @@ public ClassRealm(ClassWorld world, String id, ClassLoader baseClassLoader) {
strategy = StrategyFactory.getStrategy(this);
- lockMap = isParallelCapable ? new ConcurrentHashMap<>() : null;
-
- if (isParallelCapable) {
- // We must call super.getClassLoadingLock at least once
- // to avoid NPE in super.loadClass.
- super.getClassLoadingLock(getClass().getName());
- }
+ lockMap = new ConcurrentHashMap<>();
+ // We must call super.getClassLoadingLock at least once
+ // to avoid NPE in super.loadClass.
+ super.getClassLoadingLock(getClass().getName());
}
public String getId() {
@@ -173,10 +167,8 @@ public ClassRealm getParentRealm() {
}
public ClassRealm createChildRealm(String id) throws DuplicateRealmException {
- ClassRealm childRealm = getWorld().newRealm(id, (ClassLoader) null);
-
+ ClassRealm childRealm = getWorld().newRealm(id, null);
childRealm.setParentRealm(this);
-
return childRealm;
}
@@ -189,6 +181,7 @@ public void addURL(URL url) {
try {
url = new URL(urlStr);
} catch (MalformedURLException e) {
+ //noinspection CallToPrintStackTrace
e.printStackTrace();
}
}
@@ -206,14 +199,7 @@ public Class> loadClass(String name) throws ClassNotFoundException {
}
protected Class> loadClass(String name, boolean resolve) throws ClassNotFoundException {
- if (isParallelCapable) {
- return unsynchronizedLoadClass(name, resolve);
-
- } else {
- synchronized (this) {
- return unsynchronizedLoadClass(name, resolve);
- }
- }
+ return unsynchronizedLoadClass(name, resolve);
}
private Class> unsynchronizedLoadClass(String name, boolean resolve) throws ClassNotFoundException {
@@ -229,6 +215,7 @@ private Class> unsynchronizedLoadClass(String name, boolean resolve) throws Cl
// overwrites
// https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ClassLoader.html#findClass(java.lang.String,java.lang.String)
// introduced in Java9
+ @SuppressWarnings("Since15")
protected Class> findClass(String moduleName, String name) {
if (moduleName != null) {
return null;
@@ -359,21 +346,14 @@ public Class> loadClassFromSelf(String name) {
}
private Object getClassRealmLoadingLock(String name) {
- if (isParallelCapable) {
- return getClassLoadingLock(name);
- } else {
- return this;
- }
+ return getClassLoadingLock(name);
}
@Override
protected Object getClassLoadingLock(String name) {
- if (isParallelCapable) {
- Object newLock = new Object();
- Object lock = lockMap.putIfAbsent(name, newLock);
- return (lock == null) ? newLock : lock;
- }
- return this;
+ Object newLock = new Object();
+ Object lock = lockMap.putIfAbsent(name, newLock);
+ return (lock == null) ? newLock : lock;
}
public Class> loadClassFromParent(String name) {
@@ -459,9 +439,6 @@ public Enumeration loadResourcesFromParent(String name) {
}
static {
- if (isParallelCapable) // Avoid running this method on older jdks
- {
- registerAsParallelCapable();
- }
+ registerAsParallelCapable();
}
}
diff --git a/src/main/java/org/codehaus/plexus/classworlds/realm/DuplicateRealmException.java b/src/main/java/org/codehaus/plexus/classworlds/realm/DuplicateRealmException.java
index a596a70..64e68ac 100644
--- a/src/main/java/org/codehaus/plexus/classworlds/realm/DuplicateRealmException.java
+++ b/src/main/java/org/codehaus/plexus/classworlds/realm/DuplicateRealmException.java
@@ -33,7 +33,7 @@ public class DuplicateRealmException extends ClassWorldException {
/**
* The realm id.
*/
- private String id;
+ private final String id;
// ------------------------------------------------------------
// Constructors
diff --git a/src/main/java/org/codehaus/plexus/classworlds/realm/Entry.java b/src/main/java/org/codehaus/plexus/classworlds/realm/Entry.java
index 94a0366..1bc4a44 100644
--- a/src/main/java/org/codehaus/plexus/classworlds/realm/Entry.java
+++ b/src/main/java/org/codehaus/plexus/classworlds/realm/Entry.java
@@ -82,7 +82,7 @@ boolean matches(String name) {
}
return pkgName.length() == pkg.length() - 2 && pkg.regionMatches(0, pkgName, 0, pkgName.length());
- } else if (pkg.length() > 0) {
+ } else if (!pkg.isEmpty()) {
if (name.indexOf('/') < 0) {
// a binary class name, e.g. java.lang.Object
@@ -93,7 +93,8 @@ boolean matches(String name) {
} else if (name.charAt(pkg.length()) == '.') {
// prefix match of package name
return true;
- } else if (name.charAt(pkg.length()) == '$') {
+ } else //noinspection RedundantIfStatement
+ if (name.charAt(pkg.length()) == '$') {
// prefix match of enclosing type
return true;
}
@@ -115,7 +116,8 @@ boolean matches(String name) {
} else if (name.charAt(pkg.length()) == '$') {
// prefix match of nested class file
return true;
- } else if (name.length() == pkg.length() + 6 && name.endsWith(".class")) {
+ } else //noinspection RedundantIfStatement
+ if (name.length() == pkg.length() + 6 && name.endsWith(".class")) {
// exact match of class file
return true;
}
diff --git a/src/main/java/org/codehaus/plexus/classworlds/realm/NoSuchRealmException.java b/src/main/java/org/codehaus/plexus/classworlds/realm/NoSuchRealmException.java
index bedcb1d..e0c80fd 100644
--- a/src/main/java/org/codehaus/plexus/classworlds/realm/NoSuchRealmException.java
+++ b/src/main/java/org/codehaus/plexus/classworlds/realm/NoSuchRealmException.java
@@ -33,7 +33,7 @@ public class NoSuchRealmException extends ClassWorldException {
/**
* The realm id.
*/
- private String id;
+ private final String id;
// ------------------------------------------------------------
// Constructors
diff --git a/src/main/java/org/codehaus/plexus/classworlds/strategy/AbstractStrategy.java b/src/main/java/org/codehaus/plexus/classworlds/strategy/AbstractStrategy.java
index 7f610b7..30e8887 100644
--- a/src/main/java/org/codehaus/plexus/classworlds/strategy/AbstractStrategy.java
+++ b/src/main/java/org/codehaus/plexus/classworlds/strategy/AbstractStrategy.java
@@ -30,7 +30,7 @@
*/
public abstract class AbstractStrategy implements Strategy {
- protected ClassRealm realm;
+ protected final ClassRealm realm;
public AbstractStrategy(ClassRealm realm) {
this.realm = realm;
diff --git a/src/main/java/org/codehaus/plexus/classworlds/strategy/OsgiBundleStrategy.java b/src/main/java/org/codehaus/plexus/classworlds/strategy/OsgiBundleStrategy.java
index 24b491a..f555fde 100644
--- a/src/main/java/org/codehaus/plexus/classworlds/strategy/OsgiBundleStrategy.java
+++ b/src/main/java/org/codehaus/plexus/classworlds/strategy/OsgiBundleStrategy.java
@@ -68,6 +68,7 @@ public URL getResource(String name) {
return resource;
}
+ @SuppressWarnings("RedundantThrows")
public Enumeration getResources(String name) throws IOException {
Enumeration imports = realm.loadResourcesFromImport(name);
Enumeration self = realm.loadResourcesFromSelf(name);
diff --git a/src/main/java/org/codehaus/plexus/classworlds/strategy/ParentFirstStrategy.java b/src/main/java/org/codehaus/plexus/classworlds/strategy/ParentFirstStrategy.java
index 7961ae1..cd21b60 100644
--- a/src/main/java/org/codehaus/plexus/classworlds/strategy/ParentFirstStrategy.java
+++ b/src/main/java/org/codehaus/plexus/classworlds/strategy/ParentFirstStrategy.java
@@ -61,6 +61,7 @@ public URL getResource(String name) {
return resource;
}
+ @SuppressWarnings("RedundantThrows")
public Enumeration getResources(String name) throws IOException {
Enumeration imports = realm.loadResourcesFromImport(name);
Enumeration parent = realm.loadResourcesFromParent(name);
diff --git a/src/main/java/org/codehaus/plexus/classworlds/strategy/SelfFirstStrategy.java b/src/main/java/org/codehaus/plexus/classworlds/strategy/SelfFirstStrategy.java
index 27adaf6..8bc7a9e 100644
--- a/src/main/java/org/codehaus/plexus/classworlds/strategy/SelfFirstStrategy.java
+++ b/src/main/java/org/codehaus/plexus/classworlds/strategy/SelfFirstStrategy.java
@@ -61,6 +61,7 @@ public URL getResource(String name) {
return resource;
}
+ @SuppressWarnings("RedundantThrows")
public Enumeration getResources(String name) throws IOException {
Enumeration imports = realm.loadResourcesFromImport(name);
Enumeration self = realm.loadResourcesFromSelf(name);
diff --git a/src/main/java/org/codehaus/plexus/classworlds/strategy/Strategy.java b/src/main/java/org/codehaus/plexus/classworlds/strategy/Strategy.java
index 95efccf..145bfc9 100644
--- a/src/main/java/org/codehaus/plexus/classworlds/strategy/Strategy.java
+++ b/src/main/java/org/codehaus/plexus/classworlds/strategy/Strategy.java
@@ -32,6 +32,7 @@ public interface Strategy {
URL getResource(String name);
+ @SuppressWarnings("RedundantThrows")
Enumeration getResources(String name) throws IOException;
ClassRealm getRealm();
diff --git a/src/test/java/org/codehaus/plexus/classworlds/TestUtil.java b/src/test/java/org/codehaus/plexus/classworlds/TestUtil.java
index 260f44d..773ea8f 100644
--- a/src/test/java/org/codehaus/plexus/classworlds/TestUtil.java
+++ b/src/test/java/org/codehaus/plexus/classworlds/TestUtil.java
@@ -43,7 +43,7 @@ public static String getBasedir() {
String basedir = System.getProperty("basedir");
/* do our best if we are not running from surefire */
- if (basedir == null || basedir.length() <= 0) {
+ if (basedir == null || basedir.isEmpty()) {
basedir = (new File("")).getAbsolutePath();
}
diff --git a/src/test/java/org/codehaus/plexus/classworlds/launcher/ConfigurationParserTest.java b/src/test/java/org/codehaus/plexus/classworlds/launcher/ConfigurationParserTest.java
index 42fc1ed..7495d70 100644
--- a/src/test/java/org/codehaus/plexus/classworlds/launcher/ConfigurationParserTest.java
+++ b/src/test/java/org/codehaus/plexus/classworlds/launcher/ConfigurationParserTest.java
@@ -9,7 +9,7 @@
class ConfigurationParserTest extends AbstractClassWorldsTestCase {
- ConfigurationParser configurator = new ConfigurationParser(null, System.getProperties());
+ final ConfigurationParser configurator = new ConfigurationParser(null, System.getProperties());
@Test
void testFilter_Unterminated() {
diff --git a/src/test/java/org/codehaus/plexus/classworlds/launcher/ConfiguratorTest.java b/src/test/java/org/codehaus/plexus/classworlds/launcher/ConfiguratorTest.java
index ddbd86a..d6718f9 100644
--- a/src/test/java/org/codehaus/plexus/classworlds/launcher/ConfiguratorTest.java
+++ b/src/test/java/org/codehaus/plexus/classworlds/launcher/ConfiguratorTest.java
@@ -303,6 +303,7 @@ void testSet_Using_Filtered_Default() throws Exception {
assertEquals(System.getProperty("user.home") + "/m2", System.getProperty("set.using.filtered.default"));
}
+ @SuppressWarnings("OptionalGetWithoutIsPresent")
@Test
void testFromFromFrom() throws Exception {
this.configurator.configure(getConfigPath("valid-from-from-from.conf"));
@@ -343,6 +344,7 @@ private FileInputStream getConfigPath(String name) throws Exception {
private void assertArrayContains(URL[] array, URL url) {
for (URL value : array) {
+ //noinspection UrlHashCode
if (url.equals(value)) {
return;
}
diff --git a/src/test/java/org/codehaus/plexus/classworlds/realm/DefaultClassRealmTest.java b/src/test/java/org/codehaus/plexus/classworlds/realm/DefaultClassRealmTest.java
index 965edc8..7751a68 100644
--- a/src/test/java/org/codehaus/plexus/classworlds/realm/DefaultClassRealmTest.java
+++ b/src/test/java/org/codehaus/plexus/classworlds/realm/DefaultClassRealmTest.java
@@ -106,60 +106,58 @@ void testLoadNonExistentClass() {
@Test
void testImport() throws Exception {
- ClassWorld world = new ClassWorld();
-
- ClassRealm r0 = world.newRealm("r0");
-
- ClassRealm r1 = world.newRealm("r1");
-
- r0.addURL(getJarUrl("component0-1.0.jar"));
-
- r1.importFrom("r0", "org.codehaus.plexus");
-
- loadClass(r1, "org.codehaus.plexus.Component0");
+ try (ClassWorld world = new ClassWorld()) {
+ ClassRealm r0 = world.newRealm("r0");
+ ClassRealm r1 = world.newRealm("r1");
+ r0.addURL(getJarUrl("component0-1.0.jar"));
+ r1.importFrom("r0", "org.codehaus.plexus");
+ loadClass(r1, "org.codehaus.plexus.Component0");
+ }
}
@Test
void testParentImport() throws Exception {
- ClassWorld world = new ClassWorld();
+ try (ClassWorld world = new ClassWorld()) {
- ClassRealm parent = world.newRealm("parent");
+ ClassRealm parent = world.newRealm("parent");
- ClassRealm child = world.newRealm("child");
+ ClassRealm child = world.newRealm("child");
- parent.addURL(getJarUrl("component0-1.0.jar"));
+ parent.addURL(getJarUrl("component0-1.0.jar"));
- child.setParentRealm(parent);
+ child.setParentRealm(parent);
- Class> type = loadClass(child, "org.codehaus.plexus.Component0");
+ Class> type = loadClass(child, "org.codehaus.plexus.Component0");
- child.importFromParent("non-existing");
+ child.importFromParent("non-existing");
- assertSame(null, loadClassOrNull(child, "org.codehaus.plexus.Component0"));
+ assertSame(null, loadClassOrNull(child, "org.codehaus.plexus.Component0"));
- child.importFromParent("org.codehaus.plexus");
+ child.importFromParent("org.codehaus.plexus");
- assertSame(type, loadClass(child, "org.codehaus.plexus.Component0"));
+ assertSame(type, loadClass(child, "org.codehaus.plexus.Component0"));
+ }
}
@Test
void testLoadClassFromBaseClassLoaderBeforeSelf() throws Exception {
- ClassWorld world = new ClassWorld();
+ try (ClassWorld world = new ClassWorld()) {
- ClassRealm base = world.newRealm("base");
+ ClassRealm base = world.newRealm("base");
- base.addURL(getJarUrl("a.jar"));
+ base.addURL(getJarUrl("a.jar"));
- ClassRealm child = world.newRealm("child", base);
+ ClassRealm child = world.newRealm("child", base);
- child.addURL(getJarUrl("a.jar"));
+ child.addURL(getJarUrl("a.jar"));
- Class> baseClass = loadClass(base, "a.A");
- Class> childClass = loadClass(child, "a.A");
+ Class> baseClass = loadClass(base, "a.A");
+ Class> childClass = loadClass(child, "a.A");
- assertSame(base, baseClass.getClassLoader());
- assertSame(base, childClass.getClassLoader());
- assertSame(baseClass, childClass);
+ assertSame(base, baseClass.getClassLoader());
+ assertSame(base, childClass.getClassLoader());
+ assertSame(baseClass, childClass);
+ }
}
@Test
@@ -196,29 +194,31 @@ void testMalformedResource() throws Exception {
mainRealm.addURL(jarUrl);
- ClassLoader officialClassLoader = new URLClassLoader(new URL[] {jarUrl});
+ try (URLClassLoader officialClassLoader = new URLClassLoader(new URL[] {jarUrl})) {
- String resource = "META-INF/plexus/components.xml";
+ String resource = "META-INF/plexus/components.xml";
- assertNotNull(mainRealm.getResource(resource));
- assertNotNull(officialClassLoader.getResource(resource));
+ assertNotNull(mainRealm.getResource(resource));
+ assertNotNull(officialClassLoader.getResource(resource));
- /*
- * NOTE: Resource names with a leading slash are invalid when passed to a class loader and must not be found!
- * One can use a leading slash in Class.getResource() but not in ClassLoader.getResource().
- */
+ /*
+ * NOTE: Resource names with a leading slash are invalid when passed to a class loader and must not be found!
+ * One can use a leading slash in Class.getResource() but not in ClassLoader.getResource().
+ */
- assertSame(null, mainRealm.getResource("/" + resource));
- assertSame(null, officialClassLoader.getResource("/" + resource));
+ assertSame(null, mainRealm.getResource("/" + resource));
+ assertSame(null, officialClassLoader.getResource("/" + resource));
- /*
- * For backward-compat, legacy class realms have to support leading slashes.
- */
+ /*
+ * For backward-compat, legacy class realms have to support leading slashes.
+ */
- org.codehaus.classworlds.ClassRealm legacyRealm = ClassRealmAdapter.getInstance(mainRealm);
- assertNotNull(legacyRealm.getResource("/" + resource));
- assertNotNull(legacyRealm.getResourceAsStream("/" + resource));
- assertTrue(legacyRealm.findResources("/" + resource).hasMoreElements());
+ @SuppressWarnings("deprecation")
+ org.codehaus.classworlds.ClassRealm legacyRealm = ClassRealmAdapter.getInstance(mainRealm);
+ assertNotNull(legacyRealm.getResource("/" + resource));
+ assertNotNull(legacyRealm.getResourceAsStream("/" + resource));
+ assertTrue(legacyRealm.findResources("/" + resource).hasMoreElements());
+ }
}
@Test
diff --git a/src/test/java/org/codehaus/plexus/classworlds/realm/EntryTest.java b/src/test/java/org/codehaus/plexus/classworlds/realm/EntryTest.java
index c00bcdc..9d03670 100644
--- a/src/test/java/org/codehaus/plexus/classworlds/realm/EntryTest.java
+++ b/src/test/java/org/codehaus/plexus/classworlds/realm/EntryTest.java
@@ -15,6 +15,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+import java.io.IOException;
+
import org.codehaus.plexus.classworlds.AbstractClassWorldsTestCase;
import org.codehaus.plexus.classworlds.ClassWorld;
import org.junit.jupiter.api.Test;
@@ -30,139 +32,149 @@ class EntryTest extends AbstractClassWorldsTestCase {
@Test
void testCompareTo() throws Exception {
- ClassWorld cw = new ClassWorld();
- ClassRealm r = cw.newRealm("test1");
+ try (ClassWorld cw = new ClassWorld()) {
+ ClassRealm r = cw.newRealm("test1");
- Entry entry1 = new Entry(r, "org.test");
- Entry entry2 = new Entry(r, "org.test.impl");
+ Entry entry1 = new Entry(r, "org.test");
+ Entry entry2 = new Entry(r, "org.test.impl");
- assertTrue(entry1.compareTo(entry2) > 0, "org.test > org.test.impl");
+ assertTrue(entry1.compareTo(entry2) > 0, "org.test > org.test.impl");
+ }
}
/**
* Tests the equality is realm independant
*/
@Test
- void testEquals() throws DuplicateRealmException {
- ClassWorld cw = new ClassWorld();
- ClassRealm r1 = cw.newRealm("test1");
- ClassRealm r2 = cw.newRealm("test2");
+ void testEquals() throws DuplicateRealmException, IOException {
+ try (ClassWorld cw = new ClassWorld()) {
+ ClassRealm r1 = cw.newRealm("test1");
+ ClassRealm r2 = cw.newRealm("test2");
- Entry entry1 = new Entry(r1, "org.test");
- Entry entry2 = new Entry(r2, "org.test");
+ Entry entry1 = new Entry(r1, "org.test");
+ Entry entry2 = new Entry(r2, "org.test");
- assertEquals(entry1, entry2, "entry1 == entry2");
- assertEquals(entry1.hashCode(), entry2.hashCode(), "entry1.hashCode() == entry2.hashCode()");
+ assertEquals(entry1, entry2, "entry1 == entry2");
+ assertEquals(entry1.hashCode(), entry2.hashCode(), "entry1.hashCode() == entry2.hashCode()");
+ }
}
@Test
void testMatchesClassByPackageImport() throws Exception {
- ClassWorld cw = new ClassWorld();
- ClassRealm r = cw.newRealm("test1");
+ try (ClassWorld cw = new ClassWorld()) {
+ ClassRealm r = cw.newRealm("test1");
- Entry entry = new Entry(r, "org.test");
+ Entry entry = new Entry(r, "org.test");
- assertTrue(entry.matches("org.test.MyClass"));
- assertTrue(entry.matches("org.test.MyClass$NestedClass"));
- assertTrue(entry.matches("org.test.MyClassUtils"));
- assertTrue(entry.matches("org.test.impl.MyClass"));
- assertFalse(entry.matches("org.tests.AnotherClass"));
+ assertTrue(entry.matches("org.test.MyClass"));
+ assertTrue(entry.matches("org.test.MyClass$NestedClass"));
+ assertTrue(entry.matches("org.test.MyClassUtils"));
+ assertTrue(entry.matches("org.test.impl.MyClass"));
+ assertFalse(entry.matches("org.tests.AnotherClass"));
+ }
}
@Test
void testMatchesClassByClassImport() throws Exception {
- ClassWorld cw = new ClassWorld();
- ClassRealm r = cw.newRealm("test1");
+ try (ClassWorld cw = new ClassWorld()) {
+ ClassRealm r = cw.newRealm("test1");
- Entry entry = new Entry(r, "org.test.MyClass");
+ Entry entry = new Entry(r, "org.test.MyClass");
- assertTrue(entry.matches("org.test.MyClass"));
- assertTrue(entry.matches("org.test.MyClass$NestedClass"));
- assertFalse(entry.matches("org.test.MyClassUtils"));
- assertFalse(entry.matches("org.test.AnotherClass"));
+ assertTrue(entry.matches("org.test.MyClass"));
+ assertTrue(entry.matches("org.test.MyClass$NestedClass"));
+ assertFalse(entry.matches("org.test.MyClassUtils"));
+ assertFalse(entry.matches("org.test.AnotherClass"));
+ }
}
@Test
void testMatchesResourceByPackageImport() throws Exception {
- ClassWorld cw = new ClassWorld();
- ClassRealm r = cw.newRealm("test1");
+ try (ClassWorld cw = new ClassWorld()) {
+ ClassRealm r = cw.newRealm("test1");
- Entry entry = new Entry(r, "org.test");
+ Entry entry = new Entry(r, "org.test");
- assertTrue(entry.matches("org/test/MyClass.class"));
- assertTrue(entry.matches("org/test/MyClass$NestedClass.class"));
- assertTrue(entry.matches("org/test/MyClasses.properties"));
- assertTrue(entry.matches("org/test/impl/MyClass.class"));
- assertFalse(entry.matches("org/tests/AnotherClass.class"));
+ assertTrue(entry.matches("org/test/MyClass.class"));
+ assertTrue(entry.matches("org/test/MyClass$NestedClass.class"));
+ assertTrue(entry.matches("org/test/MyClasses.properties"));
+ assertTrue(entry.matches("org/test/impl/MyClass.class"));
+ assertFalse(entry.matches("org/tests/AnotherClass.class"));
+ }
}
@Test
void testMatchesResourceByClassImport() throws Exception {
- ClassWorld cw = new ClassWorld();
- ClassRealm r = cw.newRealm("test1");
+ try (ClassWorld cw = new ClassWorld()) {
+ ClassRealm r = cw.newRealm("test1");
- Entry entry = new Entry(r, "org.test.MyClass");
+ Entry entry = new Entry(r, "org.test.MyClass");
- assertTrue(entry.matches("org/test/MyClass.class"));
- assertTrue(entry.matches("org/test/MyClass$NestedClass.class"));
- assertFalse(entry.matches("org/test/MyClass.properties"));
- assertFalse(entry.matches("org/test/AnotherClass"));
+ assertTrue(entry.matches("org/test/MyClass.class"));
+ assertTrue(entry.matches("org/test/MyClass$NestedClass.class"));
+ assertFalse(entry.matches("org/test/MyClass.properties"));
+ assertFalse(entry.matches("org/test/AnotherClass"));
+ }
}
@Test
void testMatchesAllImport() throws Exception {
- ClassWorld cw = new ClassWorld();
- ClassRealm r = cw.newRealm("test1");
+ try (ClassWorld cw = new ClassWorld()) {
+ ClassRealm r = cw.newRealm("test1");
- Entry entry = new Entry(r, "");
+ Entry entry = new Entry(r, "");
- assertTrue(entry.matches("org.test.MyClass"));
- assertTrue(entry.matches("org.test.MyClass$NestedClass"));
- assertTrue(entry.matches("org/test/MyClass.class"));
- assertTrue(entry.matches("org/test/MyClass.properties"));
+ assertTrue(entry.matches("org.test.MyClass"));
+ assertTrue(entry.matches("org.test.MyClass$NestedClass"));
+ assertTrue(entry.matches("org/test/MyClass.class"));
+ assertTrue(entry.matches("org/test/MyClass.properties"));
+ }
}
@Test
void testMatchesResourceByResourceImport() throws Exception {
- ClassWorld cw = new ClassWorld();
- ClassRealm r = cw.newRealm("test1");
+ try (ClassWorld cw = new ClassWorld()) {
+ ClassRealm r = cw.newRealm("test1");
- Entry entry1 = new Entry(r, "some.properties");
+ Entry entry1 = new Entry(r, "some.properties");
- assertTrue(entry1.matches("some.properties"));
- assertFalse(entry1.matches("other.properties"));
+ assertTrue(entry1.matches("some.properties"));
+ assertFalse(entry1.matches("other.properties"));
- Entry entry2 = new Entry(r, "org/test/some.properties");
+ Entry entry2 = new Entry(r, "org/test/some.properties");
- assertTrue(entry2.matches("org/test/some.properties"));
- assertFalse(entry2.matches("org/test/other.properties"));
+ assertTrue(entry2.matches("org/test/some.properties"));
+ assertFalse(entry2.matches("org/test/other.properties"));
+ }
}
@Test
void testMatchesClassByExactPackageImport() throws Exception {
- ClassWorld cw = new ClassWorld();
- ClassRealm r = cw.newRealm("test1");
+ try (ClassWorld cw = new ClassWorld()) {
+ ClassRealm r = cw.newRealm("test1");
- Entry entry = new Entry(r, "org.test.*");
+ Entry entry = new Entry(r, "org.test.*");
- assertTrue(entry.matches("org.test.MyClass"));
- assertTrue(entry.matches("org.test.MyClass$NestedClass"));
- assertTrue(entry.matches("org.test.MyClassUtils"));
- assertFalse(entry.matches("org.test.impl.MyClass"));
- assertFalse(entry.matches("org.tests.AnotherClass"));
+ assertTrue(entry.matches("org.test.MyClass"));
+ assertTrue(entry.matches("org.test.MyClass$NestedClass"));
+ assertTrue(entry.matches("org.test.MyClassUtils"));
+ assertFalse(entry.matches("org.test.impl.MyClass"));
+ assertFalse(entry.matches("org.tests.AnotherClass"));
+ }
}
@Test
void testMatchesResourceByExactPackageImport() throws Exception {
- ClassWorld cw = new ClassWorld();
- ClassRealm r = cw.newRealm("test1");
+ try (ClassWorld cw = new ClassWorld()) {
+ ClassRealm r = cw.newRealm("test1");
- Entry entry = new Entry(r, "org.test.*");
+ Entry entry = new Entry(r, "org.test.*");
- assertTrue(entry.matches("org/test/MyClass.class"));
- assertTrue(entry.matches("org/test/MyClass$NestedClass.class"));
- assertTrue(entry.matches("org/test/MyClasses.properties"));
- assertFalse(entry.matches("org/test/impl/MyClass.class"));
- assertFalse(entry.matches("org/tests/AnotherClass.class"));
+ assertTrue(entry.matches("org/test/MyClass.class"));
+ assertTrue(entry.matches("org/test/MyClass$NestedClass.class"));
+ assertTrue(entry.matches("org/test/MyClasses.properties"));
+ assertFalse(entry.matches("org/test/impl/MyClass.class"));
+ assertFalse(entry.matches("org/tests/AnotherClass.class"));
+ }
}
}
diff --git a/src/test/java/org/codehaus/plexus/classworlds/strategy/StrategyTest.java b/src/test/java/org/codehaus/plexus/classworlds/strategy/StrategyTest.java
index 89fbf7f..658049d 100644
--- a/src/test/java/org/codehaus/plexus/classworlds/strategy/StrategyTest.java
+++ b/src/test/java/org/codehaus/plexus/classworlds/strategy/StrategyTest.java
@@ -41,6 +41,7 @@ class StrategyTest extends AbstractClassWorldsTestCase {
@BeforeEach
public void setUp() throws Exception {
+ //noinspection resource
this.realm = new ClassWorld().newRealm("realm");
this.strategy = this.realm.getStrategy();
realm.addURL(getJarUrl("component0-1.0.jar"));