Author: brett
Date: Mon May  2 00:22:18 2005
New Revision: 165597

URL: http://svn.apache.org/viewcvs?rev=165597&view=rev
Log:
fix bad expression handling

Modified:
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
    
maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java?rev=165597&r1=165596&r2=165597&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
 Mon May  2 00:22:18 2005
@@ -193,7 +193,7 @@
             context.getLog().warn( "DEPRECATED: use ${} to delimit expressions 
instead of # for '" + expr + "'" );
             expr = expr.substring( 1 );
         }
-        else if ( expr.startsWith( "${" ) && expr.endsWith( "}" ) )
+        else if ( expr.startsWith( "${" ) && expr.indexOf( "}" ) == 
expr.length() - 1 )
         {
             expr = expr.substring( 2, expr.length() - 1 );
         }

Modified: 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java?rev=165597&r1=165596&r2=165597&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
 (original)
+++ 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
 Mon May  2 00:22:18 2005
@@ -45,13 +45,6 @@
     {
         String expected = getTestFile( "target/test-classes/target/classes" 
).getCanonicalPath();
 
-        ArtifactRepositoryLayout repoLayout = (ArtifactRepositoryLayout) 
lookup( ArtifactRepositoryLayout.ROLE,
-                                                                               
  "legacy" );
-
-        ArtifactRepository repo = new ArtifactRepository( "local", "here", 
repoLayout );
-
-        PlexusContainer container = getContainer();
-
         Build build = new Build();
         build.setDirectory( expected.substring( 0, expected.length() - 
"/classes".length() ) );
 
@@ -61,9 +54,7 @@
         MavenProject project = new MavenProject( model );
         project.setFile( new File( "pom.xml" ).getCanonicalFile() );
 
-        MavenSession session = createSession( project, container, repo );
-
-        ExpressionEvaluator expressionEvaluator = new 
PluginParameterExpressionEvaluator( session, null );
+        ExpressionEvaluator expressionEvaluator = createExpressionEvaluator( 
project );
 
         Object value = expressionEvaluator.evaluate( 
"${project.build.directory}/classes" );
         String actual = new File( value.toString() ).getCanonicalPath();
@@ -88,7 +79,7 @@
         ArtifactRepository repo = new ArtifactRepository( "test", 
"http://www.test.com";, repoLayout );
 
         PlexusContainer container = getContainer();
-        MavenSession session = createSession( new MavenProject(new Model()), 
container, repo );
+        MavenSession session = createSession( createDefaultProject(), 
container, repo );
 
         ExpressionEvaluator expressionEvaluator = new 
PluginParameterExpressionEvaluator( session, null );
 
@@ -98,17 +89,47 @@
     public void testLocalRepositoryExtraction()
         throws Exception
     {
+        ExpressionEvaluator expressionEvaluator = createExpressionEvaluator( 
createDefaultProject() );
+        Object value = expressionEvaluator.evaluate( "${localRepository}" );
+
+        assertEquals( "local", ( (ArtifactRepository) value ).getId() );
+    }
+
+    public void testTwoExpressions()
+        throws Exception
+    {
+        Build build = new Build();
+        build.setDirectory( "expected-directory" );
+        build.setFinalName( "expected-finalName" );
+
+        Model model = new Model();
+        model.setBuild( build );
+
+
+        ExpressionEvaluator expressionEvaluator = createExpressionEvaluator( 
new MavenProject( model ) );
+
+        Object value = expressionEvaluator.evaluate( 
"${project.build.directory}/${project.build.finalName}" );
+
+        assertEquals( "expected-directory/expected-finalName", value );
+    }
+
+    private MavenProject createDefaultProject()
+    {
+        return new MavenProject( new Model() );
+    }
+
+    private ExpressionEvaluator createExpressionEvaluator( MavenProject 
project )
+        throws Exception
+    {
         ArtifactRepositoryLayout repoLayout = (ArtifactRepositoryLayout) 
lookup( ArtifactRepositoryLayout.ROLE,
                                                                                
  "legacy" );
 
         ArtifactRepository repo = new ArtifactRepository( "local", 
"target/repo", repoLayout );
 
         PlexusContainer container = getContainer();
-        MavenSession session = createSession( new MavenProject(new Model()), 
container, repo );
+        MavenSession session = createSession( project, container, repo );
 
         ExpressionEvaluator expressionEvaluator = new 
PluginParameterExpressionEvaluator( session, null );
-        Object value = expressionEvaluator.evaluate( "${localRepository}" );
-
-        assertEquals( "local", ( (ArtifactRepository) value ).getId() );
+        return expressionEvaluator;
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to