Author: rafale Date: Mon Jun 23 12:52:07 2008 New Revision: 670722 URL: http://svn.apache.org/viewvc?rev=670722&view=rev Log: fix for archetype-138
Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java maven/archetype/trunk/archetype-common/src/test/resources/projects/roundtrip-1-project/src/main/java/org/apache/maven/test/App.java Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java?rev=670722&r1=670721&r2=670722&view=diff ============================================================================== --- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java (original) +++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java Mon Jun 23 12:52:07 2008 @@ -2111,7 +2111,9 @@ private String getReversedContent( String content, Properties properties ) { - String result = content; + String result = StringUtils.replace( + StringUtils.replace( content, "$", "${symbol_dollar}" ), + "\\", "${symbol_escape}" ); Iterator propertyIterator = properties.keySet().iterator(); while ( propertyIterator.hasNext() ) { @@ -2124,8 +2126,9 @@ ); } //TODO: Replace velocity to a better engine... - return "#set( $symbol_pound = '#' )\n" + StringUtils.replace( - result, "#", "${symbol_pound}" ); + return "#set( $symbol_pound = '#' )\n" + "#set( $symbol_dollar = '$' )\n" + + "#set( $symbol_escape = '\\' )\n" + + StringUtils.replace( result, "#", "${symbol_pound}" ); } private String getTemplateOutputDirectory() Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java?rev=670722&r1=670721&r2=670722&view=diff ============================================================================== --- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java (original) +++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java Mon Jun 23 12:52:07 2008 @@ -102,8 +102,10 @@ MavenProject project = projectBuilder.build( pom, localRepository, null ); + Properties properties = new Properties(); + properties.setProperty("someProperty", "someValue"); ArchetypeCreationRequest acr = new ArchetypeCreationRequest().setProject( project ). - setLocalRepository( localRepository ); + setLocalRepository( localRepository ).setProperties(properties); ArchetypeCreationResult creationResult = archetype.createArchetypeFromProject( acr ); @@ -114,19 +116,9 @@ // (3) create our own archetype catalog properties in memory File catalogDirectory = new File( getBasedir(), "target"+File.separator+"catalog" ); - - File catalogFile = new File( catalogDirectory, "archetype-catalog.xml" ); - - File catalogProperties = new File( catalogDirectory, - "archetype-catalog.properties" ); - catalogDirectory.mkdirs(); - Properties p = new Properties(); - p.setProperty( "sources", "catalog" ); - p.setProperty( "catalog.file", catalogFile.getAbsolutePath() ); - OutputStream os = new FileOutputStream( catalogProperties ); - p.store( os, "Generated catalog properties" ); + File catalogFile = new File( catalogDirectory, "archetype-catalog.xml" ); // (5) install the archetype we just created File generatedArchetypeDirectory = new File( project.getBasedir(), @@ -179,8 +171,9 @@ setArchetypeArtifactId( generatedArchetypeProject.getArtifactId() ). setArchetypeVersion( generatedArchetypeProject.getVersion() ). setGroupId( "com.mycompany" ).setArtifactId( "myapp" ).setVersion( "1.0-SNAPSHOT" ). - setPackage( "com.mycompany.myapp" ).setOutputDirectory( outputDirectory ). - setLocalRepository( localRepository ).setArchetypeRepository( "http://localhost:18881/repo/" ); + setPackage( "com.mycompany.myapp" ).setProperties(properties). + setOutputDirectory( outputDirectory ).setLocalRepository( localRepository ). + setArchetypeRepository( "http://localhost:18881/repo/" ); ArchetypeGenerationResult generationResult = archetype.generateProjectFromArchetype( agr ); if ( generationResult.getCause() != null ) @@ -197,17 +190,22 @@ System.err.println("content="+content); assertTrue(content.indexOf("//A #\\{some}")>0); assertTrue(content.indexOf("//B #{some}")>0); - assertTrue(content.indexOf("//F {some}")>0); assertTrue(content.indexOf("//C #{some other}")>0); - assertTrue(content.indexOf("//D ${symbol_pound}{some other}")>0); + assertTrue(content.indexOf("//D \\#{some other}")>0); assertTrue(content.indexOf("//E #{}")>0); + assertTrue(content.indexOf("//F {some}")>0); + assertTrue(content.indexOf("//G ${someOtherProperty}")>0); + assertTrue(content.indexOf("//H ${someValue}")>0); assertTrue(content.indexOf("/*")>0); assertTrue(content.indexOf(" A #\\{some}")>0); assertTrue(content.indexOf(" B #{some}")>0); - assertTrue(content.indexOf(" F {some}")>0); assertTrue(content.indexOf(" C #{some other}")>0); - assertTrue(content.indexOf(" D ${symbol_pound}{some other}")>0); + assertTrue(content.indexOf(" D \\#{some other}")>0); assertTrue(content.indexOf(" E #{}") > 0); + assertTrue(content.indexOf(" F {some}")>0); + assertTrue(content.indexOf(" G ${someOtherProperty}")>0); + assertTrue(content.indexOf(" H ${someValue}")>0); + //Assert symbol_dollar archetype-138 } public void setUp() Modified: maven/archetype/trunk/archetype-common/src/test/resources/projects/roundtrip-1-project/src/main/java/org/apache/maven/test/App.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/resources/projects/roundtrip-1-project/src/main/java/org/apache/maven/test/App.java?rev=670722&r1=670721&r2=670722&view=diff ============================================================================== --- maven/archetype/trunk/archetype-common/src/test/resources/projects/roundtrip-1-project/src/main/java/org/apache/maven/test/App.java (original) +++ maven/archetype/trunk/archetype-common/src/test/resources/projects/roundtrip-1-project/src/main/java/org/apache/maven/test/App.java Mon Jun 23 12:52:07 2008 @@ -11,17 +11,21 @@ System.out.println( "Hello World!" ); //A #\{some} //B #{some} - //F {some} //C #{some other} //D \#{some other} //E #{} + //F {some} + //G ${someOtherProperty} + //H ${someValue} /* A #\{some} B #{some} - F {some} C #{some other} D \#{some other} E #{} + F {some} + G ${someOtherProperty} + H ${someValue} */ } }