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

2017-02-04 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/fffa0db5
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/fffa0db5
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/fffa0db5

Branch: refs/heads/DEPMGMT-IT
Commit: fffa0db507a7a019d6ec9a6bfc2a6cf8172ce4f1
Parents: 9579741
Author: Christian Schulte 
Authored: Sun Jun 19 16:32:25 2016 +0200
Committer: Christian Schulte 
Committed: Sun Feb 5 00:05:27 2017 +0100

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


http://git-wip-us.apache.org/repos/asf/maven/blob/fffa0db5/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 b25d8f2..9c505a9 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() );
+}
+}
+  

[04/16] 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/d92b6ce7
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/d92b6ce7
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/d92b6ce7

Branch: refs/heads/DEPMGMT
Commit: d92b6ce729df6b9032594db1b7de34d398b93c39
Parents: 04436df
Author: Christian Schulte 
Authored: Sun Jun 19 16:32:25 2016 +0200
Committer: Christian Schulte 
Committed: Tue Jan 31 23:06:48 2017 +0100

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


http://git-wip-us.apache.org/repos/asf/maven/blob/d92b6ce7/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() );
+}
+}
+