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}
          */
     }
 }


Reply via email to