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 36361905b2..93b2d62811 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 @@ -121,6 +121,48 @@ public class DefaultMavenExecutionRequest private MavenRealmManager realmManager; + public DefaultMavenExecutionRequest() + { + // default constructor. + } + + public DefaultMavenExecutionRequest( MavenExecutionRequest original ) + { + localRepository = original.getLocalRepository(); + localRepositoryPath = original.getLocalRepositoryPath(); + offline = original.isOffline(); + interactiveMode = original.isInteractiveMode(); + proxies = original.getProxies(); + servers = original.getServers(); + mirrors = original.getMirrors(); + profiles = original.getProfiles(); + pluginGroups = original.getPluginGroups(); + usePluginUpdateOverride = original.isUsePluginUpdateOverride(); + isProjectPresent = original.isProjectPresent(); + userSettingsFile = original.getUserSettingsFile(); + globalSettingsFile = original.getGlobalSettingsFile(); + basedir = new File( original.getBaseDirectory() ); + goals = original.getGoals(); + useReactor = original.useReactor(); + recursive = original.isRecursive(); + pom = original.getPom(); + reactorFailureBehavior = original.getReactorFailureBehavior(); + properties = original.getProperties(); + startTime = original.getStartTime(); + showErrors = original.isShowErrors(); + eventMonitors = original.getEventMonitors(); + activeProfiles = original.getActiveProfiles(); + inactiveProfiles = original.getInactiveProfiles(); + transferListener = original.getTransferListener(); + loggingLevel = original.getLoggingLevel(); + globalChecksumPolicy = original.getGlobalChecksumPolicy(); + updateSnapshots = original.isUpdateSnapshots(); + profileManager = original.getProfileManager(); + remoteRepositories = original.getRemoteRepositories(); + noSnapshotUpdates = original.isNoSnapshotUpdates(); + realmManager = original.getRealmManager(); + } + public String getBaseDirectory() { if ( basedir == null ) diff --git a/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java b/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java index 89af1b421e..5de1ef8173 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java @@ -492,7 +492,7 @@ private Set getPluginArtifacts( Artifact pluginArtifact, // followed by the plugin's default artifact set dependencies.addAll( resolutionGroup.getArtifacts() ); - List repositories = new ArrayList(); + LinkedHashSet repositories = new LinkedHashSet(); repositories.addAll( resolutionGroup.getResolutionRepositories() ); @@ -503,7 +503,10 @@ private Set getPluginArtifacts( Artifact pluginArtifact, pluginArtifact, Collections.EMPTY_MAP, localRepository, - repositories, + repositories.isEmpty() + ? Collections.EMPTY_LIST + : new ArrayList( + repositories ), artifactMetadataSource, coreArtifactFilterManager.getArtifactFilter() ); diff --git a/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java b/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java index 11e37f372b..68015afad3 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java @@ -19,11 +19,15 @@ * under the License. */ +import org.apache.maven.artifact.ArtifactUtils; import org.apache.maven.model.Plugin; import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.codehaus.plexus.component.discovery.ComponentDiscoveryEvent; import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener; import org.codehaus.plexus.component.repository.ComponentSetDescriptor; +import org.codehaus.plexus.logging.LogEnabled; +import org.codehaus.plexus.logging.Logger; +import org.codehaus.plexus.logging.console.ConsoleLogger; import java.util.HashMap; import java.util.HashSet; @@ -32,7 +36,7 @@ import java.util.Set; public class MavenPluginCollector - implements ComponentDiscoveryListener + implements ComponentDiscoveryListener, LogEnabled { private Set pluginsInProcess = new HashSet(); @@ -40,6 +44,8 @@ public class MavenPluginCollector private Map pluginIdsByPrefix = new HashMap(); + private Logger logger; + // ---------------------------------------------------------------------- // Mojo discovery // ---------------------------------------------------------------------- @@ -75,12 +81,14 @@ public PluginDescriptor getPluginDescriptor( Plugin plugin ) private String constructPluginKey( Plugin plugin ) { - return plugin.getGroupId() + ":" + plugin.getArtifactId() + ":" + plugin.getVersion(); + String version = ArtifactUtils.toSnapshotVersion( plugin.getVersion() ); + return plugin.getGroupId() + ":" + plugin.getArtifactId() + ":" + version; } private String constructPluginKey( PluginDescriptor pluginDescriptor ) { - return pluginDescriptor.getGroupId() + ":" + pluginDescriptor.getArtifactId() + ":" + pluginDescriptor.getVersion(); + String version = ArtifactUtils.toSnapshotVersion( pluginDescriptor.getVersion() ); + return pluginDescriptor.getGroupId() + ":" + pluginDescriptor.getArtifactId() + ":" + version; } public boolean isPluginInstalled( Plugin plugin ) @@ -104,4 +112,19 @@ public Set getPluginDescriptorsForPrefix( String prefix ) return result; } + protected Logger getLogger() + { + if ( logger == null ) + { + logger = new ConsoleLogger( Logger.LEVEL_INFO, "internal" ); + } + + return logger; + } + + public void enableLogging( Logger logger ) + { + this.logger = logger; + } + } diff --git a/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java b/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java index 6d11ce4cc5..77a23d577a 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java @@ -92,15 +92,18 @@ public PluginDescriptor findPluginForPrefix( String prefix, MavenProject project Map projectPluginMap = project.getBuild().getPluginsAsMap(); PluginDescriptor pluginDescriptor = null; - for ( Iterator it = descriptors.iterator(); it.hasNext(); ) + if ( descriptors != null ) { - PluginDescriptor pd = (PluginDescriptor) it.next(); - - Plugin projectPlugin = (Plugin) projectPluginMap.get( pd.getPluginLookupKey() ); - if ( ( projectPlugin != null ) && ( projectPlugin.getVersion() != null ) && projectPlugin.getVersion().equals( pd.getVersion() ) ) + for ( Iterator it = descriptors.iterator(); it.hasNext(); ) { - pluginDescriptor = pd; - break; + PluginDescriptor pd = (PluginDescriptor) it.next(); + + Plugin projectPlugin = (Plugin) projectPluginMap.get( pd.getPluginLookupKey() ); + if ( ( projectPlugin != null ) && ( projectPlugin.getVersion() != null ) && projectPlugin.getVersion().equals( pd.getVersion() ) ) + { + pluginDescriptor = pd; + break; + } } } diff --git a/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java b/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java index b28789ced3..771f0a1da4 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java @@ -179,6 +179,8 @@ private String resolveMetaVersion( String groupId, String metaVersionId ) throws PluginVersionResolutionException, InvalidPluginException { + getLogger().info( "Attempting to resolve a version for plugin: " + groupId + ":" + artifactId + " using meta-version: " + metaVersionId ); + Artifact artifact = artifactFactory.createProjectArtifact( groupId, artifactId, metaVersionId ); String key = artifact.getDependencyConflictId(); diff --git a/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java b/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java index 8e6080c1ce..97cc06fcae 100644 --- a/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java +++ b/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java @@ -181,6 +181,11 @@ public MavenEmbedder( Configuration embedderConfiguration ) start( embedderConfiguration ); } + public MavenExecutionRequest getDefaultRequest() + { + return request; + } + // ---------------------------------------------------------------------- // Accessors // ----------------------------------------------------------------------