You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2018/11/18 14:51:40 UTC

[maven] branch MNG-5995 updated (684a9fc -> 51e0f29)

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

slachiewicz pushed a change to branch MNG-5995
in repository https://gitbox.apache.org/repos/asf/maven.git.


 discard 684a9fc  [MNG-5995] Remove dependency to maven-compat
     add db462ae  [MNG-6059] renamed attributes to get more flexibility for scm urls
     add f97316c  [MNG-6505] inherit child.x.y.inherit.append.path values
     add 07bd550  [MNG-6505] tweaked distributionManagement.site inheritance
     add 78f605e  [MNG-6515] Fix Javadoc build errors
     add f92bd9e  [MNG-6481] Run Maven Core Integration Tests with Java 7, 8 and 11
     add 86d4a91  [MNGSITE-357] README.md: Maven user list link not working
     new 51e0f29  [MNG-5995] Remove dependency to maven-compat

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (684a9fc)
            \
             N -- N -- N   refs/heads/MNG-5995 (51e0f29)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

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


Summary of changes:
 Jenkinsfile                                        |   2 +-
 README.md                                          |   2 +-
 .../repository/MavenArtifactRepository.java        |   2 +-
 .../plugin/PluginParameterExpressionEvaluator.java |   4 +-
 .../model/interpolation/ModelInterpolator.java     |   2 +-
 .../apache/maven/model/merge/MavenModelMerger.java |  42 +++++--
 maven-model-builder/src/site/apt/index.apt         |   8 ++
 .../DefaultInheritanceAssemblerTest.java           |  22 +++-
 .../poms/inheritance/no-append-urls-expected.xml   |  11 +-
 .../poms/inheritance/no-append-urls-parent.xml     |  10 +-
 ...at-urls-child.xml => no-append-urls2-child.xml} |   9 ++
 ...s-expected.xml => no-append-urls2-expected.xml} |  16 +--
 ...-urls-parent.xml => no-append-urls2-parent.xml} |  18 ++-
 ...at-urls-child.xml => no-append-urls3-child.xml} |   7 ++
 ...s-expected.xml => no-append-urls3-expected.xml} |  12 +-
 ...-urls-parent.xml => no-append-urls3-parent.xml} |  18 ++-
 .../org/apache/maven/model/merge/ModelMerger.java  |  81 +++++++++++++
 maven-model/src/main/mdo/maven.mdo                 | 131 +++++++++++++++------
 .../java/org/apache/maven/plugin/AbstractMojo.java |   5 +-
 maven-settings/src/main/mdo/settings.mdo           |   2 +-
 20 files changed, 304 insertions(+), 100 deletions(-)
 copy maven-model-builder/src/test/resources/poms/inheritance/{flat-urls-child.xml => no-append-urls2-child.xml} (77%)
 copy maven-model-builder/src/test/resources/poms/inheritance/{no-append-urls-expected.xml => no-append-urls2-expected.xml} (79%)
 copy maven-model-builder/src/test/resources/poms/inheritance/{flat-urls-parent.xml => no-append-urls2-parent.xml} (76%)
 copy maven-model-builder/src/test/resources/poms/inheritance/{flat-urls-child.xml => no-append-urls3-child.xml} (81%)
 copy maven-model-builder/src/test/resources/poms/inheritance/{no-append-urls-expected.xml => no-append-urls3-expected.xml} (84%)
 copy maven-model-builder/src/test/resources/poms/inheritance/{flat-urls-parent.xml => no-append-urls3-parent.xml} (76%)


[maven] 01/01: [MNG-5995] Remove dependency to maven-compat

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

slachiewicz pushed a commit to branch MNG-5995
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 51e0f29dce3de40290b4f1b503e735ac5458adc5
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Sat Oct 13 04:16:44 2018 +0200

    [MNG-5995] Remove dependency to maven-compat
---
 .../apache/maven/bridge/MavenRepositorySystem.java | 93 +++++++++++++++++++++-
 .../project/DefaultProjectBuildingHelper.java      |  6 +-
 2 files changed, 94 insertions(+), 5 deletions(-)

diff --git a/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java b/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java
index 84ad93c..07ffdae 100644
--- a/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java
+++ b/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java
@@ -23,8 +23,10 @@ import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -606,8 +608,95 @@ public class MavenRepositorySystem
 
         return repoIds;
     }
