Author: bentmann
Date: Mon May 4 01:08:40 2009
New Revision: 771154
URL: http://svn.apache.org/viewvc?rev=771154&view=rev
Log:
o Fixed merging of lifecycle plugins that contribute more than one
execution
o Fixed conversion of default value for plugin configuration
Modified:
maven/components/branches/MNG-2766/maven-core/src/main/java/org/
apache/maven/lifecycle/DefaultLifecycleExecutor.java
maven/components/branches/MNG-2766/maven-core/src/main/java/org/
apache/maven/project/DefaultMavenProjectBuilder.java
Modified: maven/components/branches/MNG-2766/maven-core/src/main/
java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL:
http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=771154&r1=771153&r2=771154&view=diff
=
=
=
=
=
=
=
=
======================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/
apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/
apache/maven/lifecycle/DefaultLifecycleExecutor.java Mon May 4
01:08:40 2009
@@ -18,10 +18,10 @@
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -508,7 +508,7 @@
//
public Set<Plugin>
getPluginsBoundByDefaultToAllLifecycles( String packaging )
{
- Set<Plugin> plugins = new LinkedHashSet<Plugin>();
+ Map<Plugin, Plugin> plugins = new LinkedHashMap<Plugin,
Plugin>();
for ( Lifecycle lifecycle : lifecycles )
{
@@ -524,23 +524,35 @@
//
// org.apache.maven.plugins:maven-compiler-
plugin:compile
//
- for ( String s :
lifecyclePhasesForPackaging.values() )
- {
-
plugins
.add
( populatePluginWithInformationSpecifiedInLifecyclePhaseDefinition
( s ) );
- }
+ parseLifecyclePhaseDefinitions( plugins,
lifecyclePhasesForPackaging.values() );
}
else if ( lifecycle.getDefaultPhases() != null )
{
- for ( String s : lifecycle.getDefaultPhases() )
- {
-
plugins
.add
( populatePluginWithInformationSpecifiedInLifecyclePhaseDefinition
( s ) );
- }
+ parseLifecyclePhaseDefinitions( plugins,
lifecycle.getDefaultPhases() );
}
}
- return plugins;
+ return plugins.keySet();
}
-
+
+ private void parseLifecyclePhaseDefinitions( Map<Plugin,
Plugin> plugins,
+ Collection<String>
lifecyclePhaseDefinitions )
+ {
+ for ( String lifecyclePhaseDefinition :
lifecyclePhaseDefinitions )
+ {
+ Plugin plugin =
populatePluginWithInformationSpecifiedInLifecyclePhaseDefinition
( lifecyclePhaseDefinition );
+ Plugin existing = plugins.get( plugin );
+ if ( existing != null )
+ {
+
existing.getExecutions().addAll( plugin.getExecutions() );
+ }
+ else
+ {
+ plugins.put( plugin, plugin );
+ }
+ }
+ }
+
private Plugin
populatePluginWithInformationSpecifiedInLifecyclePhaseDefinition
( String lifecyclePhaseDefinition )
{
String[] p = StringUtils.split( lifecyclePhaseDefinition,
":" );
@@ -548,8 +560,10 @@
plugin.setGroupId( p[0] );
plugin.setArtifactId( p[1] );
PluginExecution execution = new PluginExecution();
- execution.setGoals( Arrays.asList( new String[]{ p[2] } ) );
- plugin.setExecutions( Arrays.asList( new PluginExecution[]
{ execution } ) );
+ // FIXME: Find a better execution id
+ execution.setId( "default-" + p[2] );
+ execution.setGoals( new
ArrayList<String>( Arrays.asList( new String[] { p[2] } ) ) );
+ plugin.setExecutions( new
ArrayList<PluginExecution>( Arrays.asList( new PluginExecution[]
{ execution } ) ) );
return plugin;
}
@@ -563,7 +577,7 @@
for( String g : e.getGoals() )
{
Xpp3Dom dom =
getDefaultPluginConfiguration( p.getGroupId(), p.getArtifactId(),
p.getVersion(), g, project, localRepository );
- e.setConfiguration( dom );
+
e.setConfiguration( Xpp3Dom.mergeXpp3Dom( (Xpp3Dom)
e.getConfiguration(), dom, Boolean.TRUE ) );
}
}
}
@@ -594,11 +608,11 @@
for( PlexusConfiguration ce : ces )
{
- if ( ce.getValue( null ) != null )
+ String defaultValue = ce.getAttribute( "default-value",
null );
+ if ( ce.getValue( null ) != null || defaultValue !=
null )
{
Xpp3Dom e = new Xpp3Dom( ce.getName() );
e.setValue( ce.getValue( null ) );
- String defaultValue = ce.getAttribute( "default-
value", null );
if ( defaultValue != null )
{
e.setAttribute( "default-value", defaultValue );
Modified: maven/components/branches/MNG-2766/maven-core/src/main/
java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL:
http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=771154&r1=771153&r2=771154&view=diff
=
=
=
=
=
=
=
=
======================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/
apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/
apache/maven/project/DefaultMavenProjectBuilder.java Mon May 4
01:08:40 2009
@@ -191,7 +191,7 @@
pln.add(copy);
}
- // Merge the various sources for mojo configuration:
+ // Merge the various sources for mojo configuration:
// 1. default values from mojo descriptor
// 2. POM values from per-plugin configuration
// 3. POM values from per-execution configuration
@@ -280,7 +280,7 @@
return null;
}
- public static void addPluginsToModel(Model target, Set<Plugin>
plugins)
+ public static void addPluginsToModel( Model target, Set<Plugin>
plugins )
{
List<Plugin> mngPlugins =
(target.getBuild().getPluginManagement() != null)
? target.getBuild().getPluginManagement().getPlugins() : new
ArrayList<Plugin>();
@@ -300,14 +300,19 @@
}
Plugin pomPlugin = containsPlugin( p, pomPlugins);
- if( pomPlugin == null)
- {
- lifecyclePlugins.add(p);
- }
- else if(p.getConfiguration() != null)
- {
- System.out.println(Xpp3Dom.mergeXpp3Dom((Xpp3Dom)
p.getConfiguration(), (Xpp3Dom) pomPlugin.getConfiguration()));
- }
+ if ( pomPlugin == null )
+ {
+ lifecyclePlugins.add( p );
+ }
+ else
+ {
+ PluginProcessor.copy2( p, pomPlugin, true );
+ if ( p.getConfiguration() != null )
+ {
+
System.out.println( Xpp3Dom.mergeXpp3Dom( (Xpp3Dom)
p.getConfiguration(),
+
(Xpp3Dom) pomPlugin.getConfiguration() ) );
+ }
+ }
}
pomPlugins.addAll(lifecyclePlugins);
target.getBuild().setPlugins(pomPlugins);