Repository: maven Updated Branches: refs/heads/master f41126521 -> 6b0b7a932
[MNG-4645] Move central repo definition out of Maven's core so it can be more easily changed. This reverts commit 15a9c32f6775f10fb5317ad6cddfafd72d7f9e8d. Project: http://git-wip-us.apache.org/repos/asf/maven/repo Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/e3079b79 Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/e3079b79 Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/e3079b79 Branch: refs/heads/master Commit: e3079b796bf215ede782a44b6478ec4007333bc6 Parents: f411265 Author: Christian Schulte <schu...@apache.org> Authored: Fri Nov 11 23:45:35 2016 +0100 Committer: Christian Schulte <schu...@apache.org> Committed: Fri Nov 11 23:45:35 2016 +0100 ---------------------------------------------------------------------- .../maven/bridge/MavenRepositorySystem.java | 32 +++++----- .../DefaultMavenExecutionRequestPopulator.java | 67 +++++++++++++++++--- .../maven/repository/RepositorySystem.java | 15 ----- .../project/AbstractMavenProjectTestCase.java | 13 +--- .../artifact/DefaultMavenMetadataCacheTest.java | 36 ++--------- .../maven/repository/TestRepositorySystem.java | 10 ++- 6 files changed, 84 insertions(+), 89 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven/blob/e3079b79/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 ee77e76..147118c 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,21 +564,19 @@ public class MavenRepositorySystem return new DefaultArtifact( groupId, artifactId, versionRange, desiredScope, type, classifier, handler, optional ); } - + // // Code taken from LegacyRepositorySystem // - /** - * @deprecated 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 { - throw new UnsupportedOperationException(); + 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 ); } - + public ArtifactRepository createRepository( String url, String repositoryId, boolean releases, String releaseUpdates, boolean snapshots, String snapshotUpdates, String checksumPolicy ) throws Exception @@ -591,7 +589,7 @@ public class MavenRepositorySystem return createArtifactRepository( repositoryId, url, "default", snapshotsPolicy, releasesPolicy ); } - + public Set<String> getRepoIds( List<ArtifactRepository> repositories ) { Set<String> repoIds = new HashSet<>(); @@ -606,8 +604,8 @@ public class MavenRepositorySystem return repoIds; } - - + + public ArtifactRepository createLocalRepository( MavenExecutionRequest request, File localRepository ) throws Exception { @@ -616,8 +614,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:*"; @@ -782,5 +780,5 @@ public class MavenRepositorySystem } return result; - } + } } http://git-wip-us.apache.org/repos/asf/maven/blob/e3079b79/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 2bed92f..ba5630e 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,6 +24,7 @@ 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; @@ -32,12 +33,18 @@ 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; @@ -46,9 +53,9 @@ import org.codehaus.plexus.util.StringUtils; public class DefaultMavenExecutionRequestPopulator implements MavenExecutionRequestPopulator { - + private final MavenRepositorySystem repositorySystem; - + @Inject public DefaultMavenExecutionRequestPopulator( MavenRepositorySystem repositorySystem ) { @@ -78,7 +85,7 @@ public class DefaultMavenExecutionRequestPopulator } return request; } - + @Override public MavenExecutionRequest populateDefaults( MavenExecutionRequest request ) throws MavenExecutionRequestPopulationException @@ -89,19 +96,59 @@ 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 { @@ -159,10 +206,10 @@ public class DefaultMavenExecutionRequestPopulator { request.setBaseDirectory( request.getPom().getAbsoluteFile().getParentFile() ); } - } - + } + /*if_not[MAVEN4]*/ - + @Override @Deprecated public MavenExecutionRequest populateFromSettings( MavenExecutionRequest request, Settings settings ) @@ -264,8 +311,8 @@ public class DefaultMavenExecutionRequestPopulator } return request; - } - + } + /*end[MAVEN4]*/ } http://git-wip-us.apache.org/repos/asf/maven/blob/e3079b79/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 8ea58a6..fcc0f77 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,18 +50,8 @@ public interface RepositorySystem File defaultUserLocalRepository = new File( userMavenConfigurationHome, "repository" ); - /** - * @deprecated 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"; - /** - * @deprecated 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 ); @@ -80,11 +70,6 @@ public interface RepositorySystem ArtifactRepository buildArtifactRepository( Repository repository ) throws InvalidRepositoryException; - /** - * @deprecated 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/e3079b79/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 68f0219..147aa9d 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,10 +23,7 @@ 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.ModelBuildingRequest; import org.apache.maven.model.building.ModelProblem; @@ -176,17 +173,9 @@ 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( testRepository ) ); + configuration.setRemoteRepositories( Arrays.asList( this.repositorySystem.createDefaultRemoteRepository() ) ); initRepoSession( configuration ); return projectBuilder.build( pom, configuration ).getProject(); http://git-wip-us.apache.org/repos/asf/maven/blob/e3079b79/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 dde864a..6b103b2 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,15 +19,11 @@ 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; @@ -57,36 +53,19 @@ public class DefaultMavenMetadataCacheTest super.tearDown(); } - @SuppressWarnings( "deprecation" ) public void testCacheKey() throws Exception { Artifact a1 = repositorySystem.createArtifact( "testGroup", "testArtifact", "1.2.3", "jar" ); - 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() ); - + @SuppressWarnings( "deprecation" ) + ArtifactRepository lr1 = new DelegatingLocalArtifactRepository( repositorySystem.createDefaultLocalRepository() ); + ArtifactRepository rr1 = repositorySystem.createDefaultRemoteRepository(); a1.setDependencyFilter( new ExcludesArtifactFilter( Arrays.asList( "foo" ) ) ); Artifact a2 = repositorySystem.createArtifact( "testGroup", "testArtifact", "1.2.3", "jar" ); - 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() ); - + @SuppressWarnings( "deprecation" ) + ArtifactRepository lr2 = new DelegatingLocalArtifactRepository( repositorySystem.createDefaultLocalRepository() ); + ArtifactRepository rr2 = repositorySystem.createDefaultRemoteRepository(); a2.setDependencyFilter( new ExcludesArtifactFilter( Arrays.asList( "foo" ) ) ); // sanity checks @@ -97,7 +76,6 @@ 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/e3079b79/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 d53dc62..0e054c6 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,15 +106,13 @@ public class TestRepositorySystem return createLocalRepository( new File( System.getProperty( "basedir", "" ), "target/local-repo" ).getAbsoluteFile() ); } - /** - * @deprecated 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 { - throw new UnsupportedOperationException(); + 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() ); } public Artifact createDependencyArtifact( Dependency dependency )