[03/15] maven git commit: [MNG-5600] Dependency management import should support exclusions.

2017-03-08 Thread schulte
[MNG-5600] Dependency management import should support exclusions.


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

Branch: refs/heads/DEPMGMT
Commit: a737ac87320816010945501cea12b8b638e0033a
Parents: 12247ff
Author: Christian Schulte 
Authored: Sun Jun 19 16:32:25 2016 +0200
Committer: Christian Schulte 
Committed: Wed Mar 8 19:40:30 2017 +0100

--
 .../model/building/DefaultModelBuilder.java | 57 +++-
 1 file changed, 45 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/maven/blob/a737ac87/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
--
diff --git 
a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
 
b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
index e3beb2c..6d0b4a9 100644
--- 
a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
+++ 
b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
@@ -19,6 +19,16 @@ package org.apache.maven.model.building;
  * under the License.
  */
 
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
 
 import org.apache.commons.lang3.Validate;
 import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
@@ -28,6 +38,7 @@ import org.apache.maven.model.Activation;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DependencyManagement;
+import org.apache.maven.model.Exclusion;
 import org.apache.maven.model.InputLocation;
 import org.apache.maven.model.InputSource;
 import org.apache.maven.model.Model;
@@ -63,17 +74,6 @@ import org.apache.maven.model.validation.ModelValidator;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
 import static org.apache.maven.model.building.Result.error;
 import static org.apache.maven.model.building.Result.newResult;
 
@@ -1223,7 +1223,40 @@ public class DefaultModelBuilder
 importMgmt = new DependencyManagement();
 }
 
