[MNG-5185] [MNG-5181] add cli flag to be able to remove use of EnhancedLocalRepositoryManager.
Project: http://git-wip-us.apache.org/repos/asf/maven/repo Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/27f8b0f8 Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/27f8b0f8 Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/27f8b0f8 Branch: refs/heads/master Commit: 27f8b0f81af3bf49cba251e2e857a7e67562132f Parents: 6c3ec90 Author: olivier lamy <ol...@apache.org> Authored: Fri Feb 1 00:35:46 2013 +0100 Committer: olivier lamy <ol...@apache.org> Committed: Fri Feb 1 00:35:46 2013 +0100 ---------------------------------------------------------------------- .../main/java/org/apache/maven/DefaultMaven.java | 23 ++++++++++++++- .../execution/DefaultMavenExecutionRequest.java | 12 ++++++++ .../maven/execution/MavenExecutionRequest.java | 10 ++++++ .../main/java/org/apache/maven/cli/CLIManager.java | 3 ++ .../main/java/org/apache/maven/cli/MavenCli.java | 10 ++++++ 5 files changed, 57 insertions(+), 1 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven/blob/27f8b0f8/maven-core/src/main/java/org/apache/maven/DefaultMaven.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java index e80185b..a6e11e8 100644 --- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java +++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java @@ -85,8 +85,10 @@ import org.sonatype.aether.RepositorySystem; import org.sonatype.aether.RepositorySystemSession; import org.sonatype.aether.repository.Authentication; import org.sonatype.aether.repository.LocalRepository; +import org.sonatype.aether.repository.NoLocalRepositoryManagerException; import org.sonatype.aether.repository.RepositoryPolicy; import org.sonatype.aether.repository.WorkspaceReader; +import org.sonatype.aether.spi.localrepo.LocalRepositoryManagerFactory; import org.sonatype.aether.util.DefaultRepositorySystemSession; import org.sonatype.aether.util.repository.ChainedWorkspaceReader; import org.sonatype.aether.util.repository.DefaultAuthenticationSelector; @@ -128,6 +130,9 @@ public class DefaultMaven @Requirement private RepositorySystem repoSystem; + @Requirement (optional = true, hint = "simple") + private LocalRepositoryManagerFactory simpleLocalRepositoryManagerFactory; + @Requirement private SettingsDecrypter settingsDecrypter; @@ -352,7 +357,23 @@ public class DefaultMaven session.setArtifactTypeRegistry( RepositoryUtils.newArtifactTypeRegistry( artifactHandlerManager ) ); LocalRepository localRepo = new LocalRepository( request.getLocalRepository().getBasedir() ); - session.setLocalRepositoryManager( repoSystem.newLocalRepositoryManager( localRepo ) ); + + if (request.isUseSimpleLocalRepostoryManager()) + { + try + { + session.setLocalRepositoryManager( simpleLocalRepositoryManagerFactory.newInstance( localRepo ) ); + } + catch ( NoLocalRepositoryManagerException e ) + { + + logger.warn( "fail to configure simple local repository manager back to default" ); + session.setLocalRepositoryManager( repoSystem.newLocalRepositoryManager( localRepo ) ); + } + } + else { + session.setLocalRepositoryManager( repoSystem.newLocalRepositoryManager( localRepo ) ); + } if ( request.getWorkspaceReader() != null ) { http://git-wip-us.apache.org/repos/asf/maven/blob/27f8b0f8/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java index 78436be..3139846 100644 --- a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java +++ b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java @@ -143,6 +143,8 @@ public class DefaultMavenExecutionRequest */ private boolean noSnapshotUpdates; + private boolean useSimpleLocalRepostoryManager = false; + public DefaultMavenExecutionRequest() { } @@ -1076,4 +1078,14 @@ public class DefaultMavenExecutionRequest return this; } + public boolean isUseSimpleLocalRepostoryManager() + { + return this.useSimpleLocalRepostoryManager; + } + + public MavenExecutionRequest setUseSimpleLocalRepostoryManager( boolean useSimpleLocalRepostoryManager ) + { + this.useSimpleLocalRepostoryManager = useSimpleLocalRepostoryManager; + return this; + } } http://git-wip-us.apache.org/repos/asf/maven/blob/27f8b0f8/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java b/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java index ef88a17..5ab11b3 100644 --- a/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java +++ b/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java @@ -283,4 +283,14 @@ public interface MavenExecutionRequest ProjectBuildingRequest getProjectBuildingRequest(); + /** + * @since 3.1 + */ + boolean isUseSimpleLocalRepostoryManager(); + + /** + * @since 3.1 + */ + MavenExecutionRequest setUseSimpleLocalRepostoryManager(boolean useSimpleLocalRepostoryManager); + } http://git-wip-us.apache.org/repos/asf/maven/blob/27f8b0f8/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java ---------------------------------------------------------------------- diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java b/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java index 0e7f2b6..32c1bb2 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java @@ -97,6 +97,8 @@ public class CLIManager public static final String THREADS = "T"; + public static final String SIMPLE_LOCAL_REPOSITORY_MANAGER ="slrm"; + protected Options options; @SuppressWarnings( "static-access" ) @@ -134,6 +136,7 @@ public class CLIManager options.addOption( OptionBuilder.withLongOpt( "encrypt-password" ).hasArg().withDescription( "Encrypt server password" ).create( ENCRYPT_PASSWORD ) ); options.addOption( OptionBuilder.withLongOpt( "threads" ).hasArg().withDescription( "Thread count, for instance 2.0C where C is core multiplied" ).create( THREADS ) ); + options.addOption( OptionBuilder.withLongOpt( "simple-local-repository-manager" ).withDescription( "Use a simple local Repository Manager (no use of _maven.repositories)" ).create( SIMPLE_LOCAL_REPOSITORY_MANAGER ) ); // Adding this back in for compatibility with the verifier that hard codes this option. options.addOption( OptionBuilder.withLongOpt( "no-plugin-registry" ).withDescription( "Ineffective, only kept for backward compatibility" ).create( "npr" ) ); http://git-wip-us.apache.org/repos/asf/maven/blob/27f8b0f8/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java ---------------------------------------------------------------------- diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java index 5a4710f..dd42ba6 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java @@ -210,6 +210,7 @@ public class MavenCli settings( cliRequest ); populateRequest( cliRequest ); encryption( cliRequest ); + repository( cliRequest ); return execute( cliRequest ); } catch ( ExitException e ) @@ -538,6 +539,15 @@ public class MavenCli } } + private void repository( CliRequest cliRequest ) + throws Exception + { + if ( cliRequest.commandLine.hasOption( CLIManager.SIMPLE_LOCAL_REPOSITORY_MANAGER ) ) + { + cliRequest.request.setUseSimpleLocalRepostoryManager( true ); + } + } + private int execute( CliRequest cliRequest ) { eventSpyDispatcher.onEvent( cliRequest.request );