Author: hboutemy
Date: Sun Aug 21 00:40:25 2011
New Revision: 1159928

URL: http://svn.apache.org/viewvc?rev=1159928&view=rev
Log:
simplified code

Modified:
    
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java

Modified: 
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
URL: 
http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java?rev=1159928&r1=1159927&r2=1159928&view=diff
==============================================================================
--- 
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
 (original)
+++ 
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
 Sun Aug 21 00:40:25 2011
@@ -348,57 +348,54 @@ public class DefaultFilesetArchetypeGene
      * @param filePath the file name and path to be interpolated
      * @param context contains the available properties
      */
-    private String replaceFilenameTokens( String filePath, Context context )
+    private String replaceFilenameTokens( final String filePath, final Context 
context )
     {
         String interpolatedResult = filePath;
-        String propertyToken = null;
-        String contextPropertyValue = null;
 
         int start = 0;
-        int end = 0;
-        int skipUndefinedPropertyIndex = 0;
 
-        int maxAttempts = StringUtils.countMatches( interpolatedResult, 
DELIMITER ) / 2;
-
-        for ( int x = 0; x < maxAttempts && start != -1; x++ )
+        while ( true )
         {
-            start = interpolatedResult.indexOf( DELIMITER, 
skipUndefinedPropertyIndex );
+            start = interpolatedResult.indexOf( DELIMITER, start );
 
-            if ( start != -1 )
+            if ( start == -1 )
             {
-                end = interpolatedResult.indexOf( DELIMITER, start + 
DELIMITER.length() );
+                break;
+            }
 
-                if ( end != -1 )
-                {
-                    propertyToken = interpolatedResult.substring( start + 
DELIMITER.length(), end );
-                }
+            int end = interpolatedResult.indexOf( DELIMITER, start + 
DELIMITER.length() );
 
-                contextPropertyValue = (String) context.get( propertyToken );
+            if ( end == -1 )
+            {
+                break;
+            }
 
-                if ( contextPropertyValue != null && 
contextPropertyValue.trim().length() > 0 )
-                {
-                    if ( getLogger().isDebugEnabled() )
-                    {
-                        getLogger().debug(
-                                           "Replacing '" + DELIMITER + 
propertyToken + DELIMITER + "' in file path '"
-                                               + interpolatedResult + "' with 
value '" + contextPropertyValue + "'." );
-                    }
-
-                    interpolatedResult =
-                        StringUtils.replace( interpolatedResult, DELIMITER + 
propertyToken + DELIMITER,
-                                             contextPropertyValue );
+            String propertyToken = interpolatedResult.substring( start + 
DELIMITER.length(), end );
 
-                }
-                else
-                {
-                    // Need to skip the undefined property
-                    skipUndefinedPropertyIndex = end + DELIMITER.length() + 1;
+            String contextPropertyValue = (String) context.get( propertyToken 
);
 
-                    getLogger().warn(
-                                      "Property '" + propertyToken + "' was 
not specified, so the token in '"
-                                          + interpolatedResult + "' is not 
being replaced." );
+            if ( contextPropertyValue != null && 
contextPropertyValue.trim().length() > 0 )
+            {
+                String search = DELIMITER + propertyToken + DELIMITER;
+
+                if ( getLogger().isDebugEnabled() )
+                {
+                    getLogger().debug( "Replacing '" + search + "' in file 
path '" + interpolatedResult
+                                           + "' with value '" + 
contextPropertyValue + "'." );
                 }
+
+                interpolatedResult = StringUtils.replace( interpolatedResult, 
search, contextPropertyValue );
+
+                end = end + contextPropertyValue.length() - search.length();
             }
+            else
+            {
+                // Need to skip the undefined property
+                getLogger().warn( "Property '" + propertyToken + "' was not 
specified, so the token in '"
+                                      + interpolatedResult + "' is not being 
replaced." );
+            }
+
+            start = end + DELIMITER.length() + 1;
         }
 
         if ( getLogger().isDebugEnabled() )


Reply via email to