From f7a7c002f8fb2fc07c7b0a9b37341098426053e6 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Tue, 10 Aug 2021 11:55:37 +0200 Subject: [PATCH 1/3] Update codebase to current Java level Also, cleanup some bits. --- .../resource/DefaultResourceManager.java | 14 ++++++++++--- .../plexus/resource/PlexusResource.java | 14 +++++-------- .../loader/AbstractResourceLoader.java | 3 +++ .../resource/loader/FilePlexusResource.java | 7 +++++-- .../resource/loader/FileResourceLoader.java | 1 + .../plexus/resource/loader/JarHolder.java | 20 +++++++++---------- .../resource/loader/JarResourceLoader.java | 14 +++++++------ .../resource/loader/ResourceLoader.java | 1 + .../ThreadContextClasspathResourceLoader.java | 2 +- .../resource/loader/URLPlexusResource.java | 7 +++++-- .../resource/loader/URLResourceLoader.java | 2 +- 11 files changed, 50 insertions(+), 35 deletions(-) diff --git a/src/main/java/org/codehaus/plexus/resource/DefaultResourceManager.java b/src/main/java/org/codehaus/plexus/resource/DefaultResourceManager.java index 3cbd993..1fbdce5 100644 --- a/src/main/java/org/codehaus/plexus/resource/DefaultResourceManager.java +++ b/src/main/java/org/codehaus/plexus/resource/DefaultResourceManager.java @@ -67,6 +67,7 @@ private DefaultResourceManager( Map resourceLoaders ) // ResourceManager Implementation // ---------------------------------------------------------------------- + @Override public InputStream getResourceAsInputStream( String name ) throws ResourceNotFoundException { @@ -81,12 +82,14 @@ public InputStream getResourceAsInputStream( String name ) } } + @Override public File getResourceAsFile( String name ) throws ResourceNotFoundException, FileResourceCreationException { return getResourceAsFile( getResource( name ) ); } + @Override public File getResourceAsFile( String name, String outputPath ) throws ResourceNotFoundException, FileResourceCreationException { @@ -108,8 +111,8 @@ public File getResourceAsFile( String name, String outputPath ) return outputFile; } + @Override public File resolveLocation( String name, String outputPath ) - throws IOException { // Honour what the original locator does and return null ... try @@ -122,8 +125,8 @@ public File resolveLocation( String name, String outputPath ) } } + @Override public File resolveLocation( String name ) - throws IOException { // Honour what the original locator does and return null ... try @@ -136,14 +139,16 @@ public File resolveLocation( String name ) } } + @Override public void setOutputDirectory( File outputDirectory ) { this.outputDirectory = outputDirectory; } + @Override public void addSearchPath( String id, String path ) { - ResourceLoader loader = (ResourceLoader) resourceLoaders.get( id ); + ResourceLoader loader = resourceLoaders.get( id ); if ( loader == null ) { @@ -153,6 +158,7 @@ public void addSearchPath( String id, String path ) loader.addSearchPath( path ); } + @Override public PlexusResource getResource( String name ) throws ResourceNotFoundException { @@ -176,6 +182,7 @@ public PlexusResource getResource( String name ) throw new ResourceNotFoundException( name ); } + @Override public File getResourceAsFile( PlexusResource resource ) throws FileResourceCreationException { @@ -198,6 +205,7 @@ public File getResourceAsFile( PlexusResource resource ) return outputFile; } + @Override public void createResourceAsFile( PlexusResource resource, File outputFile ) throws FileResourceCreationException { diff --git a/src/main/java/org/codehaus/plexus/resource/PlexusResource.java b/src/main/java/org/codehaus/plexus/resource/PlexusResource.java index 9aade52..c41d3bf 100644 --- a/src/main/java/org/codehaus/plexus/resource/PlexusResource.java +++ b/src/main/java/org/codehaus/plexus/resource/PlexusResource.java @@ -52,8 +52,7 @@ public interface PlexusResource * * @return An {@link InputStream} with the resources contents, never null. */ - public InputStream getInputStream() - throws IOException; + InputStream getInputStream() throws IOException; /** *

