You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2017/06/04 18:05:00 UTC

[01/18] maven git commit: Added some javadoc [Forced Update!]

Repository: maven
Updated Branches:
  refs/heads/MNG-6123-detect-self-references 4992690ed -> 5194216e2 (forced update)


Added some javadoc

Added javadoc help for making easier to compare two versions in command line.

Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/10a18cfe
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/10a18cfe
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/10a18cfe

Branch: refs/heads/MNG-6123-detect-self-references
Commit: 10a18cfee7a981a41c1f571ef3c60138d40e839e
Parents: 181b021
Author: LuboVarga <lu...@nike.sk>
Authored: Mon Mar 13 13:23:04 2017 +0100
Committer: GitHub <no...@github.com>
Committed: Mon Mar 13 13:23:04 2017 +0100

----------------------------------------------------------------------
 .../maven/artifact/versioning/ComparableVersion.java   | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/10a18cfe/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
----------------------------------------------------------------------
diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java b/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
index 5222871..0ae4acb 100644
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
@@ -472,8 +472,19 @@ public class ComparableVersion
 
     /**
      * Main to test version parsing and comparison.
+     * <p>
+     * To check how "1.2.7" compares to "1.2-SNAPSHOT" for example, you can issue
+     * <code>java -cp ~/.m2/repository/org/apache/maven/maven-artifact/3.3.9/maven-artifact-3.3.9.jar org.apache.maven.artifact.versioning.ComparableVersion "1.2.7" "1.2-SNAPSHOT"</code>
+     * command to commandline. Result of given command will be something like this:
+     * <pre
+     * Display parameters as parsed by Maven (in canonical form) and comparison result:
+     * 1. 1.2.7 == 1.2.7
+     *    1.2.7 > 1.2-SNAPSHOT
+     * 2. 1.2-SNAPSHOT == 1.2-snapshot
+     * </pre>
      *
-     * @param args the version strings to parse and compare
+     * @param args the version strings to parse and compare. You can pass arbitrary number of version strings and always
+     * two adjacent will be compared
      */
     public static void main( String... args )
     {


[07/18] maven git commit: [MNG-6149] MetadataResolutionResult#getGraph() never resolves request type 'test'

Posted by kh...@apache.org.
[MNG-6149] MetadataResolutionResult#getGraph() never resolves request type 'test'


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/f7d4bce2
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/f7d4bce2
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/f7d4bce2

Branch: refs/heads/MNG-6123-detect-self-references
Commit: f7d4bce23324cd4a318486d8715a128cf7436c3a
Parents: 3938817
Author: Michael Osipov <mi...@apache.org>
Authored: Fri Apr 21 22:57:53 2017 +0200
Committer: Michael Osipov <mi...@apache.org>
Committed: Fri Apr 21 22:57:53 2017 +0200

----------------------------------------------------------------------
 .../apache/maven/repository/metadata/MetadataResolutionResult.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/f7d4bce2/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataResolutionResult.java
----------------------------------------------------------------------
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataResolutionResult.java b/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataResolutionResult.java
index 814b66c..74a3427 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataResolutionResult.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataResolutionResult.java
@@ -115,7 +115,7 @@ public class MetadataResolutionResult
         {
             return conflictResolver.resolveConflicts( getGraph(), ArtifactScopeEnum.runtime );
         }
-        else if ( requestType.equals( MetadataResolutionRequestTypeEnum.classpathRuntime ) )
+        else if ( requestType.equals( MetadataResolutionRequestTypeEnum.classpathTest ) )
         {
             return conflictResolver.resolveConflicts( getGraph(), ArtifactScopeEnum.test );
         }


[04/18] maven git commit: MNG-6209 better executeMojo thread context classloader

Posted by kh...@apache.org.
MNG-6209 better executeMojo thread context classloader

Signed-off-by: Igor Fedorenko <if...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/ec629f7d
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/ec629f7d
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/ec629f7d

Branch: refs/heads/MNG-6123-detect-self-references
Commit: ec629f7d511eb910b4e80112a9fbe85ed8786f10
Parents: 567af0d
Author: Igor Fedorenko <if...@apache.org>
Authored: Tue Apr 11 07:59:34 2017 -0700
Committer: Igor Fedorenko <if...@apache.org>
Committed: Thu Apr 13 14:12:23 2017 -0700

----------------------------------------------------------------------
 .../java/org/apache/maven/plugin/DefaultBuildPluginManager.java | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/ec629f7d/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java b/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java
index b4f7a4d..3af1125 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java
@@ -106,8 +106,11 @@ public class DefaultBuildPluginManager
             throw new PluginExecutionException( mojoExecution, project, e );
         }
 
+        // use project realm as thread context classloader to enable components from all extensions=true plugins
+        ClassRealm tccl = mojoExecution.getPlugin().isExtensions() ? project.getClassRealm() : pluginRealm;
+
         ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
-        Thread.currentThread().setContextClassLoader( pluginRealm );
+        Thread.currentThread().setContextClassLoader( tccl );
 
         MavenSession oldSession = legacySupport.getSession();
 


[03/18] maven git commit: use "java -jar" command

Posted by kh...@apache.org.
use "java -jar" command

Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/567af0d9
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/567af0d9
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/567af0d9

Branch: refs/heads/MNG-6123-detect-self-references
Commit: 567af0d964cf823b275300aa4671b84a28da5baa
Parents: 6a93bbe
Author: Hervé Boutemy <hb...@apache.org>
Authored: Wed Apr 12 03:59:44 2017 +0200
Committer: Hervé Boutemy <hb...@apache.org>
Committed: Wed Apr 12 03:59:44 2017 +0200

----------------------------------------------------------------------
 .../apache/maven/artifact/versioning/ComparableVersion.java    | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/567af0d9/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
----------------------------------------------------------------------
diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java b/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
index e1fc5f0..105d9b5 100644
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
@@ -470,11 +470,12 @@ public class ComparableVersion
         return canonical.hashCode();
     }
 
+    // CHECKSTYLE_OFF: LineLength
     /**
      * Main to test version parsing and comparison.
      * <p>
-     * Checks how "1.2.7" compares to "1.2-SNAPSHOT", for example, you can issue
-     * <code>java -cp ${maven.repo.local}/org/apache/maven/maven-artifact/${maven.version}/maven-artifact-${maven.version}.jar org.apache.maven.artifact.versioning.ComparableVersion "1.2.7" "1.2-SNAPSHOT"</code>
+     * To check how "1.2.7" compares to "1.2-SNAPSHOT", for example, you can issue
+     * <pre>java -jar ${maven.repo.local}/org/apache/maven/maven-artifact/${maven.version}/maven-artifact-${maven.version}.jar "1.2.7" "1.2-SNAPSHOT"</pre>
      * command to command line. Result of given command will be something like this:
      * <pre>
      * Display parameters as parsed by Maven (in canonical form) and comparison result:
@@ -486,6 +487,7 @@ public class ComparableVersion
      * @param args the version strings to parse and compare. You can pass arbitrary number of version strings and always
      * two adjacent will be compared
      */
