You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sc...@apache.org on 2016/06/30 06:19:43 UTC

maven git commit: [MNG-4645] Move central repo definition out of Maven's core so it can be more easily changed.

Repository: maven
Updated Branches:
  refs/heads/master 5077f2216 -> 15a9c32f6


[MNG-4645] Move central repo definition out of Maven's core so it can be more easily changed.

o Updated to stop falling back to some hard-coded default 'central' repository,
  if no such repository is setup in the settings or the POM. This means there
  is no such thing as a default repository other than what is shipped with
  the default settings anymore.


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

Branch: refs/heads/master
Commit: 15a9c32f6775f10fb5317ad6cddfafd72d7f9e8d
Parents: 5077f22
Author: Christian Schulte <sc...@apache.org>
Authored: Thu Jun 30 08:12:52 2016 +0200
Committer: Christian Schulte <sc...@apache.org>
Committed: Thu Jun 30 08:18:08 2016 +0200

----------------------------------------------------------------------
 apache-maven/src/conf/settings.xml              |  6 ++
 .../maven/bridge/MavenRepositorySystem.java     | 33 +++++-----
 .../DefaultMavenExecutionRequestPopulator.java  | 67 +++-----------------
 .../maven/repository/RepositorySystem.java      | 15 +++++
 .../project/AbstractMavenProjectTestCase.java   | 13 +++-
 .../artifact/DefaultMavenMetadataCacheTest.java | 36 +++++++++--
 .../maven/repository/TestRepositorySystem.java  | 10 +--
 7 files changed, 95 insertions(+), 85 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/15a9c32f/apache-maven/src/conf/settings.xml
----------------------------------------------------------------------
diff --git a/apache-maven/src/conf/settings.xml b/apache-maven/src/conf/settings.xml
index 81f3560..8d903f2 100644
--- a/apache-maven/src/conf/settings.xml
+++ b/apache-maven/src/conf/settings.xml
@@ -245,6 +245,9 @@ under the License.
     </profile>
     -->
 
+    <!--
+    | Default profile holding various defaults.
+    |-->
     <profile>
       <id>default</id>
 
@@ -257,6 +260,9 @@ under the License.
           <snapshots>
             <enabled>false</enabled>
           </snapshots>
+          <releases>
+            <updatePolicy>never</updatePolicy>
+          </releases>
         </repository>
       </repositories>
 

http://git-wip-us.apache.org/repos/asf/maven/blob/15a9c32f/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java
----------------------------------------------------------------------
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 9331710..428ade0 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
@@ -416,8 +416,8 @@ public class MavenRepositorySystem
         }
 
         return new ArtifactRepositoryPolicy( enabled, updatePolicy, checksumPolicy );
-    }    
-    
+    }
+
     public ArtifactRepository createArtifactRepository( String id, String url, String layoutId,
                                                         ArtifactRepositoryPolicy snapshots,
                                                         ArtifactRepositoryPolicy releases )
@@ -439,7 +439,7 @@ public class MavenRepositorySystem
                                                 repositoryId ) );
         }
     }
-    
+
     public static ArtifactRepository createArtifactRepository( String id, String url,
                                                         ArtifactRepositoryLayout repositoryLayout,
                                                         ArtifactRepositoryPolicy snapshots,
@@ -564,20 +564,21 @@ public class MavenRepositorySystem
         return new DefaultArtifact( groupId, artifactId, versionRange, desiredScope, type, classifier, handler,
                                     optional );
     }
-    
+
     //
     // Code taken from LegacyRepositorySystem
     //
-        
+    /**
+     * @deprecation As of 3.4, Maven no longer falls back to a hard-coded default repository with identifier
+     * {@code central} if such a repository is not provided in the settings or the POM.
+     */
+    @Deprecated
     public ArtifactRepository createDefaultRemoteRepository( MavenExecutionRequest request )
         throws Exception
     {
-        return createRepository( RepositorySystem.DEFAULT_REMOTE_REPO_URL, RepositorySystem.DEFAULT_REMOTE_REPO_ID,
-                                 true, ArtifactRepositoryPolicy.UPDATE_POLICY_DAILY, false,
-                                 ArtifactRepositoryPolicy.UPDATE_POLICY_DAILY,
-                                 ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN );
+        throw new UnsupportedOperationException();
     }
-    
+
     public ArtifactRepository createRepository( String url, String repositoryId, boolean releases,
                                                  String releaseUpdates, boolean snapshots, String snapshotUpdates,
                                                  String checksumPolicy ) throws Exception
@@ -590,7 +591,7 @@ public class MavenRepositorySystem
 
         return createArtifactRepository( repositoryId, url, "default", snapshotsPolicy, releasesPolicy );
     }
