Author: jdcasey
Date: Thu Aug 11 21:03:33 2005
New Revision: 232200

URL: http://svn.apache.org/viewcvs?rev=232200&view=rev
Log:
Resolving: MNG-717

PluginParameterExpressionEvaluator now has two static final Maps - 
BANNED_EXPRESSIONS and DEPRECATED_EXPRESSIONS, each of which contain mappings 
of restricted expressions to the preferred alternative.


Modified:
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
    
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/DefaultPluginManager.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=232200&r1=232199&r2=232200&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
 Thu Aug 11 21:03:33 2005
@@ -510,8 +510,8 @@
         //            PlexusConfiguration mergedConfiguration = 
mergeConfiguration( pomConfiguration,
         //                                                                     
     mojoDescriptor.getConfiguration() );
 
-        ExpressionEvaluator expressionEvaluator = new 
PluginParameterExpressionEvaluator( session, pluginDescriptor,
-                                                                               
           pathTranslator, getLogger(),
+        ExpressionEvaluator expressionEvaluator = new 
PluginParameterExpressionEvaluator( session, mojoDescriptor,
+                                                                               
           pathTranslator, getLogger(), 
                                                                                
           project );
 
         PlexusConfiguration extractedMojoConfiguration = 
extractMojoConfiguration( mergedConfiguration,

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=232200&r1=232199&r2=232200&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
 Thu Aug 11 21:03:33 2005
@@ -17,6 +17,7 @@
  */
 
 import org.apache.maven.execution.MavenSession;
+import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.path.PathTranslator;
@@ -26,6 +27,8 @@
 import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
 
 import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
@@ -35,21 +38,39 @@
 public class PluginParameterExpressionEvaluator
     implements ExpressionEvaluator
 {
+    private static final Map BANNED_EXPRESSIONS;
+
+    private static final Map DEPRECATED_EXPRESSIONS;
+
+    static
+    {
+        Map deprecated = new HashMap();
+
+        deprecated.put( "project.build.resources", "project.resources" );
+        deprecated.put( "project.build.testResources", "project.testResources" 
);
+
+        DEPRECATED_EXPRESSIONS = deprecated;
+
+        Map banned = new HashMap();
+
+        BANNED_EXPRESSIONS = banned;
+    }
+
     private final PathTranslator pathTranslator;
 
     private final MavenSession context;
 
     private final Logger logger;
 
-    private final PluginDescriptor pluginDescriptor;
+    private final MojoDescriptor mojoDescriptor;
 
     private final MavenProject project;
 
-    public PluginParameterExpressionEvaluator( MavenSession context, 
PluginDescriptor pluginDescriptor,
-                                               PathTranslator pathTranslator, 
Logger logger, MavenProject project )
+    public PluginParameterExpressionEvaluator( MavenSession context, 
MojoDescriptor mojoDescriptor,
+                                              PathTranslator pathTranslator, 
Logger logger, MavenProject project )
     {
         this.context = context;
-        this.pluginDescriptor = pluginDescriptor;
+        this.mojoDescriptor = mojoDescriptor;
         this.pathTranslator = pathTranslator;
         this.logger = logger;
         this.project = project;
@@ -85,6 +106,18 @@
             return expression;
         }
 
+        if ( BANNED_EXPRESSIONS.containsKey( expression ) )
+        {
+            throw new ExpressionEvaluationException( "The parameter 
expression: \'" + expression
+                + "\' used in mojo: \'" + mojoDescriptor.getGoal() + "\' is 
banned. Use \'"
+                + BANNED_EXPRESSIONS.get( expression ) + "\' instead." );
+        }
+        else if ( DEPRECATED_EXPRESSIONS.containsKey( expression ) )
+        {
+            logger.warn( "The parameter expression: \'" + expression + "\' 
used in mojo: \'" + mojoDescriptor.getGoal()
+                + "\' has been deprecated. Use \'" + 
DEPRECATED_EXPRESSIONS.get( expression ) + "\' instead." );
+        }
+        
         if ( "localRepository".equals( expression ) )
         {
             value = context.getLocalRepository();
@@ -135,6 +168,8 @@
             {
                 int pathSeparator = expression.indexOf( "/" );
 
+                PluginDescriptor pluginDescriptor = 
mojoDescriptor.getPluginDescriptor();
+
                 if ( pathSeparator > 0 )
                 {
                     String pathExpression = expression.substring( 1, 
pathSeparator );
@@ -269,4 +304,3 @@
     }
 
 }
-

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=232200&r1=232199&r2=232200&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
 Thu Aug 11 21:03:33 2005
@@ -26,6 +26,7 @@
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
 import org.apache.maven.monitor.event.DefaultEventDispatcher;
+import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.settings.Settings;
@@ -140,8 +141,12 @@
 
         PlexusContainer container = getContainer();
         MavenSession session = createSession( container, repo );
+        
+        MojoDescriptor mojo = new MojoDescriptor();
+        mojo.setPluginDescriptor( pluginDescriptor );
+        mojo.setGoal( "goal" );
 
-        return (ExpressionEvaluator) new PluginParameterExpressionEvaluator( 
session, pluginDescriptor, null,
+        return (ExpressionEvaluator) new PluginParameterExpressionEvaluator( 
session, mojo, null,
                                                                              
container.getLogger(), project );
     }
 



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

Reply via email to