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()