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 2008/11/29 02:41:35 UTC
svn commit: r721608 - in /maven/components/trunk:
maven-project-builder/src/main/java/org/apache/maven/project/builder/
maven-project/src/main/java/org/apache/maven/project/builder/
Author: sisbell
Date: Fri Nov 28 17:41:35 2008
New Revision: 721608
URL: http://svn.apache.org/viewvc?rev=721608&view=rev
Log:
Fix for problems with modello plugin. Builder was not properly inheriting the goals.
Modified:
maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PluginExecutionIdModelContainerFactory.java
maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java
Modified: maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PluginExecutionIdModelContainerFactory.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PluginExecutionIdModelContainerFactory.java?rev=721608&r1=721607&r2=721608&view=diff
==============================================================================
--- maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PluginExecutionIdModelContainerFactory.java (original)
+++ maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PluginExecutionIdModelContainerFactory.java Fri Nov 28 17:41:35 2008
@@ -10,7 +10,8 @@
public class PluginExecutionIdModelContainerFactory implements ModelContainerFactory {
private static final Collection<String> uris = Collections.unmodifiableList(Arrays.asList(
- ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri));
+ ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri,
+ ProjectUri.Build.PluginManagement.Plugins.Plugin.Executions.Execution.xUri));
public Collection<String> getUris() {
return uris;
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=721608&r1=721607&r2=721608&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 Fri Nov 28 17:41:35 2008
@@ -44,6 +44,7 @@
public static final Set<String> URIS = Collections.unmodifiableSet(new HashSet<String>( Arrays.asList( ProjectUri.Build.Extensions.xUri,
ProjectUri.Build.PluginManagement.Plugins.xUri,
ProjectUri.Build.PluginManagement.Plugins.Plugin.configuration,
+ //ProjectUri.Build.PluginManagement.Plugins.Plugin.Executions.xUri,
ProjectUri.Build.PluginManagement.Plugins.Plugin.Dependencies.xUri,
ProjectUri.Build.PluginManagement.Plugins.Plugin.Dependencies.Dependency.Exclusions.xUri,
@@ -149,6 +150,7 @@
transformPluginManagement( managementContainer.getProperties() ) );
//Remove duplicate executions tags
+
boolean hasExecutionsTag = false;
for ( ModelProperty mp : dependencyContainer.getProperties() )
{
@@ -176,9 +178,71 @@
managementContainer = new ArtifactModelContainerFactory().create( pList );
ModelContainerAction action = dependencyContainer.containerAction( managementContainer );
+ // System.out.println(action);
if ( action.equals( ModelContainerAction.JOIN ) || action.equals( ModelContainerAction.DELETE ) )
- {
- source.join( dependencyContainer, managementContainer );
+ { //System.out.println("A:");
+ ModelDataSource dependencyDatasource = new DefaultModelDataSource();
+ dependencyDatasource.init( dependencyContainer.getProperties(), Arrays.asList( new ArtifactModelContainerFactory(),
+ new IdModelContainerFactory() ) );
+
+ ModelDataSource managementDatasource = new DefaultModelDataSource();
+ managementDatasource.init( managementContainer.getProperties(), Arrays.asList( new ArtifactModelContainerFactory(),
+ new IdModelContainerFactory() ) );
+
+ List<ModelContainer> managementExecutionContainers = managementDatasource.queryFor(ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri);
+ List<ModelProperty> managementPropertiesWithoutExecutions = new ArrayList<ModelProperty>(managementContainer.getProperties());
+ for(ModelContainer a : managementExecutionContainers)
+ {
+ managementPropertiesWithoutExecutions.removeAll(a.getProperties());
+ }
+
+ source.join( dependencyContainer, new ArtifactModelContainerFactory().create(managementPropertiesWithoutExecutions) );
+
+ List<ModelContainer> dependencyExecutionContainers = dependencyDatasource.queryFor(ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri);
+ List<ModelContainer> joinedExecutionContainers = new ArrayList<ModelContainer>();
+ //System.out.println(managementExecutionContainers.size());
+ for(ModelContainer a : managementExecutionContainers)
+ {
+ for(ModelContainer b : dependencyExecutionContainers)
+ {
+ if(b.containerAction(a).equals(ModelContainerAction.JOIN))
+ {
+ source.join(b, a);
+ joinedExecutionContainers.add(a);
+ }
+ }
+ }
+
+ ModelProperty executionsProperty = null;
+ for(ModelProperty a : dependencyContainer.getProperties())
+ {
+ if(a.getUri().equals(ProjectUri.Build.Plugins.Plugin.Executions.xUri)) {
+ executionsProperty = a;
+ break;
+ }
+ }
+
+ if(executionsProperty == null)
+ {
+ for(ModelProperty a : managementPropertiesWithoutExecutions)
+ {
+ if(a.getUri().equals(ProjectUri.Build.Plugins.Plugin.Executions.xUri)) {
+ executionsProperty = a;
+ break;
+ }
+ }
+ }
+
+ if(executionsProperty != null)
+ {
+ managementExecutionContainers.removeAll(joinedExecutionContainers);
+ Collections.reverse(managementExecutionContainers);
+ for(ModelContainer a : managementExecutionContainers)
+ {
+ source.insertModelPropertiesAfter(executionsProperty,
+ ModelTransformerContext.sort(a.getProperties(), ProjectUri.Build.Plugins.Plugin.Executions.xUri));
+ }
+ }
}
}
}
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java?rev=721608&r1=721607&r2=721608&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java Fri Nov 28 17:41:35 2008
@@ -40,6 +40,8 @@
import java.io.Writer;
import java.util.List;
import java.util.ArrayList;
+import java.util.Set;
+import java.util.HashSet;
/**
* Provides a wrapper for the maven model.
@@ -283,8 +285,13 @@
{
if(modelProperties == null)
{
+ Set<String> s = new HashSet<String>();
+ //TODO: Should add all collections from ProjectUri
+ s.addAll(PomTransformer.URIS);
+ s.add(ProjectUri.Build.PluginManagement.Plugins.Plugin.Executions.xUri);
+ s.add(ProjectUri.Build.Plugins.Plugin.Executions.xUri);
modelProperties = ModelMarshaller.marshallXmlToModelProperties(
- getInputStream(), ProjectUri.baseUri, PomTransformer.URIS );
+ getInputStream(), ProjectUri.baseUri, s );
}
return new ArrayList<ModelProperty>(modelProperties);
}