@@ -63,8 +62,7 @@ public InputStream getInputStream() * * @return A {@link File} containing the resources contents, if available, or null. */ - public File getFile() - throws IOException; + File getFile() throws IOException; /** *

@@ -73,8 +71,7 @@ public File getFile() * * @return The resources URL, if available, or null. */ - public URL getURL() - throws IOException; + URL getURL() throws IOException; /** *

@@ -83,13 +80,12 @@ public URL getURL() * * @return The resources URI, if available, or null. */ - public URI getURI() - throws IOException; + URI getURI() throws IOException; /** * Returns the resources name, if possible. A resources name is a relatively unspecified thing. For example, if the * resource has an {@link URL}, the name might be created by invoking {@link URL#toExternalForm()}. In the case of a * {@link File}, it might be {@link File#getPath()}. */ - public String getName(); + String getName(); } diff --git a/src/main/java/org/codehaus/plexus/resource/loader/AbstractResourceLoader.java b/src/main/java/org/codehaus/plexus/resource/loader/AbstractResourceLoader.java index a3984b4..427c8d5 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/AbstractResourceLoader.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/AbstractResourceLoader.java @@ -39,6 +39,7 @@ public abstract class AbstractResourceLoader implements ResourceLoader { protected List paths = new ArrayList<>(); + @Override public void addSearchPath( String path ) { if ( !paths.contains( path ) ) @@ -47,6 +48,8 @@ public void addSearchPath( String path ) } } + @Override + @Deprecated public InputStream getResourceAsInputStream( String name ) throws ResourceNotFoundException { diff --git a/src/main/java/org/codehaus/plexus/resource/loader/FilePlexusResource.java b/src/main/java/org/codehaus/plexus/resource/loader/FilePlexusResource.java index f7aee6d..9f6e959 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/FilePlexusResource.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/FilePlexusResource.java @@ -46,29 +46,32 @@ public FilePlexusResource( File file ) this.file = file; } + @Override public File getFile() - throws IOException { return file; } + @Override public InputStream getInputStream() throws IOException { return new FileInputStream( file ); } + @Override public String getName() { return file.getPath(); } + @Override public URI getURI() - throws IOException { return file.toURI(); } + @Override public URL getURL() throws IOException { diff --git a/src/main/java/org/codehaus/plexus/resource/loader/FileResourceLoader.java b/src/main/java/org/codehaus/plexus/resource/loader/FileResourceLoader.java index f82478e..284da68 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/FileResourceLoader.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/FileResourceLoader.java @@ -46,6 +46,7 @@ public class FileResourceLoader // ResourceLoader Implementation // ---------------------------------------------------------------------- + @Override public PlexusResource getResource( String name ) throws ResourceNotFoundException { diff --git a/src/main/java/org/codehaus/plexus/resource/loader/JarHolder.java b/src/main/java/org/codehaus/plexus/resource/loader/JarHolder.java index f518be0..4824ef6 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/JarHolder.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/JarHolder.java @@ -46,7 +46,7 @@ */ public class JarHolder { - private String urlpath = null; + private String urlpath; private JarFile theJar = null; @@ -56,11 +56,6 @@ public JarHolder( String urlpath ) { this.urlpath = urlpath; - init(); - } - - public void init() - { try { URL url = new URL( urlpath ); @@ -119,9 +114,9 @@ public InputStream getResource( String theentry ) return data; } - public Hashtable getEntries() + public Hashtable getEntries() { - Hashtable allEntries = new Hashtable( 559 ); + Hashtable allEntries = new Hashtable<>( 559 ); if ( theJar != null ) { @@ -129,7 +124,7 @@ public Hashtable getEntries() while ( all.hasMoreElements() ) { - JarEntry je = (JarEntry) all.nextElement(); + JarEntry je = all.nextElement(); // We don't map plain directory entries if ( !je.isDirectory() ) @@ -155,29 +150,32 @@ public PlexusResource getPlexusResource( final String name ) } return new PlexusResource() { + @Override public File getFile() - throws IOException { return null; } + @Override public InputStream getInputStream() throws IOException { return theJar.getInputStream( entry ); } + @Override public String getName() { return conn.getURL() + name; } + @Override public URI getURI() - throws IOException { return null; } + @Override public URL getURL() throws IOException { diff --git a/src/main/java/org/codehaus/plexus/resource/loader/JarResourceLoader.java b/src/main/java/org/codehaus/plexus/resource/loader/JarResourceLoader.java index 84430d5..d222834 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/JarResourceLoader.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/JarResourceLoader.java @@ -47,12 +47,12 @@ public class JarResourceLoader /** * Maps entries to the parent JAR File (key = the entry *excluding* plain directories, value = the JAR URL). */ - private Map entryDirectory = new LinkedHashMap( 559 ); + private final Map entryDirectory = new LinkedHashMap<>( 559 ); /** * Maps JAR URLs to the actual JAR (key = the JAR URL, value = the JAR). */ - private Map jarfiles = new LinkedHashMap( 89 ); + private final Map jarfiles = new LinkedHashMap<>( 89 ); private boolean initializeCalled; @@ -110,7 +110,7 @@ private void closeJar( String path ) { if ( jarfiles.containsKey( path ) ) { - JarHolder theJar = (JarHolder) jarfiles.get( path ); + JarHolder theJar = jarfiles.get( path ); theJar.close(); } @@ -119,7 +119,7 @@ private void closeJar( String path ) /** * Copy all the entries into the entryDirectory. It will overwrite any duplicate keys. */ - private void addEntries( Map entries ) + private void addEntries( Map entries ) { entryDirectory.putAll( entries ); } @@ -131,6 +131,7 @@ private void addEntries( Map entries ) * @return InputStream containing the template * @throws ResourceNotFoundException if template not found in the file template path. */ + @Override public PlexusResource getResource( String source ) throws ResourceNotFoundException { @@ -154,9 +155,9 @@ public PlexusResource getResource( String source ) if ( entryDirectory.containsKey( source ) ) { - String jarurl = (String) entryDirectory.get( source ); + String jarurl = entryDirectory.get( source ); - final JarHolder holder = (JarHolder) jarfiles.get( jarurl ); + final JarHolder holder = jarfiles.get( jarurl ); if ( holder != null ) { return holder.getPlexusResource( source ); @@ -166,6 +167,7 @@ public PlexusResource getResource( String source ) throw new ResourceNotFoundException( "JarResourceLoader Error: cannot find resource " + source ); } + @Override public void addSearchPath( String path ) { if ( !paths.contains( path ) ) diff --git a/src/main/java/org/codehaus/plexus/resource/loader/ResourceLoader.java b/src/main/java/org/codehaus/plexus/resource/loader/ResourceLoader.java index 4e2ebb4..9b1d943 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/ResourceLoader.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/ResourceLoader.java @@ -37,6 +37,7 @@ public interface ResourceLoader /** * @deprecated Use {@link #getResource(String)}. */ + @Deprecated InputStream getResourceAsInputStream( String name ) throws ResourceNotFoundException; diff --git a/src/main/java/org/codehaus/plexus/resource/loader/ThreadContextClasspathResourceLoader.java b/src/main/java/org/codehaus/plexus/resource/loader/ThreadContextClasspathResourceLoader.java index 35391a0..3b625a7 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/ThreadContextClasspathResourceLoader.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/ThreadContextClasspathResourceLoader.java @@ -39,13 +39,13 @@ public class ThreadContextClasspathResourceLoader extends AbstractResourceLoader { - public static final String ID = "classloader"; // ---------------------------------------------------------------------- // ResourceLoader Implementation // ---------------------------------------------------------------------- + @Override public PlexusResource getResource( String name ) throws ResourceNotFoundException { diff --git a/src/main/java/org/codehaus/plexus/resource/loader/URLPlexusResource.java b/src/main/java/org/codehaus/plexus/resource/loader/URLPlexusResource.java index a9bb6b2..b268b76 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/URLPlexusResource.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/URLPlexusResource.java @@ -45,31 +45,34 @@ public URLPlexusResource( URL url ) this.url = url; } + @Override public File getFile() throws IOException { return null; } + @Override public InputStream getInputStream() throws IOException { return url.openStream(); } + @Override public String getName() { return url.toExternalForm(); } + @Override public URI getURI() - throws IOException { return null; } + @Override public URL getURL() - throws IOException { return url; } diff --git a/src/main/java/org/codehaus/plexus/resource/loader/URLResourceLoader.java b/src/main/java/org/codehaus/plexus/resource/loader/URLResourceLoader.java index 2abe9dc..43daac3 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/URLResourceLoader.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/URLResourceLoader.java @@ -43,7 +43,6 @@ public class URLResourceLoader extends AbstractResourceLoader { - private static final Logger LOGGER = LoggerFactory.getLogger( URLResourceLoader.class ); public static final String ID = "url"; @@ -57,6 +56,7 @@ public class URLResourceLoader * @return InputStream containing the template * @throws ResourceNotFoundException if template not found in the file template path. */ + @Override public PlexusResource getResource( String name ) throws ResourceNotFoundException { From ca84d7d4013d5cdae1e1566eeb9cfa2e5461c673 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Tue, 10 Aug 2021 12:20:33 +0200 Subject: [PATCH 2/3] More cleanup --- .../loader/AbstractResourceLoader.java | 2 +- .../plexus/resource/loader/JarHolder.java | 2 +- .../resource/loader/JarResourceLoader.java | 44 +++++-------------- .../resource/loader/URLPlexusResource.java | 1 - 4 files changed, 13 insertions(+), 36 deletions(-) diff --git a/src/main/java/org/codehaus/plexus/resource/loader/AbstractResourceLoader.java b/src/main/java/org/codehaus/plexus/resource/loader/AbstractResourceLoader.java index 427c8d5..112efae 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/AbstractResourceLoader.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/AbstractResourceLoader.java @@ -37,7 +37,7 @@ */ public abstract class AbstractResourceLoader implements ResourceLoader { - protected List paths = new ArrayList<>(); + protected final List paths = new ArrayList<>(); @Override public void addSearchPath( String path ) diff --git a/src/main/java/org/codehaus/plexus/resource/loader/JarHolder.java b/src/main/java/org/codehaus/plexus/resource/loader/JarHolder.java index 4824ef6..e86c0ef 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/JarHolder.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/JarHolder.java @@ -46,7 +46,7 @@ */ public class JarHolder { - private String urlpath; + private final String urlpath; private JarFile theJar = null; diff --git a/src/main/java/org/codehaus/plexus/resource/loader/JarResourceLoader.java b/src/main/java/org/codehaus/plexus/resource/loader/JarResourceLoader.java index d222834..9f72353 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/JarResourceLoader.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/JarResourceLoader.java @@ -31,6 +31,7 @@ import java.util.LinkedHashMap; import java.util.Map; + import javax.inject.Named; /** @@ -52,22 +53,7 @@ public class JarResourceLoader /** * Maps JAR URLs to the actual JAR (key = the JAR URL, value = the JAR). */ - private final Map jarfiles = new LinkedHashMap<>( 89 ); - - private boolean initializeCalled; - - public void initialize() - { - initializeCalled = true; - - if ( paths != null ) - { - for ( int i = 0; i < paths.size(); i++ ) - { - loadJar( paths.get( i ) ); - } - } - } + private final Map jarFiles = new LinkedHashMap<>( 89 ); private void loadJar( String path ) { @@ -100,7 +86,7 @@ private void loadJar( String path ) addEntries( temp.getEntries() ); // Add it to the Jar table - jarfiles.put( temp.getUrlPath(), temp ); + jarFiles.put( temp.getUrlPath(), temp ); } /** @@ -108,9 +94,9 @@ private void loadJar( String path ) */ private void closeJar( String path ) { - if ( jarfiles.containsKey( path ) ) + if ( jarFiles.containsKey( path ) ) { - JarHolder theJar = jarfiles.get( path ); + JarHolder theJar = jarFiles.get( path ); theJar.close(); } @@ -125,21 +111,16 @@ private void addEntries( Map entries ) } /** - * Get an InputStream so that the Runtime can build a template with it. + * Get an {@link PlexusResource} by name. * - * @param source name of template to get - * @return InputStream containing the template - * @throws ResourceNotFoundException if template not found in the file template path. + * @param source name of resource to get + * @return PlexusResource containing the resource + * @throws ResourceNotFoundException if resource not found. */ @Override public PlexusResource getResource( String source ) throws ResourceNotFoundException { - if ( !initializeCalled ) - { - initialize(); - } - if ( source == null || source.length() == 0 ) { throw new ResourceNotFoundException( "Need to have a resource!" ); @@ -157,7 +138,7 @@ public PlexusResource getResource( String source ) { String jarurl = entryDirectory.get( source ); - final JarHolder holder = jarfiles.get( jarurl ); + final JarHolder holder = jarFiles.get( jarurl ); if ( holder != null ) { return holder.getPlexusResource( source ); @@ -172,10 +153,7 @@ public void addSearchPath( String path ) { if ( !paths.contains( path ) ) { - if ( initializeCalled ) - { - loadJar( path ); - } + loadJar( path ); paths.add( path ); } } diff --git a/src/main/java/org/codehaus/plexus/resource/loader/URLPlexusResource.java b/src/main/java/org/codehaus/plexus/resource/loader/URLPlexusResource.java index b268b76..54fe171 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/URLPlexusResource.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/URLPlexusResource.java @@ -47,7 +47,6 @@ public URLPlexusResource( URL url ) @Override public File getFile() - throws IOException { return null; } From 48239daaa58d57fe5b2d37482dfc226076ee4d03 Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Tue, 10 Aug 2021 12:31:21 +0200 Subject: [PATCH 3/3] Fix javadoc and add deprecated anno as well --- .../plexus/resource/loader/FileResourceLoader.java | 1 + .../plexus/resource/loader/URLResourceLoader.java | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/codehaus/plexus/resource/loader/FileResourceLoader.java b/src/main/java/org/codehaus/plexus/resource/loader/FileResourceLoader.java index 284da68..ec6c24f 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/FileResourceLoader.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/FileResourceLoader.java @@ -70,6 +70,7 @@ public PlexusResource getResource( String name ) /** * @deprecated Use {@link org.codehaus.plexus.resource.ResourceManager#getResourceAsFile(PlexusResource)}. */ + @Deprecated public static File getResourceAsFile( String name, String outputPath, File outputDirectory ) throws FileResourceCreationException diff --git a/src/main/java/org/codehaus/plexus/resource/loader/URLResourceLoader.java b/src/main/java/org/codehaus/plexus/resource/loader/URLResourceLoader.java index 43daac3..65d6085 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/URLResourceLoader.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/URLResourceLoader.java @@ -50,11 +50,11 @@ public class URLResourceLoader protected Map templateRoots = new HashMap<>(); /** - * Get an InputStream so that the Runtime can build a template with it. + * Get an {@link PlexusResource} with given name. * - * @param name name of template to fetch bytestream of - * @return InputStream containing the template - * @throws ResourceNotFoundException if template not found in the file template path. + * @param name name of resource to fetch byte stream of. + * @return PlexusResource containing the resource. + * @throws ResourceNotFoundException if resource not found. */ @Override public PlexusResource getResource( String name )