-        
+
     public Set<String> getRepoIds( List<ArtifactRepository> repositories )
     {
         Set<String> repoIds = new HashSet<>();
@@ -605,8 +606,8 @@ public class MavenRepositorySystem
 
         return repoIds;
     }
-    
-    
+
+
     public ArtifactRepository createLocalRepository( MavenExecutionRequest request, File localRepository )
         throws Exception
     {
@@ -615,8 +616,8 @@ public class MavenRepositorySystem
                                  ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS, true,
                                  ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS,
                                  ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE );
-    }    
-    
+    }
+
     private static final String WILDCARD = "*";
 
     private static final String EXTERNAL_WILDCARD = "external:*";
@@ -781,5 +782,5 @@ public class MavenRepositorySystem
         }
 
         return result;
-    }    
+    }
 }

http://git-wip-us.apache.org/repos/asf/maven/blob/15a9c32f/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java
index ba5630e..2bed92f 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java
@@ -24,7 +24,6 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 import javax.inject.Inject;
 import javax.inject.Named;
@@ -33,18 +32,12 @@ import org.apache.maven.artifact.InvalidRepositoryException;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.bridge.MavenRepositorySystem;
 import org.apache.maven.repository.RepositorySystem;
-//
-// All of this needs to go away and be couched in terms of the execution request
-//
 import org.apache.maven.settings.Mirror;
 import org.apache.maven.settings.Proxy;
 import org.apache.maven.settings.Repository;
 import org.apache.maven.settings.Server;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.settings.SettingsUtils;
-//
-// Settings in core
-//
 import org.apache.maven.toolchain.model.PersistedToolchains;
 import org.apache.maven.toolchain.model.ToolchainModel;
 import org.codehaus.plexus.util.StringUtils;
@@ -53,9 +46,9 @@ import org.codehaus.plexus.util.StringUtils;
 public class DefaultMavenExecutionRequestPopulator
     implements MavenExecutionRequestPopulator
 {
-            
+
     private final MavenRepositorySystem repositorySystem;
-    
+
     @Inject
     public DefaultMavenExecutionRequestPopulator( MavenRepositorySystem repositorySystem )
     {
@@ -85,7 +78,7 @@ public class DefaultMavenExecutionRequestPopulator
         }
         return request;
     }
-    
+
     @Override
     public MavenExecutionRequest populateDefaults( MavenExecutionRequest request )
         throws MavenExecutionRequestPopulationException
@@ -96,59 +89,19 @@ public class DefaultMavenExecutionRequestPopulator
 
         populateDefaultPluginGroups( request );
 
-        injectDefaultRepositories( request );
-
-        injectDefaultPluginRepositories( request );
-
         return request;
     }
-    
+
     //
     //
     //
-    
+
     private void populateDefaultPluginGroups( MavenExecutionRequest request )
     {
         request.addPluginGroup( "org.apache.maven.plugins" );
         request.addPluginGroup( "org.codehaus.mojo" );
     }
 
-    private void injectDefaultRepositories( MavenExecutionRequest request )
-        throws MavenExecutionRequestPopulationException
-    {
-        Set<String> definedRepositories = repositorySystem.getRepoIds( request.getRemoteRepositories() );
-
-        if ( !definedRepositories.contains( RepositorySystem.DEFAULT_REMOTE_REPO_ID ) )
-        {
-            try
-            {
-                request.addRemoteRepository( repositorySystem.createDefaultRemoteRepository( request ) );
-            }
-            catch ( Exception e )
-            {
-                throw new MavenExecutionRequestPopulationException( "Cannot create default remote repository.", e );
-            }
-        }
-    }
-
-    private void injectDefaultPluginRepositories( MavenExecutionRequest request )
-        throws MavenExecutionRequestPopulationException
-    {
-        Set<String> definedRepositories = repositorySystem.getRepoIds( request.getPluginArtifactRepositories() );
-
-        if ( !definedRepositories.contains( RepositorySystem.DEFAULT_REMOTE_REPO_ID ) )
-        {
-            try
-            {
-                request.addPluginArtifactRepository( repositorySystem.createDefaultRemoteRepository( request ) );
-            }
-            catch ( Exception e )
-            {
-                throw new MavenExecutionRequestPopulationException( "Cannot create default remote repository.", e );
-            }
-        }
-    }
-
     private void localRepository( MavenExecutionRequest request )
         throws MavenExecutionRequestPopulationException
     {
@@ -206,10 +159,10 @@ public class DefaultMavenExecutionRequestPopulator
         {
             request.setBaseDirectory( request.getPom().getAbsoluteFile().getParentFile() );
         }
-    }   
-    
+    }
+
     /*if_not[MAVEN4]*/
-    
+
     @Override
     @Deprecated
     public MavenExecutionRequest populateFromSettings( MavenExecutionRequest request, Settings settings )
