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]