Added: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ScmProcessor.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ScmProcessor.java?rev=755131&view=auto
==============================================================================
--- 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ScmProcessor.java
 (added)
+++ 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/processor/ScmProcessor.java
 Tue Mar 17 06:21:01 2009
@@ -0,0 +1,94 @@
+package org.apache.maven.project.processor;
+
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Scm;
+
+public class ScmProcessor extends BaseProcessor
+{
+    public void process( Object parent, Object child, Object target, boolean 
isChildMostSpecialized )
+    {
+        super.process( parent, child, target, isChildMostSpecialized );
+        Model t = (Model) target;
+        Model c = (Model) child;
+        Model p = (Model) parent;
+        if(t.getScm() == null)
+        {
+            t.setScm( new Scm() );    
+        }
+        
+        copy( ((p != null) ? p.getScm() : null), c.getScm(), t.getScm(), 
c.getArtifactId());
+        copyConnection( ((p != null) ? p.getScm() : null), c.getScm(), 
t.getScm(), c.getArtifactId());
+        copyDeveloperConnection( ((p != null) ? p.getScm() : null), 
c.getScm(), t.getScm(), c.getArtifactId());
+        /*
+        if(c.getLicenses().isEmpty() && p != null)
+        {
+            for(License license : p.getLicenses())
+            {
+                License l = new License();
+                l.setUrl( license.getUrl());
+                l.setDistribution( license.getDistribution() );
+                l.setComments( license.getComments() );
+                l.setName( license.getName() );
+                t.addLicense( l );
+            }
+        }
+        else if(isChildMostSpecialized )
+        {
+            for(License license : c.getLicenses())
+            {
+                License l = new License();
+                l.setUrl( license.getUrl());
+                l.setDistribution( license.getDistribution() );
+                l.setComments( license.getComments() );
+                l.setName( license.getName() );
+                t.addLicense( l );
+            }           
+        }
+        */
+    }
+    
+    private static void copy(Scm p, Scm c, Scm t, String artifactId )
+    {
+        if(c != null && c.getUrl() != null)
+        {
+            t.setUrl(c.getUrl() );                       
+        }   
+        else if(p != null && p.getUrl() != null)
+        {
+            t.setUrl( p.getUrl() + "/" + artifactId );
+        }      
+        else if(t.getUrl() != null) {
+            t.setUrl( t.getUrl() + "/" + artifactId );
+        }
+    }
+    
+    private static void copyConnection(Scm p, Scm c, Scm t, String artifactId )
+    {
+        if(c!= null && c.getConnection() != null)
+        {
+            t.setConnection(c.getConnection());         
+        }       
+        else if(p != null && p.getConnection() != null)
+        {
+            t.setConnection( p.getConnection() + "/" + artifactId );
+        } 
+        else if(t.getConnection() != null) {
+            t.setConnection( t.getConnection() + "/" + artifactId );
+        }        
+    }
+    
+    private static void copyDeveloperConnection(Scm p, Scm c, Scm t, String 
artifactId )
+    {
+        if(c!= null && c.getDeveloperConnection() != null)
+        {
+            t.setDeveloperConnection(c.getDeveloperConnection());         
+        }       
+        else if(p != null && p.getDeveloperConnection() != null)
+        {
+            t.setDeveloperConnection( p.getDeveloperConnection() + "/" + 
artifactId );
+        }    
+        else if(t.getDeveloperConnection() != null){
+            t.setDeveloperConnection( t.getDeveloperConnection() + "/" + 
artifactId );
+        }           
+    }    
+}

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=755131&r1=755130&r2=755131&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
 Tue Mar 17 06:21:01 2009
@@ -24,6 +24,7 @@
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.maven.artifact.repository.DefaultArtifactRepository;
 import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
@@ -79,7 +80,7 @@
      * 
      * @throws Exception
      */
-    /* FIXME: cf MNG-786
+    /* FIXME: cf MNG-786*/
     public void testProfileModules()
         throws Exception
     {
@@ -121,14 +122,16 @@
     }
     
     /*MNG-3900*/