+    // CHECKSTYLE_ON: LineLength
     public static void main( String... args )
     {
         System.out.println( "Display parameters as parsed by Maven (in canonical form) and comparison result:" );


[15/18] maven git commit: improved modello and animal sniffer's execution ids

Posted by kh...@apache.org.
improved modello and animal sniffer's execution ids

Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/44634982
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/44634982
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/44634982

Branch: refs/heads/MNG-6123-detect-self-references
Commit: 44634982a103a696d18619346756b1adaf3dbfd9
Parents: ecef59f
Author: Hervé Boutemy <hb...@apache.org>
Authored: Sun May 21 19:14:54 2017 +0200
Committer: Hervé Boutemy <hb...@apache.org>
Committed: Sun May 21 19:14:54 2017 +0200

----------------------------------------------------------------------
 maven-core/pom.xml       | 2 +-
 maven-model/pom.xml      | 2 +-
 maven-plugin-api/pom.xml | 2 +-
 pom.xml                  | 6 +++---
 4 files changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/44634982/maven-core/pom.xml
----------------------------------------------------------------------
diff --git a/maven-core/pom.xml b/maven-core/pom.xml
index 717e2a5..6cd8d85 100644
--- a/maven-core/pom.xml
+++ b/maven-core/pom.xml
@@ -214,7 +214,7 @@ under the License.
         </configuration>
         <executions>
           <execution>
-            <id>plugin-site-doc</id>
+            <id>modello-site-doc</id>
             <phase>pre-site</phase>
             <goals>
               <goal>xdoc</goal>

http://git-wip-us.apache.org/repos/asf/maven/blob/44634982/maven-model/pom.xml
----------------------------------------------------------------------
diff --git a/maven-model/pom.xml b/maven-model/pom.xml
index aabb25d..581e927 100644
--- a/maven-model/pom.xml
+++ b/maven-model/pom.xml
@@ -61,7 +61,7 @@ under the License.
         </configuration>
         <executions>
           <execution>
-            <id>standard</id>
+            <id>modello</id>
             <goals>
               <goal>java</goal>
               <goal>xpp3-reader</goal>

http://git-wip-us.apache.org/repos/asf/maven/blob/44634982/maven-plugin-api/pom.xml
----------------------------------------------------------------------
diff --git a/maven-plugin-api/pom.xml b/maven-plugin-api/pom.xml
index cf7e0ef..271404f 100644
--- a/maven-plugin-api/pom.xml
+++ b/maven-plugin-api/pom.xml
@@ -75,7 +75,7 @@ under the License.
         </configuration>
         <executions>
           <execution>
-            <id>plugin-site-doc</id>
+            <id>modello-site-doc</id>
             <phase>pre-site</phase>
             <goals>
               <goal>xdoc</goal>

http://git-wip-us.apache.org/repos/asf/maven/blob/44634982/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index ce84168..5e12e36 100644
--- a/pom.xml
+++ b/pom.xml
@@ -465,7 +465,7 @@ under the License.
           <version>${modelloVersion}</version>
           <executions>
             <execution>
-              <id>site-docs</id>
+              <id>modello-site-docs</id>
               <phase>pre-site</phase>
               <goals>
                 <goal>xdoc</goal>
@@ -473,7 +473,7 @@ under the License.
               </goals>
             </execution>
             <execution>
-              <id>standard</id>
+              <id>modello</id>
               <goals>
                 <goal>java</goal>
                 <goal>xpp3-reader</goal>
@@ -567,7 +567,7 @@ under the License.
         </configuration>
         <executions>
           <execution>
-            <id>check-java-1.6-compat</id>
+            <id>check-java-compat</id>
             <phase>process-classes</phase>
             <goals>
               <goal>check</goal>


[09/18] maven git commit: [MNG-6223] support -f path/to/dir when detecting .mvn

Posted by kh...@apache.org.
[MNG-6223] support -f path/to/dir when detecting .mvn

Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/2d440155
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/2d440155
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/2d440155

Branch: refs/heads/MNG-6123-detect-self-references
Commit: 2d4401557c3c870409e8b1c65d2dcc9a68281cae
Parents: be22380
Author: Hervé Boutemy <hb...@apache.org>
Authored: Sat May 6 18:15:42 2017 +0200
Committer: Hervé Boutemy <hb...@apache.org>
Committed: Tue May 9 21:07:41 2017 +0200

----------------------------------------------------------------------
 apache-maven/src/bin/mvn     | 4 +++-
 apache-maven/src/bin/mvn.cmd | 6 +++++-
 2 files changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/2d440155/apache-maven/src/bin/mvn
----------------------------------------------------------------------
diff --git a/apache-maven/src/bin/mvn b/apache-maven/src/bin/mvn
index 623b5f2..eedd344 100755
--- a/apache-maven/src/bin/mvn
+++ b/apache-maven/src/bin/mvn
@@ -141,7 +141,9 @@ find_file_argument_basedir() {
   found_file_switch=0
   for arg in "$@"; do
     if [ ${found_file_switch} -eq 1 ]; then
-      if [ -f "${arg}" ]; then
+      if [ -d "${arg}" ]; then
+        basedir=`cd "${arg}" && pwd -P`
+      elif [ -f "${arg}" ]; then
         basedir=`dirname "${arg}"`
         basedir=`cd "${basedir}" && pwd -P`
         if [ ! -d "${basedir}" ]; then

http://git-wip-us.apache.org/repos/asf/maven/blob/2d440155/apache-maven/src/bin/mvn.cmd
----------------------------------------------------------------------
diff --git a/apache-maven/src/bin/mvn.cmd b/apache-maven/src/bin/mvn.cmd
index 9d92279..bfcc1b5 100644
--- a/apache-maven/src/bin/mvn.cmd
+++ b/apache-maven/src/bin/mvn.cmd
@@ -120,7 +120,11 @@ if not exist "%FILE_ARG%" (
   echo POM file %FILE_ARG% specified the -f/--file command-line argument does not exist >&2
   goto error
 )
-call :get_directory_from_file "%FILE_ARG%"
+if exist "%FILE_ARG%\*" (
+  set "POM_DIR=%FILE_ARG%"
+) else (
+  call :get_directory_from_file "%FILE_ARG%"
+)
 if not exist "%POM_DIR%" (
   echo Directory %POM_DIR% extracted from the -f/--file command-line argument %FILE_ARG% does not exist >&2
   goto error


[14/18] maven git commit: [MNG-6167] Clean up dependency mess (reported by dependency:analyze)

Posted by kh...@apache.org.
[MNG-6167] Clean up dependency mess (reported by dependency:analyze)

Clean up compile and runtime dependencies. Test dependencies have not been
touched because their seem to be false positives due to DI.


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/ecef59f1
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/ecef59f1
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/ecef59f1

Branch: refs/heads/MNG-6123-detect-self-references
Commit: ecef59f1cb822e48c63215fa7dd0c8f4fd54d6af
Parents: f4ede96
Author: Michael Osipov <mi...@apache.org>
Authored: Tue May 16 15:27:22 2017 +0200
Committer: Michael Osipov <mi...@apache.org>
Committed: Tue May 16 15:27:22 2017 +0200

----------------------------------------------------------------------
 maven-builder-support/pom.xml   |  4 ----
 maven-compat/pom.xml            | 10 +++++++++-
 maven-core/pom.xml              | 22 +++++++++++++++-------
 maven-embedder/pom.xml          | 30 +++++++++++++++++++++++++-----
 maven-model-builder/pom.xml     |  1 +
 maven-plugin-api/pom.xml        |  8 ++++++++
 maven-resolver-provider/pom.xml |  8 ++++++++
 pom.xml                         | 10 ++++++++++
 8 files changed, 76 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/ecef59f1/maven-builder-support/pom.xml
----------------------------------------------------------------------
diff --git a/maven-builder-support/pom.xml b/maven-builder-support/pom.xml
index 5eb7903..9557731 100644
--- a/maven-builder-support/pom.xml
+++ b/maven-builder-support/pom.xml
@@ -35,10 +35,6 @@ under the License.
 
   <dependencies>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-utils</artifactId>
-    </dependency>
-    <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
     </dependency>

http://git-wip-us.apache.org/repos/asf/maven/blob/ecef59f1/maven-compat/pom.xml
----------------------------------------------------------------------
diff --git a/maven-compat/pom.xml b/maven-compat/pom.xml
index 8392dca..b3cf039 100644
--- a/maven-compat/pom.xml
+++ b/maven-compat/pom.xml
@@ -52,6 +52,10 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
+      <artifactId>maven-settings-builder</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
       <artifactId>maven-artifact</artifactId>
     </dependency>
     <dependency>
@@ -63,6 +67,10 @@ under the License.
       <artifactId>maven-resolver-provider</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-repository-metadata</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.apache.maven.resolver</groupId>
       <artifactId>maven-resolver-api</artifactId>
     </dependency>
@@ -131,5 +139,5 @@ under the License.
       </plugin>
     </plugins>
   </build>
-  
+
 </project>

http://git-wip-us.apache.org/repos/asf/maven/blob/ecef59f1/maven-core/pom.xml
----------------------------------------------------------------------
diff --git a/maven-core/pom.xml b/maven-core/pom.xml
index 71f09c0..717e2a5 100644
--- a/maven-core/pom.xml
+++ b/maven-core/pom.xml
@@ -54,6 +54,10 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
+      <artifactId>maven-builder-support</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
       <artifactId>maven-repository-metadata</artifactId>
     </dependency>
     <dependency>
@@ -92,20 +96,28 @@ under the License.
       <groupId>org.apache.maven.shared</groupId>
       <artifactId>maven-shared-utils</artifactId>
     </dependency>
-    <!-- Plexus -->
     <dependency>
       <groupId>org.eclipse.sisu</groupId>
       <artifactId>org.eclipse.sisu.plexus</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.eclipse.sisu</groupId>
+      <artifactId>org.eclipse.sisu.inject</artifactId>
+    </dependency>
+    <dependency>
       <groupId>com.google.inject</groupId>
       <artifactId>guice</artifactId>
       <classifier>no_aop</classifier>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-interpolation</artifactId>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
     </dependency>
+    <!-- Plexus -->
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
@@ -119,10 +131,6 @@ under the License.
       <artifactId>plexus-component-annotations</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.sonatype.plexus</groupId>
-      <artifactId>plexus-sec-dispatcher</artifactId>
-    </dependency>
-    <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
     </dependency>

http://git-wip-us.apache.org/repos/asf/maven/blob/ecef59f1/maven-embedder/pom.xml
----------------------------------------------------------------------
diff --git a/maven-embedder/pom.xml b/maven-embedder/pom.xml
index 66e09a3..52e9c82 100644
--- a/maven-embedder/pom.xml
+++ b/maven-embedder/pom.xml
@@ -40,6 +40,10 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
+      <artifactId>maven-settings-builder</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
       <artifactId>maven-core</artifactId>
     </dependency>
     <dependency>
@@ -48,9 +52,17 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
+      <artifactId>maven-model</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
       <artifactId>maven-model-builder</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-builder-support</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.apache.maven.resolver</groupId>
       <artifactId>maven-resolver-api</artifactId>
     </dependency>
@@ -59,15 +71,23 @@ under the License.
       <artifactId>maven-resolver-util</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-compat</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
       <groupId>org.apache.maven.shared</groupId>
       <artifactId>maven-shared-utils</artifactId>
     </dependency>
     <dependency>
+       <groupId>com.google.inject</groupId>
+       <artifactId>guice</artifactId>
+       <classifier>no_aop</classifier>
+     </dependency>
+     <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
     </dependency>

http://git-wip-us.apache.org/repos/asf/maven/blob/ecef59f1/maven-model-builder/pom.xml
----------------------------------------------------------------------
diff --git a/maven-model-builder/pom.xml b/maven-model-builder/pom.xml
index 859f0b3..eb86824 100644
--- a/maven-model-builder/pom.xml
+++ b/maven-model-builder/pom.xml
@@ -71,6 +71,7 @@ under the License.
       <artifactId>org.eclipse.sisu.plexus</artifactId>
       <scope>test</scope>
     </dependency>
+    <!-- Testing -->
     <dependency>
       <groupId>com.google.inject</groupId>
       <artifactId>guice</artifactId>

http://git-wip-us.apache.org/repos/asf/maven/blob/ecef59f1/maven-plugin-api/pom.xml
----------------------------------------------------------------------
diff --git a/maven-plugin-api/pom.xml b/maven-plugin-api/pom.xml
index 1596a41..cf7e0ef 100644
--- a/maven-plugin-api/pom.xml
+++ b/maven-plugin-api/pom.xml
@@ -52,6 +52,14 @@ under the License.
       <groupId>org.eclipse.sisu</groupId>
       <artifactId>org.eclipse.sisu.plexus</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-classworlds</artifactId>
+    </dependency>
   </dependencies>
 
   <build>

http://git-wip-us.apache.org/repos/asf/maven/blob/ecef59f1/maven-resolver-provider/pom.xml
----------------------------------------------------------------------
diff --git a/maven-resolver-provider/pom.xml b/maven-resolver-provider/pom.xml
index a724d3b..0d1b481 100644
--- a/maven-resolver-provider/pom.xml
+++ b/maven-resolver-provider/pom.xml
@@ -71,6 +71,14 @@ under the License.
       <artifactId>plexus-utils</artifactId>
     </dependency>
     <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+    </dependency>
+    <dependency>
       <groupId>com.google.inject</groupId>
       <artifactId>guice</artifactId>
       <classifier>no_aop</classifier>

http://git-wip-us.apache.org/repos/asf/maven/blob/ecef59f1/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index e16d93b..ce84168 100644
--- a/pom.xml
+++ b/pom.xml
@@ -249,6 +249,16 @@ under the License.
         <version>${sisuInjectVersion}</version>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>org.eclipse.sisu.inject</artifactId>
+        <version>${sisuInjectVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.inject</groupId>
+        <artifactId>javax.inject</artifactId>
+        <version>1</version>
+      </dependency>
+      <dependency>
         <groupId>org.codehaus.plexus</groupId>
         <artifactId>plexus-component-annotations</artifactId>
         <version>${plexusVersion}</version>


[11/18] maven git commit: [MNG-6186] use enhanced HawtJNI library loading (remove previous hack)

Posted by kh...@apache.org.
[MNG-6186] use enhanced HawtJNI library loading (remove previous hack)

Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/6182a208
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/6182a208
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/6182a208

Branch: refs/heads/MNG-6123-detect-self-references
Commit: 6182a2083fdb9964ccb5250fb85223e38485bf04
Parents: 2a79d1e
Author: Hervé Boutemy <hb...@apache.org>
Authored: Sat May 6 18:28:04 2017 +0200
Committer: Hervé Boutemy <hb...@apache.org>
Committed: Tue May 9 21:08:13 2017 +0200

----------------------------------------------------------------------
 apache-maven/src/bin/mvn                        |  4 +-
 apache-maven/src/bin/mvn.cmd                    |  1 +
 .../java/org/apache/maven/cli/MavenCli.java     | 59 --------------------
 3 files changed, 4 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/6182a208/apache-maven/src/bin/mvn
----------------------------------------------------------------------
diff --git a/apache-maven/src/bin/mvn b/apache-maven/src/bin/mvn
index eedd344..525b2ef 100755
--- a/apache-maven/src/bin/mvn
+++ b/apache-maven/src/bin/mvn
@@ -193,5 +193,7 @@ exec "$JAVACMD" \
   $MAVEN_DEBUG_OPTS \
   -classpath "${CLASSWORLDS_JAR}" \
   "-Dclassworlds.conf=${MAVEN_HOME}/bin/m2.conf" \
-  "-Dmaven.home=${MAVEN_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  "-Dmaven.home=${MAVEN_HOME}" \
+  "-Dlibrary.jansi.path=${MAVEN_HOME}/jansi-native" \
+  "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
   ${CLASSWORLDS_LAUNCHER} "$@"

http://git-wip-us.apache.org/repos/asf/maven/blob/6182a208/apache-maven/src/bin/mvn.cmd
----------------------------------------------------------------------
diff --git a/apache-maven/src/bin/mvn.cmd b/apache-maven/src/bin/mvn.cmd
index bfcc1b5..ba61f80 100644
--- a/apache-maven/src/bin/mvn.cmd
+++ b/apache-maven/src/bin/mvn.cmd
@@ -181,6 +181,7 @@ set CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
   -classpath %CLASSWORLDS_JAR% ^
   "-Dclassworlds.conf=%MAVEN_HOME%\bin\m2.conf" ^
   "-Dmaven.home=%MAVEN_HOME%" ^
+  "-Dlibrary.jansi.path=%MAVEN_HOME%\jansi-native" ^
   "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
   %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
 if ERRORLEVEL 1 goto error

http://git-wip-us.apache.org/repos/asf/maven/blob/6182a208/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
----------------------------------------------------------------------
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 79ab45d..e1e58c8 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
@@ -188,7 +188,6 @@ public class MavenCli
     {
         MavenCli cli = new MavenCli();
 
-        prepareJansiNative();
         MessageUtils.systemInstall();
         int result = cli.doMain( new CliRequest( args, classWorld ) );
         MessageUtils.systemUninstall();
@@ -196,64 +195,6 @@ public class MavenCli
         return result;
     }
 
-    /**
-     * temporary method while improvement reported to JAnsi+HawtJNI and integrated:
-     * library.jansi.path should point to lib/jansi-native and HawtJNI should be able to detect
-     * the platform instead of forcing the user having to point library.jansi.path to
-     * lib/jansi-native/[platform]
-     */
-    private static void prepareJansiNative()
-    {
-        if ( System.getProperty( "library.jansi.path" ) == null )
-        {
-            String mavenHome = System.getProperty( "maven.home" );
-
-            if ( mavenHome != null )
-            {
-                File jansiNative = new File( mavenHome, "lib/jansi-native/" + hawtJNIgetPlatform() );
-                System.setProperty( "library.jansi.path", jansiNative.getAbsolutePath() );
-            }
-        }
-    }
-
-    private static String hawtJNIgetOperatingSystem()
-    {
-        String name = System.getProperty( "os.name" ).toLowerCase().trim();
-        if ( name.startsWith( "linux" ) )
-        {
-            return "linux";
-        }
-        if ( name.startsWith( "mac os x" ) )
-        {
-            return "osx";
-        }
-        if ( name.startsWith( "win" ) )
-        {
-            return "windows";
-        }
-        return name.replaceAll( "\\W+", "_" );
-
-    }
-
-    private static String hawtJNIgetPlatform()
-    {
-        return hawtJNIgetOperatingSystem() + hawtJNIgetBitModel();
-    }
-
-    private static int hawtJNIgetBitModel()
-    {
-        String prop = System.getProperty( "sun.arch.data.model" );
-        if ( prop == null )
-        {
-            prop = System.getProperty( "com.ibm.vm.bitmode" );
-        }
-        if ( prop != null )
-        {
-            return Integer.parseInt( prop );
-        }
-        return -1; // we don't know..
-    }
-
     // TODO need to externalize CliRequest
     public static int doMain( String[] args, ClassWorld classWorld )
     {


[18/18] maven git commit: [MNG-6123] detect self references in POM and fail fast o Added unit test and self referencing pom

Posted by kh...@apache.org.
[MNG-6123] detect self references in POM and fail fast
 o Added unit test and self referencing pom


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/5194216e
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/5194216e
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/5194216e

Branch: refs/heads/MNG-6123-detect-self-references
Commit: 5194216e248ca10c68e5897ef0be3c1466ba19b9
Parents: a7dddcb
Author: Karl Heinz Marbaise <kh...@apache.org>
Authored: Tue Apr 4 22:46:11 2017 +0200
Committer: Karl Heinz Marbaise <kh...@apache.org>
Committed: Sun Jun 4 20:04:35 2017 +0200

----------------------------------------------------------------------
 .../model/validation/DefaultModelValidator.java | 49 ++++++++++++++++++--
 .../validation/DefaultModelValidatorTest.java   | 12 +++++
 .../validation/raw-model/self-referencing.xml   | 38 +++++++++++++++
 3 files changed, 96 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/5194216e/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
----------------------------------------------------------------------
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 e790f21..9af8096 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
@@ -131,6 +131,9 @@ public class DefaultModelValidator
 
             validate20RawDependencies( problems, m.getDependencies(), "dependencies.dependency", request );
 
+            validate20RawDependenciesSelfReferencing( problems, m, m.getDependencies(), "dependencies.dependency",
+                                                      request );
+
             if ( m.getDependencyManagement() != null )
             {
                 validate20RawDependencies( problems, m.getDependencyManagement().getDependencies(),
@@ -344,12 +347,12 @@ public class DefaultModelValidator
 
         Severity errOn30 = getSeverity( request, ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0 );
 
-        validateEffectiveDependencies( problems, m.getDependencies(), false, request );
+        validateEffectiveDependencies( problems, m, m.getDependencies(), false, request );
 
         DependencyManagement mgmt = m.getDependencyManagement();
         if ( mgmt != null )
         {
-            validateEffectiveDependencies( problems, mgmt.getDependencies(), true, request );
+            validateEffectiveDependencies( problems, m, mgmt.getDependencies(), true, request );
         }
 
         if ( request.getValidationLevel() >= ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0 )
@@ -511,7 +514,28 @@ public class DefaultModelValidator
         }
     }
 
-    private void validateEffectiveDependencies( ModelProblemCollector problems, List<Dependency> dependencies,
+    private void validate20RawDependenciesSelfReferencing( ModelProblemCollector problems, Model m,
+                                                           List<Dependency> dependencies, String prefix,
+                                                           ModelBuildingRequest request )
+    {
+        for ( Dependency dependency : dependencies )
+        {
+            String key = dependency.getGroupId() + ":" + dependency.getArtifactId() + ":" + dependency.getVersion();
+            String mKey = m.getGroupId() + ":" + m.getArtifactId() + ":" + m.getVersion();
+            if ( key.equals( mKey ) )
+            {
+                // This means a module which is build has a dependency which has the same
+                // groupId, artifactId and version coordinates. This is in consequence
+                // a self reference or in other words a circular reference which can not
+                // being resolved.
+                addViolation( problems, Severity.FATAL, Version.V31, prefix + " " + key, key, "is referencing itself.",
+                              dependency );
+
+            }
+        }
+    }
+
+    private void validateEffectiveDependencies( ModelProblemCollector problems, Model m, List<Dependency> dependencies,
                                                 boolean management, ModelBuildingRequest request )
     {
         Severity errOn30 = getSeverity( request, ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0 );
@@ -538,11 +562,30 @@ public class DefaultModelValidator
                      */
                     validateEnum( prefix + "scope", problems, Severity.WARNING, Version.V20, d.getScope(),
                                   d.getManagementKey(), d, "provided", "compile", "runtime", "test", "system" );
+
+                    validateEffectiveModelAgainstDependency( prefix, problems, m, d, request );
                 }
             }
         }
     }
 
+    private void validateEffectiveModelAgainstDependency( String prefix, ModelProblemCollector problems, Model m,
+                                                          Dependency d, ModelBuildingRequest request )
+    {
+        String key = d.getGroupId() + ":" + d.getArtifactId() + ":" + d.getVersion();
+        String mKey = m.getGroupId() + ":" + m.getArtifactId() + ":" + m.getVersion();
+        if ( key.equals( mKey ) )
+        {
+            // This means a module which is build has a dependency which has the same
+            // groupId, artifactId and version coordinates. This is in consequence
+            // a self reference or in other words a circular reference which can not
+            // being resolved.
+            addViolation( problems, Severity.FATAL, Version.V31, prefix + " " + key, key, "is referencing itself.", d );
+
+        }
+
+    }
+
     private void validate20EffectivePluginDependencies( ModelProblemCollector problems, Plugin plugin,
                                                         ModelBuildingRequest request )
     {

http://git-wip-us.apache.org/repos/asf/maven/blob/5194216e/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
----------------------------------------------------------------------
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 8525476..9423c4e 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
@@ -676,4 +676,16 @@ public class DefaultModelValidatorTest
         assertViolations( result, 0, 0, 0 );
     }
 
+    public void testSelfReferencingDependencyInRawModel()
+        throws Exception
+    {
+        SimpleProblemCollector result = validateRaw( "raw-model/self-referencing.xml" );
+
+        assertViolations( result, 1, 0, 0 );
+
+        assertEquals( "'dependencies.dependency com.example.group:testinvalidpom:0.0.1-SNAPSHOT' for com.example.group:testinvalidpom:0.0.1-SNAPSHOT is referencing itself.",
+                      result.getFatals().get( 0 ) );
+
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/maven/blob/5194216e/maven-model-builder/src/test/resources/poms/validation/raw-model/self-referencing.xml
----------------------------------------------------------------------
diff --git a/maven-model-builder/src/test/resources/poms/validation/raw-model/self-referencing.xml b/maven-model-builder/src/test/resources/poms/validation/raw-model/self-referencing.xml
new file mode 100644
index 0000000..a902896
--- /dev/null
+++ b/maven-model-builder/src/test/resources/poms/validation/raw-model/self-referencing.xml
@@ -0,0 +1,38 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>com.example.group</groupId>
+	<artifactId>testinvalidpom</artifactId>
+	<version>0.0.1-SNAPSHOT</version>
+
+	<description>
+		This will test if the module validator recognized that this 
+		dependency is the same as the module itself.
+	</description>
+	<dependencies>
+		<dependency>
+			<groupId>com.example.group</groupId>
+			<artifactId>testinvalidpom</artifactId>
+			<version>0.0.1-SNAPSHOT</version>
+		</dependency>
+	</dependencies>
+</project>
\ No newline at end of file


[08/18] maven git commit: Add a ProjectArtifactsCache similar to PluginArtifactsCache

Posted by kh...@apache.org.
Add a ProjectArtifactsCache similar to PluginArtifactsCache

Signed-off-by: Jason van Zyl <ja...@vanzyl.ca>

closes #82


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/be223808
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/be223808
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/be223808

Branch: refs/heads/MNG-6123-detect-self-references
Commit: be223808939d75152d7157db33d45f230114555e
Parents: f7d4bce
Author: Anton Tanasenko <at...@gmail.com>
Authored: Wed May 18 18:40:28 2016 +0300
Committer: Karl Heinz Marbaise <kh...@apache.org>
Committed: Fri May 5 22:08:16 2017 +0200

----------------------------------------------------------------------
 .../internal/LifecycleDependencyResolver.java   |  34 ++-
 .../plugin/DefaultProjectArtifactsCache.java    | 256 +++++++++++++++++++
 .../maven/plugin/ProjectArtifactsCache.java     |  90 +++++++
 3 files changed, 377 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/be223808/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
index 0d42aeb..504274f 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
@@ -37,6 +37,7 @@ import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.eventspy.internal.EventSpyDispatcher;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.lifecycle.LifecycleExecutionException;
+import org.apache.maven.plugin.ProjectArtifactsCache;
 import org.apache.maven.project.DefaultDependencyResolutionRequest;
 import org.apache.maven.project.DependencyResolutionException;
 import org.apache.maven.project.DependencyResolutionResult;
@@ -75,6 +76,9 @@ public class LifecycleDependencyResolver
 
     @Inject
     private EventSpyDispatcher eventSpyDispatcher;
+    
+    @Inject
+    private ProjectArtifactsCache projectArtifactsCache;
 
     public LifecycleDependencyResolver()
     {
@@ -123,9 +127,33 @@ public class LifecycleDependencyResolver
                     throw new LifecycleExecutionException( e );
                 }
             }
-
-            Set<Artifact> artifacts =
-                getDependencies( project, scopesToCollect, scopesToResolve, session, aggregating, projectArtifacts );
+            
+            Set<Artifact> artifacts;
+            ProjectArtifactsCache.Key cacheKey = projectArtifactsCache.createKey( project,  scopesToCollect, 
+                scopesToResolve, aggregating, session.getRepositorySession() );
+            ProjectArtifactsCache.CacheRecord recordArtifacts;
+            recordArtifacts = projectArtifactsCache.get( cacheKey );
+            
+            if ( recordArtifacts != null )
+            {
+                artifacts = recordArtifacts.artifacts;
+            }
+            else
+            {
+                try
+                {
+                    artifacts = getDependencies( project, scopesToCollect, scopesToResolve, session, aggregating, 
+                        projectArtifacts );
+                    recordArtifacts = projectArtifactsCache.put( cacheKey, artifacts );
+                }
+                catch ( LifecycleExecutionException e )
+                {
+                  projectArtifactsCache.put( cacheKey, e );
+                  projectArtifactsCache.register( project, cacheKey, recordArtifacts );
+                    throw e;
+                }
+            }
+            projectArtifactsCache.register( project, cacheKey, recordArtifacts );
 
             project.setResolvedArtifacts( artifacts );
 

http://git-wip-us.apache.org/repos/asf/maven/blob/be223808/maven-core/src/main/java/org/apache/maven/plugin/DefaultProjectArtifactsCache.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/DefaultProjectArtifactsCache.java b/maven-core/src/main/java/org/apache/maven/plugin/DefaultProjectArtifactsCache.java
new file mode 100644
index 0000000..1eaa627
--- /dev/null
+++ b/maven-core/src/main/java/org/apache/maven/plugin/DefaultProjectArtifactsCache.java
@@ -0,0 +1,256 @@
+package org.apache.maven.plugin;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.commons.lang3.Validate;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.lifecycle.LifecycleExecutionException;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.component.annotations.Component;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.repository.LocalRepository;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.repository.WorkspaceRepository;
+
+/**
+ * @author Igor Fedorenko
+ * @author Benjamin Bentmann
+ * @author Anton Tanasenko
+ */
+@Component( role = ProjectArtifactsCache.class )
+public class DefaultProjectArtifactsCache
+    implements ProjectArtifactsCache
+{
+
+    protected static class CacheKey
+        implements Key
+    {
+
+        private final String groupId;
+        
+        private final String artifactId;
+        
+        private final String version;
+        
+        private final Set<String> dependencyArtifacts;
+
+        private final WorkspaceRepository workspace;
+
+        private final LocalRepository localRepo;
+
+        private final List<RemoteRepository> repositories;
+        
+        private final Set<String> collect;
+        
+        private final Set<String> resolve;
+        
+        private boolean aggregating;
+
+        private final int hashCode;
+
+        public CacheKey( MavenProject project, List<RemoteRepository> repositories,
+            Collection<String> scopesToCollect, Collection<String> scopesToResolve, boolean aggregating,
+            RepositorySystemSession session )
+        {
+            
+            groupId = project.getGroupId();
+            artifactId = project.getArtifactId();
+            version = project.getVersion();
+            
+            Set<String> deps = new HashSet<>();
+            if ( project.getDependencyArtifacts() != null )
+            {
+              for ( Artifact dep: project.getDependencyArtifacts() )
+              {
+                deps.add( dep.toString() );
+              }
+            }
+            dependencyArtifacts = Collections.unmodifiableSet( deps );
+            
+            workspace = CacheUtils.getWorkspace( session );
+            this.localRepo = session.getLocalRepository();
+            this.repositories = new ArrayList<>( repositories.size() );
+            for ( RemoteRepository repository : repositories )
+            {
+                if ( repository.isRepositoryManager() )
+                {
+                    this.repositories.addAll( repository.getMirroredRepositories() );
+                }
+                else
+                {
+                    this.repositories.add( repository );
+                }
+            }
+            collect = scopesToCollect == null
+                ? Collections.<String>emptySet() 
+                : Collections.unmodifiableSet( new HashSet<>( scopesToCollect ) );
+            resolve = scopesToResolve == null 
+                ? Collections.<String>emptySet() 
+                : Collections.unmodifiableSet( new HashSet<>( scopesToResolve ) );
+            this.aggregating = aggregating;
+
+            int hash = 17;
+            hash = hash * 31 + hash( groupId );
+            hash = hash * 31 + hash( artifactId );
+            hash = hash * 31 + hash( version );
+            hash = hash * 31 + hash( dependencyArtifacts );
+            hash = hash * 31 + hash( workspace );
+            hash = hash * 31 + hash( localRepo );
+            hash = hash * 31 + CacheUtils.repositoriesHashCode( repositories );
+            hash = hash * 31 + hash( collect );
+            hash = hash * 31 + hash( resolve );
+            hash = hash * 31 + hash( aggregating );
+            this.hashCode = hash;
+        }
+
+        @Override
+        public String toString()
+        {
+            return groupId + ":" + artifactId + ":" + version;
+        }
+
+        @Override
+        public int hashCode()
+        {
+            return hashCode;
+        }
+
+        private static int hash( Object obj )
+        {
+            return obj != null ? obj.hashCode() : 0;
+        }
+
+        @Override
+        public boolean equals( Object o )
+        {
+            if ( o == this )
+            {
+                return true;
+            }
+
+            if ( !( o instanceof CacheKey ) )
+            {
+                return false;
+            }
+
+            CacheKey that = (CacheKey) o;
+
+            return eq( groupId, that.groupId ) && eq( artifactId, that.artifactId ) && eq( version, that.version ) 
+                && eq( dependencyArtifacts, that.dependencyArtifacts )
+                && eq( workspace, that.workspace ) && eq( localRepo, that.localRepo ) 
+                && CacheUtils.repositoriesEquals( repositories, that.repositories ) && eq( collect, that.collect ) 
+                && eq( resolve, that.resolve ) && aggregating == that.aggregating;
+        }
+
+        private static <T> boolean eq( T s1, T s2 )
+        {
+            return s1 != null ? s1.equals( s2 ) : s2 == null;
+        }
+
+    }
+
+    protected final Map<Key, CacheRecord> cache = new ConcurrentHashMap<>();
+
+    public Key createKey( MavenProject project, Collection<String> scopesToCollect,
+        Collection<String> scopesToResolve, boolean aggregating, RepositorySystemSession session )
+    {
+        return new CacheKey( project, project.getRemoteProjectRepositories(), scopesToCollect, scopesToResolve, 
+            aggregating, session );
+    }
+
+    public CacheRecord get( Key key )
+        throws LifecycleExecutionException
+    {
+        CacheRecord cacheRecord = cache.get( key );
+
+        if ( cacheRecord != null && cacheRecord.exception != null )
+        {
+            throw cacheRecord.exception;
+        }
+
+        return cacheRecord;
+    }
+
+    public CacheRecord put( Key key, Set<Artifact> projectArtifacts )
+    {
+        Validate.notNull( projectArtifacts, "projectArtifacts cannot be null" );
+
+        assertUniqueKey( key );
+
+        CacheRecord record =
+            new CacheRecord( Collections.unmodifiableSet( new HashSet<>( projectArtifacts ) ) );
+
+        cache.put( key, record );
+
+        return record;
+    }
+
+    protected void assertUniqueKey( Key key )
+    {
+        if ( cache.containsKey( key ) )
+        {
+            throw new IllegalStateException( "Duplicate artifact resolution result for project " + key );
+        }
+    }
+
+    public CacheRecord put( Key key, LifecycleExecutionException exception )
+    {
+        Validate.notNull( exception, "exception cannot be null" );
+
+        assertUniqueKey( key );
+
+        CacheRecord record = new CacheRecord( exception );
+
+        cache.put( key, record );
+
+        return record;
+    }
+
+    public void flush()
+    {
+        cache.clear();
+    }
+
+    protected static int pluginHashCode( Plugin plugin )
+    {
+        return CacheUtils.pluginHashCode( plugin );
+    }
+
+    protected static boolean pluginEquals( Plugin a, Plugin b )
+    {
+        return CacheUtils.pluginEquals( a, b );
+    }
+
+    public void register( MavenProject project, Key cacheKey, CacheRecord record )
+    {
+        // default cache does not track record usage
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven/blob/be223808/maven-core/src/main/java/org/apache/maven/plugin/ProjectArtifactsCache.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/ProjectArtifactsCache.java b/maven-core/src/main/java/org/apache/maven/plugin/ProjectArtifactsCache.java
new file mode 100644
index 0000000..42a95e5
--- /dev/null
+++ b/maven-core/src/main/java/org/apache/maven/plugin/ProjectArtifactsCache.java
@@ -0,0 +1,90 @@
+package org.apache.maven.plugin;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.Collection;
+import java.util.Set;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.lifecycle.LifecycleExecutionException;
+import org.apache.maven.project.MavenProject;
+import org.eclipse.aether.RepositorySystemSession;
+/**
+ * Caches project artifacts. <strong>Warning:</strong> This is an internal utility interface that is only public for
+ * technical reasons, it is not part of the public API. In particular, this interface can be changed or deleted without
+ * prior notice.
+ *
+ * @author Igor Fedorenko
+ * @author Benjamin Bentmann
+ * @author Anton Tanasenko
+ */
+public interface ProjectArtifactsCache
+{
+
+    /**
+     * A cache key.
+     */
+    interface Key
+    {
+        // marker interface for cache keys
+    }
+
+    static class CacheRecord
+    {
+
+        public final Set<Artifact> artifacts;
+
+        public final LifecycleExecutionException exception;
+
+        public CacheRecord( Set<Artifact> artifacts )
+        {
+            this.artifacts = artifacts;
+            this.exception = null;
+        }
+
+        public CacheRecord( LifecycleExecutionException exception )
+        {
+            this.artifacts = null;
+            this.exception = exception;
+        }
+    }
+
+    Key createKey( MavenProject project, Collection<String> scopesToCollect, Collection<String> scopesToResolve, 
+        boolean aggregating, RepositorySystemSession session );
+
+    CacheRecord get( Key key ) throws LifecycleExecutionException;
+
+    CacheRecord put( Key key, Set<Artifact> pluginArtifacts );
+
+    CacheRecord put( Key key, LifecycleExecutionException e );
+
+    void flush();
+
+    /**
+     * Registers the specified cache record for usage with the given project. Integrators can use the information
+     * collected from this method in combination with a custom cache implementation to dispose unused records from the
+     * cache.
+     *
+     * @param project The project that employs the plugin realm, must not be {@code null}.
+     * @param record The cache record being used for the project, must not be {@code null}.
+     */
+    void register( MavenProject project, Key cacheKey, CacheRecord record );
+
+}


[12/18] maven git commit: [MNG-6228] Optionality not displayed in dependency tree when run in debug mode

Posted by kh...@apache.org.
[MNG-6228] Optionality not displayed in dependency tree when run in debug mode

Log message in DefaultProjectDependenciesResolver has been extended with
"(optional)" if dependency is marked as optional (direct or transitive).


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/fd988e78
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/fd988e78
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/fd988e78

Branch: refs/heads/MNG-6123-detect-self-references
Commit: fd988e78e95a53c3a39ec944869ba62b0c7fc0f0
Parents: 6182a20
Author: Michael Osipov <mi...@apache.org>
Authored: Tue May 9 22:15:21 2017 +0200
Committer: Michael Osipov <mi...@apache.org>
Committed: Tue May 9 22:15:21 2017 +0200

----------------------------------------------------------------------
 .../maven/project/DefaultProjectDependenciesResolver.java       | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/fd988e78/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
----------------------------------------------------------------------
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 5a803af..4e26de2 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
@@ -295,6 +295,11 @@ public class DefaultProjectDependenciesResolver
                     //      The resolver 1.0.x releases do not record premanaged state of properties.
                     buffer.append( " (properties managed)" );
                 }
+
+                if ( dep.isOptional() )
+                {
+                    buffer.append( " (optional)" );
+                }
             }
             else
             {


[17/18] maven git commit: [MNG-6084] Support JSR 250 annotations

Posted by kh...@apache.org.
[MNG-6084] Support JSR 250 annotations


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/a7dddcb8
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/a7dddcb8
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/a7dddcb8

Branch: refs/heads/MNG-6123-detect-self-references
Commit: a7dddcb87626fec256f1b8ccbe957f94cdf401e4
Parents: 66fc74d
Author: Dan Tran <da...@apache.org>
Authored: Sun Sep 11 21:07:39 2016 -0700
Committer: Michael Osipov <mi...@apache.org>
Committed: Thu May 25 20:05:35 2017 +0200

----------------------------------------------------------------------
 maven-core/src/main/resources/META-INF/maven/extension.xml    | 3 +++
 maven-embedder/pom.xml                                        | 4 ++++
 .../src/main/java/org/apache/maven/cli/MavenCli.java          | 7 ++++---
 pom.xml                                                       | 5 +++++
 4 files changed, 16 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/a7dddcb8/maven-core/src/main/resources/META-INF/maven/extension.xml
----------------------------------------------------------------------
diff --git a/maven-core/src/main/resources/META-INF/maven/extension.xml b/maven-core/src/main/resources/META-INF/maven/extension.xml
index 1d24d92..1f0b95f 100644
--- a/maven-core/src/main/resources/META-INF/maven/extension.xml
+++ b/maven-core/src/main/resources/META-INF/maven/extension.xml
@@ -98,6 +98,8 @@ under the License.
     <exportedPackage>javax.enterprise.util.*</exportedPackage>
     <exportedPackage>javax.enterprise.inject.*</exportedPackage>
 
+    <!-- javax.annotation (JSR-250) -->
+    <exportedPackage>javax.annotation.*</exportedPackage>
 
     <!-- 
       | We may potentially want to export these, but right now I'm not sure that anything Guice specific needs
@@ -157,6 +159,7 @@ under the License.
     <exportedArtifact>org.apache.maven.resolver:maven-resolver-impl</exportedArtifact>
 
     <exportedArtifact>javax.inject:javax.inject</exportedArtifact>
+    <exportedArtifact>javax.annotation:jsr250-api</exportedArtifact>
     <exportedArtifact>org.slf4j:slf4j-api</exportedArtifact>
     <exportedArtifact>org.fusesource.jansi:jansi</exportedArtifact>
 

http://git-wip-us.apache.org/repos/asf/maven/blob/a7dddcb8/maven-embedder/pom.xml
----------------------------------------------------------------------
diff --git a/maven-embedder/pom.xml b/maven-embedder/pom.xml
index 52e9c82..7bd2650 100644
--- a/maven-embedder/pom.xml
+++ b/maven-embedder/pom.xml
@@ -88,6 +88,10 @@ under the License.
       <artifactId>javax.inject</artifactId>
     </dependency>
     <dependency>
+      <groupId>javax.annotation</groupId>
+      <artifactId>jsr250-api</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
     </dependency>

http://git-wip-us.apache.org/repos/asf/maven/blob/a7dddcb8/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
----------------------------------------------------------------------
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 e1e58c8..641a2a9 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
@@ -601,9 +601,9 @@ public class MavenCli
 
         ClassRealm containerRealm = setupContainerRealm( cliRequest.classWorld, coreRealm, extClassPath, extensions );
 
-        ContainerConfiguration cc = new DefaultContainerConfiguration().setClassWorld( cliRequest.classWorld ).setRealm(
-            containerRealm ).setClassPathScanning( PlexusConstants.SCANNING_INDEX ).setAutoWiring( true ).setName(
-            "maven" );
+        ContainerConfiguration cc = new DefaultContainerConfiguration().setClassWorld( cliRequest.classWorld )
+            .setRealm( containerRealm ).setClassPathScanning( PlexusConstants.SCANNING_INDEX ).setAutoWiring( true )
+            .setJSR250Lifecycle( true ).setName( "maven" );
 
         Set<String> exportedArtifacts = new HashSet<>( coreEntry.getExportedArtifacts() );
         Set<String> exportedPackages = new HashSet<>( coreEntry.getExportedPackages() );
@@ -697,6 +697,7 @@ public class MavenCli
                 .setRealm( containerRealm ) //
                 .setClassPathScanning( PlexusConstants.SCANNING_INDEX ) //
                 .setAutoWiring( true ) //
+                .setJSR250Lifecycle( true ) //
                 .setName( "maven" );
 
             DefaultPlexusContainer container = new DefaultPlexusContainer( cc, new AbstractModule()

http://git-wip-us.apache.org/repos/asf/maven/blob/a7dddcb8/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 5e12e36..d6f165c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -259,6 +259,11 @@ under the License.
         <version>1</version>
       </dependency>
       <dependency>
+        <groupId>javax.annotation</groupId>
+        <artifactId>jsr250-api</artifactId>
+        <version>1.0</version>
+      </dependency>
+      <dependency>
         <groupId>org.codehaus.plexus</groupId>
         <artifactId>plexus-component-annotations</artifactId>
         <version>${plexusVersion}</version>


[05/18] maven git commit: MNG-6210 allow maven custom guice scopes in .mvn/extensions

Posted by kh...@apache.org.
MNG-6210 allow maven custom guice scopes in .mvn/extensions

Signed-off-by: Igor Fedorenko <if...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/c2c6259d
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/c2c6259d
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/c2c6259d

Branch: refs/heads/MNG-6123-detect-self-references
Commit: c2c6259de6f1262d9b31509b8c30844a386a4f29
Parents: ec629f7
Author: Igor Fedorenko <if...@apache.org>
Authored: Thu Apr 13 12:58:29 2017 -0700
Committer: Igor Fedorenko <if...@apache.org>
Committed: Fri Apr 14 10:38:45 2017 -0700

----------------------------------------------------------------------
 .../src/main/java/org/apache/maven/cli/MavenCli.java         | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/c2c6259d/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
----------------------------------------------------------------------
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 877b88b..79ab45d 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
@@ -56,6 +56,7 @@ import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenExecutionRequestPopulationException;
 import org.apache.maven.execution.MavenExecutionRequestPopulator;
 import org.apache.maven.execution.MavenExecutionResult;
+import org.apache.maven.execution.scope.internal.MojoExecutionScopeModule;
 import org.apache.maven.extension.internal.CoreExports;
 import org.apache.maven.extension.internal.CoreExtensionEntry;
 import org.apache.maven.lifecycle.LifecycleExecutionException;
@@ -63,6 +64,7 @@ import org.apache.maven.model.building.ModelProcessor;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.properties.internal.EnvironmentUtils;
 import org.apache.maven.properties.internal.SystemProperties;
+import org.apache.maven.session.scope.internal.SessionScopeModule;
 import org.apache.maven.shared.utils.logging.MessageBuilder;
 import org.apache.maven.shared.utils.logging.MessageUtils;
 import org.apache.maven.toolchain.building.DefaultToolchainsBuildingRequest;
@@ -684,20 +686,20 @@ public class MavenCli
 
         // NOTE: To avoid inconsistencies, we'll use the TCCL exclusively for lookups
         container.setLookupRealm( null );
+        Thread.currentThread().setContextClassLoader( container.getContainerRealm() );
 
         container.setLoggerManager( plexusLoggerManager );
 
         for ( CoreExtensionEntry extension : extensions )
         {
-            container.discoverComponents( extension.getClassRealm() );
+            container.discoverComponents( extension.getClassRealm(), new SessionScopeModule( container ),
+                                          new MojoExecutionScopeModule( container ) );
         }
 
         customizeContainer( container );
 
         container.getLoggerManager().setThresholds( cliRequest.request.getLoggingLevel() );
 
-        Thread.currentThread().setContextClassLoader( container.getContainerRealm() );
-
         eventSpyDispatcher = container.lookup( EventSpyDispatcher.class );
 
         DefaultEventSpyContext eventSpyContext = new DefaultEventSpyContext();


[13/18] maven git commit: [MNG-5935] Optional true getting lost in managed dependencies when transitive

Posted by kh...@apache.org.
[MNG-5935] Optional true getting lost in managed dependencies when transitive

Updated to correctly map the optional flag of Maven model dependencies to
Aether dependencies. Prior to this change all managed dependencies implicitly
had the optional flag set to 'false' leading to Aether managing that flag to
'false' on all managed dependencies when transitive.


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/f4ede96f
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/f4ede96f
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/f4ede96f

Branch: refs/heads/MNG-6123-detect-self-references
Commit: f4ede96fd06c8d3e1e2b2fb679baec058cce30e1
Parents: fd988e7
Author: Christian Schulte <sc...@apache.org>
Authored: Thu Feb 11 08:45:19 2016 +0100
Committer: Michael Osipov <mi...@apache.org>
Committed: Wed May 10 10:36:19 2017 +0200

----------------------------------------------------------------------
 .../src/main/java/org/apache/maven/RepositoryUtils.java       | 7 ++++++-
 .../repository/internal/ArtifactDescriptorReaderDelegate.java | 6 +++++-
 2 files changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/f4ede96f/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java b/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
index 86eab4e..52442b7 100644
--- a/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
+++ b/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
@@ -316,7 +316,12 @@ public class RepositoryUtils
             exclusions.add( toExclusion( exclusion ) );
         }
 
-        Dependency result = new Dependency( artifact, dependency.getScope(), dependency.isOptional(), exclusions );
+        Dependency result = new Dependency( artifact,
+                                            dependency.getScope(),
+                                            dependency.getOptional() != null
+                                                ? dependency.isOptional()
+                                                : null,
+                                            exclusions );
 
         return result;
     }

http://git-wip-us.apache.org/repos/asf/maven/blob/f4ede96f/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
----------------------------------------------------------------------
diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
index 42060b4..8219205 100644
--- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
+++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
@@ -124,7 +124,11 @@ public class ArtifactDescriptorReaderDelegate
             exclusions.add( convert( exclusion ) );
         }
 
-        Dependency result = new Dependency( artifact, dependency.getScope(), dependency.isOptional(), exclusions );
+        Dependency result = new Dependency( artifact, dependency.getScope(),
+                                            dependency.getOptional() != null
+                                                ? dependency.isOptional()
+                                                : null,
+                                            exclusions );
 
         return result;
     }


[16/18] maven git commit: MNG-6233 don't mix plexus and jsr330 annotations in aether-provider

Posted by kh...@apache.org.
MNG-6233 don't mix plexus and jsr330 annotations in aether-provider

Signed-off-by: Igor Fedorenko <if...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/66fc74d6
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/66fc74d6
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/66fc74d6

Branch: refs/heads/MNG-6123-detect-self-references
Commit: 66fc74d6296ea0a33f8a9712dc5ed5eb3affd529
Parents: 4463498
Author: Igor Fedorenko <if...@apache.org>
Authored: Tue Mar 28 08:41:38 2017 -0400
Committer: Igor Fedorenko <if...@apache.org>
Committed: Wed May 24 15:33:04 2017 -0400

----------------------------------------------------------------------
 maven-resolver-provider/pom.xml                        |  8 ++------
 .../internal/DefaultArtifactDescriptorReader.java      | 13 +++----------
 .../internal/DefaultVersionRangeResolver.java          |  9 ++-------
 .../repository/internal/DefaultVersionResolver.java    |  9 ++-------
 .../internal/SnapshotMetadataGeneratorFactory.java     |  7 +++++--
 .../internal/VersionsMetadataGeneratorFactory.java     |  7 +++++--
 6 files changed, 19 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/66fc74d6/maven-resolver-provider/pom.xml
----------------------------------------------------------------------
diff --git a/maven-resolver-provider/pom.xml b/maven-resolver-provider/pom.xml
index 0d1b481..53e67e5 100644
--- a/maven-resolver-provider/pom.xml
+++ b/maven-resolver-provider/pom.xml
@@ -64,10 +64,6 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-component-annotations</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
     </dependency>
     <dependency>
@@ -125,8 +121,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>

http://git-wip-us.apache.org/repos/asf/maven/blob/66fc74d6/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
----------------------------------------------------------------------
diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
index 82e1284..7ccdc05 100644
--- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
+++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
@@ -26,6 +26,7 @@ import java.util.Set;
 
 import javax.inject.Inject;
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import org.apache.commons.lang3.Validate;
 import org.apache.maven.model.DistributionManagement;
@@ -39,8 +40,6 @@ import org.apache.maven.model.building.ModelBuildingException;
 import org.apache.maven.model.building.ModelBuildingRequest;
 import org.apache.maven.model.building.ModelProblem;
 import org.apache.maven.model.resolution.UnresolvableModelException;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.eclipse.aether.RepositoryEvent;
 import org.eclipse.aether.RepositoryEvent.EventType;
 import org.eclipse.aether.RepositoryException;
@@ -77,31 +76,24 @@ import org.eclipse.aether.transfer.ArtifactNotFoundException;
  * @author Benjamin Bentmann
  */
 @Named
-@Component( role = ArtifactDescriptorReader.class )
+@Singleton
 public class DefaultArtifactDescriptorReader
     implements ArtifactDescriptorReader, Service
 {
 
     @SuppressWarnings( "unused" )
-    @Requirement( role = LoggerFactory.class )
     private Logger logger = NullLoggerFactory.LOGGER;
 
-    @Requirement
     private RemoteRepositoryManager remoteRepositoryManager;
 
-    @Requirement
     private VersionResolver versionResolver;
 
-    @Requirement
     private VersionRangeResolver versionRangeResolver;
 
-    @Requirement
     private ArtifactResolver artifactResolver;
 
-    @Requirement
     private RepositoryEventDispatcher repositoryEventDispatcher;
 
-    @Requirement
     private ModelBuilder modelBuilder;
 
     public DefaultArtifactDescriptorReader()
@@ -117,6 +109,7 @@ public class DefaultArtifactDescriptorReader
     {
         setRemoteRepositoryManager( remoteRepositoryManager );
         setVersionResolver( versionResolver );
+        setVersionRangeResolver( versionRangeResolver );
         setArtifactResolver( artifactResolver );
         setModelBuilder( modelBuilder );
         setLoggerFactory( loggerFactory );

http://git-wip-us.apache.org/repos/asf/maven/blob/66fc74d6/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
----------------------------------------------------------------------
diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
index c12c9e0..7a8ad9f 100644
--- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
+++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
@@ -22,8 +22,6 @@ package org.apache.maven.repository.internal;
 import org.apache.commons.lang3.Validate;
 import org.apache.maven.artifact.repository.metadata.Versioning;
 import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.eclipse.aether.RepositoryEvent;
 import org.eclipse.aether.RepositoryEvent.EventType;
 import org.eclipse.aether.RepositorySystemSession;
@@ -56,6 +54,7 @@ import org.eclipse.aether.version.VersionScheme;
 
 import javax.inject.Inject;
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import java.io.FileInputStream;
 import java.io.InputStream;
@@ -69,7 +68,7 @@ import java.util.Map;
  * @author Benjamin Bentmann
  */
 @Named
-@Component( role = VersionRangeResolver.class )
+@Singleton
 public class DefaultVersionRangeResolver
     implements VersionRangeResolver, Service
 {
@@ -77,16 +76,12 @@ public class DefaultVersionRangeResolver
     private static final String MAVEN_METADATA_XML = "maven-metadata.xml";
 
     @SuppressWarnings( "unused" )
-    @Requirement( role = LoggerFactory.class )
     private Logger logger = NullLoggerFactory.LOGGER;
 
-    @Requirement
     private MetadataResolver metadataResolver;
 
-    @Requirement
     private SyncContextFactory syncContextFactory;
 
-    @Requirement
     private RepositoryEventDispatcher repositoryEventDispatcher;
 
     public DefaultVersionRangeResolver()

http://git-wip-us.apache.org/repos/asf/maven/blob/66fc74d6/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
----------------------------------------------------------------------
diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
index c23794b..2789640 100644
--- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
+++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
@@ -24,8 +24,6 @@ import org.apache.maven.artifact.repository.metadata.Snapshot;
 import org.apache.maven.artifact.repository.metadata.SnapshotVersion;
 import org.apache.maven.artifact.repository.metadata.Versioning;
 import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.StringUtils;
 import org.eclipse.aether.RepositoryCache;
 import org.eclipse.aether.RepositoryEvent;
@@ -60,6 +58,7 @@ import org.eclipse.aether.util.ConfigUtils;
 
 import javax.inject.Inject;
 import javax.inject.Named;
+import javax.inject.Singleton;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -75,7 +74,7 @@ import java.util.Map;
  * @author Benjamin Bentmann
  */
 @Named
-@Component( role = VersionResolver.class )
+@Singleton
 public class DefaultVersionResolver
     implements VersionResolver, Service
 {
@@ -89,16 +88,12 @@ public class DefaultVersionResolver
     private static final String SNAPSHOT = "SNAPSHOT";
 
     @SuppressWarnings( "unused" )
-    @Requirement( role = LoggerFactory.class )
     private Logger logger = NullLoggerFactory.LOGGER;
 
-    @Requirement
     private MetadataResolver metadataResolver;
 
-    @Requirement
     private SyncContextFactory syncContextFactory;
 
-    @Requirement
     private RepositoryEventDispatcher repositoryEventDispatcher;
 
     public DefaultVersionResolver()

http://git-wip-us.apache.org/repos/asf/maven/blob/66fc74d6/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/SnapshotMetadataGeneratorFactory.java
----------------------------------------------------------------------
diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/SnapshotMetadataGeneratorFactory.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/SnapshotMetadataGeneratorFactory.java
index 79ffaad..ba6dadf 100644
--- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/SnapshotMetadataGeneratorFactory.java
+++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/SnapshotMetadataGeneratorFactory.java
@@ -19,7 +19,9 @@ package org.apache.maven.repository.internal;
  * under the License.
  */
 
-import org.codehaus.plexus.component.annotations.Component;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.deployment.DeployRequest;
 import org.eclipse.aether.impl.MetadataGenerator;
@@ -29,7 +31,8 @@ import org.eclipse.aether.installation.InstallRequest;
 /**
  * @author Benjamin Bentmann
  */
-@Component( role = MetadataGeneratorFactory.class, hint = "snapshot" )
+@Named( "snapshot" )
+@Singleton
 public class SnapshotMetadataGeneratorFactory
     implements MetadataGeneratorFactory
 {

http://git-wip-us.apache.org/repos/asf/maven/blob/66fc74d6/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGeneratorFactory.java
----------------------------------------------------------------------
diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGeneratorFactory.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGeneratorFactory.java
index 47ef360..eae836a 100644
--- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGeneratorFactory.java
+++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGeneratorFactory.java
@@ -19,7 +19,9 @@ package org.apache.maven.repository.internal;
  * under the License.
  */
 
-import org.codehaus.plexus.component.annotations.Component;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.deployment.DeployRequest;
 import org.eclipse.aether.impl.MetadataGenerator;
@@ -29,7 +31,8 @@ import org.eclipse.aether.installation.InstallRequest;
 /**
  * @author Benjamin Bentmann
  */
-@Component( role = MetadataGeneratorFactory.class, hint = "versions" )
+@Named( "versions" )
+@Singleton
 public class VersionsMetadataGeneratorFactory
     implements MetadataGeneratorFactory
 {


[06/18] maven git commit: Doc improvement in simplelogger.properties

Posted by kh...@apache.org.
Doc improvement in simplelogger.properties


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/3938817f
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/3938817f
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/3938817f

Branch: refs/heads/MNG-6123-detect-self-references
Commit: 3938817fd3e0ad62efe335307406e70bff876834
Parents: c2c6259
Author: Michael Osipov <mi...@apache.org>
Authored: Fri Apr 21 22:50:11 2017 +0200
Committer: Michael Osipov <mi...@apache.org>
Committed: Fri Apr 21 22:50:11 2017 +0200

----------------------------------------------------------------------
 apache-maven/src/conf/logging/simplelogger.properties | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/3938817f/apache-maven/src/conf/logging/simplelogger.properties
----------------------------------------------------------------------
diff --git a/apache-maven/src/conf/logging/simplelogger.properties b/apache-maven/src/conf/logging/simplelogger.properties
index eb3d049..8dea717 100644
--- a/apache-maven/src/conf/logging/simplelogger.properties
+++ b/apache-maven/src/conf/logging/simplelogger.properties
@@ -24,8 +24,8 @@ org.slf4j.simpleLogger.levelInBrackets=true
 org.slf4j.simpleLogger.log.Sisu=info
 org.slf4j.simpleLogger.warnLevelString=WARNING
 
-# MNG-6181: mvn -X also prints all debug logging from http-client
+# MNG-6181: mvn -X also prints all debug logging from HttpClient
 # Be aware that the shaded packages are used
 # org.apache.http -> org.apache.maven.wagon.providers.http.httpclient
 org.slf4j.simpleLogger.log.org.apache.maven.wagon.providers.http.httpclient=off
-org.slf4j.simpleLogger.log.org.apache.maven.wagon.providers.http.httpclient.wire=off
\ No newline at end of file
+org.slf4j.simpleLogger.log.org.apache.maven.wagon.providers.http.httpclient.wire=off


[10/18] maven git commit: [MNG-6205] upgraded JAnsi to 1.16 for console encoding fix

Posted by kh...@apache.org.
[MNG-6205] upgraded JAnsi to 1.16 for console encoding fix

also fixes MNG-6218 MinGW bash detection fixed by JAnsi 1.14

Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/2a79d1e7
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/2a79d1e7
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/2a79d1e7

Branch: refs/heads/MNG-6123-detect-self-references
Commit: 2a79d1e71edc0ddd0c0ba1612ce520f43961eef2
Parents: 2d44015
Author: Hervé Boutemy <hb...@apache.org>
Authored: Sat May 6 18:25:36 2017 +0200
Committer: Hervé Boutemy <hb...@apache.org>
Committed: Tue May 9 21:08:04 2017 +0200

----------------------------------------------------------------------
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/2a79d1e7/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 2962487..e16d93b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -277,7 +277,7 @@ under the License.
       <dependency>
         <groupId>org.fusesource.jansi</groupId>
         <artifactId>jansi</artifactId>
-        <version>1.13</version>
+        <version>1.16</version>
       </dependency>
       <dependency>
         <groupId>org.slf4j</groupId>


[02/18] maven git commit: Improve Javadoc of ComparableVersion#main()

Posted by kh...@apache.org.
Improve Javadoc of ComparableVersion#main()

This closes #108


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/6a93bbea
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/6a93bbea
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/6a93bbea

Branch: refs/heads/MNG-6123-detect-self-references
Commit: 6a93bbea23e362c9cea7d710a37556258c2dbd47
Parents: 08f3c76 10a18cf
Author: Lubomir Varga <lu...@nike.sk>
Authored: Tue Apr 11 16:00:42 2017 +0200
Committer: Michael Osipov <mi...@apache.org>
Committed: Tue Apr 11 16:02:21 2017 +0200

----------------------------------------------------------------------
 .../maven/artifact/versioning/ComparableVersion.java   | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/6a93bbea/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
----------------------------------------------------------------------
diff --cc maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
index 5222871,0ae4acb..e1fc5f0
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
@@@ -472,8 -472,19 +472,19 @@@ public class ComparableVersio
  
      /**
       * Main to test version parsing and comparison.
+      * <p>
 -     * To check how "1.2.7" compares to "1.2-SNAPSHOT" for example, you can issue
 -     * <code>java -cp ~/.m2/repository/org/apache/maven/maven-artifact/3.3.9/maven-artifact-3.3.9.jar org.apache.maven.artifact.versioning.ComparableVersion "1.2.7" "1.2-SNAPSHOT"</code>
 -     * command to commandline. Result of given command will be something like this:
 -     * <pre
++     * Checks how "1.2.7" compares to "1.2-SNAPSHOT", for example, you can issue
++     * <code>java -cp ${maven.repo.local}/org/apache/maven/maven-artifact/${maven.version}/maven-artifact-${maven.version}.jar org.apache.maven.artifact.versioning.ComparableVersion "1.2.7" "1.2-SNAPSHOT"</code>
++     * command to command line. Result of given command will be something like this:
++     * <pre>
+      * Display parameters as parsed by Maven (in canonical form) and comparison result:
+      * 1. 1.2.7 == 1.2.7
 -     *    1.2.7 > 1.2-SNAPSHOT
++     *    1.2.7 &gt; 1.2-SNAPSHOT
+      * 2. 1.2-SNAPSHOT == 1.2-snapshot
+      * </pre>
       *
-      * @param args the version strings to parse and compare
+      * @param args the version strings to parse and compare. You can pass arbitrary number of version strings and always
+      * two adjacent will be compared
       */
      public static void main( String... args )
      {