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",