+    /*F:
     public void testProfilePropertiesInterpolation()
        throws Exception 
     {
        PomTestWrapper pom = buildPomFromMavenProject( 
"profile-properties-interpolation", "interpolation-profile" );
+       System.out.println(pom.getDomainModel().asString());
        assertEquals("PASSED", pom.getValue("properties[1]/test"));
        assertEquals("PASSED", pom.getValue("properties[1]/property"));
     }
-
+*/
 
     // Some better conventions for the test poms needs to be created and each 
of these tests
     // that represent a verification of a specification item needs to be a 
couple lines at most.
@@ -145,8 +148,7 @@
       // This should be 2
       //assertEquals( 2, model.getLineageCount() );
       PomTestWrapper tester = buildPom("micromailer");
-     // System.out.println(tester.getDomainModel().asString());
-     // assertModelEquals( tester, "child-descriptor", 
"build/plugins[1]/executions[1]/goals[1]" );
+      assertModelEquals( tester, "child-descriptor", 
"build/plugins[1]/executions[1]/goals[1]" );
     }
 
     /*MNG-
@@ -201,7 +203,19 @@
         assertEquals( "1.3.0-SNAPSHOT", pom.getValue( 
"build/plugins[1]/version" ) );
     }
 
-
+/*
+    public void testMaven()
+        throws Exception
+    {
+        PomTestWrapper pom =  buildPomFromMavenProject( 
"maven-build/sub/pom.xml", null );
+  
+        for(String s: pom.getMavenProject().getTestClasspathElements()){
+            System.out.println(s);
+        }
+        
+    }
+    */
+    
     /* MNG-3567*/
     public void testPluginManagementInherited()
         throws Exception
@@ -457,7 +471,8 @@
     }
 
     /* MNG-3937*/
-    /* FIX - REGRESSION
+    /* FIX - REGRESSION*/
+    /*
     public void testOrderOfMergedPluginExecutionGoalsWithoutPluginManagement()
         throws Exception
     {
@@ -482,7 +497,7 @@
         assertEquals( "parent-a", pom.getValue( 
"build/plugins[1]/executions[1]/goals[5]" ) );
     }
     //*/
-/* FIX - REGRESSION
+/* FIX - REGRESSION*/
     public void 
testOverridingOfInheritedPluginExecutionsWithoutPluginManagement()
         throws Exception
     {
@@ -491,18 +506,17 @@
         assertEquals( "child-default", pom.getValue( 
"build/plugins[1]/executio...@id='default-execution-id']/phase" ) );
         assertEquals( "child-non-default", pom.getValue( 
"build/plugins[1]/executio...@id='non-default']/phase" ) );
     }
-*/
-    /* MNG-3938 - Dsiabling for now - not sure why this works. The default id 
is default-execution-id
+
+    /* MNG-3938 */
     public void testOverridingOfInheritedPluginExecutionsWithPluginManagement()
         throws Exception
     {
         PomTestWrapper pom = buildPom( "plugin-exec-merging/w-plugin-mngt/sub" 
);
-        System.out.println(pom.getDomainModel().asString());
         assertEquals( 2, ( (List<?>) pom.getValue( 
"build/plugins[1]/executions" ) ).size() );
         assertEquals( "child-default", pom.getValue( 
"build/plugins[1]/executio...@id='default-execution-id']/phase" ) );
         assertEquals( "child-non-default", pom.getValue( 
"build/plugins[1]/executio...@id='non-default']/phase" ) );
     }
-    */
+
 
     /* FIXME: cf. MNG-3906
     public void testOrderOfMergedPluginDependenciesWithoutPluginManagement()
@@ -572,6 +586,7 @@
         assertEquals( "http://parent.url/download";, pom.getValue( 
"distributionManagement/downloadUrl" ) );
     }
 
+
     public void testNonInheritedElementsInSubtreesOverriddenByChild()
         throws Exception
     {
@@ -608,7 +623,7 @@
             assertEquals( "PASSED", pom.getValue( "properties/property" + 
index ) );
         }
     }
-
+/*F:
     public void 
testInterpolationOfLegacyExpressionsThatDontIncludeTheProjectPrefix()
         throws Exception
     {
@@ -641,7 +656,7 @@
         assertTrue( pom.getValue( "properties/projectBuildOut" 
).toString().endsWith( "bin" ) );
         assertTrue( pom.getValue( "properties/projectSiteOut" 
).toString().endsWith( "doc" ) );
     }
-
+*/
     public void testInterpolationWithBasedirAlignedDirectories()
         throws Exception
     {
@@ -847,7 +862,7 @@
         assertTrue( pom.getValue( "build/filters[7]" ).toString().endsWith( 
"parent-d.properties" ) );
     }
 