@@ -311,8 +264,8 @@ public class DefaultMavenExecutionRequestPopulator
         }
 
         return request;
-    }    
-    
+    }
+
     /*end[MAVEN4]*/
 
 }

http://git-wip-us.apache.org/repos/asf/maven/blob/15a9c32f/maven-core/src/main/java/org/apache/maven/repository/RepositorySystem.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/repository/RepositorySystem.java b/maven-core/src/main/java/org/apache/maven/repository/RepositorySystem.java
index fcc0f77..5766b98 100644
--- a/maven-core/src/main/java/org/apache/maven/repository/RepositorySystem.java
+++ b/maven-core/src/main/java/org/apache/maven/repository/RepositorySystem.java
@@ -50,8 +50,18 @@ public interface RepositorySystem
 
     File defaultUserLocalRepository = new File( userMavenConfigurationHome, "repository" );
 
+    /**
+     * @deprecation As of 3.4, Maven no longer falls back to a hard-coded default repository with identifier
+     * {@code central} if such a repository is not provided in the settings or the POM.
+     */
+    @Deprecated
     String DEFAULT_REMOTE_REPO_ID = "central";
 
+    /**
+     * @deprecation As of 3.4, Maven no longer falls back to a hard-coded default repository with identifier
+     * {@code central} if such a repository is not provided in the settings or the POM.
+     */
+    @Deprecated
     String DEFAULT_REMOTE_REPO_URL = "https://repo.maven.apache.org/maven2";
 
     Artifact createArtifact( String groupId, String artifactId, String version, String packaging );
@@ -70,6 +80,11 @@ public interface RepositorySystem
     ArtifactRepository buildArtifactRepository( Repository repository )
         throws InvalidRepositoryException;
 
+    /**
+     * @deprecation As of 3.4, Maven no longer falls back to a hard-coded default repository with identifier
+     * {@code central} if such a repository is not provided in the settings or the POM.
+     */
+    @Deprecated
     ArtifactRepository createDefaultRemoteRepository()
         throws InvalidRepositoryException;
 

http://git-wip-us.apache.org/repos/asf/maven/blob/15a9c32f/maven-core/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
----------------------------------------------------------------------
diff --git a/maven-core/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java b/maven-core/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
index 71616fa..7db65d8 100644
--- a/maven-core/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
+++ b/maven-core/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
@@ -23,7 +23,10 @@ import java.net.URL;
 import java.util.Arrays;
 
 import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+import org.apache.maven.artifact.repository.MavenArtifactRepository;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
 import org.apache.maven.model.building.ModelBuildingException;
 import org.apache.maven.model.building.ModelProblem;
 import org.apache.maven.repository.RepositorySystem;
@@ -172,9 +175,17 @@ public abstract class AbstractMavenProjectTestCase
     protected MavenProject getProjectFromRemoteRepository( final File pom )
         throws Exception
     {
+        final ArtifactRepository testRepository =
+            new MavenArtifactRepository( "test",
+                                         "file://" + new File( System.getProperty( "basedir", "" ),
+                                                               "src/test/remote-repo" ).toURI().getPath(),
+                                         new DefaultRepositoryLayout(),
+                                         new ArtifactRepositoryPolicy(),
+                                         new ArtifactRepositoryPolicy() );
+
         final ProjectBuildingRequest configuration = new DefaultProjectBuildingRequest();
         configuration.setLocalRepository( this.getLocalRepository() );
-        configuration.setRemoteRepositories( Arrays.asList( this.repositorySystem.createDefaultRemoteRepository() ) );
+        configuration.setRemoteRepositories( Arrays.asList( testRepository ) );
         initRepoSession( configuration );
 
         return projectBuilder.build( pom, configuration ).getProject();

http://git-wip-us.apache.org/repos/asf/maven/blob/15a9c32f/maven-core/src/test/java/org/apache/maven/project/artifact/DefaultMavenMetadataCacheTest.java
----------------------------------------------------------------------
diff --git a/maven-core/src/test/java/org/apache/maven/project/artifact/DefaultMavenMetadataCacheTest.java b/maven-core/src/test/java/org/apache/maven/project/artifact/DefaultMavenMetadataCacheTest.java
index 6b103b2..dde864a 100644
--- a/maven-core/src/test/java/org/apache/maven/project/artifact/DefaultMavenMetadataCacheTest.java
+++ b/maven-core/src/test/java/org/apache/maven/project/artifact/DefaultMavenMetadataCacheTest.java
@@ -19,11 +19,15 @@ package org.apache.maven.project.artifact;
  * under the License.
  */
 
+import java.io.File;
 import java.util.Arrays;
 import java.util.Collections;
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+import org.apache.maven.artifact.repository.MavenArtifactRepository;
+import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
 import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter;
 import org.apache.maven.project.artifact.DefaultMavenMetadataCache.CacheKey;
 import org.apache.maven.repository.DelegatingLocalArtifactRepository;
@@ -53,19 +57,36 @@ public class DefaultMavenMetadataCacheTest
         super.tearDown();
     }
 