-putCache( request.getModelCache(), groupId, artifactId, 
version, ModelCacheTag.IMPORT, importMgmt );
+// [MNG-5600] Dependency management import should support 
exclusions.
+if ( !dependency.getExclusions().isEmpty() )
+{
+for ( final Exclusion exclusion : 
dependency.getExclusions() )
+{
+if ( exclusion.getGroupId() != null && 
exclusion.getArtifactId() != null )
+{
+for ( final Iterator dependencies = 
importMgmt.getDependencies().iterator();
+  dependencies.hasNext(); )
+{
+final Dependency candidate = 
dependencies.next();
+
+if ( ( exclusion.getGroupId().equals( "*" )
+   || exclusion.getGroupId().equals( 
candidate.getGroupId() ) )
+ && ( 
exclusion.getArtifactId().equals( "*" )
+  || 
exclusion.getArtifactId().equals( candidate.getArtifactId() ) ) )
+{
+// Dependency excluded from import.
+dependencies.remove();
+}
+}
+}
+}
+
+for ( final Dependency includedDependency : 
importMgmt.getDependencies() )
+{
+includedDependency.getExclusions().addAll( 
dependency.getExclusions() );
+}
+}
+else
+{
+// Only dependency managements without exclusion 
processing applied can be cached.
+putCache( request.getMode

[03/15] maven git commit: [MNG-5600] Dependency management import should support exclusions.

2017-02-10 Thread schulte
[MNG-5600] Dependency management import should support exclusions.


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

Branch: refs/heads/DEPMGMT
Commit: c134495d11a3f3c968cf19658deaeddf50aaaf0a
Parents: 183c204
Author: Christian Schulte 
Authored: Sun Jun 19 16:32:25 2016 +0200
Committer: Christian Schulte 
Committed: Fri Feb 10 22:50:55 2017 +0100

--
 .../model/building/DefaultModelBuilder.java | 59 +++-
 1 file changed, 45 insertions(+), 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/maven/blob/c134495d/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
--
diff --git 
a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
 
b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
index 5fa52a6..0047c53 100644
--- 
a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
+++ 
b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
@@ -19,7 +19,16 @@ package org.apache.maven.model.building;
  * under the License.
  */
 
-
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
 import org.apache.commons.lang3.Validate;
 import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
 import 
org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
@@ -28,6 +37,7 @@ import org.apache.maven.model.Activation;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DependencyManagement;
+import org.apache.maven.model.Exclusion;
 import org.apache.maven.model.InputLocation;
 import org.apache.maven.model.InputSource;
 import org.apache.maven.model.Model;
@@ -62,18 +72,6 @@ import org.apache.maven.model.superpom.SuperPomProvider;
 import org.apache.maven.model.validation.ModelValidator;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
 import static org.apache.maven.model.building.Result.error;
 import static org.apache.maven.model.building.Result.newResult;
 
@@ -1223,7 +1221,40 @@ public class DefaultModelBuilder
 importMgmt = new DependencyManagement();
 }
 
-putCache( request.getModelCache(), groupId, artifactId, 
version, ModelCacheTag.IMPORT, importMgmt );
+// [MNG-5600] Dependency management import should support 
exclusions.
+if ( !dependency.getExclusions().isEmpty() )
+{
+for ( final Exclusion exclusion : 
dependency.getExclusions() )
+{
+if ( exclusion.getGroupId() != null && 
exclusion.getArtifactId() != null )
+{
+for ( final Iterator dependencies = 
importMgmt.getDependencies().iterator();
+  dependencies.hasNext(); )
+{
+final Dependency candidate = 
dependencies.next();
+
+if ( ( exclusion.getGroupId().equals( "*" )
+   || exclusion.getGroupId().equals( 
candidate.getGroupId() ) )
+ && ( 
exclusion.getArtifactId().equals( "*" )
+  || 
exclusion.getArtifactId().equals( candidate.getArtifactId() ) ) )
+{
+// Dependency excluded from import.
+dependencies.remove();
+}
+}
+}
+}
+
+for ( final Dependency includedDependency : 
importMgmt.getDependencies() )
+{
+includedDependency.getExclusions().addAll( 
dependency.getExclusions() );
+}
+}
+else
+{
+   

[03/15] maven git commit: [MNG-5600] Dependency management import should support exclusions.

2017-01-31 Thread schulte
[MNG-5600] Dependency management import should support exclusions.


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

Branch: refs/heads/DEPMGMT-IT
Commit: 514a69df1574825b3e65d107cc9d22f23130886c
Parents: b8edd34
Author: Christian Schulte 
Authored: Sun Jun 19 16:32:25 2016 +0200
Committer: Christian Schulte 
Committed: Wed Feb 1 00:38:16 2017 +0100

--
 .../model/building/DefaultModelBuilder.java | 59 +++-
 1 file changed, 45 insertions(+), 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/maven/blob/514a69df/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
--
diff --git 
a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
 
b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
index 5ca1623..69e95ab 100644
--- 
a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
+++ 
b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
@@ -19,7 +19,16 @@ package org.apache.maven.model.building;
  * under the License.
  */
 
-
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
 import org.apache.commons.lang3.Validate;
 import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
 import 
org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
@@ -28,6 +37,7 @@ import org.apache.maven.model.Activation;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DependencyManagement;
+import org.apache.maven.model.Exclusion;
 import org.apache.maven.model.InputLocation;
 import org.apache.maven.model.InputSource;
 import org.apache.maven.model.Model;
@@ -62,18 +72,6 @@ import org.apache.maven.model.superpom.SuperPomProvider;
 import org.apache.maven.model.validation.ModelValidator;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
 import static org.apache.maven.model.building.Result.error;
 import static org.apache.maven.model.building.Result.newResult;
 
@@ -1218,7 +1216,40 @@ public class DefaultModelBuilder
 importMngt = new DependencyManagement();
 }
 
-putCache( request.getModelCache(), groupId, artifactId, 
version, ModelCacheTag.IMPORT, importMngt );
+// [MNG-5600] Dependency management import should support 
exclusions.
+if ( !dependency.getExclusions().isEmpty() )
+{
+for ( final Exclusion exclusion : 
dependency.getExclusions() )
+{
+if ( exclusion.getGroupId() != null && 
exclusion.getArtifactId() != null )
+{
+for ( final Iterator dependencies = 
importMngt.getDependencies().iterator();
+  dependencies.hasNext(); )
+{
+final Dependency candidate = 
dependencies.next();
+
+if ( ( exclusion.getGroupId().equals( "*" )
+   || exclusion.getGroupId().equals( 
candidate.getGroupId() ) )
+ && ( 
exclusion.getArtifactId().equals( "*" )
+  || 
exclusion.getArtifactId().equals( candidate.getArtifactId() ) ) )
+{
+// Dependency excluded from import.
+dependencies.remove();
+}
+}
+}
+}
+
+for ( final Dependency includedDependency : 
importMngt.getDependencies() )
+{
+includedDependency.getExclusions().addAll( 
dependency.getExclusions() );
+}
+}
+else
+{
+