-    
-    
+
+    public List<ArtifactRepository> getEffectiveRepositories( List<ArtifactRepository> repositories )
+    {
+        if ( repositories == null )
+        {
+            return null;
+        }
+
+        Map<String, List<ArtifactRepository>> reposByKey = new LinkedHashMap<>();
+
+        for ( ArtifactRepository repository : repositories )
+        {
+            String key = repository.getId();
+
+            List<ArtifactRepository> aliasedRepos = reposByKey.get( key );
+
+            if ( aliasedRepos == null )
+            {
+                aliasedRepos = new ArrayList<>();
+                reposByKey.put( key, aliasedRepos );
+            }
+
+            aliasedRepos.add( repository );
+        }
+
+        List<ArtifactRepository> effectiveRepositories = new ArrayList<>();
+
+        for ( List<ArtifactRepository> aliasedRepos : reposByKey.values() )
+        {
+            List<ArtifactRepository> mirroredRepos = new ArrayList<>();
+
+            List<ArtifactRepositoryPolicy> releasePolicies =
+                    new ArrayList<>( aliasedRepos.size() );
+
+            for ( ArtifactRepository aliasedRepo : aliasedRepos )
+            {
+                releasePolicies.add( aliasedRepo.getReleases() );
+                mirroredRepos.addAll( aliasedRepo.getMirroredRepositories() );
+            }
+
+            ArtifactRepositoryPolicy releasePolicy = getEffectivePolicy( releasePolicies );
+
+            List<ArtifactRepositoryPolicy> snapshotPolicies =
+                    new ArrayList<>( aliasedRepos.size() );
+
+            for ( ArtifactRepository aliasedRepo : aliasedRepos )
+            {
+                snapshotPolicies.add( aliasedRepo.getSnapshots() );
+            }
+
+            ArtifactRepositoryPolicy snapshotPolicy = getEffectivePolicy( snapshotPolicies );
+
+            ArtifactRepository aliasedRepo = aliasedRepos.get( 0 );
+
+            ArtifactRepository effectiveRepository =
+                    createArtifactRepository( aliasedRepo.getId(), aliasedRepo.getUrl(), aliasedRepo.getLayout(),
+                            snapshotPolicy, releasePolicy );
+
+            effectiveRepository.setAuthentication( aliasedRepo.getAuthentication() );
+
+            effectiveRepository.setProxy( aliasedRepo.getProxy() );
+
+            effectiveRepository.setMirroredRepositories( mirroredRepos );
+
+            effectiveRepositories.add( effectiveRepository );
+        }
+
+        return effectiveRepositories;
+    }
+
+    private ArtifactRepositoryPolicy getEffectivePolicy( Collection<ArtifactRepositoryPolicy> policies )
+    {
+        ArtifactRepositoryPolicy effectivePolicy = null;
+
+        for ( ArtifactRepositoryPolicy policy : policies )
+        {
+            if ( effectivePolicy == null )
+            {
+                effectivePolicy = new ArtifactRepositoryPolicy( policy );
+            }
+            else
+            {
+                effectivePolicy.merge( policy );
+            }
+        }
+
+        return effectivePolicy;
+    }
+
     public ArtifactRepository createLocalRepository( MavenExecutionRequest request, File localRepository )
         throws Exception
     {
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
index 3159fac..0bd94a8 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
@@ -33,6 +33,7 @@ import org.apache.maven.RepositoryUtils;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.InvalidRepositoryException;
 import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.bridge.MavenRepositorySystem;
 import org.apache.maven.classrealm.ClassRealmManager;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Extension;
@@ -44,7 +45,6 @@ import org.apache.maven.plugin.MavenPluginManager;
 import org.apache.maven.plugin.PluginManagerException;
 import org.apache.maven.plugin.PluginResolutionException;
 import org.apache.maven.plugin.version.PluginVersionResolutionException;
-import org.apache.maven.repository.RepositorySystem;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.classworlds.realm.ClassRealm;
 import org.codehaus.plexus.component.annotations.Component;
@@ -78,7 +78,7 @@ public class DefaultProjectBuildingHelper
     private ProjectRealmCache projectRealmCache;
 
     @Requirement
-    private RepositorySystem repositorySystem;
+    private MavenRepositorySystem repositorySystem;
 
     @Requirement
     private MavenPluginManager pluginManager;
@@ -92,7 +92,7 @@ public class DefaultProjectBuildingHelper
 
         for ( Repository repository : pomRepositories )
         {
-            internalRepositories.add( repositorySystem.buildArtifactRepository( repository ) );
+            internalRepositories.add( MavenRepositorySystem.buildArtifactRepository( repository ) );
         }
 
         repositorySystem.injectMirror( request.getRepositorySession(), internalRepositories );