You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2019/07/12 16:43:09 UTC

[maven] branch jenkins-buld-error-wip created (now 0cf5a91)

This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a change to branch jenkins-buld-error-wip
in repository https://gitbox.apache.org/repos/asf/maven.git.


      at 0cf5a91  [MNG-6698] Lazily compute the ManagedVersionMap

This branch includes the following new commits:

     new 4eeb21e  [MNG-6675] Make Resolver debug log messages for projects and plugins consistent
     new d5f5fc4  [MNG-6680] Convert Maven Settings Builder to JSR 330
     new 8ddec1b  MNG-6681 dependency type = extension+classifier
     new 9828fbb  [MNG-6674] Upgrade Wagon to 3.3.3
     new 669c547  [MNG-5577] Maven Artifact module has no Plexus annotations
     new 0366fe4  [MNG-6686] Convert Maven Embedder to JSR 330
     new bdc75de  [MNG-6685] Convert Maven Model Builder to JSR 330
     new 5f30bb8  [MNG-6701] Document maven.repo.local property
     new e7e9e25  [MNG-6700] Equal compile source roots are added multiple times
     new 0cf5a91  [MNG-6698] Lazily compute the ManagedVersionMap

The 10 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[maven] 02/10: [MNG-6680] Convert Maven Settings Builder to JSR 330

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch jenkins-buld-error-wip
in repository https://gitbox.apache.org/repos/asf/maven.git

commit d5f5fc44e444b2ec7b0f3e5fed5d1292869490ab
Author: Joseph Walton <jo...@kafsemo.org>
AuthorDate: Sun Apr 21 21:10:45 2019 +1000

    [MNG-6680] Convert Maven Settings Builder to JSR 330
    
    Use @Named and @Singleton throughout, and switch to constructor injection
    for DefaultSettingsBuilder.
    
    This closes #246
---
 maven-settings-builder/pom.xml                     | 10 ++++-----
 .../settings/building/DefaultSettingsBuilder.java  | 24 +++++++++++++++-------
 .../building/DefaultSettingsBuilderFactory.java    | 10 +++------
 .../settings/crypto/DefaultSettingsDecrypter.java  | 17 ++++++++++-----
 .../maven/settings/io/DefaultSettingsReader.java   |  7 +++++--
 .../maven/settings/io/DefaultSettingsWriter.java   |  7 +++++--
 .../validation/DefaultSettingsValidator.java       |  7 +++++--
 7 files changed, 52 insertions(+), 30 deletions(-)

diff --git a/maven-settings-builder/pom.xml b/maven-settings-builder/pom.xml
index 381f5b1..fb676ca 100644
--- a/maven-settings-builder/pom.xml
+++ b/maven-settings-builder/pom.xml
@@ -46,8 +46,8 @@ under the License.
     </dependency>
 
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-utils</artifactId>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
@@ -55,7 +55,7 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-component-annotations</artifactId>
+      <artifactId>plexus-utils</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
@@ -70,8 +70,8 @@ under the License.
   <build>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
       </plugin>
     </plugins>
   </build>
diff --git a/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java b/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java
index 3cdae7d..675ea59 100644
--- a/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java
+++ b/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java
@@ -27,6 +27,10 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.building.FileSource;
 import org.apache.maven.building.Source;
 import org.apache.maven.settings.Settings;
@@ -36,8 +40,6 @@ import org.apache.maven.settings.io.SettingsReader;
 import org.apache.maven.settings.io.SettingsWriter;
 import org.apache.maven.settings.merge.MavenSettingsMerger;
 import org.apache.maven.settings.validation.SettingsValidator;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.interpolation.EnvarBasedValueSource;
 import org.codehaus.plexus.interpolation.InterpolationException;
 import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
@@ -49,21 +51,29 @@ import org.codehaus.plexus.interpolation.RegexBasedInterpolator;
  *
  * @author Benjamin Bentmann
  */
