You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ca...@apache.org on 2006/01/01 21:31:06 UTC
svn commit: r360548 - in
/maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun:
AbstractAntMojo.java AntPropertyHelper.java
components/AntTargetConverter.java
Author: carlos
Date: Sun Jan 1 12:31:00 2006
New Revision: 360548
URL: http://svn.apache.org/viewcvs?rev=360548&view=rev
Log:
Try to get properties through a expression evaluator first, delegating to ant after.
PR: MANTRUN-36
Submitted By: Gilles Scokart
Modified:
maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun/AbstractAntMojo.java
maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun/AntPropertyHelper.java
maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun/components/AntTargetConverter.java
Modified: maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun/AbstractAntMojo.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun/AbstractAntMojo.java?rev=360548&r1=360547&r2=360548&view=diff
==============================================================================
--- maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun/AbstractAntMojo.java (original)
+++ maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun/AbstractAntMojo.java Sun Jan 1 12:31:00 2006
@@ -25,12 +25,14 @@
import org.apache.maven.artifact.DependencyResolutionRequiredException;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.antrun.components.AntTargetConverter;
import org.apache.maven.project.MavenProject;
import org.apache.tools.ant.DefaultLogger;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.PropertyHelper;
import org.apache.tools.ant.Target;
import org.apache.tools.ant.types.Path;
+import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
import org.codehaus.plexus.util.StringUtils;
/**
@@ -54,11 +56,14 @@
{
try
{
+ //TODO refactor - place the manipulation of the expressionEvaluator into a separated class.
+ ExpressionEvaluator exprEvaluator = (ExpressionEvaluator) antTasks.getProject().getReference(AntTargetConverter.MAVEN_EXPRESSION_EVALUATOR_ID);
+
Project antProject = antTasks.getProject();
PropertyHelper propertyHelper = PropertyHelper.getPropertyHelper( antProject );
- propertyHelper.setNext( new AntPropertyHelper( mavenProject, getLog() ) );
+ propertyHelper.setNext( new AntPropertyHelper( exprEvaluator, getLog() ) );
DefaultLogger antLogger = new DefaultLogger();
antLogger.setOutputPrintStream( System.out );
Modified: maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun/AntPropertyHelper.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun/AntPropertyHelper.java?rev=360548&r1=360547&r2=360548&view=diff
==============================================================================
--- maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun/AntPropertyHelper.java (original)
+++ maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun/AntPropertyHelper.java Sun Jan 1 12:31:00 2006
@@ -19,6 +19,8 @@
import org.apache.maven.plugin.logging.Log;
import org.apache.maven.project.MavenProject;
import org.apache.tools.ant.PropertyHelper;
+import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
+import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
/**
@@ -30,14 +32,27 @@
extends PropertyHelper
{
private Log log;
+ private ExpressionEvaluator exprEvaluator;
private MavenProject mavenProject;
+ /**
+ * @deprecated use the other constructor
+ * @param project
+ * @param l
+ */
public AntPropertyHelper( MavenProject project, Log l )
{
mavenProject = project;
log = l;
}
+ public AntPropertyHelper( ExpressionEvaluator exprEvaluator, Log l )
+ {
+ this.mavenProject = null;
+ this.exprEvaluator = exprEvaluator;
+ this.log = l;
+ }
+
public synchronized Object getPropertyHook( String ns, String name, boolean user )
{
if ( log.isDebugEnabled() )
@@ -45,6 +60,47 @@
log.debug( "getProperty(ns="+ns+", name="+name+", user="+user+")" );
}
+ /* keep old behaviour */
+ if ( mavenProject != null )
+ {
+ return getPropertyHook( ns, name, user, mavenProject );
+ }
+
+ Object val = null;
+ try
+ {
+ val = exprEvaluator.evaluate( "${" + name + "}" );
+ }
+ catch (ExpressionEvaluationException e)
+ {
+ if ( log.isErrorEnabled() )
+ {
+ log.error("Failed to evaluate expression" , e);
+ }
+ }
+ if ( val == null )
+ {
+ val = super.getPropertyHook( ns, name, user );
+
+ if ( val == null )
+ {
+ val = System.getProperty( name.toString() );
+ }
+ }
+
+ return val;
+ }
+
+ /**
+ * @deprecated added to keep backwards compatibility
+ * @param ns
+ * @param name
+ * @param user
+ * @param mavenProject
+ * @return
+ */
+ private Object getPropertyHook( String ns, String name, boolean user, MavenProject mavenProject )
+ {
Object val = null;
try
{
@@ -85,4 +141,5 @@
return val;
}
+
}
Modified: maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun/components/AntTargetConverter.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun/components/AntTargetConverter.java?rev=360548&r1=360547&r2=360548&view=diff
==============================================================================
--- maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun/components/AntTargetConverter.java (original)
+++ maven/plugins/trunk/maven-antrun-plugin/src/main/java/org/apache/maven/plugin/antrun/components/AntTargetConverter.java Sun Jan 1 12:31:00 2006
@@ -27,7 +27,6 @@
import org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter;
import org.codehaus.plexus.component.configurator.converters.ConfigurationConverter;
import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup;
-import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
import org.codehaus.plexus.configuration.PlexusConfiguration;
import org.codehaus.plexus.configuration.PlexusConfigurationException;
@@ -40,6 +39,8 @@
public class AntTargetConverter
extends AbstractConfigurationConverter
{
+ public static final String MAVEN_EXPRESSION_EVALUATOR_ID = "maven.expressionEvaluator";
+
public static final String ROLE = ConfigurationConverter.class.getName();
public boolean canConvert( Class type )
@@ -79,14 +80,16 @@
target.setProject( project );
project.addTarget( target );
+ project.addReference(MAVEN_EXPRESSION_EVALUATOR_ID , expressionEvaluator);
+
initDefinitions( project, target );
- processConfiguration( null, project, target, configuration, expressionEvaluator );
+ processConfiguration( null, project, target, configuration );
}
private void processConfiguration( RuntimeConfigurable parentWrapper, Project project, Target target,
- PlexusConfiguration configuration, ExpressionEvaluator expressionEvaluator )
+ PlexusConfiguration configuration )
throws ComponentConfigurationException
{
int items = configuration.getChildCount();
@@ -136,18 +139,6 @@
try
{
String v = childConfiguration.getAttribute( attrNames[a] );
-
- try
- {
- Object evaluatedExpr = expressionEvaluator.evaluate( v );
- v = evaluatedExpr == null ? v : evaluatedExpr.toString();
- }
- catch ( ExpressionEvaluationException e )
- {
- throw new ComponentConfigurationException( "Error evaluating value '" + v + "' of attribute '" +
- attrNames[a] + "' of tag '" + childConfiguration.getName() + "'", e );
- }
-
wrapper.setAttribute( attrNames[a], v );
}
catch ( PlexusConfigurationException e )
@@ -163,7 +154,7 @@
parentWrapper.addChild( wrapper );
}
- processConfiguration( wrapper, project, target, childConfiguration, expressionEvaluator );
+ processConfiguration( wrapper, project, target, childConfiguration );
}
}