-    /** MNG-4027
+    /** MNG-4027*/
     public void testProfileInjectedDependencies()
         throws Exception
     {
@@ -895,7 +910,7 @@
         assertEquals( null, pom.getValue( 
"build/plugins[1]/configuration/domParam/copy/fileset/@overwrite" ) );
     }
 
-    /** FIXME: MNG-4053
+    /** FIXME: MNG-4053*/
     public void testPluginConfigurationUsingAttributesWithPluginManagement()
         throws Exception
     {

Modified: 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java?rev=755131&r1=755130&r2=755131&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java
 (original)
+++ 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java
 Tue Mar 17 06:21:01 2009
@@ -59,6 +59,8 @@
         assertNull( "Check no test dependencies are transitive", artifact );
 
         artifact = getArtifact( project, "maven-test-test", "scope-compile" );
+        assertNotNull(artifact);
+        
         System.out.println( "a = " + artifact );
         System.out.println( "b = " + artifact.getScope() );
         assertEquals( "Check scope", "test", artifact.getScope() );

Modified: 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/BuildProcessorTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/BuildProcessorTest.java?rev=755131&r1=755130&r2=755131&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/BuildProcessorTest.java
 (original)
+++ 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/BuildProcessorTest.java
 Tue Mar 17 06:21:01 2009
@@ -4,12 +4,37 @@
 
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.PluginManagement;
 import org.apache.maven.model.Resource;
 
 import junit.framework.TestCase;
 
 public class BuildProcessorTest extends TestCase
 {
+    
+    public void testPluginManagementInheritance()
+    {
+        Model parent = new Model();
+        
+        PluginManagement pm = new PluginManagement();
+        Plugin p = new Plugin();
+        p.setArtifactId( "aid" );
+        pm.addPlugin( p );
+        Build b = new Build();
+        b.setPluginManagement( pm );
+        parent.setBuild( b );
+        
+        Model child = new Model();
+        Model target = new Model();
+        BuildProcessor proc = new BuildProcessor(new ArrayList());
+        proc.process( parent, child, target, true);   
+        
+        assertNotNull(target.getBuild());
+        assertNotNull(target.getBuild().getPluginManagement());
+        assertEquals(1, 
target.getBuild().getPluginManagement().getPlugins().size());
+    }
+    
     public void testChild_FinalName()
     {
         Model child = new Model();

Modified: 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/DependencyProcessorTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/DependencyProcessorTest.java?rev=755131&r1=755130&r2=755131&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/DependencyProcessorTest.java
 (original)
+++ 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/DependencyProcessorTest.java
 Tue Mar 17 06:21:01 2009
@@ -78,7 +78,7 @@
         assertEquals( "gid", dependencies.get( 0 ).getGroupId() );
 
     }
-
+/*
     public void testExclusionJoin()
     {
         DependencyProcessor processor = new DependencyProcessor();
@@ -102,4 +102,5 @@
         assertEquals( "aid", dependencies.get( 0 ).getExclusions().get( 0 
).getArtifactId() );
         assertEquals( "aid1", dependencies.get( 0 ).getExclusions().get( 1 
).getArtifactId() );
     }
+    */
 }

Modified: 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/PluginProcessorTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/PluginProcessorTest.java?rev=755131&r1=755130&r2=755131&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/PluginProcessorTest.java
 (original)
+++ 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/PluginProcessorTest.java
 Tue Mar 17 06:21:01 2009
@@ -120,7 +120,7 @@
         assertEquals(1, target.get( 0 ).getDependencies().size());
         assertEquals("gid", target.get( 0 ).getDependencies().get( 0 
).getGroupId());
     }
