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>