[Git][java-team/plexus-resources][upstream] New upstream version 1.3.0

Andreas Tille (@tille) gitlab at salsa.debian.org
Tue Feb 25 19:25:35 GMT 2025



Andreas Tille pushed to branch upstream at Debian Java Maintainers / plexus-resources


Commits:
720e9c94 by Andreas Tille at 2025-02-24T06:52:15+01:00
New upstream version 1.3.0
- - - - -


29 changed files:

- + .github/dependabot.yml
- + .github/release-drafter.yml
- + .github/workflows/maven.yml
- + .github/workflows/release-drafter.yml
- .gitignore
- + LICENSE
- + README.md
- pom.xml
- src/main/java/org/codehaus/plexus/resource/DefaultResourceManager.java
- src/main/java/org/codehaus/plexus/resource/PlexusResource.java
- src/main/java/org/codehaus/plexus/resource/ResourceManager.java
- src/main/java/org/codehaus/plexus/resource/loader/AbstractResourceLoader.java
- src/main/java/org/codehaus/plexus/resource/loader/FilePlexusResource.java
- src/main/java/org/codehaus/plexus/resource/loader/FileResourceCreationException.java
- src/main/java/org/codehaus/plexus/resource/loader/FileResourceLoader.java
- src/main/java/org/codehaus/plexus/resource/loader/JarHolder.java
- src/main/java/org/codehaus/plexus/resource/loader/JarResourceLoader.java
- src/main/java/org/codehaus/plexus/resource/loader/ResourceIOException.java
- src/main/java/org/codehaus/plexus/resource/loader/ResourceLoader.java
- src/main/java/org/codehaus/plexus/resource/loader/ResourceNotFoundException.java
- src/main/java/org/codehaus/plexus/resource/loader/ThreadContextClasspathResourceLoader.java
- src/main/java/org/codehaus/plexus/resource/loader/URLPlexusResource.java
- src/main/java/org/codehaus/plexus/resource/loader/URLResourceLoader.java
- src/test/java/org/codehaus/plexus/resource/ResourceManagerTest.java
- src/test/java/org/codehaus/plexus/resource/loader/AbstractResourceLoaderTest.java
- src/test/java/org/codehaus/plexus/resource/loader/FileResourceLoaderTest.java
- src/test/java/org/codehaus/plexus/resource/loader/ThreadContextClasspathResourceLoaderTest.java
- src/test/java/org/codehaus/plexus/resource/loader/URLResourceLoaderTest.java
- src/test/java/org/codehaus/plexus/resource/loader/manager/ResourceManagerTest.java


Changes:

=====================================
.github/dependabot.yml
=====================================
@@ -0,0 +1,10 @@
+version: 2
+updates:
+  - package-ecosystem: "maven"
+    directory: "/"
+    schedule:
+      interval: "daily"
+  - package-ecosystem: "github-actions"
+    directory: "/"
+    schedule:
+      interval: "daily"


=====================================
.github/release-drafter.yml
=====================================
@@ -0,0 +1,2 @@
+_extends: .github
+tag-template: plexus-resources-$NEXT_MINOR_VERSION


=====================================
.github/workflows/maven.yml
=====================================
@@ -0,0 +1,31 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: GitHub CI
+
+on: [push, pull_request]
+
+jobs:
+  build:
+    name: Build it
+    uses: codehaus-plexus/.github/.github/workflows/maven.yml at master
+
+  deploy:
+    name: Deploy
+    needs: build
+    uses: codehaus-plexus/.github/.github/workflows/maven-deploy.yml at master
+    secrets: inherit


=====================================
.github/workflows/release-drafter.yml
=====================================
@@ -0,0 +1,12 @@
+name: Release Drafter
+on:
+  push:
+    branches:
+      - master
+jobs:
+  update_release_draft:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: release-drafter/release-drafter at v5
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


=====================================
.gitignore
=====================================
@@ -5,3 +5,4 @@ target/
 bin
 *.iml
 .idea
+.DS_Store


=====================================
LICENSE
=====================================
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.


