You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2016/06/02 22:08:47 UTC
[02/50] maven git commit: [MNG-5984] Maven core extension resolution
ignores repositories from activeByDefault profiles in settings.xml
[MNG-5984] Maven core extension resolution ignores repositories from activeByDefault profiles in settings.xml
o Updated to decouple settings profile activation from the
'ConfigurationProcessor' in use.
Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/62374f51
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/62374f51
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/62374f51
Branch: refs/heads/slf4j-gossip
Commit: 62374f51fd05b233fc34e39c294322fa3823e4d7
Parents: c940b84
Author: Christian Schulte <sc...@apache.org>
Authored: Fri Feb 26 21:05:01 2016 +0100
Committer: Christian Schulte <sc...@apache.org>
Committed: Fri Feb 26 21:05:01 2016 +0100
----------------------------------------------------------------------
.../java/org/apache/maven/cli/MavenCli.java | 151 +++++++++++++++----
.../SettingsXmlConfigurationProcessor.java | 102 -------------
2 files changed, 124 insertions(+), 129 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven/blob/62374f51/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 93b25d6..93af417 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
@@ -19,15 +19,34 @@ package org.apache.maven.cli;
* under the License.
*/
-import com.google.common.base.Charsets;
-import com.google.common.io.Files;
-import com.google.inject.AbstractModule;
+import java.io.BufferedInputStream;
+import java.io.Console;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Properties;
+import java.util.Set;
+import java.util.StringTokenizer;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.UnrecognizedOptionException;
import org.apache.maven.BuildAbort;
import org.apache.maven.InternalErrorException;
import org.apache.maven.Maven;
+import org.apache.maven.artifact.InvalidRepositoryException;
+import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.building.FileSource;
import org.apache.maven.building.Problem;
import org.apache.maven.building.Source;
@@ -58,7 +77,15 @@ import org.apache.maven.execution.MavenExecutionResult;
import org.apache.maven.extension.internal.CoreExports;
import org.apache.maven.extension.internal.CoreExtensionEntry;
import org.apache.maven.lifecycle.LifecycleExecutionException;
+import org.apache.maven.model.Profile;
+import org.apache.maven.model.Repository;
+import org.apache.maven.model.building.DefaultModelProblem;
+import org.apache.maven.model.building.ModelProblem;
+import org.apache.maven.model.building.ModelProblemCollector;
+import org.apache.maven.model.building.ModelProblemCollectorRequest;
import org.apache.maven.model.building.ModelProcessor;
+import org.apache.maven.model.profile.DefaultProfileActivationContext;
+import org.apache.maven.model.profile.ProfileSelector;
import org.apache.maven.project.MavenProject;
import org.apache.maven.properties.internal.EnvironmentUtils;
import org.apache.maven.properties.internal.SystemProperties;
@@ -77,6 +104,9 @@ import org.codehaus.plexus.component.repository.exception.ComponentLookupExcepti
import org.codehaus.plexus.logging.LoggerManager;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import com.google.common.base.Charsets;
+import com.google.common.io.Files;
+import com.google.inject.AbstractModule;
import org.eclipse.aether.transfer.TransferListener;
import org.slf4j.ILoggerFactory;
import org.slf4j.Logger;
@@ -87,27 +117,6 @@ import org.sonatype.plexus.components.sec.dispatcher.SecDispatcher;
import org.sonatype.plexus.components.sec.dispatcher.SecUtil;
import org.sonatype.plexus.components.sec.dispatcher.model.SettingsSecurity;
-import java.io.BufferedInputStream;
-import java.io.Console;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.Set;
-import java.util.StringTokenizer;
-
// TODO: push all common bits back to plexus cli and prepare for transition to Guice. We don't need 50 ways to make CLIs
/**
@@ -172,6 +181,8 @@ public class MavenCli
private Map<String, ConfigurationProcessor> configurationProcessors;
+ private ProfileSelector profileSelector;
+
public MavenCli()
{
this( null );
@@ -280,9 +291,9 @@ public class MavenCli
properties( cliRequest );
localContainer = container( cliRequest );
commands( cliRequest );
- populateRequest( cliRequest );
configure( cliRequest );
toolchains( cliRequest );
+ populateRequest( cliRequest );
encryption( cliRequest );
repository( cliRequest );
return execute( cliRequest );
@@ -594,6 +605,8 @@ public class MavenCli
dispatcher = (DefaultSecDispatcher) container.lookup( SecDispatcher.class, "maven" );
+ profileSelector = container.lookup( ProfileSelector.class );
+
return container;
}
@@ -848,11 +861,95 @@ public class MavenCli
private void repository( CliRequest cliRequest )
throws Exception
{
- if ( cliRequest.commandLine.hasOption( CLIManager.LEGACY_LOCAL_REPOSITORY ) || Boolean.getBoolean(
- "maven.legacyLocalRepo" ) )
+ if ( cliRequest.commandLine.hasOption( CLIManager.LEGACY_LOCAL_REPOSITORY )
+ || Boolean.getBoolean( "maven.legacyLocalRepo" ) )
{
cliRequest.request.setUseLegacyLocalRepository( true );
}
+
+ // Adds repositories from settings profiles.
+ final MavenExecutionRequest request = cliRequest.getRequest();
+ final DefaultProfileActivationContext profileActivationContext = new DefaultProfileActivationContext();
+ profileActivationContext.setActiveProfileIds( request.getActiveProfiles() );
+ profileActivationContext.setInactiveProfileIds( request.getInactiveProfiles() );
+ profileActivationContext.setSystemProperties( request.getSystemProperties() );
+ profileActivationContext.setUserProperties( request.getUserProperties() );
+ profileActivationContext.setProjectDirectory( request.getPom() != null
+ ? request.getPom().getParentFile()
+ : null );
+
+ final List<ModelProblem> modelProblems = new ArrayList<>();
+ final List<Profile> activeProfiles =
+ this.profileSelector.getActiveProfiles( request.getProfiles(), profileActivationContext,
+ new ModelProblemCollector()
+ {
+
+ @Override
+ public void add( final ModelProblemCollectorRequest req )
+ {
+ modelProblems.add( new DefaultModelProblem(
+ req.getMessage(), req.getSeverity(),
+ req.getVersion(), Profile.SOURCE_SETTINGS, -1, -1,
+ null, req.getException() ) );
+
+ }
+
+ } );
+
+ if ( !modelProblems.isEmpty() )
+ {
+ slf4jLogger.warn( "" );
+ slf4jLogger.warn( "Some problems were encountered while processing profiles" );
+
+ for ( final ModelProblem problem : modelProblems )
+ {
+ slf4jLogger.warn( problem.getMessage(), problem.getException() );
+ }
+
+ slf4jLogger.warn( "" );
+ }
+
+ if ( !activeProfiles.isEmpty() )
+ {
+ for ( final Profile profile : activeProfiles )
+ {
+ final List<Repository> remoteRepositories = profile.getRepositories();
+
+ for ( final Repository remoteRepository : remoteRepositories )
+ {
+ try
+ {
+ request.addRemoteRepository(
+ MavenRepositorySystem.buildArtifactRepository( remoteRepository ) );
+
+ }
+ catch ( final InvalidRepositoryException e )
+ {
+ slf4jLogger.warn( String.format( "Failure adding repository '%s' from profile '%s'.",
+ remoteRepository.getId(), profile.getId() ), e );
+
+ }
+ }
+
+ final List<Repository> pluginRepositories = profile.getPluginRepositories();
+
+ for ( final Repository pluginRepository : pluginRepositories )
+ {
+ try
+ {
+ request.addPluginArtifactRepository(
+ MavenRepositorySystem.buildArtifactRepository( pluginRepository ) );
+
+ }
+ catch ( InvalidRepositoryException e )
+ {
+ slf4jLogger.warn( String.format( "Failure adding plugin repository '%s' from profile '%s'.",
+ pluginRepository.getId(), profile.getId() ), e );
+
+ }
+ }
+ }
+ }
}
private int execute( CliRequest cliRequest )
http://git-wip-us.apache.org/repos/asf/maven/blob/62374f51/maven-embedder/src/main/java/org/apache/maven/cli/configuration/SettingsXmlConfigurationProcessor.java
----------------------------------------------------------------------
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/configuration/SettingsXmlConfigurationProcessor.java b/maven-embedder/src/main/java/org/apache/maven/cli/configuration/SettingsXmlConfigurationProcessor.java
index 1a57baa..7ba2194 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/configuration/SettingsXmlConfigurationProcessor.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/configuration/SettingsXmlConfigurationProcessor.java
@@ -21,25 +21,13 @@ package org.apache.maven.cli.configuration;
import java.io.File;
import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.List;
import org.apache.commons.cli.CommandLine;
-import org.apache.maven.artifact.InvalidRepositoryException;
-import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.building.Source;
import org.apache.maven.cli.CLIManager;
import org.apache.maven.cli.CliRequest;
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionRequestPopulationException;
-import org.apache.maven.model.Profile;
-import org.apache.maven.model.Repository;
-import org.apache.maven.model.building.DefaultModelProblem;
-import org.apache.maven.model.building.ModelProblem;
-import org.apache.maven.model.building.ModelProblemCollector;
-import org.apache.maven.model.building.ModelProblemCollectorRequest;
-import org.apache.maven.model.profile.DefaultProfileActivationContext;
-import org.apache.maven.model.profile.ProfileSelector;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Server;
@@ -50,7 +38,6 @@ import org.apache.maven.settings.building.SettingsBuilder;
import org.apache.maven.settings.building.SettingsBuildingRequest;
import org.apache.maven.settings.building.SettingsBuildingResult;
import org.apache.maven.settings.building.SettingsProblem;
-import org.apache.maven.settings.crypto.SettingsDecrypter;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.slf4j.Logger;
@@ -77,12 +64,6 @@ public class SettingsXmlConfigurationProcessor
@Requirement
private SettingsBuilder settingsBuilder;
- @Requirement
- private SettingsDecrypter settingsDecrypter;
-
- @Requirement
- private ProfileSelector profileSelector;
-
@Override
public void process( CliRequest cliRequest )
throws Exception
@@ -171,89 +152,6 @@ public class SettingsXmlConfigurationProcessor
}
logger.warn( "" );
}
-
- // profile activation
- final DefaultProfileActivationContext profileActivationContext = new DefaultProfileActivationContext();
- profileActivationContext.setActiveProfileIds( request.getActiveProfiles() );
- profileActivationContext.setInactiveProfileIds( request.getInactiveProfiles() );
- profileActivationContext.setSystemProperties( request.getSystemProperties() );
- profileActivationContext.setUserProperties( request.getUserProperties() );
- profileActivationContext.setProjectDirectory( ( request.getPom() != null )
- ? request.getPom().getParentFile()
- : null );
-
- final List<ModelProblem> modelProblems = new ArrayList<>();
- final List<Profile> activeProfiles =
- this.profileSelector.getActiveProfiles( request.getProfiles(), profileActivationContext,
- new ModelProblemCollector()
- {
-
- @Override
- public void add( final ModelProblemCollectorRequest req )
- {
- modelProblems.add( new DefaultModelProblem(
- req.getMessage(), req.getSeverity(),
- req.getVersion(), "settings.xml", -1, -1,
- null, req.getException() ) );
-
- }
-
- } );
-
- if ( !modelProblems.isEmpty() )
- {
- logger.warn( "" );
- logger.warn( "Some problems were encountered while processing profiles" );
-
- for ( final ModelProblem problem : modelProblems )
- {
- logger.warn( problem.getMessage(), problem.getException() );
- }
-
- logger.warn( "" );
- }
-
- if ( !activeProfiles.isEmpty() )
- {
- for ( final Profile profile : activeProfiles )
- {
- final List<Repository> remoteRepositories = profile.getRepositories();
-
- for ( final Repository remoteRepository : remoteRepositories )
- {
- try
- {
- request.addRemoteRepository(
- MavenRepositorySystem.buildArtifactRepository( remoteRepository ) );
-
- }
- catch ( final InvalidRepositoryException e )
- {
- logger.warn( String.format( "Failure adding repository '%s' from profile '%s'.",
- remoteRepository.getId(), profile.getId() ), e );
-
- }
- }
-
- final List<Repository> pluginRepositories = profile.getPluginRepositories();
-
- for ( final Repository pluginRepository : pluginRepositories )
- {
- try
- {
- request.addPluginArtifactRepository(
- MavenRepositorySystem.buildArtifactRepository( pluginRepository ) );
-
- }
- catch ( InvalidRepositoryException e )
- {
- logger.warn( String.format( "Failure adding plugin repository '%s' from profile '%s'.",
- pluginRepository.getId(), profile.getId() ), e );
-
- }
- }
- }
- }
}
private MavenExecutionRequest populateFromSettings( MavenExecutionRequest request, Settings settings )