pattern reuse to prevent pattern recompilation

git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@692753 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index 5cdda50..d35129b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -101,7 +101,7 @@
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-interpolation</artifactId>
-      <version>1.2</version>
+      <version>1.3</version>
     </dependency>
   </dependencies>
 </project>
diff --git a/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java b/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
index f3421f0..cdb9471 100644
--- a/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
+++ b/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
@@ -147,7 +147,7 @@
         {
             public Reader getReader( Reader reader )
             {
-                Interpolator propertiesInterpolator = new RegexBasedInterpolator();
+                Interpolator propertiesInterpolator = new RegexBasedInterpolator( true );
                 propertiesInterpolator.addValueSource( propertiesValueSource  );
                 return new InterpolatorFilterReader( reader, propertiesInterpolator );
             }
@@ -159,7 +159,8 @@
         {
             public Reader getReader( Reader reader )
             {
-                final Interpolator propertiesInterpolatorAtRegex = new RegexBasedInterpolator( "\\@", "(.+?)\\@" );
+                final RegexBasedInterpolator propertiesInterpolatorAtRegex = new RegexBasedInterpolator( "\\@", "(.+?)\\@" );
+                propertiesInterpolatorAtRegex.setReusePatterns( true );
                 propertiesInterpolatorAtRegex.addValueSource( propertiesValueSource );
                 return new InterpolatorFilterReader( reader, propertiesInterpolatorAtRegex, "@", "@" );
             }
@@ -171,7 +172,7 @@
         {
             public Reader getReader( Reader reader )
             {
-                Interpolator mavenProjectInterpolator = new RegexBasedInterpolator();
+                Interpolator mavenProjectInterpolator = new RegexBasedInterpolator( true );
 
                 ValueSource valueSource = new MavenProjectValueSource( mavenProject, escapedBackslashesInFilePath );
                 mavenProjectInterpolator.addValueSource( valueSource );
@@ -185,8 +186,8 @@
         {
             public Reader getReader( Reader reader )
             {
-                Interpolator mavenProjectInterpolator = new RegexBasedInterpolator( "\\@", "(.+?)\\@" );
-
+                RegexBasedInterpolator mavenProjectInterpolator = new RegexBasedInterpolator( "\\@", "(.+?)\\@" );
+                mavenProjectInterpolator.setReusePatterns( true );
                 ValueSource valueSource = new MavenProjectValueSource( mavenProject, escapedBackslashesInFilePath );
                 mavenProjectInterpolator.addValueSource( valueSource );
                 return new InterpolatorFilterReader( reader, mavenProjectInterpolator, "@", "@" );