diff --git a/pom.xml b/pom.xml index 81fc983..7577cae 100644 --- a/pom.xml +++ b/pom.xml @@ -49,6 +49,11 @@ plexus-component-annotations true + + org.slf4j + slf4j-api + 1.7.30 + @@ -57,6 +62,12 @@ 3.9.0 test + + org.simplify4u + slf4j-mock + 2.1.0 + test + 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 fb1407f..a3984b4 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/AbstractResourceLoader.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/AbstractResourceLoader.java @@ -24,23 +24,20 @@ * SOFTWARE. */ -import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.resource.PlexusResource; import java.io.IOException; import java.io.InputStream; -import java.util.List; import java.util.ArrayList; +import java.util.List; /** * @author Trygve Laugstøl * @version $Id$ */ -public abstract class AbstractResourceLoader - extends AbstractLogEnabled - implements ResourceLoader +public abstract class AbstractResourceLoader implements ResourceLoader { - protected List paths = new ArrayList(); + protected List paths = new ArrayList<>(); public void addSearchPath( String path ) { 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 4d3725a..2e73e25 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/JarResourceLoader.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/JarResourceLoader.java @@ -28,6 +28,8 @@ import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; import org.codehaus.plexus.resource.PlexusResource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.LinkedHashMap; import java.util.Map; @@ -39,6 +41,8 @@ public class JarResourceLoader extends AbstractResourceLoader { + private static final Logger LOGGER = LoggerFactory.getLogger( ResourceLoader.class ); + public static final String ID = "jar"; /** @@ -50,14 +54,14 @@ public class JarResourceLoader * Maps JAR URLs to the actual JAR (key = the JAR URL, value = the JAR). */ private Map jarfiles = new LinkedHashMap( 89 ); - + private boolean initializeCalled; public void initialize() throws InitializationException { initializeCalled = true; - + if ( paths != null ) { for ( int i = 0; i < paths.size(); i++ ) @@ -69,21 +73,17 @@ public void initialize() private void loadJar( String path ) { - if ( getLogger().isDebugEnabled() ) - { - getLogger().debug( "JarResourceLoader : trying to load \"" + path + "\"" ); - } + LOGGER.debug( "JarResourceLoader : trying to load '{}'", path ); // Check path information if ( path == null ) { - getLogger().error( "JarResourceLoader : can not load JAR - JAR path is null" ); + LOGGER.error( "JarResourceLoader : can not load JAR - JAR path is null" ); return; } if ( !path.startsWith( "jar:" ) ) { - getLogger().error( - "JarResourceLoader : JAR path must start with jar: -> " + LOGGER.error( "JarResourceLoader : JAR path must start with jar: -> " + "see java.net.JarURLConnection for information" ); return; } @@ -128,7 +128,7 @@ private void addEntries( Map entries ) /** * Get an InputStream so that the Runtime can build a template with it. - * + * * @param source name of template to get * @return InputStream containing the template * @throws ResourceNotFoundException if template not found in the file template path. @@ -147,7 +147,7 @@ public PlexusResource getResource( String source ) throw new ResourceNotFoundException( e.getMessage(), e ); } } - + if ( source == null || source.length() == 0 ) { throw new ResourceNotFoundException( "Need to have a resource!" ); 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 a795586..34d3686 100644 --- a/src/main/java/org/codehaus/plexus/resource/loader/URLResourceLoader.java +++ b/src/main/java/org/codehaus/plexus/resource/loader/URLResourceLoader.java @@ -24,6 +24,11 @@ * SOFTWARE. */ +import org.codehaus.plexus.component.annotations.Component; +import org.codehaus.plexus.resource.PlexusResource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; @@ -31,9 +36,6 @@ import java.util.HashMap; import java.util.Map; -import org.codehaus.plexus.component.annotations.Component; -import org.codehaus.plexus.resource.PlexusResource; - /** * @author Jason van Zyl */ @@ -42,9 +44,11 @@ public class URLResourceLoader extends AbstractResourceLoader { + private static final Logger LOGGER = LoggerFactory.getLogger( URLResourceLoader.class ); + public static final String ID = "url"; - protected Map templateRoots = new HashMap(); + protected Map templateRoots = new HashMap<>(); /** * Get an InputStream so that the Runtime can build a template with it. @@ -71,10 +75,7 @@ public PlexusResource getResource( String name ) if ( inputStream != null ) { - if ( getLogger().isDebugEnabled() ) - { - getLogger().debug( "URLResourceLoader: Found '" + name + "' at '" + path + "'" ); - } + LOGGER.debug( "URLResourceLoader: Found '{}' at '{}'", name, path ); // save this root for later re-use templateRoots.put( name, path ); @@ -98,19 +99,11 @@ public synchronized InputStream getInputStream() } catch( MalformedURLException mue ) { - if ( getLogger().isDebugEnabled() ) - { - getLogger().debug( "URLResourceLoader: No valid URL '" + path + name + '\'' ); - } + LOGGER.debug( "URLResourceLoader: No valid URL '{}{}'", path, name ); } catch ( IOException ioe ) { - if ( getLogger().isDebugEnabled() ) - { - getLogger().debug( - "URLResourceLoader: Exception when looking for '" + name + "' at '" + path + "'", - ioe ); - } + LOGGER.debug( "URLResourceLoader: Exception when looking for '{}' at '{}'", name, path, ioe ); } } @@ -142,18 +135,12 @@ public synchronized InputStream getInputStream() } catch( MalformedURLException mue ) { - if ( getLogger().isDebugEnabled() ) - { - getLogger().debug( "URLResourceLoader: No valid URL '" + name + '\'' ); - } + LOGGER.debug( "URLResourceLoader: No valid URL '{}'", name ); } catch ( IOException ioe ) { - if ( getLogger().isDebugEnabled() ) - { - getLogger().debug( "URLResourceLoader: Exception when looking for '" + name + '\'', ioe ); - } - } + LOGGER.debug( "URLResourceLoader: Exception when looking for '{}'", name, ioe ); + } // convert to a general Velocity ResourceNotFoundException throw new ResourceNotFoundException( name ); diff --git a/src/test/java/org/codehaus/plexus/resource/loader/FileResourceLoaderTest.java b/src/test/java/org/codehaus/plexus/resource/loader/FileResourceLoaderTest.java index 29434b6..0c575cd 100644 --- a/src/test/java/org/codehaus/plexus/resource/loader/FileResourceLoaderTest.java +++ b/src/test/java/org/codehaus/plexus/resource/loader/FileResourceLoaderTest.java @@ -27,7 +27,6 @@ import java.io.File; import org.codehaus.plexus.resource.PlexusResource; -import org.codehaus.plexus.resource.loader.AbstractResourceLoaderTest; /** * @author Trygve Laugstøl diff --git a/src/test/java/org/codehaus/plexus/resource/loader/URLResourceLoaderTest.java b/src/test/java/org/codehaus/plexus/resource/loader/URLResourceLoaderTest.java index cddd89c..9de46ad 100644 --- a/src/test/java/org/codehaus/plexus/resource/loader/URLResourceLoaderTest.java +++ b/src/test/java/org/codehaus/plexus/resource/loader/URLResourceLoaderTest.java @@ -1,17 +1,20 @@ package org.codehaus.plexus.resource.loader; -import static org.mockito.Mockito.when; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; -import junit.framework.TestCase; -import org.codehaus.plexus.logging.Logger; +import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.junit.MockitoJUnitRunner; +import org.slf4j.Logger; + +@RunWith( MockitoJUnitRunner.class ) public class URLResourceLoaderTest - extends TestCase { @Mock private Logger logger; @@ -19,18 +22,9 @@ public class URLResourceLoaderTest @InjectMocks private ResourceLoader resourceLoader = new URLResourceLoader(); - @Override - protected void setUp() - throws Exception - { - MockitoAnnotations.initMocks( this ); - } - + @Test public void testMalformedURL() - throws Exception { - when( logger.isDebugEnabled() ).thenReturn( true ); - try { resourceLoader.getResource( "LICENSE.txt" ); @@ -38,8 +32,7 @@ public void testMalformedURL() } catch ( ResourceNotFoundException e ) { - verify( logger ).isDebugEnabled(); - verify( logger ).debug( "URLResourceLoader: No valid URL 'LICENSE.txt'" ); + verify( logger ).debug( "URLResourceLoader: No valid URL '{}'", "LICENSE.txt" ); verifyNoMoreInteractions( logger ); assertEquals( "Could not find resource 'LICENSE.txt'.", e.getMessage() ); }