=====================================
README.md
=====================================
@@ -0,0 +1,8 @@
+Plexus-Resources
+===============
+
+[![Apache License, Version 2.0, January 2004](https://img.shields.io/github/license/codehaus-plexus/plexus-resources.svg?label=License)](http://www.apache.org/licenses/)
+[![Maven Central](https://img.shields.io/maven-central/v/org.codehaus.plexus/plexus-resources.svg?label=Maven%20Central)](https://search.maven.org/artifact/org.codehaus.plexus/plexus-resources)
+[![GitHub CI](https://github.com/codehaus-plexus/plexus-resources/actions/workflows/maven.yml/badge.svg)](https://github.com/codehaus-plexus/plexus-resources/actions/workflows/maven.yml)
+
+The canonical git repository is located at https://github.com/codehaus-plexus/plexus-resources


=====================================
pom.xml
=====================================
@@ -4,12 +4,13 @@
 
   <parent>
     <groupId>org.codehaus.plexus</groupId>
-    <artifactId>plexus-components</artifactId>
-    <version>4.0</version>
+    <artifactId>plexus</artifactId>
+    <version>16</version>
+    <relativePath />
   </parent>
 
   <artifactId>plexus-resources</artifactId>
-  <version>1.1.0</version>
+  <version>1.3.0</version>
 
   <name>Plexus Resource Component</name>
   <description>A component to transparently retrieve resources from the filesystem, classpath or internet.</description>
@@ -17,8 +18,8 @@
   <scm>
     <connection>scm:git:git at github.com:codehaus-plexus/plexus-resources.git</connection>
     <developerConnection>scm:git:git at github.com:codehaus-plexus/plexus-resources.git</developerConnection>
+    <tag>plexus-resources-1.3.0</tag>
     <url>http://github.com/codehaus-plexus/plexus-resources</url>
-    <tag>plexus-resources-1.1.0</tag>
   </scm>
   <issueManagement>
     <system>jira</system>
@@ -31,6 +32,20 @@
     </site>
   </distributionManagement>
 
+  <properties>
+    <project.build.outputTimestamp>2023-12-23T22:05:19Z</project.build.outputTimestamp>
+    <mockito.version>4.11.0</mockito.version>
+  </properties>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-utils</artifactId>
+        <version>4.0.0</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
   <dependencies>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
@@ -38,61 +53,76 @@
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-container-default</artifactId>
+      <artifactId>plexus-xml</artifactId>
+      <version>3.0.0</version>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-component-annotations</artifactId>
-      <optional>true</optional>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+      <version>1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>1.7.36</version>
     </dependency>
-    
+
     <!-- TEST -->
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-api</artifactId>
+      <scope>test</scope>
+    </dependency>
     <dependency>
       <groupId>org.mockito</groupId>
       <artifactId>mockito-core</artifactId>
-      <version>1.9.5</version>
+      <version>${mockito.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-junit-jupiter</artifactId>
+      <version>${mockito.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.simplify4u</groupId>
+      <artifactId>slf4j-mock</artifactId>
+      <version>2.3.0</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-testing</artifactId>
+      <version>1.3.0</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
 
   <build>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-site-plugin</artifactId>
-          <version>3.4</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-scm-publish-plugin</artifactId>
         <configuration>
-          <content>${project.reporting.outputDirectory}</content><!-- mono-module doesn't require site:stage -->
+          <content>${project.reporting.outputDirectory}</content>
+          <!-- mono-module doesn't require site:stage -->
         </configuration>
         <executions>
           <execution>
             <id>scm-publish</id>
-            <phase>site-deploy</phase><!-- deploy site with maven-scm-publish-plugin -->
+            <!-- deploy site with maven-scm-publish-plugin -->
             <goals>
               <goal>publish-scm</goal>
             </goals>
+            <phase>site-deploy</phase>
           </execution>
         </executions>
       </plugin>
-    </plugins>
-  </build>
-  
-  <reporting>
-    <plugins>
       <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
-        <version>3.0.4</version>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
       </plugin>
     </plugins>
-  </reporting>
-  
+  </build>
 </project>


=====================================
src/main/java/org/codehaus/plexus/resource/DefaultResourceManager.java
=====================================
@@ -24,16 +24,8 @@ package org.codehaus.plexus.resource;
  * SOFTWARE.
  */
 
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
-
-import org.codehaus.plexus.logging.AbstractLogEnabled;
-import org.codehaus.plexus.resource.loader.FileResourceCreationException;
-import org.codehaus.plexus.resource.loader.ResourceIOException;
-import org.codehaus.plexus.resource.loader.ResourceLoader;
-import org.codehaus.plexus.resource.loader.ResourceNotFoundException;
-import org.codehaus.plexus.util.FileUtils;
-import org.codehaus.plexus.util.IOUtil;
+import javax.inject.Inject;
+import javax.inject.Named;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -42,186 +34,163 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.Map;
 
+import org.codehaus.plexus.resource.loader.FileResourceCreationException;
+import org.codehaus.plexus.resource.loader.ResourceIOException;
+import org.codehaus.plexus.resource.loader.ResourceLoader;
+import org.codehaus.plexus.resource.loader.ResourceNotFoundException;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.IOUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * @author <a href="mailto:trygvis at inamo.no">Trygve Laugstøl</a>
  * @author Jason van Zyl
  * @version $Id$
  */
- at Component( role = ResourceManager.class, instantiationStrategy = "per-lookup" )
-public class DefaultResourceManager
-    extends AbstractLogEnabled
-    implements ResourceManager
-{
-    @Requirement( role = ResourceLoader.class )
-    private Map<String, ResourceLoader> resourceLoaders;
+ at Named
+public class DefaultResourceManager implements ResourceManager {
+    private static final Logger LOGGER = LoggerFactory.getLogger(DefaultResourceManager.class);
+
+    private final Map<String, ResourceLoader> resourceLoaders;
 
     private File outputDirectory;
 
+    @Inject
+    public DefaultResourceManager(Map<String, ResourceLoader> resourceLoaders) {
+        this.resourceLoaders = resourceLoaders;
+    }
+
     // ----------------------------------------------------------------------
     // ResourceManager Implementation
     // ----------------------------------------------------------------------
 
-    public InputStream getResourceAsInputStream( String name )
-        throws ResourceNotFoundException
-    {
-        PlexusResource resource = getResource( name );
-        try
-        {
+    @Override
+    public InputStream getResourceAsInputStream(String name) throws ResourceNotFoundException {
+        PlexusResource resource = getResource(name);
+        try {
             return resource.getInputStream();
-        }
-        catch ( IOException e )
-        {
-            throw new ResourceIOException( "Failed to open resource " + resource.getName() + ": " + e.getMessage(), e );
+        } catch (IOException e) {
+            throw new ResourceIOException("Failed to open resource " + resource.getName() + ": " + e.getMessage(), e);
         }
     }
 
-    public File getResourceAsFile( String name )
-        throws ResourceNotFoundException, FileResourceCreationException
-    {
-        return getResourceAsFile( getResource( name ) );
+    @Override
+    public File getResourceAsFile(String name) throws ResourceNotFoundException, FileResourceCreationException {
+        return getResourceAsFile(getResource(name));
     }
 
-    public File getResourceAsFile( String name, String outputPath )
-        throws ResourceNotFoundException, FileResourceCreationException
-    {
-        if ( outputPath == null )
-        {
-            return getResourceAsFile( name );
+    @Override
+    public File getResourceAsFile(String name, String outputPath)
+            throws ResourceNotFoundException, FileResourceCreationException {
+        if (outputPath == null) {
+            return getResourceAsFile(name);
         }
-        PlexusResource resource = getResource( name );
+        PlexusResource resource = getResource(name);
         File outputFile;
-        if ( outputDirectory != null )
-        {
-            outputFile = new File( outputDirectory, outputPath );
-        }
-        else
-        {
-            outputFile = new File( outputPath );
+        if (outputDirectory != null) {
+            outputFile = new File(outputDirectory, outputPath);
+        } else {
+            outputFile = new File(outputPath);
         }
-        createResourceAsFile( resource, outputFile );
+        createResourceAsFile(resource, outputFile);
         return outputFile;
     }
 
-    public File resolveLocation( String name, String outputPath )
-        throws IOException
-    {
+    @Override
+    public File resolveLocation(String name, String outputPath) {
         // Honour what the original locator does and return null ...
-        try
-        {
-            return getResourceAsFile( name, outputPath );
-        }
-        catch ( Exception e )
-        {
+        try {
+            return getResourceAsFile(name, outputPath);
+        } catch (Exception e) {
             return null;
         }
     }
 
-    public File resolveLocation( String name )
-        throws IOException
-    {
+    @Override
+    public File resolveLocation(String name) {
         // Honour what the original locator does and return null ...
-        try
-        {
-            return getResourceAsFile( name );
-        }
-        catch ( Exception e )
-        {
+        try {
+            return getResourceAsFile(name);
+        } catch (Exception e) {
             return null;
         }
     }
 
-    public void setOutputDirectory( File outputDirectory )
-    {
+    @Override
+    public void setOutputDirectory(File outputDirectory) {
         this.outputDirectory = outputDirectory;
     }
 
-    public void addSearchPath( String id, String path )
-    {
-        ResourceLoader loader = (ResourceLoader) resourceLoaders.get( id );
+    @Override
+    public void addSearchPath(String id, String path) {
+        ResourceLoader loader = resourceLoaders.get(id);
 
-        if ( loader == null )
-        {
-            throw new IllegalArgumentException( "unknown resource loader: " + id );
+        if (loader == null) {
+            throw new IllegalArgumentException("unknown resource loader: " + id);
         }
 
-        loader.addSearchPath( path );
+        loader.addSearchPath(path);
     }
 
-    public PlexusResource getResource( String name )
-        throws ResourceNotFoundException
-    {
-        for ( ResourceLoader resourceLoader : resourceLoaders.values() )
-        {
-            try
-            {
-                PlexusResource resource = resourceLoader.getResource( name );
+    @Override
+    public PlexusResource getResource(String name) throws ResourceNotFoundException {
+        for (ResourceLoader resourceLoader : resourceLoaders.values()) {
+            try {
+                PlexusResource resource = resourceLoader.getResource(name);
 
-                getLogger().debug( "The resource " + "'" + name + "'" + " was found as " + resource.getName() + "." );
+                LOGGER.debug("The resource '{}' was found as '{}'", name, resource.getName());
 
                 return resource;
-            }
-            catch ( ResourceNotFoundException e )
-            {
-                getLogger().debug(
-                                   "The resource " + "'" + name + "'" + " was not found with resourceLoader "
-                                       + resourceLoader.getClass().getName() + "." );
+            } catch (ResourceNotFoundException e) {
+                LOGGER.debug(
+                        "The resource '{}' was not found with resourceLoader '{}'",
+                        name,
+                        resourceLoader.getClass().getName());
             }
         }
 
-        throw new ResourceNotFoundException( name );
+        throw new ResourceNotFoundException(name);
     }
 
-    public File getResourceAsFile( PlexusResource resource )
-        throws FileResourceCreationException
-    {
-        try
-        {
+    @Override
+    public File getResourceAsFile(PlexusResource resource) throws FileResourceCreationException {
+        try {
             File f = resource.getFile();
-            if ( f != null )
-            {
+            if (f != null) {
                 return f;
             }
-        }
-        catch ( IOException e )
-        {
+        } catch (IOException e) {
             // Ignore this, try to make use of resource.getInputStream().
         }
 
-        final File outputFile = FileUtils.createTempFile( "plexus-resources", "tmp", outputDirectory );
+        final File outputFile = FileUtils.createTempFile("plexus-resources", "tmp", outputDirectory);
         outputFile.deleteOnExit();
-        createResourceAsFile( resource, outputFile );
+        createResourceAsFile(resource, outputFile);
         return outputFile;
     }
 
-    public void createResourceAsFile( PlexusResource resource, File outputFile )
-        throws FileResourceCreationException
-    {
+    @Override
+    public void createResourceAsFile(PlexusResource resource, File outputFile) throws FileResourceCreationException {
         InputStream is = null;
         OutputStream os = null;
-        try
-        {
+        try {
             is = resource.getInputStream();
             File dir = outputFile.getParentFile();
-            if ( !dir.isDirectory() && !dir.mkdirs() )
-            {
-                throw new FileResourceCreationException( "Failed to create directory " + dir.getPath() );
+            if (!dir.isDirectory() && !dir.mkdirs()) {
+                throw new FileResourceCreationException("Failed to create directory " + dir.getPath());
             }
-            os = new FileOutputStream( outputFile );
-            IOUtil.copy( is, os );
+            os = new FileOutputStream(outputFile);
+            IOUtil.copy(is, os);
             is.close();
             is = null;
             os.close();
             os = null;
-        }
-        catch ( IOException e )
-        {
-            throw new FileResourceCreationException( "Cannot create file-based resource:" + e.getMessage(), e );
-        }
-        finally
-        {
-            IOUtil.close( is );
-            IOUtil.close( os );
+        } catch (IOException e) {
+            throw new FileResourceCreationException("Cannot create file-based resource:" + e.getMessage(), e);
+        } finally {
+            IOUtil.close(is);
+            IOUtil.close(os);
         }
     }
-
 }


=====================================
src/main/java/org/codehaus/plexus/resource/PlexusResource.java
=====================================
@@ -33,11 +33,10 @@ import java.net.URL;
 /**
  * A resource is a byte stream, possibly (but not necessarily) with additional attributes like {@link File}, {@link URL}
  * , or {@link URI}.
- * 
+ *
  * @since 1.0-alpha-5
  */
-public interface PlexusResource
-{
+public interface PlexusResource {
     /**
      * <p>
      * Returns the resource as an {@link InputStream}. In general, you should not assume, that this method may me called
@@ -49,47 +48,43 @@ public interface PlexusResource
      * If you need a reliable way of reloading the resource more than once, then you should use
      * {@link ResourceManager#getResourceAsFile(PlexusResource)}.
      * </p>
-     * 
+     *
      * @return An {@link InputStream} with the resources contents, never null.
      */
-    public InputStream getInputStream()
-        throws IOException;
+    InputStream getInputStream() throws IOException;
 
     /**
      * <p>
      * Returns the resource as a file, if possible. A resource doesn't need to be available as a file: If you require a
      * file, use {@link ResourceManager#getResourceAsFile(PlexusResource)}.
      * </p>
-     * 
+     *
      * @return A {@link File} containing the resources contents, if available, or null.
      */
-    public File getFile()
-        throws IOException;
+    File getFile() throws IOException;
 
     /**
      * <p>
      * Returns the resources URL, if possible. A resource doesn't need to have an URL.
      * </p>
-     * 
+     *
      * @return The resources URL, if available, or null.
      */
-    public URL getURL()
-        throws IOException;
+    URL getURL() throws IOException;
 
     /**
      * <p>
      * Returns the resources URI, if possible. A resource doesn't need to have an URI.
      * </p>
-     * 
+     *
      * @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();
 }


=====================================
src/main/java/org/codehaus/plexus/resource/ResourceManager.java
=====================================
@@ -24,74 +24,64 @@ package org.codehaus.plexus.resource;
  * SOFTWARE.
  */
 
-import java.io.InputStream;
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 
-import org.codehaus.plexus.resource.loader.ResourceNotFoundException;
 import org.codehaus.plexus.resource.loader.FileResourceCreationException;
+import org.codehaus.plexus.resource.loader.ResourceNotFoundException;
 
 /**
  * @author <a href="mailto:trygvis at inamo.no">Trygve Laugstøl</a>
  * @author Jason van Zyl
  * @version $Id$
  */
-public interface ResourceManager
-{
-    String ROLE = ResourceManager.class.getName();
-
-    InputStream getResourceAsInputStream( String name )
-        throws ResourceNotFoundException;
+public interface ResourceManager {
+    InputStream getResourceAsInputStream(String name) throws ResourceNotFoundException;
 
-    File getResourceAsFile( String name )
-        throws ResourceNotFoundException, FileResourceCreationException;
+    File getResourceAsFile(String name) throws ResourceNotFoundException, FileResourceCreationException;
 
-    File getResourceAsFile( String name, String outputFile )
-        throws ResourceNotFoundException, FileResourceCreationException;
+    File getResourceAsFile(String name, String outputFile)
+            throws ResourceNotFoundException, FileResourceCreationException;
 
-    void setOutputDirectory( File outputDirectory );
+    void setOutputDirectory(File outputDirectory);
 
-    void addSearchPath( String resourceLoaderId, String searchPath );
+    void addSearchPath(String resourceLoaderId, String searchPath);
 
     /**
      * Provides compatibility with the Locator utility used by several Maven Plugins.
-     * 
+     *
      * @deprecated
      */
-    File resolveLocation( String location, String localfile )
-        throws IOException;
+    File resolveLocation(String location, String localfile) throws IOException;
 
     /**
      * Provides compatibility with the Locator utility used by several Maven Plugins.
-     * 
+     *
      * @deprecated
      */
-    File resolveLocation( String location )
-        throws IOException;
+    File resolveLocation(String location) throws IOException;
 
     /**
      * Searches for a resource with the given name.
-     * 
+     *
      * @since 1.0-alpha-5
      */
-    PlexusResource getResource( String name )
-        throws ResourceNotFoundException;
+    PlexusResource getResource(String name) throws ResourceNotFoundException;
 
     /**
      * Returns a file with the given resources contents. If the resource is already available as a file, returns that
      * file. Otherwise, a file in the resource managers output directory is created and the resource is downloaded to
      * that file.
-     * 
+     *
      * @since 1.0-alpha-5
      */
-    File getResourceAsFile( PlexusResource resource )
-        throws FileResourceCreationException;
+    File getResourceAsFile(PlexusResource resource) throws FileResourceCreationException;
 
     /**
      * Downloads the resource to the given output file.
-     * 
+     *
      * @since 1.0-alpha-5
      */
-    void createResourceAsFile( PlexusResource resource, File outputFile )
-        throws FileResourceCreationException;
+    void createResourceAsFile(PlexusResource resource, File outputFile) throws FileResourceCreationException;
 }


=====================================
src/main/java/org/codehaus/plexus/resource/loader/AbstractResourceLoader.java
=====================================
@@ -24,43 +24,35 @@ package org.codehaus.plexus.resource.loader;
  * 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;
+
+import org.codehaus.plexus.resource.PlexusResource;
 
 /**
  * @author <a href="mailto:trygvis at inamo.no">Trygve Laugstøl</a>
  * @version $Id$
  */
-public abstract class AbstractResourceLoader
-    extends AbstractLogEnabled
-    implements ResourceLoader
-{
-    protected List<String> paths = new ArrayList<String>();
+public abstract class AbstractResourceLoader implements ResourceLoader {
+    protected final List<String> paths = new ArrayList<>();
 
-    public void addSearchPath( String path )
-    {
-        if ( !paths.contains( path ) )
-        {
-            paths.add( path );
+    @Override
+    public void addSearchPath(String path) {
+        if (!paths.contains(path)) {
+            paths.add(path);
         }
     }
 
-    public InputStream getResourceAsInputStream( String name )
-        throws ResourceNotFoundException
-    {
-        PlexusResource resource = getResource( name );
-        try
-        {
+    @Override
+    @Deprecated
+    public InputStream getResourceAsInputStream(String name) throws ResourceNotFoundException {
+        PlexusResource resource = getResource(name);
+        try {
             return resource.getInputStream();
-        }
-        catch ( IOException e )
-        {
-            throw new ResourceIOException( "Failed to open resource " + resource.getName() + ": " + e.getMessage(), e );
+        } catch (IOException e) {
+            throw new ResourceIOException("Failed to open resource " + resource.getName() + ": " + e.getMessage(), e);
         }
     }
 }


=====================================
src/main/java/org/codehaus/plexus/resource/loader/FilePlexusResource.java
=====================================
@@ -36,42 +36,35 @@ import org.codehaus.plexus.resource.PlexusResource;
 /**
  * Implementation of {@link PlexusResource} for files.
  */
-public class FilePlexusResource
-    implements PlexusResource
-{
+public class FilePlexusResource implements PlexusResource {
     private final File file;
 
-    public FilePlexusResource( File file )
-    {
+    public FilePlexusResource(File file) {
         this.file = file;
     }
 
-    public File getFile()
-        throws IOException
-    {
+    @Override
+    public File getFile() {
         return file;
     }
 
-    public InputStream getInputStream()
-        throws IOException
-    {
-        return new FileInputStream( file );
+    @Override
+    public InputStream getInputStream() throws IOException {
+        return new FileInputStream(file);
     }
 
-    public String getName()
-    {
+    @Override
+    public String getName() {
         return file.getPath();
     }
 
-    public URI getURI()
-        throws IOException
-    {
+    @Override
+    public URI getURI() {
         return file.toURI();
     }
 
-    public URL getURL()
-        throws IOException
-    {
+    @Override
+    public URL getURL() throws IOException {
         return file.toURI().toURL();
     }
 }


=====================================
src/main/java/org/codehaus/plexus/resource/loader/FileResourceCreationException.java
=====================================
@@ -25,23 +25,18 @@ package org.codehaus.plexus.resource.loader;
  */
 
 /** @author Jason van Zyl */
-public class FileResourceCreationException
-    extends Exception
-{
+public class FileResourceCreationException extends Exception {
     private static final long serialVersionUID = 3203687211821479687L;
 
-    public FileResourceCreationException( String string )
-    {
-        super( string );
+    public FileResourceCreationException(String string) {
+        super(string);
     }
 
-    public FileResourceCreationException( String string, Throwable throwable )
-    {
-        super( string, throwable );
+    public FileResourceCreationException(String string, Throwable throwable) {
+        super(string, throwable);
     }
 
-    public FileResourceCreationException( Throwable throwable )
-    {
-        super( throwable );
+    public FileResourceCreationException(Throwable throwable) {
+        super(throwable);
     }
 }


=====================================
src/main/java/org/codehaus/plexus/resource/loader/FileResourceLoader.java
=====================================
@@ -24,13 +24,12 @@ package org.codehaus.plexus.resource.loader;
  * SOFTWARE.
  */
 
+import javax.inject.Named;
+
 import java.io.File;
 import java.io.IOException;
 
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.resource.PlexusResource;
-import org.codehaus.plexus.resource.loader.AbstractResourceLoader;
-import org.codehaus.plexus.resource.loader.ResourceNotFoundException;
 import org.codehaus.plexus.util.FileUtils;
 
 /**
@@ -38,78 +37,61 @@ import org.codehaus.plexus.util.FileUtils;
  * @author Jason van Zyl
  * @version $Id$
  */
- at Component( role = ResourceLoader.class, hint = "file", instantiationStrategy = "per-lookup" )
-public class FileResourceLoader
-    extends AbstractResourceLoader
-{
+ at Named(FileResourceLoader.ID)
+public class FileResourceLoader extends AbstractResourceLoader {
     public static final String ID = "file";
 
     // ----------------------------------------------------------------------
     // ResourceLoader Implementation
     // ----------------------------------------------------------------------
 
-    public PlexusResource getResource( String name )
-        throws ResourceNotFoundException
-    {
-        for ( String path : paths )
-        {
-            final File file = new File( path, name );
+    @Override
+    public PlexusResource getResource(String name) throws ResourceNotFoundException {
+        for (String path : paths) {
+            final File file = new File(path, name);
 
-            if ( file.canRead() )
-            {
-                return new FilePlexusResource( file );
+            if (file.canRead()) {
+                return new FilePlexusResource(file);
             }
         }
-        File file = new File( name );
-        if ( file.isAbsolute() && file.canRead() )
-        {
-            return new FilePlexusResource( file );
+        File file = new File(name);
+        if (file.isAbsolute() && file.canRead()) {
+            return new FilePlexusResource(file);
         }
-        throw new ResourceNotFoundException( name );
+        throw new ResourceNotFoundException(name);
     }
 
     /**
-     * @deprecated Use {@link org.codehaus.plexus.resource.ResourceManager#getResourceAsFile(PlexusResource )}.
+     * @deprecated Use {@link org.codehaus.plexus.resource.ResourceManager#getResourceAsFile(PlexusResource)}.
      */
-    public static File getResourceAsFile( String name, String outputPath, File outputDirectory )
-        throws FileResourceCreationException
+    @Deprecated
+    public static File getResourceAsFile(String name, String outputPath, File outputDirectory)
+            throws FileResourceCreationException {
 
-    {
-        File f = new File( name );
+        File f = new File(name);
 
-        if ( f.exists() )
-        {
-            if ( outputPath == null )
-            {
+        if (f.exists()) {
+            if (outputPath == null) {
                 return f;
-            }
-            else
-            {
-                try
-                {
+            } else {
+                try {
                     File outputFile;
 
-                    if ( outputDirectory != null )
-                    {
-                        outputFile = new File( outputDirectory, outputPath );
-                    }
-                    else
-                    {
-                        outputFile = new File( outputPath );
+                    if (outputDirectory != null) {
+                        outputFile = new File(outputDirectory, outputPath);
+                    } else {
+                        outputFile = new File(outputPath);
                     }
 
-                    if ( !outputFile.getParentFile().exists() )
-                    {
+                    if (!outputFile.getParentFile().exists()) {
                         outputFile.getParentFile().mkdirs();
                     }
 
-                    FileUtils.copyFile( f, outputFile );
+                    FileUtils.copyFile(f, outputFile);
 
                     return outputFile;
-                }
-                catch ( IOException e )
-                {
-                    throw new FileResourceCreationException( "Cannot create file-based resource.", e );
+                } catch (IOException e) {
+                    throw new FileResourceCreationException("Cannot create file-based resource.", e);
                 }
             }
         }


=====================================
src/main/java/org/codehaus/plexus/resource/loader/JarHolder.java
=====================================
@@ -39,57 +39,43 @@ import org.codehaus.plexus.resource.PlexusResource;
 
 /**
  * A small wrapper around a Jar
- * 
+ *
  * @author <a href="mailto:daveb at miceda-data.com">Dave Bryson</a>
  * @author Jason van Zyl
  * @version $Id$
  */
-public class JarHolder
-{
-    private String urlpath = null;
+public class JarHolder {
+    private final String urlpath;
 
     private JarFile theJar = null;
 
     private JarURLConnection conn = null;
 
-    public JarHolder( String urlpath )
-    {
+    public JarHolder(String urlpath) {
         this.urlpath = urlpath;
 
-        init();
-    }
-
-    public void init()
-    {
-        try
-        {
-            URL url = new URL( urlpath );
+        try {
+            URL url = new URL(urlpath);
 
             conn = (JarURLConnection) url.openConnection();
 
-            conn.setAllowUserInteraction( false );
+            conn.setAllowUserInteraction(false);
 
-            conn.setDoInput( true );
+            conn.setDoInput(true);
 
-            conn.setDoOutput( false );
+            conn.setDoOutput(false);
 
             conn.connect();
 
             theJar = conn.getJarFile();
-        }
-        catch ( IOException ioe )
-        {
+        } catch (IOException ioe) {
         }
     }
 
-    public void close()
-    {
-        try
-        {
+    public void close() {
+        try {
             theJar.close();
-        }
-        catch ( Exception e )
-        {
+        } catch (Exception e) {
         }
 
         theJar = null;
@@ -97,91 +83,73 @@ public class JarHolder
         conn = null;
     }
 
-    public InputStream getResource( String theentry )
-        throws ResourceNotFoundException
-    {
+    public InputStream getResource(String theentry) throws ResourceNotFoundException {
         InputStream data = null;
 
-        try
-        {
-            JarEntry entry = theJar.getJarEntry( theentry );
+        try {
+            JarEntry entry = theJar.getJarEntry(theentry);
 
-            if ( entry != null )
-            {
-                data = theJar.getInputStream( entry );
+            if (entry != null) {
+                data = theJar.getInputStream(entry);
             }
-        }
-        catch ( Exception fnfe )
-        {
-            throw new ResourceNotFoundException( fnfe.getMessage() );
+        } catch (Exception fnfe) {
+            throw new ResourceNotFoundException(fnfe.getMessage());
         }
 
         return data;
     }
 
-    public Hashtable getEntries()
-    {
-        Hashtable<String, String> allEntries = new Hashtable<String, String>( 559 );
+    public Hashtable<String, String> getEntries() {
+        Hashtable<String, String> allEntries = new Hashtable<>(559);
 
-        if ( theJar != null )
-        {
+        if (theJar != null) {
             Enumeration<JarEntry> all = theJar.entries();
 
-            while ( all.hasMoreElements() )
-            {
-                JarEntry je = (JarEntry) all.nextElement();
+            while (all.hasMoreElements()) {
+                JarEntry je = all.nextElement();
 
                 // We don't map plain directory entries
-                if ( !je.isDirectory() )
-                {
-                    allEntries.put( je.getName(), this.urlpath );
+                if (!je.isDirectory()) {
+                    allEntries.put(je.getName(), this.urlpath);
                 }
             }
         }
         return allEntries;
     }
 
-    public String getUrlPath()
-    {
+    public String getUrlPath() {
         return urlpath;
     }
 
-    public PlexusResource getPlexusResource( final String name )
-    {
-        final JarEntry entry = theJar.getJarEntry( name );
-        if ( entry == null )
-        {
+    public PlexusResource getPlexusResource(final String name) {
+        final JarEntry entry = theJar.getJarEntry(name);
+        if (entry == null) {
             return null;
         }
-        return new PlexusResource()
-        {
-            public File getFile()
-                throws IOException
-            {
+        return new PlexusResource() {
+            @Override
+            public File getFile() {
                 return null;
             }
 
-            public InputStream getInputStream()
-                throws IOException
-            {
-                return theJar.getInputStream( entry );
+            @Override
+            public InputStream getInputStream() throws IOException {
+                return theJar.getInputStream(entry);
             }
 
-            public String getName()
-            {
+            @Override
+            public String getName() {
                 return conn.getURL() + name;
             }
 
-            public URI getURI()
-                throws IOException
-            {
+            @Override
+            public URI getURI() {
                 return null;
             }
 
-            public URL getURL()
-                throws IOException
-            {
-                return new URL( conn.getJarFileURL(), name );
+            @Override
+            public URL getURL() throws IOException {
+                return new URL(conn.getJarFileURL(), name);
             }
         };
     }


=====================================
src/main/java/org/codehaus/plexus/resource/loader/JarResourceLoader.java
=====================================
@@ -1,7 +1,5 @@
 package org.codehaus.plexus.resource.loader;
 
-import org.codehaus.plexus.component.annotations.Component;
-
 /*
  * The MIT License
  *
@@ -26,93 +24,70 @@ import org.codehaus.plexus.component.annotations.Component;
  * SOFTWARE.
  */
 
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
-import org.codehaus.plexus.resource.PlexusResource;
+import javax.inject.Named;
 
 import java.util.LinkedHashMap;
 import java.util.Map;
 
+import org.codehaus.plexus.resource.PlexusResource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * @author Jason van Zyl
  */
- at Component( role = ResourceLoader.class, hint = "jar", instantiationStrategy = "per-lookup" )
-public class JarResourceLoader
-    extends AbstractResourceLoader
-{
+ at Named(JarResourceLoader.ID)
+public class JarResourceLoader extends AbstractResourceLoader {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JarResourceLoader.class);
+
     public static final String ID = "jar";
 
     /**
      * 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<String, String> entryDirectory = new LinkedHashMap<>(559);
 
     /**
      * Maps JAR URLs to the actual JAR (key = the JAR URL, value = the JAR).
      */
-    private Map<String, JarHolder> jarfiles = new LinkedHashMap<String, JarHolder>( 89 );
-    
-    private boolean initializeCalled;
-
-    public void initialize()
-        throws InitializationException
-    {
-        initializeCalled = true;
-        
-        if ( paths != null )
-        {
-            for ( int i = 0; i < paths.size(); i++ )
-            {
-                loadJar( (String) paths.get( i ) );
-            }
-        }
-    }
+    private final Map<String, JarHolder> jarFiles = new LinkedHashMap<>(89);
 
-    private void loadJar( String path )
-    {
-        if ( getLogger().isDebugEnabled() )
-        {
-            getLogger().debug( "JarResourceLoader : trying to load \"" + path + "\"" );
-        }
+    private void loadJar(String 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" );
+        if (path == 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: -> "
-                                   + "see java.net.JarURLConnection for information" );
+        if (!path.startsWith("jar:")) {
+            LOGGER.error("JarResourceLoader : JAR path must start with jar: -> "
+                    + "see java.net.JarURLConnection for information");
             return;
         }
-        if ( !path.endsWith( "!/" ) )
-        {
+        if (!path.endsWith("!/")) {
             path += "!/";
         }
 
         // Close the jar if it's already open this is useful for a reload
-        closeJar( path );
+        closeJar(path);
 
         // Create a new JarHolder
-        JarHolder temp = new JarHolder( path );
+        JarHolder temp = new JarHolder(path);
 
         // Add it's entries to the entryCollection
-        addEntries( temp.getEntries() );
+        addEntries(temp.getEntries());
 
         // Add it to the Jar table
-        jarfiles.put( temp.getUrlPath(), temp );
+        jarFiles.put(temp.getUrlPath(), temp);
     }
 
     /**
      * Closes a Jar file and set its URLConnection to null.
      */
-    private void closeJar( String path )
-    {
-        if ( jarfiles.containsKey( path ) )
-        {
-            JarHolder theJar = (JarHolder) jarfiles.get( path );
+    private void closeJar(String path) {
+        if (jarFiles.containsKey(path)) {
+            JarHolder theJar = jarFiles.get(path);
 
             theJar.close();
         }
@@ -121,69 +96,47 @@ public class JarResourceLoader
     /**
      * Copy all the entries into the entryDirectory. It will overwrite any duplicate keys.
      */
-    private void addEntries( Map entries )
-    {
-        entryDirectory.putAll( entries );
+    private void addEntries(Map<String, String> entries) {
+        entryDirectory.putAll(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.
+     * Get an {@link PlexusResource} by name.
+     *
+     * @param source name of resource to get
+     * @return PlexusResource containing the resource
+     * @throws ResourceNotFoundException if resource not found.
      */
-    public PlexusResource getResource( String source )
-        throws ResourceNotFoundException
-    {
-        if ( !initializeCalled )
-        {
-            try
-            {
-                initialize();
-            }
-            catch ( InitializationException e )
-            {
-                throw new ResourceNotFoundException( e.getMessage(), e );
-            }
-        }
-        
-        if ( source == null || source.length() == 0 )
-        {
-            throw new ResourceNotFoundException( "Need to have a resource!" );
+    @Override
+    public PlexusResource getResource(String source) throws ResourceNotFoundException {
+        if (source == null || source.length() == 0) {
+            throw new ResourceNotFoundException("Need to have a resource!");
         }
 
         /*
          * if a / leads off, then just nip that :)
          */
-        if ( source.startsWith( "/" ) )
-        {
-            source = source.substring( 1 );
+        if (source.startsWith("/")) {
+            source = source.substring(1);
         }
 
-        if ( entryDirectory.containsKey( source ) )
-        {
-            String jarurl = (String) entryDirectory.get( source );
+        if (entryDirectory.containsKey(source)) {
+            String jarurl = entryDirectory.get(source);
 
-            final JarHolder holder = (JarHolder) jarfiles.get( jarurl );
-            if ( holder != null )
-            {
-                return holder.getPlexusResource( source );
+            final JarHolder holder = jarFiles.get(jarurl);
+            if (holder != null) {
+                return holder.getPlexusResource(source);
             }
         }
 
-        throw new ResourceNotFoundException( "JarResourceLoader Error: cannot find resource " + source );
+        throw new ResourceNotFoundException("JarResourceLoader Error: cannot find resource " + source);
     }
 
-    public void addSearchPath( String path )
-    {
-        if ( !paths.contains( path ) )
-        {
-            if ( initializeCalled )
-            {
-                loadJar( path );
-            }
-            paths.add( path );
+    @Override
+    public void addSearchPath(String path) {
+        if (!paths.contains(path)) {
+            loadJar(path);
+            paths.add(path);
         }
     }
 }


=====================================
src/main/java/org/codehaus/plexus/resource/loader/ResourceIOException.java
=====================================
@@ -29,18 +29,14 @@ package org.codehaus.plexus.resource.loader;
  * {@link ResourceLoader} encounters an {@link java.io.IOException}, which indicates that the resource exists, but
  * wasn't accessible.
  */
-public class ResourceIOException
-    extends ResourceNotFoundException
-{
+public class ResourceIOException extends ResourceNotFoundException {
     private static final long serialVersionUID = 1342518075415496931L;
 
-    public ResourceIOException( String name, Throwable cause )
-    {
-        super( name, cause );
+    public ResourceIOException(String name, Throwable cause) {
+        super(name, cause);
     }
 
-    public ResourceIOException( String name )
-    {
-        super( name );
+    public ResourceIOException(String name) {
+        super(name);
     }
 }


=====================================
src/main/java/org/codehaus/plexus/resource/loader/ResourceLoader.java
=====================================
@@ -32,25 +32,21 @@ import org.codehaus.plexus.resource.PlexusResource;
  * @author <a href="mailto:trygvis at inamo.no">Trygve Laugstøl</a>
  * @version $Id$
  */
-public interface ResourceLoader
-{
-    String ROLE = ResourceLoader.class.getName();
-
+public interface ResourceLoader {
     /**
      * @deprecated Use {@link #getResource(String)}.
      */
-    InputStream getResourceAsInputStream( String name )
-        throws ResourceNotFoundException;
+    @Deprecated
+    InputStream getResourceAsInputStream(String name) throws ResourceNotFoundException;
 
-    void addSearchPath( String path );
+    void addSearchPath(String path);
 
     /**
      * Returns the resource with the given name.
-     * 
+     *
      * @param name The resources name.
      * @return The resource with the given name.
      * @throws ResourceNotFoundException The resource wasn't found, or wasn't available.
      */
-    PlexusResource getResource( String name )
-        throws ResourceNotFoundException;
+    PlexusResource getResource(String name) throws ResourceNotFoundException;
 }


=====================================
src/main/java/org/codehaus/plexus/resource/loader/ResourceNotFoundException.java
=====================================
@@ -28,18 +28,14 @@ package org.codehaus.plexus.resource.loader;
  * @author <a href="mailto:trygvis at inamo.no">Trygve Laugstøl</a>
  * @version $Id$
  */
-public class ResourceNotFoundException
-    extends Exception
-{
+public class ResourceNotFoundException extends Exception {
     private static final long serialVersionUID = -566548849252110330L;
 
-    public ResourceNotFoundException( String name )
-    {
-        super( "Could not find resource '" + name + "'." );
+    public ResourceNotFoundException(String name) {
+        super("Could not find resource '" + name + "'.");
     }
 
-    public ResourceNotFoundException( String name, Throwable cause )
-    {
-        super( "Could not find resource '" + name + "'.", cause );
+    public ResourceNotFoundException(String name, Throwable cause) {
+        super("Could not find resource '" + name + "'.", cause);
     }
 }


=====================================
src/main/java/org/codehaus/plexus/resource/loader/ThreadContextClasspathResourceLoader.java
=====================================
@@ -24,49 +24,43 @@ package org.codehaus.plexus.resource.loader;
  * SOFTWARE.
  */
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.net.URL;
 
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.resource.PlexusResource;
-import org.codehaus.plexus.resource.loader.AbstractResourceLoader;
-import org.codehaus.plexus.resource.loader.ResourceNotFoundException;
 
 /**
  * @author <a href="mailto:trygvis at inamo.no">Trygve Laugstøl</a>
  * @version $Id$
  */
- at Component( role = ResourceLoader.class, hint = "classloader" )
-public class ThreadContextClasspathResourceLoader
-    extends AbstractResourceLoader
-{
-
+ at Named(ThreadContextClasspathResourceLoader.ID)
+ at Singleton
+public class ThreadContextClasspathResourceLoader extends AbstractResourceLoader {
     public static final String ID = "classloader";
 
     // ----------------------------------------------------------------------
     // ResourceLoader Implementation
     // ----------------------------------------------------------------------
 
-    public PlexusResource getResource( String name )
-        throws ResourceNotFoundException
-    {
+    @Override
+    public PlexusResource getResource(String name) throws ResourceNotFoundException {
         ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
 
-        if ( classLoader == null )
-        {
-            throw new ResourceNotFoundException( name );
+        if (classLoader == null) {
+            throw new ResourceNotFoundException(name);
         }
 
-        if ( name != null && name.startsWith( "/" ) )
-        {
-            name = name.substring( 1 );
+        if (name != null && name.startsWith("/")) {
+            name = name.substring(1);
         }
 
-        final URL url = classLoader.getResource( name );
-        if ( url == null )
-        {
-            throw new ResourceNotFoundException( name );
+        final URL url = classLoader.getResource(name);
+        if (url == null) {
+            throw new ResourceNotFoundException(name);
         }
 
-        return new URLPlexusResource( url );
+        return new URLPlexusResource(url);
     }
 }


=====================================
src/main/java/org/codehaus/plexus/resource/loader/URLPlexusResource.java
=====================================
@@ -35,42 +35,35 @@ import org.codehaus.plexus.resource.PlexusResource;
 /**
  * Implementation of {@link PlexusResource} for URL's.
  */
-public class URLPlexusResource
-    implements PlexusResource
-{
+public class URLPlexusResource implements PlexusResource {
     private final URL url;
 
-    public URLPlexusResource( URL url )
-    {
+    public URLPlexusResource(URL url) {
         this.url = url;
     }
 
-    public File getFile()
-        throws IOException
-    {
+    @Override
+    public File getFile() {
         return null;
     }
 
-    public InputStream getInputStream()
-        throws IOException
-    {
+    @Override
+    public InputStream getInputStream() throws IOException {
         return url.openStream();
     }
 
-    public String getName()
-    {
+    @Override
+    public String getName() {
         return url.toExternalForm();
     }
 
-    public URI getURI()
-        throws IOException
-    {
+    @Override
+    public URI getURI() {
         return null;
     }
 
-    public URL getURL()
-        throws IOException
-    {
+    @Override
+    public URL getURL() {
         return url;
     }
 }


=====================================
src/main/java/org/codehaus/plexus/resource/loader/URLResourceLoader.java
=====================================
@@ -24,6 +24,8 @@ package org.codehaus.plexus.resource.loader;
  * SOFTWARE.
  */
 
+import javax.inject.Named;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
@@ -31,63 +33,51 @@ import java.net.URL;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.resource.PlexusResource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author Jason van Zyl
  */
- at Component( role = ResourceLoader.class, hint = "url", instantiationStrategy = "per-lookup" )
-public class URLResourceLoader
-    extends AbstractResourceLoader
-{
+ at Named(URLResourceLoader.ID)
+public class URLResourceLoader extends AbstractResourceLoader {
+    private static final Logger LOGGER = LoggerFactory.getLogger(URLResourceLoader.class);
 
     public static final String ID = "url";
 
-    protected Map<String, String> templateRoots = new HashMap<String, String>();
+    protected Map<String, String> templateRoots = new HashMap<>();
 
     /**
-     * Get an InputStream so that the Runtime can build a template with it.
-     * 
-     * @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.
+     * Get an {@link PlexusResource} with given name.
+     *
+     * @param name name of resource to fetch byte stream of.
+     * @return PlexusResource containing the resource.
+     * @throws ResourceNotFoundException if resource not found.
      */
-    public PlexusResource getResource( String name )
-        throws ResourceNotFoundException
-    {
-        if ( name == null || name.length() == 0 )
-        {
-            throw new ResourceNotFoundException( "URLResourceLoader : No template name provided" );
+    @Override
+    public PlexusResource getResource(String name) throws ResourceNotFoundException {
+        if (name == null || name.length() == 0) {
+            throw new ResourceNotFoundException("URLResourceLoader : No template name provided");
         }
 
-        for ( String path : paths )
-        {
-            try
-            {
-                URL u = new URL( path + name );
+        for (String path : paths) {
+            try {
+                URL u = new URL(path + name);
 
                 final InputStream inputStream = u.openStream();
 
-                if ( inputStream != null )
-                {
-                    if ( getLogger().isDebugEnabled() )
-                    {
-                        getLogger().debug( "URLResourceLoader: Found '" + name + "' at '" + path + "'" );
-                    }
+                if (inputStream != null) {
+                    LOGGER.debug("URLResourceLoader: Found '{}' at '{}'", name, path);
 
                     // save this root for later re-use
-                    templateRoots.put( name, path );
+                    templateRoots.put(name, path);
 
-                    return new URLPlexusResource( u )
-                    {
+                    return new URLPlexusResource(u) {
                         private boolean useSuper;
 
-                        public synchronized InputStream getInputStream()
-                            throws IOException
-                        {
-                            if ( !useSuper )
-                            {
+                        public synchronized InputStream getInputStream() throws IOException {
+                            if (!useSuper) {
                                 useSuper = true;
                                 return inputStream;
                             }
@@ -95,43 +85,25 @@ public class URLResourceLoader
                         }
                     };
                 }
-            }
-            catch( MalformedURLException mue )
-            {
-                if ( getLogger().isDebugEnabled() )
-                {
-                    getLogger().debug( "URLResourceLoader: No valid URL '" + path + name + '\'' );
-                }
-            }
-            catch ( IOException ioe )
-            {
-                if ( getLogger().isDebugEnabled() )
-                {
-                    getLogger().debug(
-                                       "URLResourceLoader: Exception when looking for '" + name + "' at '" + path + "'",
-                                       ioe );
-                }
+            } catch (MalformedURLException mue) {
+                LOGGER.debug("URLResourceLoader: No valid URL '{}{}'", path, name);
+            } catch (IOException ioe) {
+                LOGGER.debug("URLResourceLoader: Exception when looking for '{}' at '{}'", name, path, ioe);
             }
         }
-        
+
         // here we try to download without any path just the name which can be an url
-        try
-        {
-            URL u = new URL( name );
+        try {
+            URL u = new URL(name);
 
             final InputStream inputStream = u.openStream();
 
-            if ( inputStream != null )
-            {
-                return new URLPlexusResource( u )
-                {
+            if (inputStream != null) {
+                return new URLPlexusResource(u) {
                     private boolean useSuper;
 
-                    public synchronized InputStream getInputStream()
-                        throws IOException
-                    {
-                        if ( !useSuper )
-                        {
+                    public synchronized InputStream getInputStream() throws IOException {
+                        if (!useSuper) {
                             useSuper = true;
                             return inputStream;
                         }
@@ -139,23 +111,13 @@ public class URLResourceLoader
                     }
                 };
             }
+        } catch (MalformedURLException mue) {
+            LOGGER.debug("URLResourceLoader: No valid URL '{}'", name);
+        } catch (IOException ioe) {
+            LOGGER.debug("URLResourceLoader: Exception when looking for '{}'", name, ioe);
         }
-        catch( MalformedURLException mue )
-        {
-            if ( getLogger().isDebugEnabled() )
-            {
-                getLogger().debug( "URLResourceLoader: No valid URL '" + name + '\'' );
-            }
-        }
-        catch ( IOException ioe )
-        {
-            if ( getLogger().isDebugEnabled() )
-            {
-                getLogger().debug( "URLResourceLoader: Exception when looking for '" + name + '\'', ioe );
-            }
-       }
 
         // convert to a general Velocity ResourceNotFoundException
-        throw new ResourceNotFoundException( name );
+        throw new ResourceNotFoundException(name);
     }
 }


=====================================
src/test/java/org/codehaus/plexus/resource/ResourceManagerTest.java
=====================================
@@ -24,95 +24,94 @@ package org.codehaus.plexus.resource;
  * SOFTWARE.
  */
 
+import javax.inject.Inject;
+
 import java.io.File;
 import java.io.InputStream;
 
-import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.testing.PlexusTest;
 import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.IOUtil;
+import org.junit.jupiter.api.Test;
+
+import static org.codehaus.plexus.testing.PlexusExtension.getBasedir;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  * @author <a href="mailto:trygvis at inamo.no">Trygve Laugstøl</a>
  * @version $Id$
  */
-public class ResourceManagerTest
-    extends PlexusTestCase
-{
-
-    public void testResourceManagerRetrievingInputStreams()
-        throws Exception
-    {
-        ResourceManager resourceManager = (ResourceManager) lookup( ResourceManager.ROLE );
+ at PlexusTest
+class ResourceManagerTest {
+    @Inject
+    private ResourceManager resourceManager;
 
+    @Test
+    void testResourceManagerRetrievingInputStreams() throws Exception {
         InputStream in;
 
-        File absoluteFile = new File( getBasedir(), "src/test/file-resources/dir/file.txt" ).getAbsoluteFile();
-        assertTrue( absoluteFile.isFile() );
-        assertTrue( absoluteFile.isAbsolute() );
-        in = resourceManager.getResourceAsInputStream( absoluteFile.getAbsolutePath() );
-        assertEquals( "file.txt", IOUtil.toString( in, "UTF-8" ) );
+        File absoluteFile = new File(getBasedir(), "src/test/file-resources/dir/file.txt").getAbsoluteFile();
+        assertTrue(absoluteFile.isFile());
+        assertTrue(absoluteFile.isAbsolute());
+        in = resourceManager.getResourceAsInputStream(absoluteFile.getAbsolutePath());
+        assertEquals("file.txt", IOUtil.toString(in, "UTF-8"));
 
-        in = resourceManager.getResourceAsInputStream( "/dir/file.txt" );
-        assertEquals( "file.txt", IOUtil.toString( in, "UTF-8" ) );
+        in = resourceManager.getResourceAsInputStream("/dir/file.txt");
+        assertEquals("file.txt", IOUtil.toString(in, "UTF-8"));
 
-        in = resourceManager.getResourceAsInputStream( "dir/file.txt" );
-        assertEquals( "file.txt", IOUtil.toString( in, "UTF-8" ) );
+        in = resourceManager.getResourceAsInputStream("dir/file.txt");
+        assertEquals("file.txt", IOUtil.toString(in, "UTF-8"));
 
-        in = resourceManager.getResourceAsInputStream( "/dir/classpath.txt" );
-        assertEquals( "classpath.txt", IOUtil.toString( in, "UTF-8" ) );
+        in = resourceManager.getResourceAsInputStream("/dir/classpath.txt");
+        assertEquals("classpath.txt", IOUtil.toString(in, "UTF-8"));
 
-        in = resourceManager.getResourceAsInputStream( "dir/classpath.txt" );
-        assertEquals( "classpath.txt", IOUtil.toString( in, "UTF-8" ) );
+        in = resourceManager.getResourceAsInputStream("dir/classpath.txt");
+        assertEquals("classpath.txt", IOUtil.toString(in, "UTF-8"));
     }
 
-    public void testResourceManagerRetrievingFiles()
-        throws Exception
-    {
-        ResourceManager resourceManager = (ResourceManager) lookup( ResourceManager.ROLE );
-
+    @Test
+    void testResourceManagerRetrievingFiles() throws Exception {
         File f;
 
-        File absoluteFile = new File( getBasedir(), "src/test/file-resources/dir/file.txt" ).getAbsoluteFile();
-        assertTrue( absoluteFile.isFile() );
-        assertTrue( absoluteFile.isAbsolute() );
-        f = resourceManager.getResourceAsFile( absoluteFile.getAbsolutePath() );
-        assertEquals( "file.txt", FileUtils.fileRead( f, "UTF-8" ) );
+        File absoluteFile = new File(getBasedir(), "src/test/file-resources/dir/file.txt").getAbsoluteFile();
+        assertTrue(absoluteFile.isFile());
+        assertTrue(absoluteFile.isAbsolute());
+        f = resourceManager.getResourceAsFile(absoluteFile.getAbsolutePath());
+        assertEquals("file.txt", FileUtils.fileRead(f, "UTF-8"));
 
-        f = resourceManager.getResourceAsFile( "/dir/file.txt" );
-        assertEquals( "file.txt", FileUtils.fileRead( f, "UTF-8" ) );
+        f = resourceManager.getResourceAsFile("/dir/file.txt");
+        assertEquals("file.txt", FileUtils.fileRead(f, "UTF-8"));
 
-        f = resourceManager.getResourceAsFile( "dir/file.txt" );
-        assertEquals( "file.txt", FileUtils.fileRead( f, "UTF-8" ) );
+        f = resourceManager.getResourceAsFile("dir/file.txt");
+        assertEquals("file.txt", FileUtils.fileRead(f, "UTF-8"));
 
-        f = resourceManager.getResourceAsFile( "/dir/classpath.txt" );
-        assertEquals( "classpath.txt", FileUtils.fileRead( f, "UTF-8" ) );
+        f = resourceManager.getResourceAsFile("/dir/classpath.txt");
+        assertEquals("classpath.txt", FileUtils.fileRead(f, "UTF-8"));
 
-        f = resourceManager.getResourceAsFile( "dir/classpath.txt" );
-        assertEquals( "classpath.txt", FileUtils.fileRead( f, "UTF-8" ) );
+        f = resourceManager.getResourceAsFile("dir/classpath.txt");
+        assertEquals("classpath.txt", FileUtils.fileRead(f, "UTF-8"));
     }
 
-    public void testResourceManagerRetrievingFilesToSpecificLocation()
-        throws Exception
-    {
-        File outDir = new File( getBasedir(), "target/test/unit/output-directory" );
-
-        ResourceManager resourceManager = (ResourceManager) lookup( ResourceManager.ROLE );
-
-        resourceManager.setOutputDirectory( outDir );
-
-        File ef = new File( outDir, "test/f.txt" );
-        FileUtils.forceDelete( ef );
-        assertFalse( ef.exists() );
-        File f = resourceManager.getResourceAsFile( "dir/file.txt", "test/f.txt" );
-        assertEquals( "file.txt", FileUtils.fileRead( f, "UTF-8" ) );
-        assertEquals( ef, f );
-
-        File ec = new File( outDir, "test/c.txt" );
-        FileUtils.forceDelete( ec );
-        assertFalse( ec.exists() );
-        File c = resourceManager.getResourceAsFile( "dir/classpath.txt", "test/c.txt" );
-        assertEquals( "classpath.txt", FileUtils.fileRead( c, "UTF-8" ) );
-        assertEquals( ec, c );
+    @Test
+    void testResourceManagerRetrievingFilesToSpecificLocation() throws Exception {
+        File outDir = new File(getBasedir(), "target/test/unit/output-directory");
+
+        resourceManager.setOutputDirectory(outDir);
+
+        File ef = new File(outDir, "test/f.txt");
+        FileUtils.forceDelete(ef);
+        assertFalse(ef.exists());
+        File f = resourceManager.getResourceAsFile("dir/file.txt", "test/f.txt");
+        assertEquals("file.txt", FileUtils.fileRead(f, "UTF-8"));
+        assertEquals(ef, f);
+
+        File ec = new File(outDir, "test/c.txt");
+        FileUtils.forceDelete(ec);
+        assertFalse(ec.exists());
+        File c = resourceManager.getResourceAsFile("dir/classpath.txt", "test/c.txt");
+        assertEquals("classpath.txt", FileUtils.fileRead(c, "UTF-8"));
+        assertEquals(ec, c);
     }
-
 }


=====================================
src/test/java/org/codehaus/plexus/resource/loader/AbstractResourceLoaderTest.java
=====================================
@@ -24,50 +24,44 @@ package org.codehaus.plexus.resource.loader;
  * SOFTWARE.
  */
 
+import javax.inject.Inject;
+
 import java.io.InputStream;
 
-import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.resource.loader.ResourceLoader;
-import org.codehaus.plexus.resource.loader.ResourceNotFoundException;
 import org.codehaus.plexus.util.IOUtil;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.fail;
+
 /**
  * @author <a href="mailto:trygvis at inamo.no">Trygve Laugstøl</a>
  * @version $Id$
  */
-public abstract class AbstractResourceLoaderTest
-    extends PlexusTestCase
-{
-    protected void assertResource( String name, String expectedContent )
-        throws Exception
-    {
-        ResourceLoader resourceLoader = (ResourceLoader) lookup( ResourceLoader.ROLE );
+public abstract class AbstractResourceLoaderTest {
+    @Inject
+    protected ResourceLoader resourceLoader;
 
-        InputStream is = resourceLoader.getResource( name ).getInputStream();
+    protected void assertResource(String name, String expectedContent) throws Exception {
 
-        assertNotNull( "The returned input stream is null, name: '" + name + "'.", is );
+        InputStream is = resourceLoader.getResource(name).getInputStream();
 
-        String actualContent = IOUtil.toString( is, "UTF-8" );
+        assertNotNull(is, "The returned input stream is null, name: '" + name + "'.");
 
-        assertEquals( expectedContent, actualContent );
-    }
+        String actualContent = IOUtil.toString(is, "UTF-8");
 
-    protected void assertMissingResource( String name )
-        throws Exception
-    {
-        ResourceLoader resourceLoader = (ResourceLoader) lookup( ResourceLoader.ROLE );
+        assertEquals(expectedContent, actualContent);
+    }
 
-        try
-        {
-            InputStream is = resourceLoader.getResource( name ).getInputStream();
+    protected void assertMissingResource(String name) throws Exception {
+        try {
+            InputStream is = resourceLoader.getResource(name).getInputStream();
 
-            String content = IOUtil.toString( is, "UTF-8" );
+            String content = IOUtil.toString(is, "UTF-8");
 
-            fail( "Expected ResourceNotFoundException while looking for a resource named '" + name + "'. Content:\n"
-                + content );
-        }
-        catch ( ResourceNotFoundException e )
-        {
+            fail("Expected ResourceNotFoundException while looking for a resource named '" + name + "'. Content:\n"
+                    + content);
+        } catch (ResourceNotFoundException e) {
             // expected
         }
     }


=====================================
src/test/java/org/codehaus/plexus/resource/loader/FileResourceLoaderTest.java
=====================================
@@ -27,44 +27,41 @@ package org.codehaus.plexus.resource.loader;
 import java.io.File;
 
 import org.codehaus.plexus.resource.PlexusResource;
-import org.codehaus.plexus.resource.loader.AbstractResourceLoaderTest;
+import org.codehaus.plexus.testing.PlexusTest;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  * @author <a href="mailto:trygvis at inamo.no">Trygve Laugstøl</a>
  * @version $Id$
  */
-public class FileResourceLoaderTest
-    extends AbstractResourceLoaderTest
-{
-    public void testLookupWithAAbsolutePathName()
-        throws Exception
-    {
-        assertResource( "/dir/file.txt", "file.txt" );
+ at PlexusTest
+class FileResourceLoaderTest extends AbstractResourceLoaderTest {
+    @Test
+    void testLookupWithAAbsolutePathName() throws Exception {
+        assertResource("/dir/file.txt", "file.txt");
     }
 
-    public void testLookupWithARelativePath()
-        throws Exception
-    {
-        assertResource( "dir/file.txt", "file.txt" );
+    @Test
+    void testLookupWithARelativePath() throws Exception {
+        assertResource("dir/file.txt", "file.txt");
     }
 
-    public void testLookupWhenTheResourceIsMissing()
-        throws Exception
-    {
-        assertMissingResource( "/foo.txt" );
+    @Test
+    void testLookupWhenTheResourceIsMissing() throws Exception {
+        assertMissingResource("/foo.txt");
 
-        assertMissingResource( "foo.txt" );
+        assertMissingResource("foo.txt");
     }
 
-    public void testPlexusResource()
-        throws Exception
-    {
-        ResourceLoader resourceLoader = (ResourceLoader) lookup( ResourceLoader.ROLE );
-        PlexusResource resource = resourceLoader.getResource( "/dir/file.txt" );
-        final File f = new File( "src/test/file-resources", "/dir/file.txt" );
-        assertEquals( f.getAbsolutePath(), resource.getFile().getPath() );
-        assertEquals( f.toURI(), resource.getURI() );
-        assertEquals( f.toURI().toURL(), resource.getURL() );
-        assertEquals( f.getAbsolutePath(), resource.getName() );
+    @Test
+    void testPlexusResource() throws Exception {
+        PlexusResource resource = resourceLoader.getResource("/dir/file.txt");
+        final File f = new File("src/test/file-resources", "/dir/file.txt");
+        assertEquals(f.getAbsolutePath(), resource.getFile().getPath());
+        assertEquals(f.toURI(), resource.getURI());
+        assertEquals(f.toURI().toURL(), resource.getURL());
+        assertEquals(f.getAbsolutePath(), resource.getName());
     }
 }


=====================================
src/test/java/org/codehaus/plexus/resource/loader/ThreadContextClasspathResourceLoaderTest.java
=====================================
@@ -27,57 +27,57 @@ package org.codehaus.plexus.resource.loader;
 import java.net.URL;
 
 import org.codehaus.plexus.resource.PlexusResource;
+import org.codehaus.plexus.testing.PlexusTest;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
 
 /**
  * @author <a href="mailto:trygvis at inamo.no">Trygve Laugstøl</a>
  * @version $Id$
  */
-public class ThreadContextClasspathResourceLoaderTest
-    extends AbstractResourceLoaderTest
-{
-    public void testLookupWithAAbsolutePathName()
-        throws Exception
-    {
-        assertResource( "/dir/classpath.txt", "classpath.txt" );
+ at PlexusTest
+class ThreadContextClasspathResourceLoaderTest extends AbstractResourceLoaderTest {
+    @Test
+    void testLookupWithAAbsolutePathName() throws Exception {
+        assertResource("/dir/classpath.txt", "classpath.txt");
     }
 
-    public void testLookupWithARelativePath()
-        throws Exception
-    {
-        assertResource( "dir/classpath.txt", "classpath.txt" );
+    @Test
+    void testLookupWithARelativePath() throws Exception {
+        assertResource("dir/classpath.txt", "classpath.txt");
     }
 
-    public void testLookupWhenTheResourceIsMissing()
-        throws Exception
-    {
-        assertMissingResource( "/foo.txt" );
+    @Test
+    void testLookupWhenTheResourceIsMissing() throws Exception {
+        assertMissingResource("/foo.txt");
 
-        assertMissingResource( "foo.txt" );
+        assertMissingResource("foo.txt");
     }
 
-    public void testLookupWithANullThreadContextClassLoader()
-        throws Exception
-    {
+    @Test
+    void testLookupWithANullThreadContextClassLoader() throws Exception {
         ClassLoader loader = Thread.currentThread().getContextClassLoader();
 
-        Thread.currentThread().setContextClassLoader( null );
+        Thread.currentThread().setContextClassLoader(null);
 
-        assertMissingResource( "/dir/classpath.txt" );
+        assertMissingResource("/dir/classpath.txt");
 
-        assertMissingResource( "dir/classpath.txt" );
+        assertMissingResource("dir/classpath.txt");
 
-        Thread.currentThread().setContextClassLoader( loader );
+        Thread.currentThread().setContextClassLoader(loader);
     }
 
-    public void testPlexusResource()
-        throws Exception
-    {
-        ResourceLoader resourceLoader = (ResourceLoader) lookup( ResourceLoader.ROLE );
-        PlexusResource resource = resourceLoader.getResource( "/dir/classpath.txt" );
-        assertNull( resource.getFile() );
-        assertNull( resource.getURI() );
-        URL url = Thread.currentThread().getContextClassLoader().getResource( "/dir/classpath.txt" );
-        assertEquals( url, resource.getURL() );
-        assertEquals( url.toExternalForm(), resource.getName() );
+    @Test
+    void testPlexusResource() throws Exception {
+        PlexusResource resource = resourceLoader.getResource("/dir/classpath.txt");
+        assertNull(resource.getFile());
+        assertNull(resource.getURI());
+        URL url = Thread.currentThread().getContextClassLoader().getResource("dir/classpath.txt");
+        assertNotNull(url);
+        assertEquals(url, resource.getURL());
+        assertEquals(url.toExternalForm(), resource.getName());
     }
 }


=====================================
src/test/java/org/codehaus/plexus/resource/loader/URLResourceLoaderTest.java
=====================================
@@ -1,48 +1,34 @@
 package org.codehaus.plexus.resource.loader;
 
-import static org.mockito.Mockito.when;
-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.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.slf4j.Logger;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
 
-public class URLResourceLoaderTest
-    extends TestCase
-{
+ at ExtendWith(MockitoExtension.class)
+class URLResourceLoaderTest {
     @Mock
     private Logger logger;
 
     @InjectMocks
     private ResourceLoader resourceLoader = new URLResourceLoader();
 
-    @Override
-    protected void setUp()
-        throws Exception
-    {
-        MockitoAnnotations.initMocks( this );
-    }
-
-    public void testMalformedURL()
-        throws Exception
-    {
-        when( logger.isDebugEnabled() ).thenReturn( true );
-
-        try
-        {
-            resourceLoader.getResource( "LICENSE.txt" );
+    @Test
+    void testMalformedURL() {
+        try {
+            resourceLoader.getResource("LICENSE.txt");
             fail();
+        } catch (ResourceNotFoundException e) {
+            verify(logger).debug("URLResourceLoader: No valid URL '{}'", "LICENSE.txt");
+            verifyNoMoreInteractions(logger);
+            assertEquals("Could not find resource 'LICENSE.txt'.", e.getMessage());
         }
-        catch ( ResourceNotFoundException e )
-        {
-            verify( logger ).isDebugEnabled();
-            verify( logger ).debug( "URLResourceLoader: No valid URL 'LICENSE.txt'" );
-            verifyNoMoreInteractions( logger );
-            assertEquals( "Could not find resource 'LICENSE.txt'.", e.getMessage() );
-        }
-
     }
 }


=====================================
src/test/java/org/codehaus/plexus/resource/loader/manager/ResourceManagerTest.java
=====================================
@@ -24,19 +24,25 @@ package org.codehaus.plexus.resource.loader.manager;
  * SOFTWARE.
  */
 
-import org.codehaus.plexus.PlexusTestCase;
+import javax.inject.Inject;
+
 import org.codehaus.plexus.resource.ResourceManager;
+import org.codehaus.plexus.testing.PlexusTest;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 /**
  * @author <a href="mailto:trygvis at inamo.no">Trygve Laugstøl</a>
  * @version $Id$
  */
-public class ResourceManagerTest
-    extends PlexusTestCase
-{
-    public void testFoo()
-        throws Exception
-    {
-        lookup( ResourceManager.ROLE );
+ at PlexusTest
+class ResourceManagerTest {
+    @Inject
+    private ResourceManager resourceManager;
+
+    @Test
+    void testFoo() {
+        assertNotNull(resourceManager);
     }
 }



View it on GitLab: https://salsa.debian.org/java-team/plexus-resources/-/commit/720e9c94896d2349253105aba658edc0f39b9439

-- 
View it on GitLab: https://salsa.debian.org/java-team/plexus-resources/-/commit/720e9c94896d2349253105aba658edc0f39b9439
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20250225/78f0cb24/attachment.htm>


More information about the pkg-java-commits mailing list