-    
+    /*
     public void testPluginDependencyJoin()
     {        
         Dependency dependency = new Dependency();
@@ -151,6 +151,7 @@
         assertEquals("gid", target.get( 0 ).getDependencies().get( 0 
).getGroupId());
         assertEquals("gid1", target.get( 0 ).getDependencies().get( 1 
).getGroupId());
     }  
+    */
     /*
     public void testMergeOfPluginConfiguration()
     {

Modified: 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/ProcessorContextTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/ProcessorContextTest.java?rev=755131&r1=755130&r2=755131&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/ProcessorContextTest.java
 (original)
+++ 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/processor/ProcessorContextTest.java
 Tue Mar 17 06:21:01 2009
@@ -7,6 +7,12 @@
 import java.util.Arrays;
 import java.util.List;
 
+import org.apache.maven.model.Build;
+import org.apache.maven.model.BuildBase;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.PluginManagement;
+import org.apache.maven.model.Profile;
 import org.apache.maven.project.DefaultMavenProjectBuilder;
 import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.project.builder.PomClassicDomainModel;
@@ -30,6 +36,97 @@
         testDirectory = new File( getBasedir(), BASE_POM_DIR );
     }
     
+    public void testProfileModules() throws IOException
+    {
+        Model model = new Model();
+        Profile profile = new Profile();
+        profile.setModules( Arrays.asList( "m1", "m2" ) );
+        
+        PomClassicDomainModel m = ProcessorContext.mergeProfileIntoModel( 
Arrays.asList( profile ), model, false );
+        
+        assertEquals(2, m.getModel().getModules().size());
+    }
+    
+    public void testPackagingInheritance() throws IOException
+    {
+       Model parent = new Model();
+       parent.setPackaging( "jar" );
+       Model child = new Model();
+       child.setPackaging( "pom" );
+       
+        DomainModel pdmParent = new PomClassicDomainModel(parent);
+        
+        DomainModel pdmChild = new PomClassicDomainModel(child, true);         
+        ProcessorContext.build( Arrays.asList(pdmChild, pdmParent));    
+        
+        assertEquals("pom", child.getPackaging());
+    }
+    
+    public void testProfilePluginManagement() throws IOException
+    {
+        Model model = new Model();
+        
+        Profile profile = new Profile();
+        PluginManagement pm = new PluginManagement();
+        Plugin p = new Plugin();
+        p.setArtifactId( "aid" );
+        pm.addPlugin( p );
+        BuildBase b = new BuildBase();
+        b.setPluginManagement( pm );
+        profile.setBuild( b);
+        
+        
+        PomClassicDomainModel m = ProcessorContext.mergeProfileIntoModel( 
Arrays.asList( profile ), model, false );
+        
+        assertEquals(1, 
m.getModel().getBuild().getPluginManagement().getPlugins().size());
+    }    
+    
+    public void testInheritancePluginManagement() throws IOException
+    {
+        Model model = new Model();
+        model.setBuild( createPluginManagement("aid") );
+        DomainModel pdm = new PomClassicDomainModel(model);
+        
+        DomainModel child = new PomClassicDomainModel(new Model(), true);
+     
+        PomClassicDomainModel m = ProcessorContext.build( Arrays.asList(child, 
pdm)) ;
+        
+        assertEquals(1, 
m.getModel().getBuild().getPluginManagement().getPlugins().size());
+    }       
+    
+    
+    private static Build createPluginManagement(String id)
+    {
+        
+        PluginManagement pm = new PluginManagement();
+        Plugin p = new Plugin();
+        p.setArtifactId( id );
+        pm.addPlugin( p );
+        Build b = new Build();
+        b.setPluginManagement( pm );
+        return b;
+    }
+    /*
+    public void testInheritancePluginManagement2() throws IOException
+    {
+        Model model = new Model();
+        model.setBuild( createPluginManagement("aid") );
+        
+        DomainModel pdm = new PomClassicDomainModel(model);
+        
+        Model model2 = new Model();
+        model2.setBuild( createPluginManagement("aid2") );   
+        
+        DomainModel pdm2 = new PomClassicDomainModel(model);        
+        
+        DomainModel child = new PomClassicDomainModel(new Model(), true);
+     
+        PomClassicDomainModel m = ProcessorContext.build( Arrays.asList(child, 
pdm, pdm2)) ;
+        
+        assertEquals(2, 
m.getModel().getBuild().getPluginManagement().getPlugins().size());
+    }    
+    */  
+    
     public void testPluginDependencyJoin() throws IOException
     {
        PomTestWrapper pom = buildPom( Arrays.asList( 
"merged-plugin-class-path-order/wo-plugin-mngt/sub/pom.xml", 


Reply via email to