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/04/08 11:08:03 UTC
svn commit: r763150 - in /maven/components/trunk:
maven-core/src/test/java/org/apache/maven/settings/
maven-project-builder/src/main/java/org/apache/maven/project/processor/
maven-project/src/main/java/org/apache/maven/project/
maven-project/src/test/j...
Author: sisbell
Date: Wed Apr 8 09:08:03 2009
New Revision: 763150
URL: http://svn.apache.org/viewvc?rev=763150&view=rev
Log:
[MNG-1412,4027] - dependency order from profile.
Added:
maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/
maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/maven-parent.xml
maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/pom.xml
maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/sub/
maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/sub/pom.xml
Modified:
maven/components/trunk/maven-core/src/test/java/org/apache/maven/settings/PomConstructionWithSettingsTest.java
maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/DependencyProcessor.java
maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/ModelProcessor.java
maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/PluginProcessor.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java
Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/settings/PomConstructionWithSettingsTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/settings/PomConstructionWithSettingsTest.java?rev=763150&r1=763149&r2=763150&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/settings/PomConstructionWithSettingsTest.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/settings/PomConstructionWithSettingsTest.java Wed Apr 8 09:08:03 2009
@@ -50,7 +50,6 @@
public void testPomAndSettingsInterpolation() throws Exception
{
PomTestWrapper pom = buildPom( "test-pom-and-settings-interpolation" );
- System.out.println(pom.getDomainModel().asString());
assertEquals("applied", pom.getValue( "properties/settingsProfile" ) );
assertEquals("applied", pom.getValue( "properties/pomProfile" ) );
assertEquals("settings", pom.getValue( "properties/pomVsSettings" ) );
Modified: maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/DependencyProcessor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/DependencyProcessor.java?rev=763150&r1=763149&r2=763150&view=diff
==============================================================================
--- maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/DependencyProcessor.java (original)
+++ maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/DependencyProcessor.java Wed Apr 8 09:08:03 2009
@@ -60,13 +60,16 @@
{
isAdd = false;
}
- copy( (Dependency) child, targetDependency);
+
if(!isAdd)
{
t.remove( targetDependency );
}
-
+
+ copy( (Dependency) child, targetDependency);
+
t.add( targetDependency );
+
}
else if ( parent != null && child == null )
{
@@ -86,14 +89,29 @@
else
// JOIN
{
- Dependency targetDependency = new Dependency();
-
- copy( (Dependency) child, targetDependency);
- copy( (Dependency) parent, targetDependency );
+ Dependency targetDependency = new Dependency();
+ copy( (Dependency) parent, targetDependency );
+ copy( (Dependency) child, targetDependency);
+ /*
+ if( isMatch( (Dependency) child, (Dependency) parent))
+ {
+ copy( (Dependency) child, targetDependency);
+ }
+ else
+ {
+ copy( (Dependency) parent, targetDependency );
+ copy( (Dependency) child, targetDependency);
+ }
+*/
t.add( targetDependency );
}
}
+ private static boolean isMatch(Dependency d1, Dependency d2)
+ {
+ return d1.getGroupId().equals(d2.getGroupId()) && d1.getArtifactId().equals(d2.getArtifactId());
+ }
+
private Dependency contains(Dependency d1, List<Dependency> dependencies)
{
for(Dependency d : dependencies)
Modified: maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/ModelProcessor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/ModelProcessor.java?rev=763150&r1=763149&r2=763150&view=diff
==============================================================================
--- maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/ModelProcessor.java (original)
+++ maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/ModelProcessor.java Wed Apr 8 09:08:03 2009
@@ -145,7 +145,8 @@
if(deps.size() > 0)
{
- t.getDependencies().addAll( deps );
+ t.setDependencies(deps);
+ // t.getDependencies().addAll( deps );
}
//Dependency Management
Modified: maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/PluginProcessor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/PluginProcessor.java?rev=763150&r1=763149&r2=763150&view=diff
==============================================================================
--- maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/PluginProcessor.java (original)
+++ maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/PluginProcessor.java Wed Apr 8 09:08:03 2009
@@ -139,6 +139,10 @@
private static void copyDependencies(List<Dependency> parent, List<Dependency> child, Plugin target, boolean isChild)
{
+ if(parent.isEmpty() && child.isEmpty())
+ {
+ return;
+ }
DependenciesProcessor proc = new DependenciesProcessor();
proc.process( parent, child, target.getDependencies(), isChild );
}
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=763150&r1=763149&r2=763150&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Wed Apr 8 09:08:03 2009
@@ -133,6 +133,7 @@
}
//Profiles
+
List<Profile> projectProfiles;
try
{
@@ -149,17 +150,23 @@
try
{
+ List<Profile> externalProfiles = new ArrayList<Profile>();
for(Profile p : projectProfiles)
{
- logger.debug("Merging profile into model (build): Model = " + domainModel.getId() + ", Profile = " + p.getId() );
+ if(!"pom".equals(p.getSource()))
+ {
+ logger.debug("Merging profile into model (build): Model = " + domainModel.getId() + ", Profile = " + p.getId() );
+ externalProfiles.add(p);
+ }
}
- domainModel = ProcessorContext.mergeProfilesIntoModel( projectProfiles, domainModel );
+ domainModel = ProcessorContext.mergeProfilesIntoModel( externalProfiles, domainModel );
}
catch ( IOException e )
{
throw new ProjectBuildingException("", "");
- }
+ }
+
//Interpolation
MavenProject project = interpolateDomainModel( domainModel, configuration, pomFile );
project.setActiveProfiles( projectProfiles );
Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java?rev=763150&r1=763149&r2=763150&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java Wed Apr 8 09:08:03 2009
@@ -876,10 +876,12 @@
}
/** MNG-4027*/
- /* FIXME
+ /* FIXME*/
+
public void testProfileInjectedDependencies()
throws Exception
{
+ //c.b,d,a
PomTestWrapper pom = buildPom( "profile-injected-dependencies" );
System.out.println(pom.getDomainModel().asString());
assertEquals( 4, ( (List<?>) pom.getValue( "dependencies" ) ).size() );
@@ -888,6 +890,18 @@
assertEquals( "b", pom.getValue( "dependencies[3]/artifactId" ) );
assertEquals( "d", pom.getValue( "dependencies[4]/artifactId" ) );
}
+
+
+ public void testDependencyInheritance()
+ throws Exception
+ {
+ //c.b,d,a
+ PomTestWrapper pom = buildPom( "dependency-inheritance/sub" );
+ assertEquals(1, ( (List<?>) pom.getValue( "dependencies" ) ).size() );
+ assertEquals("4.4", pom.getValue("dependencies[1]/version") );
+ System.out.println(pom.getDomainModel().asString());
+ }
+
//*/
/** MNG-4034 */
public void testManagedProfileDependency()
Added: maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/maven-parent.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/maven-parent.xml?rev=763150&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/maven-parent.xml (added)
+++ maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/maven-parent.xml Wed Apr 8 09:08:03 2009
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you 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.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>11</version>
+ <packaging>pom</packaging>
+
+ <name>Apache Maven</name>
+</project>
Added: maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/pom.xml?rev=763150&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/pom.xml (added)
+++ maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/pom.xml Wed Apr 8 09:08:03 2009
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you 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.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>11</version>
+ <relativePath>maven-parent.xml</relativePath>
+ </parent>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven</artifactId>
+ <version>3.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <properties>
+ <junitVersion>3.8.1</junitVersion>
+ </properties>
+ <!--start-->
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junitVersion}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <!--end-->
+</project>
Added: maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/sub/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/sub/pom.xml?rev=763150&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/sub/pom.xml (added)
+++ maven/components/trunk/maven-project/src/test/resources-project-builder/dependency-inheritance/sub/pom.xml Wed Apr 8 09:08:03 2009
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE
+ file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file
+ to you 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>maven</artifactId>
+ <groupId>org.apache.maven</groupId>
+ <version>3.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project-builder</artifactId>
+ <version>3.0-SNAPSHOT</version>
+ <name>Maven Project Builder</name>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.4</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+
+</project>