You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2006/04/13 08:56:21 UTC

svn commit: r393741 - in /maven/archetype/branches/archetype-1.0.x/maven-archetype-core/src: main/java/org/apache/maven/archetype/DefaultArchetype.java test/java/org/apache/maven/archetype/ArchetypeTest.java

Author: brett
Date: Wed Apr 12 23:56:08 2006
New Revision: 393741

URL: http://svn.apache.org/viewcvs?rev=393741&view=rev
Log:
merge r393739 from trunk

Modified:
    maven/archetype/branches/archetype-1.0.x/maven-archetype-core/src/main/java/org/apache/maven/archetype/DefaultArchetype.java
    maven/archetype/branches/archetype-1.0.x/maven-archetype-core/src/test/java/org/apache/maven/archetype/ArchetypeTest.java

Modified: maven/archetype/branches/archetype-1.0.x/maven-archetype-core/src/main/java/org/apache/maven/archetype/DefaultArchetype.java
URL: http://svn.apache.org/viewcvs/maven/archetype/branches/archetype-1.0.x/maven-archetype-core/src/main/java/org/apache/maven/archetype/DefaultArchetype.java?rev=393741&r1=393740&r2=393741&view=diff
==============================================================================
--- maven/archetype/branches/archetype-1.0.x/maven-archetype-core/src/main/java/org/apache/maven/archetype/DefaultArchetype.java (original)
+++ maven/archetype/branches/archetype-1.0.x/maven-archetype-core/src/main/java/org/apache/maven/archetype/DefaultArchetype.java Wed Apr 12 23:56:08 2006
@@ -396,11 +396,24 @@
     }
 
     static boolean addModuleToParentPom( String artifactId, Reader fileReader, Writer fileWriter )
-        throws DocumentException, IOException
+        throws DocumentException, IOException, ArchetypeTemplateProcessingException
     {
         SAXReader reader = new SAXReader();
         Document document = reader.read( fileReader );
         Element project = document.getRootElement();
+
+        String packaging = null;
+        Element packagingElement = project.element( "packaging" );
+        if ( packagingElement != null )
+        {
+            packaging = packagingElement.getStringValue();
+        }
+        if ( !"pom".equals( packaging ) )
+        {
+            throw new ArchetypeTemplateProcessingException(
+                "Unable to add module to the current project as it is not of packaging type 'pom'" );
+        }
+
         Element modules = project.element( "modules" );
         if ( modules == null )
         {

Modified: maven/archetype/branches/archetype-1.0.x/maven-archetype-core/src/test/java/org/apache/maven/archetype/ArchetypeTest.java
URL: http://svn.apache.org/viewcvs/maven/archetype/branches/archetype-1.0.x/maven-archetype-core/src/test/java/org/apache/maven/archetype/ArchetypeTest.java?rev=393741&r1=393740&r2=393741&view=diff
==============================================================================
--- maven/archetype/branches/archetype-1.0.x/maven-archetype-core/src/test/java/org/apache/maven/archetype/ArchetypeTest.java (original)
+++ maven/archetype/branches/archetype-1.0.x/maven-archetype-core/src/test/java/org/apache/maven/archetype/ArchetypeTest.java Wed Apr 12 23:56:08 2006
@@ -229,45 +229,47 @@
     }
 
     public void testAddModuleToParentPOM()
-        throws DocumentException, IOException
+        throws DocumentException, IOException, ArchetypeTemplateProcessingException
     {
-        String pom = "<project>\n</project>";
+        String pom = "<project>\n  <packaging>pom</packaging>\n</project>";
 
         StringWriter out = new StringWriter();
         assertTrue( DefaultArchetype.addModuleToParentPom( "myArtifactId1", new StringReader( pom ), out ) );
 
-        assertEquals( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<project>\n" + "  <modules>\n" +
-            "    <module>myArtifactId1</module>\n" + "  </modules>\n" + "</project>", out.toString() );
+        assertEquals( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<project>\n" +
+            "  <packaging>pom</packaging>\n" + "  <modules>\n" + "    <module>myArtifactId1</module>\n" +
+            "  </modules>\n" + "</project>", out.toString() );
 
-        pom = "<project>\n  <modelVersion>4.0.0</modelVersion>\n</project>";
+        pom = "<project>\n  <modelVersion>4.0.0</modelVersion>\n" + "  <packaging>pom</packaging>\n" + "</project>";
 
         out = new StringWriter();
         assertTrue( DefaultArchetype.addModuleToParentPom( "myArtifactId2", new StringReader( pom ), out ) );
 
         assertEquals( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<project>\n" +
-            "  <modelVersion>4.0.0</modelVersion>\n" + "  <modules>\n" + "    <module>myArtifactId2</module>\n" +
-            "  </modules>\n" + "</project>", out.toString() );
+            "  <modelVersion>4.0.0</modelVersion>\n" + "  <packaging>pom</packaging>\n" + "  <modules>\n" +
+            "    <module>myArtifactId2</module>\n" + "  </modules>\n" + "</project>", out.toString() );
 
-        pom = "<project><modelVersion>4.0.0</modelVersion>\n" + "  <modules>\n" + "  </modules>\n" + "</project>";
+        pom = "<project><modelVersion>4.0.0</modelVersion>\n" + "  <packaging>pom</packaging>\n" + "  <modules>\n" +
+            "  </modules>\n" + "</project>";
 
         out = new StringWriter();
         assertTrue( DefaultArchetype.addModuleToParentPom( "myArtifactId3", new StringReader( pom ), out ) );
 
         assertEquals( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project><modelVersion>4.0.0</modelVersion>\n" +
-            "  <modules>\n" + "    <module>myArtifactId3</module>\n" + "  </modules>\n" + "</project>",
-                      out.toString() );
+            "  <packaging>pom</packaging>\n" + "  <modules>\n" + "    <module>myArtifactId3</module>\n" +
+            "  </modules>\n" + "</project>", out.toString() );
 
