You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/10/03 04:09:11 UTC
svn commit: r293205 - in
/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project:
ModelUtils.java inheritance/DefaultModelInheritanceAssembler.java
injection/DefaultProfileInjector.java injection/ProfileInjector.java
Author: brett
Date: Sun Oct 2 19:09:04 2005
New Revision: 293205
URL: http://svn.apache.org/viewcvs?rev=293205&view=rev
Log:
PR: MNG-895
merge resource lists
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/ProfileInjector.java
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java?rev=293205&r1=293204&r2=293205&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java Sun Oct 2 19:09:04 2005
@@ -19,11 +19,13 @@
import org.apache.maven.model.Activation;
import org.apache.maven.model.ActivationFile;
import org.apache.maven.model.ActivationProperty;
+import org.apache.maven.model.Build;
import org.apache.maven.model.BuildBase;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.DependencyManagement;
import org.apache.maven.model.DistributionManagement;
import org.apache.maven.model.Exclusion;
+import org.apache.maven.model.Extension;
import org.apache.maven.model.Goal;
import org.apache.maven.model.Model;
import org.apache.maven.model.Parent;
@@ -1034,5 +1036,41 @@
}
return repositories;
+ }
+
+ public static void mergeExtensionLists( Build childBuild, Build parentBuild )
+ {
+ for ( Iterator i = parentBuild.getExtensions().iterator(); i.hasNext(); )
+ {
+ Extension e = (Extension) i.next();
+ if ( !childBuild.getExtensions().contains( e ) )
+ {
+ childBuild.addExtension( e );
+ }
+ }
+ }
+
+ public static void mergeResourceLists( List childResources, List parentResources )
+ {
+ for ( Iterator i = parentResources.iterator(); i.hasNext(); )
+ {
+ Resource r = (Resource) i.next();
+ if ( !childResources.contains( r ) )
+ {
+ childResources.add( r );
+ }
+ }
+ }
+
+ public static void mergeFilterLists( List childFilters, List parentFilters )
+ {
+ for ( Iterator i = parentFilters.iterator(); i.hasNext(); )
+ {
+ String f = (String) i.next();
+ if ( !childFilters.contains( f ) )
+ {
+ childFilters.add( f );
+ }
+ }
}
}
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java?rev=293205&r1=293204&r2=293205&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java Sun Oct 2 19:09:04 2005
@@ -20,7 +20,6 @@
import org.apache.maven.model.Dependency;
import org.apache.maven.model.DependencyManagement;
import org.apache.maven.model.DistributionManagement;
-import org.apache.maven.model.Extension;
import org.apache.maven.model.Model;
import org.apache.maven.model.PluginManagement;
import org.apache.maven.model.Reporting;
@@ -173,11 +172,11 @@
assembleDependencyManagementInheritance( child, parent );
assembleDistributionManagementInheritance( child, parent );
-
+
Properties props = new Properties();
props.putAll( parent.getProperties() );
props.putAll( child.getProperties() );
-
+
child.setProperties( props );
}
@@ -350,7 +349,7 @@
}
// Extensions are accumlated
- mergeExtensionLists( childBuild, parentBuild );
+ ModelUtils.mergeExtensionLists( childBuild, parentBuild );
if ( childBuild.getDirectory() == null )
{
@@ -367,17 +366,9 @@
childBuild.setFinalName( parentBuild.getFinalName() );
}
- List resources = childBuild.getResources();
- if ( resources == null || resources.isEmpty() )
- {
- childBuild.setResources( parentBuild.getResources() );
- }
-
- resources = childBuild.getTestResources();
- if ( resources == null || resources.isEmpty() )
- {
- childBuild.setTestResources( parentBuild.getTestResources() );
- }
+ ModelUtils.mergeFilterLists( childBuild.getFilters(), parentBuild.getFilters() );
+ ModelUtils.mergeResourceLists( childBuild.getResources(), parentBuild.getResources() );
+ ModelUtils.mergeResourceLists( childBuild.getTestResources(), parentBuild.getTestResources() );
// Plugins are aggregated if Plugin.inherit != false
ModelUtils.mergePluginLists( childBuild, parentBuild, true );
@@ -398,7 +389,6 @@
}
}
-
private void assembleScmInheritance( Model child, Model parent, boolean appendPaths )
{
if ( parent.getScm() != null )
@@ -523,15 +513,4 @@
}
}
- private void mergeExtensionLists( Build childBuild, Build parentBuild )
- {
- for ( Iterator i = parentBuild.getExtensions().iterator(); i.hasNext(); )
- {
- Extension e = (Extension) i.next();
- if ( !childBuild.getExtensions().contains( e ) )
- {
- childBuild.addExtension( e );
- }
- }
- }
}
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java?rev=293205&r1=293204&r2=293205&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java Sun Oct 2 19:09:04 2005
@@ -1,5 +1,21 @@
package org.apache.maven.project.injection;
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import org.apache.maven.model.Build;
import org.apache.maven.model.BuildBase;
import org.apache.maven.model.ConfigurationContainer;
@@ -99,31 +115,9 @@
modelBuild.setFinalName( profileBuild.getFinalName() );
}
- List profileResources = profileBuild.getResources();
-
- if ( profileResources != null && !profileResources.isEmpty() )
- {
- modelBuild.setResources( profileResources );
- }
-
- List profileTestResources = profileBuild.getTestResources();
-
- if ( profileTestResources != null && !profileTestResources.isEmpty() )
- {
- modelBuild.setTestResources( profileTestResources );
- }
-
- if ( profileBuild.getFilters() != null )
- {
- if ( modelBuild.getFilters() == null )
- {
- modelBuild.setFilters( profileBuild.getFilters() );
- }
- else
- {
- modelBuild.getFilters().addAll( profileBuild.getFilters() );
- }
- }
+ ModelUtils.mergeFilterLists( modelBuild.getFilters(), profileBuild.getFilters() );
+ ModelUtils.mergeResourceLists( modelBuild.getResources(), profileBuild.getResources() );
+ ModelUtils.mergeResourceLists( modelBuild.getTestResources(), profileBuild.getTestResources() );
injectPlugins( profileBuild, modelBuild );
@@ -299,7 +293,7 @@
}
/**
- * Append modules specified in the profile to the end of the list supplied by the model, if
+ * Append modules specified in the profile to the end of the list supplied by the model, if
* they don't already exist.
*/
private void injectModules( Profile profile, Model model )
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/ProfileInjector.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/ProfileInjector.java?rev=293205&r1=293204&r2=293205&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/ProfileInjector.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/ProfileInjector.java Sun Oct 2 19:09:04 2005
@@ -1,13 +1,28 @@
package org.apache.maven.project.injection;
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import org.apache.maven.model.Model;
import org.apache.maven.model.Profile;
public interface ProfileInjector
{
-
String ROLE = ProfileInjector.class.getName();
-
+
void inject( Profile profile, Model model );
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org