maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From franz see <franz....@gmail.com>
Subject Re: [m2] Can anyone explain this code
Date Tue, 20 Feb 2007 02:37:00 GMT

Good day to you, Jiaqi,

Actually, the second if statement handles that ( the one after "String
expression = stripTokens( expr );" ). It takes in the contents of "${" and
"}" and recursively evaluates it. If the expr passed to evaluate(...) is not
a ${...}, then the actual substitution takes place. 

The way I see it, indexOf("/") is used to evalute "/" which are inside
${...}. Why would you want to do that? - I don't know :-)

Cheers,
Franz


Jiaqi Guo wrote:
> 
> In fact, the ReflectionValueExtractor.evaluate("lugin", 
> pluginDescriptor) does return null. The first token in while loop is 
> "lugin", which calls "getLugin()" of root object and returns null. I 
> guess this is where the problem is. Maybe there should be another 'else 
> if ( "plugin".equals( expression ) )' before 'else if ( 
> expression.startsWith( "plugin" ) )' .
> 
> And I think I begin to understand the indexOf( "/" ) now. Is it to allow 
> user to specify things like 
> "${project.build.sourceDirectory}/some/sub/directory"?
> 
> Thanks
> -Jiaqi
> 
> Jiaqi Guo wrote:
>> Hi Franz,
>>
>> I tried to get PluginDescriptor within a mojo and got 
>> PluginParameterException, then I started looking at this code.
>>
>> Assume expression is string "plugin", pathSeparator is -1, the 
>> expression.substring(1) becomes "lugin". Did I miss anything here?
>>
>> And then looking at ReflectionValueExtractor.java today, I just 
>> realized ReflectionValueExtractor.evaluate("lugin", pluginDescriptor) 
>> may work since the first argument is irrelevant if string doesn't 
>> contain '.'.  But I'm more confused by the substring part of what 
>> .indexOf("/") is for.
>>
>> And still, in my Mojo, the parameter with expression "${plugin}" is 
>> causing PluginParameterException which indicates the value of it is null.
>>
>> Regards
>> -Jiaqi
>>
>> franz see wrote:
>>> Good day to you, Jiaqi,
>>>
>>> Why do you say that it will be evaluted to null?
>>>
>>> Cheers,
>>> Franz
>>>
>>>
>>> Jiaqi Guo wrote:
>>>  
>>>> Hi there,
>>>>
>>>> I'm trying to find out the build-in variables for a maven2 plugin 
>>>> and found the following code in 
>>>> http://svn.apache.org/repos/asf/maven/components/tags/maven-2.0.4/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java

>>>>
>>>>  line 217:
>>>>
>>>> ...
>>>>         else if ( expression.startsWith( "plugin" ) )
>>>>         {
>>>>             try
>>>>             {
>>>>                 int pathSeparator = expression.indexOf( "/" );
>>>>
>>>>                 PluginDescriptor pluginDescriptor = 
>>>> mojoDescriptor.getPluginDescriptor();
>>>>
>>>>                 if ( pathSeparator > 0 )
>>>>                 {
>>>>                     String pathExpression = expression.substring( 1, 
>>>> pathSeparator );
>>>>                     value = ReflectionValueExtractor.evaluate( 
>>>> pathExpression, pluginDescriptor );
>>>>                     value = value + expression.substring( 
>>>> pathSeparator );
>>>>                 }
>>>>                 else
>>>>                 {
>>>>                     value = ReflectionValueExtractor.evaluate( 
>>>> expression.substring( 1 ), pluginDescriptor );
>>>>                 }
>>>>             }
>>>>             catch ( Exception e )
>>>>             {
>>>>                 // TODO: don't catch exception
>>>>                 throw new ExpressionEvaluationException( "Error 
>>>> evaluating plugin parameter expression: " + expression,
>>>>                                                          e );
>>>>             }
>>>>         }
>>>> ...
>>>>
>>>> If I didn't miss anything this code make the value of any parameter 
>>>> expression starting with "plugin" to be null for sure, which will 
>>>> cause PluginParameterException in 
>>>> org.apache.maven.plugin.DefaultPluginManager.checkRequiredParameters(DefaultPluginManager.java:809).

>>>> Same thing happens to "settings" and "project".
>>>>
>>>> Is this a bug of maven-2.0.4? Is there any way to get 
>>>> pluginDescriptor in Mojo?
>>>>
>>>>
>>>>
>>>> Regards
>>>>
>>>> -- 
>>>>
>>>>
>>>> Jiaqi Guo
>>>>
>>>> http://www.cyclopsgroup.org
>>>> jiaqi.guo@gmail.com
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>
>>>>
>>>>
>>>>     
>>>
>>>   
>>
>>
> 
> 
> -- 
> 
> 
> Jiaqi Guo
> 
> http://www.cyclopsgroup.org
> jiaqi.guo@gmail.com
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Can-anyone-explain-this-code-tf3218981s177.html#a9053579
Sent from the Maven - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Mime
View raw message