-        pom = "<project><modelVersion>4.0.0</modelVersion>\n" + "  <modules>\n" +
+        pom = "<project><modelVersion>4.0.0</modelVersion>\n" + "  <packaging>pom</packaging>\n" + "  <modules>\n" +
             "    <module>myArtifactId3</module>\n" + "  </modules>\n" + "</project>";
 
         out = new StringWriter();
         assertTrue( DefaultArchetype.addModuleToParentPom( "myArtifactId4", new StringReader( pom ), out ) );
 
         assertEquals( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project><modelVersion>4.0.0</modelVersion>\n" +
-            "  <modules>\n" + "    <module>myArtifactId3</module>\n" + "    <module>myArtifactId4</module>\n" +
-            "  </modules>\n" + "</project>", out.toString() );
+            "  <packaging>pom</packaging>\n" + "  <modules>\n" + "    <module>myArtifactId3</module>\n" +
+            "    <module>myArtifactId4</module>\n" + "  </modules>\n" + "</project>", out.toString() );
 
-        pom = "<project><modelVersion>4.0.0</modelVersion>\n" + "  <modules>\n" +
+        pom = "<project><modelVersion>4.0.0</modelVersion>\n" + "  <packaging>pom</packaging>\n" + "  <modules>\n" +
             "    <module>myArtifactId3</module>\n" + "  </modules>\n" + "</project>";
 
         out = new StringWriter();
@@ -275,6 +277,38 @@
 
         // empty means unchanged
         assertEquals( "", out.toString() );
+    }
+
+    public void testAddModuleToParentPOMNoPackaging()
+        throws DocumentException, IOException
+    {
+        try
+        {
+            String pom = "<project>\n</project>";
+            DefaultArchetype.addModuleToParentPom( "myArtifactId1", new StringReader( pom ), new StringWriter() );
+            fail( "Should fail to add a module to a JAR packaged project" );
+        }
+        catch ( ArchetypeTemplateProcessingException e )
+        {
+            // great!
+            assertTrue( true );
+        }
+    }
+
+    public void testAddModuleToParentPOMJarPackaging()
+        throws DocumentException, IOException
+    {
+        try
+        {
+            String pom = "<project>\n  <packaging>jar</packaging>\n</project>";
+            DefaultArchetype.addModuleToParentPom( "myArtifactId1", new StringReader( pom ), new StringWriter() );
+            fail( "Should fail to add a module to a JAR packaged project" );
+        }
+        catch ( ArchetypeTemplateProcessingException e )
+        {
+            // great!
+            assertTrue( true );
+        }
     }
 
     protected void setUp()