-@Component( role = SettingsBuilder.class )
+@Named
+@Singleton
 public class DefaultSettingsBuilder
     implements SettingsBuilder
 {
 
-    @Requirement
     private SettingsReader settingsReader;
 
-    @Requirement
     private SettingsWriter settingsWriter;
 
-    @Requirement
     private SettingsValidator settingsValidator;
 
-    private MavenSettingsMerger settingsMerger = new MavenSettingsMerger();
+    private final MavenSettingsMerger settingsMerger = new MavenSettingsMerger();
+
+    @Inject
+    public DefaultSettingsBuilder( SettingsReader settingsReader,
+                                   SettingsWriter settingsWriter,
+                                   SettingsValidator settingsValidator )
+    {
+        this.settingsReader = settingsReader;
+        this.settingsWriter = settingsWriter;
+        this.settingsValidator = settingsValidator;
+    }
 
     public DefaultSettingsBuilder setSettingsReader( SettingsReader settingsReader )
     {
diff --git a/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilderFactory.java b/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilderFactory.java
index e728ec5..805a4c8 100644
--- a/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilderFactory.java
+++ b/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilderFactory.java
@@ -59,13 +59,9 @@ public class DefaultSettingsBuilderFactory
      */
     public DefaultSettingsBuilder newInstance()
     {
-        DefaultSettingsBuilder builder = new DefaultSettingsBuilder();
-
-        builder.setSettingsReader( newSettingsReader() );
-        builder.setSettingsWriter( newSettingsWriter() );
-        builder.setSettingsValidator( newSettingsValidator() );
-
-        return builder;
+        return new DefaultSettingsBuilder( newSettingsReader(),
+                                           newSettingsWriter(),
+                                           newSettingsValidator() );
     }
 
 }
diff --git a/maven-settings-builder/src/main/java/org/apache/maven/settings/crypto/DefaultSettingsDecrypter.java b/maven-settings-builder/src/main/java/org/apache/maven/settings/crypto/DefaultSettingsDecrypter.java
index 671a20d..7d6c8b9 100644
--- a/maven-settings-builder/src/main/java/org/apache/maven/settings/crypto/DefaultSettingsDecrypter.java
+++ b/maven-settings-builder/src/main/java/org/apache/maven/settings/crypto/DefaultSettingsDecrypter.java
@@ -22,13 +22,15 @@ package org.apache.maven.settings.crypto;
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.settings.Proxy;
 import org.apache.maven.settings.Server;
 import org.apache.maven.settings.building.DefaultSettingsProblem;
 import org.apache.maven.settings.building.SettingsProblem;
 import org.apache.maven.settings.building.SettingsProblem.Severity;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.sonatype.plexus.components.sec.dispatcher.SecDispatcher;
 import org.sonatype.plexus.components.sec.dispatcher.SecDispatcherException;
 
@@ -37,13 +39,18 @@ import org.sonatype.plexus.components.sec.dispatcher.SecDispatcherException;
  *
  * @author Benjamin Bentmann
  */
-@Component( role = SettingsDecrypter.class )
+@Named
+@Singleton
 public class DefaultSettingsDecrypter
     implements SettingsDecrypter
 {
+    private final SecDispatcher securityDispatcher;
 
-    @Requirement( hint = "maven" )
-    private SecDispatcher securityDispatcher;
+    @Inject
+    public DefaultSettingsDecrypter( @Named( "maven" ) SecDispatcher securityDispatcher )
+    {
+        this.securityDispatcher = securityDispatcher;
+    }
 
     @Override
     public SettingsDecryptionResult decrypt( SettingsDecryptionRequest request )
diff --git a/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java b/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java
index fa95613..6044c0c 100644
--- a/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java
+++ b/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java
@@ -26,9 +26,11 @@ import java.io.Reader;
 import java.util.Map;
 import java.util.Objects;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.settings.Settings;
 import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
@@ -37,7 +39,8 @@ import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
  *
  * @author Benjamin Bentmann
  */
-@Component( role = SettingsReader.class )
+@Named
+@Singleton
 public class DefaultSettingsReader
     implements SettingsReader
 {
diff --git a/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java b/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java
index 96af1a3..10729a2 100644
--- a/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java
+++ b/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java
@@ -27,9 +27,11 @@ import java.io.Writer;
 import java.util.Map;
 import java.util.Objects;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.settings.Settings;
 import org.apache.maven.settings.io.xpp3.SettingsXpp3Writer;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.util.WriterFactory;
 
 /**
@@ -37,7 +39,8 @@ import org.codehaus.plexus.util.WriterFactory;
  *
  * @author Benjamin Bentmann
  */
-@Component( role = SettingsWriter.class )
+@Named
+@Singleton
 public class DefaultSettingsWriter
     implements SettingsWriter
 {
diff --git a/maven-settings-builder/src/main/java/org/apache/maven/settings/validation/DefaultSettingsValidator.java b/maven-settings-builder/src/main/java/org/apache/maven/settings/validation/DefaultSettingsValidator.java
index 1e31f50..2aec1e1 100644
--- a/maven-settings-builder/src/main/java/org/apache/maven/settings/validation/DefaultSettingsValidator.java
+++ b/maven-settings-builder/src/main/java/org/apache/maven/settings/validation/DefaultSettingsValidator.java
@@ -23,6 +23,9 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.settings.Mirror;
 import org.apache.maven.settings.Profile;
 import org.apache.maven.settings.Repository;
@@ -31,13 +34,13 @@ import org.apache.maven.settings.Server;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.settings.building.SettingsProblem.Severity;
 import org.apache.maven.settings.building.SettingsProblemCollector;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
  * @author Milos Kleint
  */
-@Component( role = SettingsValidator.class )
+@Named
+@Singleton
 public class DefaultSettingsValidator
     implements SettingsValidator
 {


[maven] 06/10: [MNG-6686] Convert Maven Embedder to JSR 330

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch jenkins-buld-error-wip
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 0366fe4b30715787e0da5f92e265650fe68f2a6f
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Fri Jan 11 03:19:11 2019 +0100

    [MNG-6686] Convert Maven Embedder to JSR 330
    
    This closes #257
---
 maven-embedder/pom.xml                             |  8 -----
 .../org/apache/maven/cli/CLIReportingUtils.java    |  2 +-
 .../main/java/org/apache/maven/cli/MavenCli.java   | 35 +++++++++++-----------
 .../SettingsXmlConfigurationProcessor.java         | 35 ++++++++++++----------
 .../maven/cli/event/ExecutionEventLogger.java      | 12 ++++----
 .../impl/UnsupportedSlf4jBindingConfiguration.java |  2 +-
 .../cli/transfer/Slf4jMavenTransferListener.java   |  4 +--
 maven-embedder/src/site/apt/logging.apt            | 24 ++-------------
 8 files changed, 48 insertions(+), 74 deletions(-)

diff --git a/maven-embedder/pom.xml b/maven-embedder/pom.xml
index a6757fb..33fd43a 100644
--- a/maven-embedder/pom.xml
+++ b/maven-embedder/pom.xml
@@ -100,10 +100,6 @@ under the License.
       <artifactId>org.eclipse.sisu.plexus</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-component-annotations</artifactId>
-    </dependency>
-    <dependency>
       <groupId>org.sonatype.plexus</groupId>
       <artifactId>plexus-sec-dispatcher</artifactId>
     </dependency>
@@ -175,10 +171,6 @@ under the License.
         <artifactId>sisu-maven-plugin</artifactId>
       </plugin>
       <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
-      </plugin>
-      <plugin>
         <groupId>org.codehaus.modello</groupId>
         <artifactId>modello-maven-plugin</artifactId>
         <configuration>
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java b/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
index e1a4c2f..fb78239 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
@@ -146,7 +146,7 @@ public final class CLIReportingUtils
 
                 for ( Throwable cause = e.getCause(); cause != null; cause = cause.getCause() )
                 {
-                    logger.error( "Caused by: " + cause.getMessage() );
+                    logger.error( "Caused by: {}", cause.getMessage() );
                 }
             }
         }
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index 4ee6aa8..ff5fcc7 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -569,7 +569,7 @@ public class MavenCli
 
         if ( slf4jLogger.isDebugEnabled() )
         {
-            slf4jLogger.debug( "Message scheme: " + ( MessageUtils.isColorEnabled() ? "color" : "plain" ) );
+            slf4jLogger.debug( "Message scheme: {}", ( MessageUtils.isColorEnabled() ? "color" : "plain" ) );
             if ( MessageUtils.isColorEnabled() )
             {
                 MessageBuilder buff = MessageUtils.buffer();
@@ -767,7 +767,7 @@ public class MavenCli
         }
         catch ( Exception e )
         {
-            slf4jLogger.warn( "Failed to read extensions descriptor " + extensionsFile + ": " + e.getMessage() );
+            slf4jLogger.warn( "Failed to read extensions descriptor {}: {}", extensionsFile, e.getMessage() );
         }
         return Collections.emptyList();
     }
@@ -795,11 +795,11 @@ public class MavenCli
 
             extRealm.setParentRealm( coreRealm );
 
-            slf4jLogger.debug( "Populating class realm " + extRealm.getId() );
+            slf4jLogger.debug( "Populating class realm {}", extRealm.getId() );
 
             for ( File file : extClassPath )
             {
-                slf4jLogger.debug( "  Included " + file );
+                slf4jLogger.debug( "  Included {}", file );
 
                 extRealm.addURL( file.toURI().toURL() );
             }
@@ -848,7 +848,7 @@ public class MavenCli
             {
                 File file = resolveFile( new File( jar ), cliRequest.workingDirectory );
 
-                slf4jLogger.debug( "  Included " + file );
+                slf4jLogger.debug( "  Included {}", file );
 
                 jars.add( file );
             }
@@ -983,13 +983,13 @@ public class MavenCli
 
             if ( !cliRequest.showErrors )
             {
-                slf4jLogger.error( "To see the full stack trace of the errors, re-run Maven with the "
-                    + buffer().strong( "-e" ) + " switch." );
+                slf4jLogger.error( "To see the full stack trace of the errors, re-run Maven with the {} switch.",
+                        buffer().strong( "-e" ) );
             }
             if ( !slf4jLogger.isDebugEnabled() )
             {
-                slf4jLogger.error( "Re-run Maven using the " + buffer().strong( "-X" )
-                    + " switch to enable full debug logging." );
+                slf4jLogger.error( "Re-run Maven using the {} switch to enable full debug logging.",
+                        buffer().strong( "-X" ) );
             }
 
             if ( !references.isEmpty() )
@@ -1000,7 +1000,7 @@ public class MavenCli
 
                 for ( Map.Entry<String, String> entry : references.entrySet() )
                 {
-                    slf4jLogger.error( buffer().strong( entry.getValue() ) + " " + entry.getKey() );
+                    slf4jLogger.error( "{} {}", buffer().strong( entry.getValue() ), entry.getKey() );
                 }
             }
 
@@ -1257,11 +1257,10 @@ public class MavenCli
 
         eventSpyDispatcher.onEvent( toolchainsRequest );
 
-        slf4jLogger.debug(
-            "Reading global toolchains from " + getLocation( toolchainsRequest.getGlobalToolchainsSource(),
-                                                             globalToolchainsFile ) );
-        slf4jLogger.debug( "Reading user toolchains from " + getLocation( toolchainsRequest.getUserToolchainsSource(),
-                                                                          userToolchainsFile ) );
+        slf4jLogger.debug( "Reading global toolchains from {}",
+                getLocation( toolchainsRequest.getGlobalToolchainsSource(), globalToolchainsFile ) );
+        slf4jLogger.debug( "Reading user toolchains from {}",
+                getLocation( toolchainsRequest.getUserToolchainsSource(), userToolchainsFile ) );
 
         ToolchainsBuildingResult toolchainsResult = toolchainsBuilder.build( toolchainsRequest );
 
@@ -1277,7 +1276,7 @@ public class MavenCli
 
             for ( Problem problem : toolchainsResult.getProblems() )
             {
-                slf4jLogger.warn( problem.getMessage() + " @ " + problem.getLocation() );
+                slf4jLogger.warn( "{} @ {}", problem.getMessage(), problem.getLocation() );
             }
 
             slf4jLogger.warn( "" );
@@ -1311,8 +1310,8 @@ public class MavenCli
         {
             if ( commandLine.hasOption( deprecatedOption ) )
             {
-                slf4jLogger.warn( "Command line option -" + deprecatedOption
-                                      + " is deprecated and will be removed in future Maven versions." );
+                slf4jLogger.warn( "Command line option -{} is deprecated and will be removed in future Maven versions.",
+                        deprecatedOption );
             }
         }
 
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/configuration/SettingsXmlConfigurationProcessor.java b/maven-embedder/src/main/java/org/apache/maven/cli/configuration/SettingsXmlConfigurationProcessor.java
index 2536a22..0a862c4 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/configuration/SettingsXmlConfigurationProcessor.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/configuration/SettingsXmlConfigurationProcessor.java
@@ -23,6 +23,10 @@ import java.io.File;
 import java.io.FileNotFoundException;
 import java.util.List;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.commons.cli.CommandLine;
 import org.apache.maven.artifact.InvalidRepositoryException;
 import org.apache.maven.bridge.MavenRepositorySystem;
@@ -43,14 +47,14 @@ import org.apache.maven.settings.building.SettingsBuildingRequest;
 import org.apache.maven.settings.building.SettingsBuildingResult;
 import org.apache.maven.settings.building.SettingsProblem;
 import org.apache.maven.settings.crypto.SettingsDecrypter;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * SettingsXmlConfigurationProcessor
  */
-@Component( role = ConfigurationProcessor.class, hint = SettingsXmlConfigurationProcessor.HINT )
+@Named ( SettingsXmlConfigurationProcessor.HINT )
+@Singleton
 public class SettingsXmlConfigurationProcessor
     implements ConfigurationProcessor
 {
@@ -65,13 +69,12 @@ public class SettingsXmlConfigurationProcessor
     public static final File DEFAULT_GLOBAL_SETTINGS_FILE =
         new File( System.getProperty( "maven.conf" ), "settings.xml" );
 
-    @Requirement
-    private Logger logger;
+    private final Logger logger = LoggerFactory.getLogger( SettingsXmlConfigurationProcessor.class );
 
-    @Requirement
+    @Inject
     private SettingsBuilder settingsBuilder;
 
-    @Requirement
+    @Inject
     private SettingsDecrypter settingsDecrypter;
 
     @Override
@@ -132,10 +135,10 @@ public class SettingsXmlConfigurationProcessor
             request.getEventSpyDispatcher().onEvent( settingsRequest );
         }
 
-        logger.debug( "Reading global settings from "
-            + getLocation( settingsRequest.getGlobalSettingsSource(), settingsRequest.getGlobalSettingsFile() ) );
-        logger.debug( "Reading user settings from "
-            + getLocation( settingsRequest.getUserSettingsSource(), settingsRequest.getUserSettingsFile() ) );
+        logger.debug( "Reading global settings from {}",
+            getLocation( settingsRequest.getGlobalSettingsSource(), settingsRequest.getGlobalSettingsFile() ) );
+        logger.debug( "Reading user settings from {}",
+            getLocation( settingsRequest.getUserSettingsSource(), settingsRequest.getUserSettingsFile() ) );
 
         SettingsBuildingResult settingsResult = settingsBuilder.build( settingsRequest );
 
@@ -153,7 +156,7 @@ public class SettingsXmlConfigurationProcessor
 
             for ( SettingsProblem problem : settingsResult.getProblems() )
             {
-                logger.warn( problem.getMessage() + " @ " + problem.getLocation() );
+                logger.warn( "{} @ {}", problem.getMessage(), problem.getLocation() );
             }
             logger.warn( "" );
         }
@@ -234,7 +237,7 @@ public class SettingsXmlConfigurationProcessor
                 {
                     try
                     {
-                        request.addRemoteRepository( 
+                        request.addRemoteRepository(
                             MavenRepositorySystem.buildArtifactRepository( remoteRepository ) );
                     }
                     catch ( InvalidRepositoryException e )
@@ -242,20 +245,20 @@ public class SettingsXmlConfigurationProcessor
                         // do nothing for now
                     }
                 }
-                
+
                 List<Repository> pluginRepositories = rawProfile.getPluginRepositories();
                 for ( Repository pluginRepository : pluginRepositories )
                 {
                     try
                     {
-                        request.addPluginArtifactRepository( 
+                        request.addPluginArtifactRepository(
                             MavenRepositorySystem.buildArtifactRepository( pluginRepository ) );
                     }
                     catch ( InvalidRepositoryException e )
                     {
                         // do nothing for now
                     }
-                }                
+                }
             }
         }
         return request;
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
index cb34d8e..17da655 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
@@ -115,8 +115,8 @@ public class ExecutionEventLogger
             for ( MavenProject project : projects )
             {
                 int len = LINE_LENGTH - project.getName().length() - project.getPackaging().length() - 2;
-                logger.info( project.getName() + chars( ' ', ( len > 0 ) ? len : 1 ) + '[' + project.getPackaging()
-                    + ']' );
+                logger.info( "{}{}[{}]",
+                        project.getName(), chars( ' ', ( len > 0 ) ? len : 1 ), project.getPackaging() );
             }
 
             totalProjects = projects.size();
@@ -267,9 +267,9 @@ public class ExecutionEventLogger
 
         String wallClock = session.getRequest().getDegreeOfConcurrency() > 1 ? " (Wall Clock)" : "";
 
-        logger.info( "Total time:  " + formatDuration( time ) + wallClock );
+        logger.info( "Total time:  {}{}", formatDuration( time ), wallClock );
 
-        logger.info( "Finished at: " + formatTimestamp( finish ) );
+        logger.info( "Finished at: {}", formatTimestamp( finish ) );
     }
 
     @Override
@@ -345,8 +345,8 @@ public class ExecutionEventLogger
     {
         if ( logger.isWarnEnabled() )
         {
-            logger.warn( "Goal " + event.getMojoExecution().getGoal()
-                + " requires online mode for execution but Maven is currently offline, skipping" );
+            logger.warn( "Goal {} requires online mode for execution but Maven is currently offline, skipping",
+                    event.getMojoExecution().getGoal() );
         }
     }
 
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/UnsupportedSlf4jBindingConfiguration.java b/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/UnsupportedSlf4jBindingConfiguration.java
index d269770..4757cff 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/UnsupportedSlf4jBindingConfiguration.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/UnsupportedSlf4jBindingConfiguration.java
@@ -51,7 +51,7 @@ public class UnsupportedSlf4jBindingConfiguration
     @Override
     public void activate()
     {
-        logger.warn( "The SLF4J binding actually used is not supported by Maven: " + slf4jBinding );
+        logger.warn( "The SLF4J binding actually used is not supported by Maven: {}", slf4jBinding );
         logger.warn( "Maven supported bindings are:" );
 
         String ls = System.getProperty( "line.separator" );
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java
index 086e406..57e69ba 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java
@@ -69,8 +69,8 @@ public class Slf4jMavenTransferListener
         throws TransferCancelledException
     {
         TransferResource resource = event.getResource();
-        out.warn( event.getException().getMessage() + " from " + resource.getRepositoryId() + " for "
-            + resource.getRepositoryUrl() + resource.getResourceName() );
+        out.warn( "{} from {} for {}{}", event.getException().getMessage(), resource.getRepositoryId(),
+            resource.getRepositoryUrl(), resource.getResourceName() );
     }
 
     @Override
diff --git a/maven-embedder/src/site/apt/logging.apt b/maven-embedder/src/site/apt/logging.apt
index 800857c..7ff3129 100644
--- a/maven-embedder/src/site/apt/logging.apt
+++ b/maven-embedder/src/site/apt/logging.apt
@@ -64,28 +64,8 @@ Maven Logging
 
 * Getting Logger Instance
 
- Plexus Logger and LoggerManager can be injected in Plexus component using Plexus annotations
-
-+------+
-import org.codehaus.plexus.logging.Logger;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
-
-@Component( role = MyComponent.class )
-public class DefaultMyComponent
-    implements MyComponent
-{
-    @Requirement
-    private Logger logger;
-
-    @Requirement
-    private LoggerManager loggerManager;
-}
-+------+
-
- Starting with Maven 3.1.0, SLF4J Logger can be used directly too, without Plexus. Of course, this will only work when run under
- Maven 3.1.0, then this technique can be used safely only in Maven core components or in plugins/component not requiring
- compatibility with previous Maven versions.
+ Starting with Maven 3.1.0, SLF4J Logger can be used directly. This technique can be used safely in Maven core
+ components or in plugins/component not requiring compatibility with previous Maven versions.
 
 +-----+
 import org.slf4j.Logger;


[maven] 01/10: [MNG-6675] Make Resolver debug log messages for projects and plugins consistent

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch jenkins-buld-error-wip
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 4eeb21e68dc20e17a56d3e49dbd924555153ff98
Author: Christian Schulte <cs...@schulte.it>
AuthorDate: Thu Jun 22 02:31:30 2017 +0200

    [MNG-6675] Make Resolver debug log messages for projects and plugins consistent
    
    This closes #124 and closes #253
---
 .../DefaultPluginDependenciesResolver.java         | 65 +++++++++++++++++++++-
 .../DefaultProjectDependenciesResolver.java        | 38 ++++++++-----
 2 files changed, 87 insertions(+), 16 deletions(-)

diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
index b79b15f..808c09d 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
@@ -19,6 +19,7 @@ package org.apache.maven.plugin.internal;
  * under the License.
  */
 
+import java.util.Collection;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -30,6 +31,7 @@ import org.apache.maven.plugin.PluginResolutionException;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.util.StringUtils;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.RepositorySystemSession;
@@ -54,6 +56,7 @@ import org.eclipse.aether.resolution.DependencyResolutionException;
 import org.eclipse.aether.util.artifact.JavaScopes;
 import org.eclipse.aether.util.filter.AndDependencyFilter;
 import org.eclipse.aether.util.filter.ScopeDependencyFilter;
+import org.eclipse.aether.util.graph.manager.DependencyManagerUtils;
 import org.eclipse.aether.util.graph.selector.AndDependencySelector;
 import org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
 import org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy;
@@ -221,6 +224,7 @@ public class DefaultPluginDependenciesResolver
         return node;
     }
 
+    // Keep this class in sync with org.apache.maven.project.DefaultProjectDependenciesResolver.GraphLogger
     class GraphLogger
         implements DependencyVisitor
     {
@@ -234,10 +238,67 @@ public class DefaultPluginDependenciesResolver
             org.eclipse.aether.graph.Dependency dep = node.getDependency();
             if ( dep != null )
             {
-                Artifact art = dep.getArtifact();
+                org.eclipse.aether.artifact.Artifact art = dep.getArtifact();
 
                 buffer.append( art );
-                buffer.append( ':' ).append( dep.getScope() );
+                if ( StringUtils.isNotEmpty( dep.getScope() ) )
+                {
+                    buffer.append( ':' ).append( dep.getScope() );
+                }
+
+                if ( dep.isOptional() )
+                {
+                    buffer.append( " (optional)" );
+                }
+
+                // TODO We currently cannot tell which <dependencyManagement> section contained the management
+                //      information. When the resolver provides this information, these log messages should be updated
+                //      to contain it.
+                if ( ( node.getManagedBits() & DependencyNode.MANAGED_SCOPE ) == DependencyNode.MANAGED_SCOPE )
+                {
+                    final String premanagedScope = DependencyManagerUtils.getPremanagedScope( node );
+                    buffer.append( " (scope managed from " );
+                    buffer.append( StringUtils.defaultString( premanagedScope, "default" ) );
+                    buffer.append( ')' );
+                }
+
+                if ( ( node.getManagedBits() & DependencyNode.MANAGED_VERSION ) == DependencyNode.MANAGED_VERSION )
+                {
+                    final String premanagedVersion = DependencyManagerUtils.getPremanagedVersion( node );
+                    buffer.append( " (version managed from " );
+                    buffer.append( StringUtils.defaultString( premanagedVersion, "default" ) );
+                    buffer.append( ')' );
+                }
+
+                if ( ( node.getManagedBits() & DependencyNode.MANAGED_OPTIONAL ) == DependencyNode.MANAGED_OPTIONAL )
+                {
+                    final Boolean premanagedOptional = DependencyManagerUtils.getPremanagedOptional( node );
+                    buffer.append( " (optionality managed from " );
+                    buffer.append( StringUtils.defaultString( premanagedOptional, "default" ) );
+                    buffer.append( ')' );
+                }
+
+                if ( ( node.getManagedBits() & DependencyNode.MANAGED_EXCLUSIONS )
+                         == DependencyNode.MANAGED_EXCLUSIONS )
+                {
+                    final Collection<org.eclipse.aether.graph.Exclusion> premanagedExclusions =
+                        DependencyManagerUtils.getPremanagedExclusions( node );
+
+                    buffer.append( " (exclusions managed from " );
+                    buffer.append( StringUtils.defaultString( premanagedExclusions, "default" ) );
+                    buffer.append( ')' );
+                }
+
+                if ( ( node.getManagedBits() & DependencyNode.MANAGED_PROPERTIES )
+                         == DependencyNode.MANAGED_PROPERTIES )
+                {
+                    final Map<String, String> premanagedProperties =
+                        DependencyManagerUtils.getPremanagedProperties( node );
+
+                    buffer.append( " (properties managed from " );
+                    buffer.append( StringUtils.defaultString( premanagedProperties, "default" ) );
+                    buffer.append( ')' );
+                }
             }
 
             logger.debug( buffer.toString() );
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
index 4bb9609..0409fb8 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
@@ -228,6 +228,7 @@ public class DefaultProjectDependenciesResolver
         }
     }
 
+    // Keep this class in sync with org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.GraphLogger
     class GraphLogger
         implements DependencyVisitor
     {
@@ -251,10 +252,18 @@ public class DefaultProjectDependenciesResolver
                 org.eclipse.aether.artifact.Artifact art = dep.getArtifact();
 
                 buffer.append( art );
-                buffer.append( ':' ).append( dep.getScope() );
+                if ( StringUtils.isNotEmpty( dep.getScope() ) )
+                {
+                    buffer.append( ':' ).append( dep.getScope() );
+                }
+
+                if ( dep.isOptional() )
+                {
+                    buffer.append( " (optional)" );
+                }
 
                 // TODO We currently cannot tell which <dependencyManagement> section contained the management
-                //      information. When resolver 1.1 provides this information, these log messages should be updated
+                //      information. When the resolver provides this information, these log messages should be updated
                 //      to contain it.
                 if ( ( node.getManagedBits() & DependencyNode.MANAGED_SCOPE ) == DependencyNode.MANAGED_SCOPE )
                 {
@@ -281,24 +290,25 @@ public class DefaultProjectDependenciesResolver
                 }
 
                 if ( ( node.getManagedBits() & DependencyNode.MANAGED_EXCLUSIONS )
-                        == DependencyNode.MANAGED_EXCLUSIONS )
+                         == DependencyNode.MANAGED_EXCLUSIONS )
                 {
-                    // TODO As of resolver 1.1, use DependencyManagerUtils.getPremanagedExclusions( node ).
-                    //      The resolver 1.0.x releases do not record premanaged state of exclusions.
-                    buffer.append( " (exclusions managed)" );
+                    final Collection<org.eclipse.aether.graph.Exclusion> premanagedExclusions =
+                        DependencyManagerUtils.getPremanagedExclusions( node );
+
+                    buffer.append( " (exclusions managed from " );
+                    buffer.append( StringUtils.defaultString( premanagedExclusions, "default" ) );
+                    buffer.append( ')' );
                 }
 
                 if ( ( node.getManagedBits() & DependencyNode.MANAGED_PROPERTIES )
-                        == DependencyNode.MANAGED_PROPERTIES )
+                         == DependencyNode.MANAGED_PROPERTIES )
                 {
-                    // TODO As of resolver 1.1, use DependencyManagerUtils.getPremanagedProperties( node ).
-                    //      The resolver 1.0.x releases do not record premanaged state of properties.
-                    buffer.append( " (properties managed)" );
-                }
+                    final Map<String, String> premanagedProperties =
+                        DependencyManagerUtils.getPremanagedProperties( node );
 
-                if ( dep.isOptional() )
-                {
-                    buffer.append( " (optional)" );
+                    buffer.append( " (properties managed from " );
+                    buffer.append( StringUtils.defaultString( premanagedProperties, "default" ) );
+                    buffer.append( ')' );
                 }
             }
             else


[maven] 08/10: [MNG-6701] Document maven.repo.local property

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch jenkins-buld-error-wip
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 5f30bb816546d0374c236ab16fe3b61611e3b020
Author: AElMehdi <as...@gmail.com>
AuthorDate: Tue Jun 18 15:45:54 2019 +0200

    [MNG-6701] Document maven.repo.local property
    
    This closes #265
---
 maven-model-builder/src/site/apt/index.apt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/maven-model-builder/src/site/apt/index.apt b/maven-model-builder/src/site/apt/index.apt
index 3895e5c..e18ad9d 100644
--- a/maven-model-builder/src/site/apt/index.apt
+++ b/maven-model-builder/src/site/apt/index.apt
@@ -184,6 +184,8 @@ Maven Model Builder
 *----+------+------+
 | <<<maven.build.version>>> | The full build version of the current Maven execution <(since 3.0.4)>. For example, "<<<Apache Maven 3.2.2 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19T14:51:28+01:00)>>>". | <<<$\{maven.build.version\}>>> |
 *----+------+------+
+| <<<maven.repo.local>>> | The repository on the local machine Maven shall use to store installed and downloaded artifacts (POMs, JARs, etc). | <<<$\{user.home\}/.m2/repository>>> |
+*----+------+------+
 | <<<*>>> | Java system properties (see {{{http://download.oracle.com/javase/6/docs/api/java/lang/System.html#getProperties()}JDK reference}}) | <<<$\{user.home\}>>>\
  | | <<<$\{java.home\}>>> |
 *----+------+------+


[maven] 03/10: MNG-6681 dependency type = extension+classifier

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch jenkins-buld-error-wip
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 8ddec1b7a30dc9109bdae8d5223de94c8091b26b
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Sun Jun 16 10:35:34 2019 +0200

    MNG-6681 dependency type = extension+classifier
    
    removed misleading "While it usually represents the extension on the
    filename of the dependency, that is not always the case. A type can be
    mapped to a different extension and a classifier. The type often
    corresponds to the packaging used, though this is also not always the
    case."
---
 maven-model/src/main/mdo/maven.mdo | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/maven-model/src/main/mdo/maven.mdo b/maven-model/src/main/mdo/maven.mdo
index c13da2f..b199ee1 100644
--- a/maven-model/src/main/mdo/maven.mdo
+++ b/maven-model/src/main/mdo/maven.mdo
@@ -1022,17 +1022,10 @@
           <version>4.0.0+</version>
           <description>
             <![CDATA[
-            The type of dependency. While it
-            usually represents the extension on the filename of the dependency,
-            that is not always the case. A type can be mapped to a different
-            extension and a classifier.
-            The type often corresponds to the packaging used, though this is also
-            not always the case.
+            The type of dependency, that will be mapped to a file extension, an optional classifier, and a few other attributes.
             Some examples are <code>jar</code>, <code>war</code>, <code>ejb-client</code>
             and <code>test-jar</code>: see <a href="../maven-core/artifact-handlers.html">default
-            artifact handlers</a> for a list.
-            New types can be defined by plugins that set
-            <code>extensions</code> to <code>true</code>, so this is not a complete list.
+            artifact handlers</a> for a list. New types can be defined by extensions, so this is not a complete list.
             ]]>
           </description>
           <type>String</type>


[maven] 04/10: [MNG-6674] Upgrade Wagon to 3.3.3

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch jenkins-buld-error-wip
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 9828fbb24d55188b36369a8642a3e384e7c7482e
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Sun Jun 16 16:23:17 2019 +0200

    [MNG-6674] Upgrade Wagon to 3.3.3
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 0d8a11a..0db11dd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,7 +59,7 @@ under the License.
     <plexusUtilsVersion>3.2.0</plexusUtilsVersion>
     <guiceVersion>4.2.1</guiceVersion>
     <sisuInjectVersion>0.3.3</sisuInjectVersion>
-    <wagonVersion>3.3.2</wagonVersion>
+    <wagonVersion>3.3.3</wagonVersion>
     <securityDispatcherVersion>1.4</securityDispatcherVersion>
     <cipherVersion>1.7</cipherVersion>
     <modelloVersion>1.11</modelloVersion>


[maven] 10/10: [MNG-6698] Lazily compute the ManagedVersionMap

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch jenkins-buld-error-wip
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 0cf5a9131da62cf95e3e6839eeb74547a936f792
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Fri Jun 28 23:34:24 2019 +0200

    [MNG-6698] Lazily compute the ManagedVersionMap
    
    This map is not used by Maven and the computation can be quite heavy, so lazily
    compute it. In addition, do not clone the map as it's an unmodifiable one already.
    
    This closes #263
---
 .../maven/project/DefaultProjectBuilder.java       | 66 +++++++++++++++++++---
 .../org/apache/maven/project/MavenProject.java     |  2 +-
 2 files changed, 59 insertions(+), 9 deletions(-)

diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
index 4309688..400b716 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
@@ -21,8 +21,10 @@ package org.apache.maven.project;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.AbstractMap;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -780,21 +782,69 @@ public class DefaultProjectBuilder
         Map<String, Artifact> map = null;
         if ( repositorySystem != null )
         {
-            DependencyManagement dependencyManagement = project.getDependencyManagement();
+            final DependencyManagement dependencyManagement = project.getDependencyManagement();
             if ( ( dependencyManagement != null ) && ( ( dependencyManagement.getDependencies() ) != null )
                 && ( dependencyManagement.getDependencies().size() > 0 ) )
             {
-                map = new HashMap<>();
-                for ( Dependency d : dependencyManagement.getDependencies() )
+                map = new AbstractMap<String, Artifact>()
                 {
-                    Artifact artifact = repositorySystem.createDependencyArtifact( d );
+                    HashMap<String, Artifact> delegate;
 
-                    if ( artifact != null )
+                    @Override
+                    public Set<Entry<String, Artifact>> entrySet()
                     {
-                        map.put( d.getManagementKey(), artifact );
+                        return Collections.unmodifiableSet( compute().entrySet() );
                     }
-                }
-                map = Collections.unmodifiableMap( map );
+
+                    @Override
+                    public Set<String> keySet()
+                    {
+                        return Collections.unmodifiableSet( compute().keySet() );
+                    }
+
+                    @Override
+                    public Collection<Artifact> values()
+                    {
+                        return Collections.unmodifiableCollection( compute().values() );
+                    }
+
+                    @Override
+                    public boolean containsValue( Object value )
+                    {
+                        return compute().containsValue( value );
+                    }
+
+                    @Override
+                    public boolean containsKey( Object key )
+                    {
+                        return compute().containsKey( key );
+                    }
+
+                    @Override
+                    public Artifact get( Object key )
+                    {
+                        return compute().get( key );
+                    }
+
+                    HashMap<String, Artifact> compute()
+                    {
+                        if ( delegate == null )
+                        {
+                            delegate = new HashMap<>();
+                            for ( Dependency d : dependencyManagement.getDependencies() )
+                            {
+                                Artifact artifact = repositorySystem.createDependencyArtifact( d );
+
+                                if ( artifact != null )
+                                {
+                                    delegate.put( d.getManagementKey(), artifact );
+                                }
+                            }
+                        }
+
+                        return delegate;
+                    }
+                };
             }
             else
             {
diff --git a/maven-core/src/main/java/org/apache/maven/project/MavenProject.java b/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
index bf10961..75c3348 100644
--- a/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
+++ b/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
@@ -1304,7 +1304,7 @@ public class MavenProject
 
         if ( project.getManagedVersionMap() != null )
         {
-            setManagedVersionMap( new HashMap<>( project.getManagedVersionMap() ) );
+            setManagedVersionMap( project.getManagedVersionMap() );
         }
 
         lifecyclePhases.addAll( project.lifecyclePhases );


[maven] 07/10: [MNG-6685] Convert Maven Model Builder to JSR 330

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch jenkins-buld-error-wip
in repository https://gitbox.apache.org/repos/asf/maven.git

commit bdc75de881e8675849a5def2afebc928dc745959
Author: Joseph Walton <jo...@kafsemo.org>
AuthorDate: Mon Jun 17 22:13:19 2019 +1000

    [MNG-6685] Convert Maven Model Builder to JSR 330
    
    This closes #256
---
 .../manager/DefaultProfileManagerTest.java         | 10 +++--
 .../artifact/DefaultMavenMetadataCacheTest.java    |  8 ++--
 .../project/artifact/MavenMetadataSourceTest.java  |  2 +
 .../maven/cli/CLIManagerDocumentationTest.java     |  7 ++--
 maven-model-builder/pom.xml                        |  8 +++-
 .../maven/model/building/DefaultModelBuilder.java  | 45 ++++++++++++----------
 .../model/building/DefaultModelProcessor.java      | 15 +++++---
 .../DefaultDependencyManagementImporter.java       |  7 +++-
 .../inheritance/DefaultInheritanceAssembler.java   |  7 +++-
 .../AbstractStringBasedModelInterpolator.java      |  7 ++--
 .../StringSearchModelInterpolator.java             |  7 +++-
 .../apache/maven/model/io/DefaultModelReader.java  |  7 +++-
 .../apache/maven/model/io/DefaultModelWriter.java  |  7 +++-
 .../maven/model/locator/DefaultModelLocator.java   |  6 ++-
 .../DefaultDependencyManagementInjector.java       |  7 +++-
 .../DefaultPluginManagementInjector.java           |  7 +++-
 .../normalization/DefaultModelNormalizer.java      |  7 +++-
 .../model/path/DefaultModelPathTranslator.java     | 11 ++++--
 .../model/path/DefaultModelUrlNormalizer.java      | 11 ++++--
 .../maven/model/path/DefaultPathTranslator.java    |  6 ++-
 .../maven/model/path/DefaultUrlNormalizer.java     |  6 ++-
 .../plugin/DefaultPluginConfigurationExpander.java |  7 +++-
 .../plugin/DefaultReportConfigurationExpander.java |  7 +++-
 .../model/plugin/DefaultReportingConverter.java    |  7 +++-
 .../model/profile/DefaultProfileInjector.java      |  7 +++-
 .../model/profile/DefaultProfileSelector.java      | 11 ++++--
 .../profile/activation/FileProfileActivator.java   | 11 ++++--
 .../activation/JdkVersionProfileActivator.java     |  7 +++-
 .../OperatingSystemProfileActivator.java           |  7 +++-
 .../activation/PropertyProfileActivator.java       |  7 +++-
 .../model/superpom/DefaultSuperPomProvider.java    | 11 ++++--
 .../model/validation/DefaultModelValidator.java    |  7 +++-
 .../DefaultInheritanceAssemblerTest.java           | 19 +++++----
 .../AbstractModelInterpolatorTest.java             |  5 ++-
 .../StringSearchModelInterpolatorTest.java         |  2 +-
 .../activation/AbstractProfileActivatorTest.java   | 12 ++----
 .../validation/DefaultModelValidatorTest.java      |  7 ++--
 37 files changed, 213 insertions(+), 119 deletions(-)

diff --git a/maven-compat/src/test/java/org/apache/maven/profiles/manager/DefaultProfileManagerTest.java b/maven-compat/src/test/java/org/apache/maven/profiles/manager/DefaultProfileManagerTest.java
index 8e3b86a..7431808 100644
--- a/maven-compat/src/test/java/org/apache/maven/profiles/manager/DefaultProfileManagerTest.java
+++ b/maven-compat/src/test/java/org/apache/maven/profiles/manager/DefaultProfileManagerTest.java
@@ -27,16 +27,20 @@ import org.apache.maven.model.ActivationProperty;
 import org.apache.maven.model.Profile;
 import org.apache.maven.profiles.DefaultProfileManager;
 import org.apache.maven.profiles.ProfileManager;
+import org.codehaus.plexus.ContainerConfiguration;
+import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusTestCase;
 
 public class DefaultProfileManagerTest
     extends PlexusTestCase
 {
 
-    public void setUp()
-        throws Exception
+    @Override
+    protected void customizeContainerConfiguration( ContainerConfiguration configuration )
     {
-        super.setUp();
+        super.customizeContainerConfiguration( configuration );
+        configuration.setAutoWiring( true );
+        configuration.setClassPathScanning( PlexusConstants.SCANNING_ON );
     }
 
     public void testShouldActivateDefaultProfile()
diff --git a/maven-core/src/test/java/org/apache/maven/project/artifact/DefaultMavenMetadataCacheTest.java b/maven-core/src/test/java/org/apache/maven/project/artifact/DefaultMavenMetadataCacheTest.java
index 6b103b2..c50cd70 100644
--- a/maven-core/src/test/java/org/apache/maven/project/artifact/DefaultMavenMetadataCacheTest.java
+++ b/maven-core/src/test/java/org/apache/maven/project/artifact/DefaultMavenMetadataCacheTest.java
@@ -28,13 +28,15 @@ import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter;
 import org.apache.maven.project.artifact.DefaultMavenMetadataCache.CacheKey;
 import org.apache.maven.repository.DelegatingLocalArtifactRepository;
 import org.apache.maven.repository.RepositorySystem;
-import org.codehaus.plexus.PlexusTestCase;
+import org.apache.maven.repository.TestRepositorySystem;
+
+import junit.framework.TestCase;
 
 /**
  * @author Igor Fedorenko
  */
 public class DefaultMavenMetadataCacheTest
-    extends PlexusTestCase
+    extends TestCase
 {
     private RepositorySystem repositorySystem;
 
@@ -42,7 +44,7 @@ public class DefaultMavenMetadataCacheTest
         throws Exception
     {
         super.setUp();
-        repositorySystem = lookup( RepositorySystem.class );
+        repositorySystem = new TestRepositorySystem();
     }
 
     @Override
diff --git a/maven-core/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java b/maven-core/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java
index 5486e96..05d7d3e 100644
--- a/maven-core/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java
+++ b/maven-core/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java
@@ -21,7 +21,9 @@ package org.apache.maven.project.artifact;
 
 import org.apache.maven.repository.RepositorySystem;
 import org.codehaus.plexus.PlexusTestCase;
+import org.junit.Ignore;
 
+@Ignore
 public class MavenMetadataSourceTest
     extends PlexusTestCase
 {
diff --git a/maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java b/maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java
index f58d75b..3a78f33 100644
--- a/maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java
+++ b/maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java
@@ -28,15 +28,16 @@ import java.util.Comparator;
 import java.util.List;
 
 import org.apache.commons.cli.Option;
-import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
 
+import junit.framework.TestCase;
+
 /**
  * Pseudo test to generate documentation fragment about supported CLI options. TODO such documentation generation code
  * should not be necessary as unit test but should be run during site generation (Velocity? Doxia macro?)
  */
 public class CLIManagerDocumentationTest
-    extends PlexusTestCase
+    extends TestCase
 {
     private final static String LS = System.getProperty( "line.separator" );
 
@@ -100,7 +101,7 @@ public class CLIManagerDocumentationTest
     public void testOptionsAsHtml()
         throws IOException
     {
-        File options = getTestFile( "target/test-classes/options.html" );
+        File options = new File( "target/test-classes/options.html" );
         FileUtils.fileWrite( options, "UTF-8", getOptionsAsHtml() );
     }
 
diff --git a/maven-model-builder/pom.xml b/maven-model-builder/pom.xml
index 29a5667..9a85016 100644
--- a/maven-model-builder/pom.xml
+++ b/maven-model-builder/pom.xml
@@ -43,8 +43,8 @@ under the License.
       <artifactId>plexus-interpolation</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-component-annotations</artifactId>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
@@ -60,6 +60,10 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.eclipse.sisu</groupId>
+      <artifactId>org.eclipse.sisu.inject</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.sisu</groupId>
       <artifactId>org.eclipse.sisu.plexus</artifactId>
       <scope>test</scope>
     </dependency>
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
index 8714611..d127f56 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
@@ -59,10 +59,9 @@ import org.apache.maven.model.resolution.UnresolvableModelException;
 import org.apache.maven.model.resolution.WorkspaceModelResolver;
 import org.apache.maven.model.superpom.SuperPomProvider;
 import org.apache.maven.model.validation.ModelValidator;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.interpolation.MapBasedValueSource;
 import org.codehaus.plexus.interpolation.StringSearchInterpolator;
+import org.eclipse.sisu.Nullable;
 
 import java.io.File;
 import java.io.IOException;
@@ -76,65 +75,71 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Properties;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import static org.apache.maven.model.building.Result.error;
 import static org.apache.maven.model.building.Result.newResult;
 
 /**
  * @author Benjamin Bentmann
  */
-@Component( role = ModelBuilder.class )
+@Named
+@Singleton
 public class DefaultModelBuilder
     implements ModelBuilder
 {
-    @Requirement
+    @Inject
     private ModelProcessor modelProcessor;
 
-    @Requirement
+    @Inject
     private ModelValidator modelValidator;
 
-    @Requirement
+    @Inject
     private ModelNormalizer modelNormalizer;
 
-    @Requirement
+    @Inject
     private ModelInterpolator modelInterpolator;
 
-    @Requirement
+    @Inject
     private ModelPathTranslator modelPathTranslator;
 
-    @Requirement
+    @Inject
     private ModelUrlNormalizer modelUrlNormalizer;
 
-    @Requirement
+    @Inject
     private SuperPomProvider superPomProvider;
 
-    @Requirement
+    @Inject
     private InheritanceAssembler inheritanceAssembler;
 
-    @Requirement
+    @Inject
     private ProfileSelector profileSelector;
 
-    @Requirement
+    @Inject
     private ProfileInjector profileInjector;
 
-    @Requirement
+    @Inject
     private PluginManagementInjector pluginManagementInjector;
 
-    @Requirement
+    @Inject
     private DependencyManagementInjector dependencyManagementInjector;
 
-    @Requirement
+    @Inject
     private DependencyManagementImporter dependencyManagementImporter;
 
-    @Requirement( optional = true )
+    @Inject
+    @Nullable
     private LifecycleBindingsInjector lifecycleBindingsInjector;
 
-    @Requirement
+    @Inject
     private PluginConfigurationExpander pluginConfigurationExpander;
 
-    @Requirement
+    @Inject
     private ReportConfigurationExpander reportConfigurationExpander;
 
-    @Requirement
+    @Inject
     private ReportingConverter reportingConverter;
 
     public DefaultModelBuilder setModelProcessor( ModelProcessor modelProcessor )
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProcessor.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProcessor.java
index 6f4f084..a275022 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProcessor.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProcessor.java
@@ -25,24 +25,29 @@ import java.io.InputStream;
 import java.io.Reader;
 import java.util.Map;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Model;
 import org.apache.maven.model.io.ModelReader;
 import org.apache.maven.model.locator.ModelLocator;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
+import org.eclipse.sisu.Typed;
 
 /**
  * DefaultModelProcessor
  */
-@Component( role = ModelProcessor.class )
+@Named
+@Singleton
+@Typed( ModelProcessor.class )
 public class DefaultModelProcessor
     implements ModelProcessor
 {
 
-    @Requirement
+    @Inject
     private ModelLocator locator;
 
-    @Requirement
+    @Inject
     private ModelReader reader;
 
     public DefaultModelProcessor setModelLocator( ModelLocator locator )
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java b/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java
index cce7d7f..b277bf3 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java
@@ -24,19 +24,22 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DependencyManagement;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.building.ModelBuildingRequest;
 import org.apache.maven.model.building.ModelProblemCollector;
-import org.codehaus.plexus.component.annotations.Component;
 
 /**
  * Handles the import of dependency management from other models into the target model.
  *
  * @author Benjamin Bentmann
  */
-@Component( role = DependencyManagementImporter.class )
+@Named
+@Singleton
 public class DefaultDependencyManagementImporter
     implements DependencyManagementImporter
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java b/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java
index 7622f84..11219c3 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java
@@ -26,6 +26,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.InputLocation;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.ModelBase;
@@ -36,7 +39,6 @@ import org.apache.maven.model.Reporting;
 import org.apache.maven.model.building.ModelBuildingRequest;
 import org.apache.maven.model.building.ModelProblemCollector;
 import org.apache.maven.model.merge.MavenModelMerger;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
@@ -45,7 +47,8 @@ import org.codehaus.plexus.util.StringUtils;
  * @author Benjamin Bentmann
  */
 @SuppressWarnings( { "checkstyle:methodname" } )
-@Component( role = InheritanceAssembler.class )
+@Named
+@Singleton
 public class DefaultInheritanceAssembler
     implements InheritanceAssembler
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
index 0322f89..69d7e80 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
@@ -27,6 +27,8 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Properties;
 
+import javax.inject.Inject;
+
 import org.apache.maven.model.Model;
 import org.apache.maven.model.building.ModelBuildingRequest;
 import org.apache.maven.model.building.ModelProblem.Severity;
@@ -35,7 +37,6 @@ import org.apache.maven.model.building.ModelProblemCollector;
 import org.apache.maven.model.building.ModelProblemCollectorRequest;
 import org.apache.maven.model.path.PathTranslator;
 import org.apache.maven.model.path.UrlNormalizer;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.interpolation.AbstractValueSource;
 import org.codehaus.plexus.interpolation.InterpolationException;
 import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
@@ -86,10 +87,10 @@ public abstract class AbstractStringBasedModelInterpolator
         TRANSLATED_PATH_EXPRESSIONS = translatedPrefixes;
     }
 
-    @Requirement
+    @Inject
     private PathTranslator pathTranslator;
 
-    @Requirement
+    @Inject
     private UrlNormalizer urlNormalizer;
 
     private Interpolator interpolator;
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java
index afd3b0a..0fb953d 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java
@@ -26,7 +26,6 @@ import org.apache.maven.model.building.ModelProblem.Severity;
 import org.apache.maven.model.building.ModelProblem.Version;
 import org.apache.maven.model.building.ModelProblemCollector;
 import org.apache.maven.model.building.ModelProblemCollectorRequest;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
 import org.codehaus.plexus.interpolation.Interpolator;
 import org.codehaus.plexus.interpolation.StringSearchInterpolator;
@@ -45,10 +44,14 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 /**
  * StringSearchModelInterpolator
  */
-@Component( role = ModelInterpolator.class )
+@Named
+@Singleton
 public class StringSearchModelInterpolator
     extends AbstractStringBasedModelInterpolator
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java b/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java
index cc1e2fc..b0778d8 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java
@@ -27,11 +27,13 @@ import java.io.Reader;
 import java.util.Map;
 import java.util.Objects;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.InputSource;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.xml.XmlStreamReader;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
@@ -41,7 +43,8 @@ import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
  *
  * @author Benjamin Bentmann
  */
-@Component( role = ModelReader.class )
+@Named
+@Singleton
 public class DefaultModelReader
     implements ModelReader
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java b/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java
index d0da9a3..650ae95 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java
@@ -27,9 +27,11 @@ import java.io.Writer;
 import java.util.Map;
 import java.util.Objects;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Model;
 import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.util.WriterFactory;
 
 /**
@@ -37,7 +39,8 @@ import org.codehaus.plexus.util.WriterFactory;
  *
  * @author Benjamin Bentmann
  */
-@Component( role = ModelWriter.class )
+@Named
+@Singleton
 public class DefaultModelWriter
     implements ModelWriter
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/locator/DefaultModelLocator.java b/maven-model-builder/src/main/java/org/apache/maven/model/locator/DefaultModelLocator.java
index 299da65..fd29dc6 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/locator/DefaultModelLocator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/locator/DefaultModelLocator.java
@@ -21,14 +21,16 @@ package org.apache.maven.model.locator;
 
 import java.io.File;
 
-import org.codehaus.plexus.component.annotations.Component;
+import javax.inject.Named;
+import javax.inject.Singleton;
 
 /**
  * Locates a POM file within a project base directory.
  *
  * @author Benjamin Bentmann
  */
-@Component( role = ModelLocator.class )
+@Named
+@Singleton
 public class DefaultModelLocator
     implements ModelLocator
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java b/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java
index 4547407..f9ae3af 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java
@@ -24,6 +24,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DependencyManagement;
 import org.apache.maven.model.Exclusion;
@@ -31,7 +34,6 @@ import org.apache.maven.model.Model;
 import org.apache.maven.model.building.ModelBuildingRequest;
 import org.apache.maven.model.building.ModelProblemCollector;
 import org.apache.maven.model.merge.MavenModelMerger;
-import org.codehaus.plexus.component.annotations.Component;
 
 /**
  * Handles injection of dependency management into the model.
@@ -39,7 +41,8 @@ import org.codehaus.plexus.component.annotations.Component;
  * @author Benjamin Bentmann
  */
 @SuppressWarnings( { "checkstyle:methodname" } )
-@Component( role = DependencyManagementInjector.class )
+@Named
+@Singleton
 public class DefaultDependencyManagementInjector
     implements DependencyManagementInjector
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java b/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java
index 9d4dc19..b0db72e 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java
@@ -25,6 +25,9 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Plugin;
@@ -34,7 +37,6 @@ import org.apache.maven.model.PluginManagement;
 import org.apache.maven.model.building.ModelBuildingRequest;
 import org.apache.maven.model.building.ModelProblemCollector;
 import org.apache.maven.model.merge.MavenModelMerger;
-import org.codehaus.plexus.component.annotations.Component;
 
 /**
  * Handles injection of plugin management into the model.
@@ -42,7 +44,8 @@ import org.codehaus.plexus.component.annotations.Component;
  * @author Benjamin Bentmann
  */
 @SuppressWarnings( { "checkstyle:methodname" } )
-@Component( role = PluginManagementInjector.class )
+@Named
+@Singleton
 public class DefaultPluginManagementInjector
     implements PluginManagementInjector
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/normalization/DefaultModelNormalizer.java b/maven-model-builder/src/main/java/org/apache/maven/model/normalization/DefaultModelNormalizer.java
index d625bb5..9f86c09 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/normalization/DefaultModelNormalizer.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/normalization/DefaultModelNormalizer.java
@@ -25,6 +25,9 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Model;
@@ -32,7 +35,6 @@ import org.apache.maven.model.Plugin;
 import org.apache.maven.model.building.ModelBuildingRequest;
 import org.apache.maven.model.building.ModelProblemCollector;
 import org.apache.maven.model.merge.MavenModelMerger;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
@@ -40,7 +42,8 @@ import org.codehaus.plexus.util.StringUtils;
  *
  * @author Benjamin Bentmann
  */
-@Component( role = ModelNormalizer.class )
+@Named
+@Singleton
 public class DefaultModelNormalizer
     implements ModelNormalizer
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelPathTranslator.java b/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelPathTranslator.java
index e4f319c..26fe10c 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelPathTranslator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelPathTranslator.java
@@ -23,25 +23,28 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Reporting;
 import org.apache.maven.model.Resource;
 import org.apache.maven.model.building.ModelBuildingRequest;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 
 /**
  * Resolves relative paths within a model against a specific base directory.
  *
  * @author Benjamin Bentmann
  */
-@Component( role = ModelPathTranslator.class )
+@Named
+@Singleton
 public class DefaultModelPathTranslator
     implements ModelPathTranslator
 {
 
-    @Requirement
+    @Inject
     private PathTranslator pathTranslator;
 
     public DefaultModelPathTranslator setPathTranslator( PathTranslator pathTranslator )
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelUrlNormalizer.java b/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelUrlNormalizer.java
index 2093f8f..22ace6f 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelUrlNormalizer.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelUrlNormalizer.java
@@ -19,13 +19,15 @@ package org.apache.maven.model.path;
  * under the License.
  */
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.DistributionManagement;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Scm;
 import org.apache.maven.model.Site;
 import org.apache.maven.model.building.ModelBuildingRequest;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 
 /**
  * Normalizes URLs to remove the ugly parent references "../" that got potentially inserted by URL adjustment during
@@ -33,12 +35,13 @@ import org.codehaus.plexus.component.annotations.Requirement;
  *
  * @author Benjamin Bentmann
  */
-@Component( role = ModelUrlNormalizer.class )
+@Named
+@Singleton
 public class DefaultModelUrlNormalizer
     implements ModelUrlNormalizer
 {
 
-    @Requirement
+    @Inject
     private UrlNormalizer urlNormalizer;
 
     public DefaultModelUrlNormalizer setUrlNormalizer( UrlNormalizer urlNormalizer )
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultPathTranslator.java b/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultPathTranslator.java
index 1ad9d03..f15da53 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultPathTranslator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultPathTranslator.java
@@ -21,14 +21,16 @@ package org.apache.maven.model.path;
 
 import java.io.File;
 
-import org.codehaus.plexus.component.annotations.Component;
+import javax.inject.Named;
+import javax.inject.Singleton;
 
 /**
  * Resolves relative paths against a specific base directory.
  *
  * @author Benjamin Bentmann
  */
-@Component( role = PathTranslator.class )
+@Named
+@Singleton
 public class DefaultPathTranslator
     implements PathTranslator
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultUrlNormalizer.java b/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultUrlNormalizer.java
index 120b02f..9b9216d 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultUrlNormalizer.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultUrlNormalizer.java
@@ -19,14 +19,16 @@ package org.apache.maven.model.path;
  * under the License.
  */
 
-import org.codehaus.plexus.component.annotations.Component;
+import javax.inject.Named;
+import javax.inject.Singleton;
 
 /**
  * Normalizes a URL.
  *
  * @author Benjamin Bentmann
  */
-@Component( role = UrlNormalizer.class )
+@Named
+@Singleton
 public class DefaultUrlNormalizer
     implements UrlNormalizer
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultPluginConfigurationExpander.java b/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultPluginConfigurationExpander.java
index dc7cf13..012a685 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultPluginConfigurationExpander.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultPluginConfigurationExpander.java
@@ -21,6 +21,9 @@ package org.apache.maven.model.plugin;
 
 import java.util.List;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Plugin;
@@ -28,7 +31,6 @@ import org.apache.maven.model.PluginExecution;
 import org.apache.maven.model.PluginManagement;
 import org.apache.maven.model.building.ModelBuildingRequest;
 import org.apache.maven.model.building.ModelProblemCollector;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 
 /**
@@ -36,7 +38,8 @@ import org.codehaus.plexus.util.xml.Xpp3Dom;
  *
  * @author Benjamin Bentmann
  */
-@Component( role = PluginConfigurationExpander.class )
+@Named
+@Singleton
 public class DefaultPluginConfigurationExpander
     implements PluginConfigurationExpander
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportConfigurationExpander.java b/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportConfigurationExpander.java
index 9c84299..b221ac2 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportConfigurationExpander.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportConfigurationExpander.java
@@ -19,13 +19,15 @@ package org.apache.maven.model.plugin;
  * under the License.
  */
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Model;
 import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.model.ReportSet;
 import org.apache.maven.model.Reporting;
 import org.apache.maven.model.building.ModelBuildingRequest;
 import org.apache.maven.model.building.ModelProblemCollector;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 
 /**
@@ -33,7 +35,8 @@ import org.codehaus.plexus.util.xml.Xpp3Dom;
  *
  * @author Benjamin Bentmann
  */
-@Component( role = ReportConfigurationExpander.class )
+@Named
+@Singleton
 public class DefaultReportConfigurationExpander
     implements ReportConfigurationExpander
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java b/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java
index a3c17ad..04b414b 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java
@@ -19,6 +19,9 @@ package org.apache.maven.model.plugin;
  * under the License.
  */
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Build;
 import org.apache.maven.model.InputLocation;
 import org.apache.maven.model.InputSource;
@@ -33,7 +36,6 @@ import org.apache.maven.model.building.ModelProblemCollector;
 import org.apache.maven.model.building.ModelProblemCollectorRequest;
 import org.apache.maven.model.building.ModelProblem.Severity;
 import org.apache.maven.model.building.ModelProblem.Version;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 
@@ -43,7 +45,8 @@ import org.codehaus.plexus.util.xml.Xpp3Dom;
  *
  * @author Benjamin Bentmann
  */
-@Component( role = ReportingConverter.class )
+@Named
+@Singleton
 public class DefaultReportingConverter
     implements ReportingConverter
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileInjector.java b/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileInjector.java
index 32a2fc0..d7f4473 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileInjector.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileInjector.java
@@ -25,6 +25,9 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Build;
 import org.apache.maven.model.BuildBase;
 import org.apache.maven.model.Model;
@@ -39,14 +42,14 @@ import org.apache.maven.model.Reporting;
 import org.apache.maven.model.building.ModelBuildingRequest;
 import org.apache.maven.model.building.ModelProblemCollector;
 import org.apache.maven.model.merge.MavenModelMerger;
-import org.codehaus.plexus.component.annotations.Component;
 
 /**
  * Handles profile injection into the model.
  *
  * @author Benjamin Bentmann
  */
-@Component( role = ProfileInjector.class )
+@Named
+@Singleton
 @SuppressWarnings( { "checkstyle:methodname" } )
 public class DefaultProfileInjector
     implements ProfileInjector
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileSelector.java b/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileSelector.java
index 457ab2a..178789f 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileSelector.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileSelector.java
@@ -24,6 +24,10 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Activation;
 import org.apache.maven.model.Profile;
 import org.apache.maven.model.building.ModelProblemCollector;
@@ -31,20 +35,19 @@ import org.apache.maven.model.building.ModelProblem.Severity;
 import org.apache.maven.model.building.ModelProblem.Version;
 import org.apache.maven.model.building.ModelProblemCollectorRequest;
 import org.apache.maven.model.profile.activation.ProfileActivator;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 
 /**
  * Calculates the active profiles among a given collection of profiles.
  *
  * @author Benjamin Bentmann
  */
-@Component( role = ProfileSelector.class )
+@Named
+@Singleton
 public class DefaultProfileSelector
     implements ProfileSelector
 {
 
-    @Requirement( role = ProfileActivator.class )
+    @Inject
     private List<ProfileActivator> activators = new ArrayList<>();
 
     public DefaultProfileSelector addProfileActivator( ProfileActivator profileActivator )
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java b/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java
index a7da86c..abfa57e 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java
@@ -21,6 +21,10 @@ package org.apache.maven.model.profile.activation;
 
 import java.io.File;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Activation;
 import org.apache.maven.model.ActivationFile;
 import org.apache.maven.model.Profile;
@@ -30,8 +34,6 @@ import org.apache.maven.model.building.ModelProblem.Version;
 import org.apache.maven.model.building.ModelProblemCollectorRequest;
 import org.apache.maven.model.path.PathTranslator;
 import org.apache.maven.model.profile.ProfileActivationContext;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.interpolation.AbstractValueSource;
 import org.codehaus.plexus.interpolation.MapBasedValueSource;
 import org.codehaus.plexus.interpolation.RegexBasedInterpolator;
@@ -49,12 +51,13 @@ import org.codehaus.plexus.util.StringUtils;
  * @see ActivationFile
  * @see org.apache.maven.model.validation.DefaultModelValidator#validateRawModel
  */
-@Component( role = ProfileActivator.class, hint = "file" )
+@Named( "file" )
+@Singleton
 public class FileProfileActivator
     implements ProfileActivator
 {
 
-    @Requirement
+    @Inject
     private PathTranslator pathTranslator;
 
     public FileProfileActivator setPathTranslator( PathTranslator pathTranslator )
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivator.java b/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivator.java
index 2f106e1..e9dcd77 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivator.java
@@ -23,6 +23,9 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Activation;
 import org.apache.maven.model.Profile;
 import org.apache.maven.model.building.ModelProblemCollector;
@@ -30,7 +33,6 @@ import org.apache.maven.model.building.ModelProblem.Severity;
 import org.apache.maven.model.building.ModelProblem.Version;
 import org.apache.maven.model.building.ModelProblemCollectorRequest;
 import org.apache.maven.model.profile.ProfileActivationContext;
-import org.codehaus.plexus.component.annotations.Component;
 
 /**
  * Determines profile activation based on the version of the current Java runtime.
@@ -38,7 +40,8 @@ import org.codehaus.plexus.component.annotations.Component;
  * @author Benjamin Bentmann
  * @see Activation#getJdk()
  */
-@Component( role = ProfileActivator.class, hint = "jdk-version" )
+@Named( "jdk-version" )
+@Singleton
 public class JdkVersionProfileActivator
     implements ProfileActivator
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/OperatingSystemProfileActivator.java b/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/OperatingSystemProfileActivator.java
index 30abb1f..e53141e 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/OperatingSystemProfileActivator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/OperatingSystemProfileActivator.java
@@ -19,12 +19,14 @@ package org.apache.maven.model.profile.activation;
  * under the License.
  */
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Activation;
 import org.apache.maven.model.ActivationOS;
 import org.apache.maven.model.Profile;
 import org.apache.maven.model.building.ModelProblemCollector;
 import org.apache.maven.model.profile.ProfileActivationContext;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.util.Os;
 
 /**
@@ -33,7 +35,8 @@ import org.codehaus.plexus.util.Os;
  * @author Benjamin Bentmann
  * @see ActivationOS
  */
-@Component( role = ProfileActivator.class, hint = "os" )
+@Named( "os" )
+@Singleton
 public class OperatingSystemProfileActivator
     implements ProfileActivator
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PropertyProfileActivator.java b/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PropertyProfileActivator.java
index ba7886f..671a096 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PropertyProfileActivator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PropertyProfileActivator.java
@@ -19,6 +19,9 @@ package org.apache.maven.model.profile.activation;
  * under the License.
  */
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.Activation;
 import org.apache.maven.model.ActivationProperty;
 import org.apache.maven.model.Profile;
@@ -27,7 +30,6 @@ import org.apache.maven.model.building.ModelProblem.Severity;
 import org.apache.maven.model.building.ModelProblem.Version;
 import org.apache.maven.model.building.ModelProblemCollectorRequest;
 import org.apache.maven.model.profile.ProfileActivationContext;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
@@ -36,7 +38,8 @@ import org.codehaus.plexus.util.StringUtils;
  * @author Benjamin Bentmann
  * @see ActivationProperty
  */
-@Component( role = ProfileActivator.class, hint = "property" )
+@Named( "property" )
+@Singleton
 public class PropertyProfileActivator
     implements ProfileActivator
 {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/superpom/DefaultSuperPomProvider.java b/maven-model-builder/src/main/java/org/apache/maven/model/superpom/DefaultSuperPomProvider.java
index 03554c7..930e63d 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/superpom/DefaultSuperPomProvider.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/superpom/DefaultSuperPomProvider.java
@@ -24,18 +24,21 @@ import java.io.InputStream;
 import java.util.HashMap;
 import java.util.Map;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.apache.maven.model.InputSource;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.building.ModelProcessor;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 
 /**
  * Provides the super POM that all models implicitly inherit from.
  *
  * @author Benjamin Bentmann
  */
-@Component( role = SuperPomProvider.class )
+@Named
+@Singleton
 public class DefaultSuperPomProvider
     implements SuperPomProvider
 {
@@ -45,7 +48,7 @@ public class DefaultSuperPomProvider
      */
     private Model superModel;
 
-    @Requirement
+    @Inject
     private ModelProcessor modelProcessor;
 
     public DefaultSuperPomProvider setModelProcessor( ModelProcessor modelProcessor )
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java b/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
index 722c8c2..551bd2a 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
@@ -45,7 +45,6 @@ import org.apache.maven.model.building.ModelProblem.Version;
 import org.apache.maven.model.building.ModelProblemCollector;
 import org.apache.maven.model.building.ModelProblemCollectorRequest;
 import org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator;
-import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
@@ -58,10 +57,14 @@ import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
  */
-@Component( role = ModelValidator.class )
+@Named
+@Singleton
 public class DefaultModelValidator
     implements ModelValidator
 {
diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java
index 07a121a..09f930c 100644
--- a/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java
+++ b/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java
@@ -21,12 +21,15 @@ package org.apache.maven.model.inheritance;
 
 import org.apache.maven.model.Model;
 import org.apache.maven.model.building.SimpleProblemCollector;
+import org.apache.maven.model.io.DefaultModelReader;
+import org.apache.maven.model.io.DefaultModelWriter;
 import org.apache.maven.model.io.ModelReader;
 import org.apache.maven.model.io.ModelWriter;
-import org.codehaus.plexus.PlexusTestCase;
 
 import org.xmlunit.matchers.CompareMatcher;
 
+import junit.framework.TestCase;
+
 import java.io.File;
 import java.io.IOException;
 
@@ -36,7 +39,7 @@ import static org.junit.Assert.assertThat;
  * @author Hervé Boutemy
  */
 public class DefaultInheritanceAssemblerTest
-    extends PlexusTestCase
+    extends TestCase
 {
     private ModelReader reader;
 
@@ -50,14 +53,14 @@ public class DefaultInheritanceAssemblerTest
     {
         super.setUp();
 
-        reader = lookup( ModelReader.class );
-        writer = lookup( ModelWriter.class );
-        assembler = lookup( InheritanceAssembler.class );
+        reader = new DefaultModelReader();
+        writer = new DefaultModelWriter();
+        assembler = new DefaultInheritanceAssembler();
     }
 
     private File getPom( String name )
     {
-        return getTestFile( "src/test/resources/poms/inheritance/" + name + ".xml" );
+        return new File( "src/test/resources/poms/inheritance/" + name + ".xml" );
     }
 
     private Model getModel( String name )
@@ -201,7 +204,7 @@ public class DefaultInheritanceAssemblerTest
         assembler.assembleModelInheritance( child, parent, null, problems );
 
         // write baseName + "-actual"
-        File actual = getTestFile( "target/test-classes/poms/inheritance/" + baseName
+        File actual = new File( "target/test-classes/poms/inheritance/" + baseName
             + ( fromRepo ? "-build" : "-repo" ) + "-actual.xml" );
         writer.write( actual, null, child );
 
@@ -222,7 +225,7 @@ public class DefaultInheritanceAssemblerTest
 
         assembler.assembleModelInheritance( child, parent, null, problems );
 
-        File actual = getTestFile( "target/test-classes/poms/inheritance/module-path-not-artifactId-actual.xml" );
+        File actual = new File( "target/test-classes/poms/inheritance/module-path-not-artifactId-actual.xml" );
 
         writer.write( actual, null, child );
 
diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/AbstractModelInterpolatorTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/AbstractModelInterpolatorTest.java
index aa09cb0..19a28c1 100644
--- a/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/AbstractModelInterpolatorTest.java
+++ b/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/AbstractModelInterpolatorTest.java
@@ -30,7 +30,8 @@ import org.apache.maven.model.building.DefaultModelBuildingRequest;
 import org.apache.maven.model.building.ModelBuildingRequest;
 import org.apache.maven.model.building.SimpleProblemCollector;
 import org.apache.maven.model.path.PathTranslator;
-import org.codehaus.plexus.PlexusTestCase;
+
+import junit.framework.TestCase;
 
 import java.io.File;
 import java.text.SimpleDateFormat;
@@ -45,7 +46,7 @@ import java.util.TimeZone;
  * @author jdcasey
  */
 public abstract class AbstractModelInterpolatorTest
-    extends PlexusTestCase
+    extends TestCase
 {
     private Properties context;
 
diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java
index 9c3e7de..71ebf51 100644
--- a/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java
+++ b/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java
@@ -48,7 +48,7 @@ public class StringSearchModelInterpolatorTest
         throws Exception
     {
         super.setUp();
-        interpolator = lookup( ModelInterpolator.class );
+        interpolator = new StringSearchModelInterpolator();
     }
 
 
diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/AbstractProfileActivatorTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/AbstractProfileActivatorTest.java
index edc8373..5198d04 100644
--- a/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/AbstractProfileActivatorTest.java
+++ b/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/AbstractProfileActivatorTest.java
@@ -27,8 +27,8 @@ import org.apache.maven.model.Profile;
 import org.apache.maven.model.building.SimpleProblemCollector;
 import org.apache.maven.model.profile.DefaultProfileActivationContext;
 import org.apache.maven.model.profile.ProfileActivationContext;
-import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.component.annotations.Component;
+
+import junit.framework.TestCase;
 
 /**
  * Provides common services to test {@link ProfileActivator} implementations.
@@ -36,20 +36,16 @@ import org.codehaus.plexus.component.annotations.Component;
  * @author Benjamin Bentmann
  */
 public abstract class AbstractProfileActivatorTest<T extends ProfileActivator>
-    extends PlexusTestCase
+    extends TestCase
 {
 
     private Class<T> activatorClass;
 
-    private String roleHint;
-
     protected T activator;
 
     public AbstractProfileActivatorTest( Class<T> activatorClass )
     {
         this.activatorClass = Objects.requireNonNull( activatorClass, "activatorClass cannot be null" );;
-
-        roleHint = activatorClass.getAnnotation( Component.class ).hint();
     }
 
     @Override
@@ -58,7 +54,7 @@ public abstract class AbstractProfileActivatorTest<T extends ProfileActivator>
     {
         super.setUp();
 
-        activator = activatorClass.cast( lookup( ProfileActivator.class, roleHint ) );
+        activator = activatorClass.getConstructor().newInstance();
     }
 
     @Override
diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
index 9d5f172..99ddd30 100644
--- a/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
+++ b/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
@@ -27,13 +27,14 @@ import org.apache.maven.model.building.DefaultModelBuildingRequest;
 import org.apache.maven.model.building.ModelBuildingRequest;
 import org.apache.maven.model.building.SimpleProblemCollector;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.codehaus.plexus.PlexusTestCase;
+
+import junit.framework.TestCase;
 
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
  */
 public class DefaultModelValidatorTest
-    extends PlexusTestCase
+    extends TestCase
 {
 
     private ModelValidator validator;
@@ -94,7 +95,7 @@ public class DefaultModelValidatorTest
     {
         super.setUp();
 
-        validator = lookup( ModelValidator.class );
+        validator = new DefaultModelValidator();
     }
 
     @Override


[maven] 09/10: [MNG-6700] Equal compile source roots are added multiple times

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch jenkins-buld-error-wip
in repository https://gitbox.apache.org/repos/asf/maven.git

commit e7e9e25961b023e830f15ce63383978c2ec285b6
Author: Bo Zhang <bo...@gradle.com>
AuthorDate: Sat Jul 6 08:26:26 2019 +0800

    [MNG-6700] Equal compile source roots are added multiple times
    
    This closes #266
---
 .../main/java/org/apache/maven/project/MavenProject.java    |  4 ++++
 .../java/org/apache/maven/project/MavenProjectTest.java     | 13 +++++++++++++
 2 files changed, 17 insertions(+)

diff --git a/maven-core/src/main/java/org/apache/maven/project/MavenProject.java b/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
index fd02557..bf10961 100644
--- a/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
+++ b/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
@@ -304,6 +304,10 @@ public class MavenProject
                 {
                     path = file.getAbsolutePath();
                 }
+                else if ( ".".equals( path ) )
+                {
+                    path = getBasedir().getAbsolutePath();
+                }
                 else
                 {
                     path = new File( getBasedir(), path ).getAbsolutePath();
diff --git a/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java b/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java
index 02d64b2..6b4258b 100644
--- a/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java
+++ b/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java
@@ -198,6 +198,19 @@ public class MavenProjectTest
         assertNoNulls( p.getTestClasspathElements() );
     }
 
+    public void testAddDotFile()
+    {
+        MavenProject project = new MavenProject();
+
+        File basedir = new File( System.getProperty( "java.io.tmpdir" ) );
+        project.setFile( new File( basedir, "file" ) );
+
+        project.addCompileSourceRoot( basedir.getAbsolutePath() );
+        project.addCompileSourceRoot( "." );
+
+        assertEquals( 1, project.getCompileSourceRoots().size() );
+    }
+
     private void assertNoNulls( List<String> elements )
     {
         assertFalse( elements.contains( null ) );


[maven] 05/10: [MNG-5577] Maven Artifact module has no Plexus annotations

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch jenkins-buld-error-wip
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 669c5470f55c7c4317ba200cb2631cc325e443d1
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Tue Jan 8 01:43:31 2019 +0100

    [MNG-5577] Maven Artifact module has no Plexus annotations
---
 maven-artifact/pom.xml | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/maven-artifact/pom.xml b/maven-artifact/pom.xml
index f447520..bdca22c 100644
--- a/maven-artifact/pom.xml
+++ b/maven-artifact/pom.xml
@@ -46,10 +46,6 @@ under the License.
   <build>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
-      </plugin>
-      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-jar-plugin</artifactId>
         <configuration>