+    @SuppressWarnings( "deprecation" )
     public void testCacheKey()
         throws Exception
     {
         Artifact a1 = repositorySystem.createArtifact( "testGroup", "testArtifact", "1.2.3", "jar" );
-        @SuppressWarnings( "deprecation" )
-        ArtifactRepository lr1 = new DelegatingLocalArtifactRepository( repositorySystem.createDefaultLocalRepository() );
-        ArtifactRepository rr1 = repositorySystem.createDefaultRemoteRepository();
+        ArtifactRepository lr1 =
+            new DelegatingLocalArtifactRepository( repositorySystem.createDefaultLocalRepository() );
+
+        ArtifactRepository rr1 = new MavenArtifactRepository( "test",
+                                                              "file://" + new File( System.getProperty( "basedir", "" ),
+                                                                                    "src/test/remote-repo" ).toURI().
+                                                              getPath(),
+                                                              new DefaultRepositoryLayout(),
+                                                              new ArtifactRepositoryPolicy(),
+                                                              new ArtifactRepositoryPolicy() );
+
         a1.setDependencyFilter( new ExcludesArtifactFilter( Arrays.asList( "foo" ) ) );
 
         Artifact a2 = repositorySystem.createArtifact( "testGroup", "testArtifact", "1.2.3", "jar" );
-        @SuppressWarnings( "deprecation" )
-        ArtifactRepository lr2 = new DelegatingLocalArtifactRepository( repositorySystem.createDefaultLocalRepository() );
-        ArtifactRepository rr2 = repositorySystem.createDefaultRemoteRepository();
+        ArtifactRepository lr2 =
+            new DelegatingLocalArtifactRepository( repositorySystem.createDefaultLocalRepository() );
+
+        ArtifactRepository rr2 = new MavenArtifactRepository( "test",
+                                                              "file://" + new File( System.getProperty( "basedir", "" ),
+                                                                                    "src/test/remote-repo" ).toURI().
+                                                              getPath(),
+                                                              new DefaultRepositoryLayout(),
+                                                              new ArtifactRepositoryPolicy(),
+                                                              new ArtifactRepositoryPolicy() );
+
         a2.setDependencyFilter( new ExcludesArtifactFilter( Arrays.asList( "foo" ) ) );
 
         // sanity checks
@@ -76,6 +97,7 @@ public class DefaultMavenMetadataCacheTest
         CacheKey k1 = new CacheKey( a1, false, lr1, Collections.singletonList( rr1 ) );
         CacheKey k2 = new CacheKey( a2, false, lr2, Collections.singletonList( rr2 ) );
 
-        assertEquals(k1.hashCode(), k2.hashCode());
+        assertEquals( k1.hashCode(), k2.hashCode() );
     }
+
 }

http://git-wip-us.apache.org/repos/asf/maven/blob/15a9c32f/maven-core/src/test/java/org/apache/maven/repository/TestRepositorySystem.java
----------------------------------------------------------------------
diff --git a/maven-core/src/test/java/org/apache/maven/repository/TestRepositorySystem.java b/maven-core/src/test/java/org/apache/maven/repository/TestRepositorySystem.java
index 0e054c6..5a76b26 100644
--- a/maven-core/src/test/java/org/apache/maven/repository/TestRepositorySystem.java
+++ b/maven-core/src/test/java/org/apache/maven/repository/TestRepositorySystem.java
@@ -106,13 +106,15 @@ public class TestRepositorySystem
         return createLocalRepository( new File( System.getProperty( "basedir", "" ), "target/local-repo" ).getAbsoluteFile() );
     }
 
+    /**
+     * @deprecation As of 3.4, Maven no longer falls back to a hard-coded default repository with identifier
+     * {@code central} if such a repository is not provided in the settings or the POM.
+     */
+    @Deprecated
     public ArtifactRepository createDefaultRemoteRepository()
         throws InvalidRepositoryException
     {
-        return new MavenArtifactRepository( DEFAULT_REMOTE_REPO_ID, "file://"
-            + new File( System.getProperty( "basedir", "" ), "src/test/remote-repo" ).toURI().getPath(),
-                                            new DefaultRepositoryLayout(), new ArtifactRepositoryPolicy(),
-                                            new ArtifactRepositoryPolicy() );
+        throw new UnsupportedOperationException();
     }
 
     public Artifact createDependencyArtifact( Dependency dependency )