You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2009/01/26 21:22:20 UTC
svn commit: r737812 - in /maven/components/trunk:
maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java
maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java
pom.xml
Author: sisbell
Date: Mon Jan 26 20:22:20 2009
New Revision: 737812
URL: http://svn.apache.org/viewvc?rev=737812&view=rev
Log:
Fixed various ordering of element problems during plugin management joins.
Modified:
maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java
maven/components/trunk/pom.xml
Modified: maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java?rev=737812&r1=737811&r2=737812&view=diff
==============================================================================
--- maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java (original)
+++ maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java Mon Jan 26 20:22:20 2009
@@ -177,7 +177,7 @@
}
}
- boolean joinedContainer = false;
+ List<ModelProperty> joinedContainers = new ArrayList<ModelProperty>();
for ( ModelContainer pluginContainer : source.queryFor( ProjectUri.Build.Plugins.Plugin.xUri ) )
{
for ( ModelContainer managementContainer : source.queryFor( ProjectUri.Build.PluginManagement.Plugins.Plugin.xUri ) )
@@ -230,7 +230,6 @@
if ( action.equals( ModelContainerAction.JOIN ) || action.equals( ModelContainerAction.DELETE ) )
{
- joinedContainer = true;
ModelDataSource pluginDatasource = new DefaultModelDataSource( pluginContainer.getProperties(), PomTransformer.MODEL_CONTAINER_FACTORIES );
ModelDataSource managementDatasource = new DefaultModelDataSource( managementContainer.getProperties(), PomTransformer.MODEL_CONTAINER_FACTORIES );
@@ -241,7 +240,7 @@
managementPropertiesWithoutExecutions.removeAll(a.getProperties());
}
//THIS JOIN REVERSES ORDER
- source.join( pluginContainer, new ArtifactModelContainerFactory().create(managementPropertiesWithoutExecutions) );
+ source.joinWithOriginalOrder( pluginContainer, new ArtifactModelContainerFactory().create(managementPropertiesWithoutExecutions) );
List<ModelContainer> pluginExecutionContainers = pluginDatasource.queryFor(ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri);
List<ModelContainer> joinedExecutionContainers = new ArrayList<ModelContainer>();
@@ -266,13 +265,19 @@
for(ModelContainer b : pluginExecutionContainers)
{
- if(b.containerAction(c).equals(ModelContainerAction.JOIN)) //----
+ if(b.containerAction(c).equals(ModelContainerAction.JOIN))
{
//MNG-3995 - property lost here
- source.join(b, c);
+ joinedContainers.addAll(source.join(b, c).getProperties());
+ // ExecutionRule rule = new ExecutionRule();
+ // List<ModelProperty> x = rule.execute(d.getProperties());
+ // List<ModelProperty> x = (!joinedContainer) ? rule.execute(es.getProperties()) :
+ // ModelTransformerContext.sort(rule.execute(es.getProperties()),
+ // ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri);
+
+ // source.replace(d, d.createNewInstance(x));
//REVERSE ORDER HERE
- joinedExecutionContainers.add(a);//-----
- // Collections.reverse(joinedExecutionContainers);
+ joinedExecutionContainers.add(a);
}
}
}
@@ -363,17 +368,17 @@
new AlwaysJoinModelContainerFactory()));
for(ModelContainer es : executionSource.queryFor( ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri )) {
ExecutionRule rule = new ExecutionRule();
- List<ModelProperty> x = rule.execute(es.getProperties());
- // List<ModelProperty> x = (!joinedContainer) ? rule.execute(es.getProperties()) :
- // ModelTransformerContext.sort(rule.execute(es.getProperties()),
- // ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri);
+ // List<ModelProperty> x = rule.execute(es.getProperties());
+ List<ModelProperty> x = !aContainsAnyOfB(es.getProperties(), joinedContainers) ? rule.execute(es.getProperties()) :
+ ModelTransformerContext.sort(rule.execute(es.getProperties()),
+ ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri);
dataSource.replace(es, es.createNewInstance(x));
}
}
- props = joinedContainer ? ModelTransformerContext.sort(dataSource.getModelProperties(), ProjectUri.baseUri)
- : dataSource.getModelProperties();
+ props =// false ? ModelTransformerContext.sort(dataSource.getModelProperties(), ProjectUri.baseUri)
+ dataSource.getModelProperties();
for(ModelEventListener listener : eventListeners)
{
@@ -411,6 +416,20 @@
return factory.createDomainModel( p );
}
+ private static boolean aContainsAnyOfB(List<ModelProperty> a, List<ModelProperty> b) {
+ for(ModelProperty mpA : a )
+ {
+ for(ModelProperty mpB : b)
+ {
+ if(mpA.equals(mpB))
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
private static List<ModelProperty> transformDependencyManagement( List<ModelProperty> modelProperties )
{
List<ModelProperty> transformedProperties = new ArrayList<ModelProperty>();
Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java?rev=737812&r1=737811&r2=737812&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/builder/PomConstructionTest.java Mon Jan 26 20:22:20 2009
@@ -81,6 +81,14 @@
assertModelEquals( tester, "child-descriptor", "build/plugins[1]/executions[1]/goals[1]" );
}
+ public void testPluginOrder()
+ throws Exception
+ {
+ PomTestWrapper pom = buildPom( "plugin-order" );
+ assertEquals( "plexus-component-metadata", pom.getValue( "build/plugins[1]/artifactId" ) );
+ assertEquals( "maven-surefire-plugin", pom.getValue( "build/plugins[2]/artifactId" ) );
+ }
+
public void testErroneousJoiningOfDifferentPluginsWithEqualDependencies()
throws Exception
{
Modified: maven/components/trunk/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/pom.xml?rev=737812&r1=737811&r2=737812&view=diff
==============================================================================
--- maven/components/trunk/pom.xml (original)
+++ maven/components/trunk/pom.xml Mon Jan 26 20:22:20 2009
@@ -55,7 +55,7 @@
<plexusPluginManagerVersion>1.0-alpha-1</plexusPluginManagerVersion>
<plexusUtilsVersion>1.5.6</plexusUtilsVersion>
<wagonVersion>1.0-beta-4</wagonVersion>
- <modelBuilderVersion>1.2</modelBuilderVersion>
+ <modelBuilderVersion>1.3</modelBuilderVersion>
<mercuryVersion>1.0.0-alpha-2</mercuryVersion>
<woodstoxVersion>3.2.6</woodstoxVersion>
<modelloVersion>1.0-alpha-22</modelloVersion>