[prev in list] [next in list] [prev in thread] [next in thread] 

List:       maven-dev
Subject:    svn commit: r831552 -
From:       bentmann () apache ! org
Date:       2009-10-31 15:25:01
Message-ID: 20091031152502.2FC4523888BD () eris ! apache ! org
[Download RAW message or body]

Author: bentmann
Date: Sat Oct 31 15:24:56 2009
New Revision: 831552

URL: http://svn.apache.org/viewvc?rev=831552&view=rev
Log:
[MNG-4423] Allow to query session data via plugin parameter expressions

Modified:
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java


Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
                
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apa \
che/maven/plugin/PluginParameterExpressionEvaluator.java?rev=831552&r1=831551&r2=831552&view=diff
 ==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java \
                (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java \
Sat Oct 31 15:24:56 2009 @@ -163,13 +163,37 @@
         {
             value = session;
         }
+        else if ( expression.startsWith( "session" ) )
+        {
+            try
+            {
+                int pathSeparator = expression.indexOf( "/" );
+
+                if ( pathSeparator > 0 )
+                {
+                    String pathExpression = expression.substring( 1, pathSeparator \
); +                    value = ReflectionValueExtractor.evaluate( pathExpression, \
session ); +                    value = value + expression.substring( pathSeparator \
); +                }
+                else
+                {
+                    value = ReflectionValueExtractor.evaluate( expression.substring( \
1 ), session ); +                }
+            }
+            catch ( Exception e )
+            {
+                // TODO: don't catch exception
+                throw new ExpressionEvaluationException( "Error evaluating plugin \
parameter expression: " + expression, +                                               \
e ); +            }
+        }
         else if ( "reactorProjects".equals( expression ) )
         {
             value = session.getProjects();
         }
-        else if ("mojoExecution".equals(expression))
+        else if ( "mojoExecution".equals( expression ) )
         {
-        	value = mojoExecution;
+            value = mojoExecution;
         }
         else if ( "project".equals( expression ) )
         {
@@ -180,7 +204,7 @@
             value = project.getExecutionProject();
         }
         else if ( expression.startsWith( "project" ) || expression.startsWith( "pom" \
                ) )
-        {            
+        {
             try
             {
                 int pathSeparator = expression.indexOf( "/" );


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic