You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Karl Heinz Marbaise <kh...@gmx.de> on 2014/01/30 19:23:23 UTC
Plugins with parameters and defaultValue
Hi,
just a question concerning the usage of default values in a mojo...
If i define a default value for a parameter in a Mojo like the following:
@Parameter( defaultValue = "${project.build.finalName}", required = true )
private String finalName;
So the question is:
Can i see the difference in the mojo code if someone in the pom file has
written:
<finalName/>
or
just omit it.
or is this not possible ?
In my opinion it's not possible to distinguish between those two cases.
Any ideas ?
Thanks in advance.
Kind regards
Karl Heinz Marbaise
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Igor Fedorenko <ig...@ifedorenko.com>.
Got it. Yes, I agree plugin-tools @Component is confusing :-)
--
Regards,
Igor
On 2/8/2014, 11:08, Hervé BOUTEMY wrote:
> ok, now I understand where we diverge
>
> yes, "normal" plugin-tools @Component are translated into Plexus requirements
>
> but actual plugin-tools @Component support for Maven objects is a hack that
> translates into parameter, not into requirement [1]
>
> so this hack is confusing
>
> when this hack will be removed, real @Component translated to Plexus
> requirements will be possible: for the moment, the hack makes such thing
> impossible
>
> Regards,
>
> Hervé
>
> [1] http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java?r1=1341650&r2=1343086&pathrev=1343086&diff_format=h
>
> Le samedi 8 février 2014 11:00:48 Igor Fedorenko a écrit :
>> On 2/8/2014, 9:56, Hervé BOUTEMY wrote:
>>> ok, here the confusion is that there are 2 @Component annotations:
>>> org.apache.maven.plugins.annotations.Component = plugin-tools
>>> and
>>> org.codehaus.plexus.component.annotations.Component = Plexus on Guice
>>>
>>> plugin-tools @Component annotation for objects injected by
>>> PluginParameterExpressionEvaluator causes confusion at plugin-tools level
>>
>> Can you point me at the code that implements this? I was under
>> impression that plugin-tools @Component was translated to plexus/guice
>> requirement at runtime and there was no real difference between the two.
>> Any special handing of @Component in PluginParameterExpressionEvaluator
>> should not be necessary in 3.2 and I would like to clean this up.
>>
>> --
>> Regards,
>> Igor
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Hervé BOUTEMY <he...@free.fr>.
ok, now I understand where we diverge
yes, "normal" plugin-tools @Component are translated into Plexus requirements
but actual plugin-tools @Component support for Maven objects is a hack that
translates into parameter, not into requirement [1]
so this hack is confusing
when this hack will be removed, real @Component translated to Plexus
requirements will be possible: for the moment, the hack makes such thing
impossible
Regards,
Hervé
[1] http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java?r1=1341650&r2=1343086&pathrev=1343086&diff_format=h
Le samedi 8 février 2014 11:00:48 Igor Fedorenko a écrit :
> On 2/8/2014, 9:56, Hervé BOUTEMY wrote:
> > ok, here the confusion is that there are 2 @Component annotations:
> > org.apache.maven.plugins.annotations.Component = plugin-tools
> > and
> > org.codehaus.plexus.component.annotations.Component = Plexus on Guice
> >
> > plugin-tools @Component annotation for objects injected by
> > PluginParameterExpressionEvaluator causes confusion at plugin-tools level
>
> Can you point me at the code that implements this? I was under
> impression that plugin-tools @Component was translated to plexus/guice
> requirement at runtime and there was no real difference between the two.
> Any special handing of @Component in PluginParameterExpressionEvaluator
> should not be necessary in 3.2 and I would like to clean this up.
>
> --
> Regards,
> Igor
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Hervé BOUTEMY <he...@free.fr>.
good idea: if we do deprecate plugin-tools' @component, no need to create new
annotations, but better reuse
thanks you for the idea
Hervé
Le samedi 8 février 2014 11:27:19 Igor Fedorenko a écrit :
> Why not use jsr330 or plexus annotations and just deprecate plugin-tools
> @Component annotation?
>
> --
> Regards,
> Igor
>
> On 2/8/2014, 11:24, Hervé BOUTEMY wrote:
> > ok, so the other confusing part in plugin-tools is to have a @Component
> > annotation equivalent to Plexus' @Requirement and not Plexus' @Component
> > (which defines a component, not uses it)
> >
> > so perhaps we should deprecate plugin-tools @component/@Component in favor
> > of a new @requirement/@Requirement
> >
> > (notice this part doesn't have anything to do with the hack for pseudo
> > component)
> >
> > WDYT?
> >
> > Hervé
> >
> > Le samedi 8 février 2014 17:10:55 Robert Scholte a écrit :
> >> If I'm correct, these are all the same:
> >>
> >> CDI @Inject
> >> Plexus' @Requirement
> >> Plugin's @Component
> >>
> >> However, the way MavenSession, MavenProject and MojoExecution are
> >> injected
> >> isn't done by DI, but by the expression evaluator.
> >>
> >> Robert
> >>
> >> Op Sat, 08 Feb 2014 17:00:48 +0100 schreef Igor Fedorenko
> >>
> >> <ig...@ifedorenko.com>:
> >>> On 2/8/2014, 9:56, Hervé BOUTEMY wrote:
> >>>> ok, here the confusion is that there are 2 @Component annotations:
> >>>> org.apache.maven.plugins.annotations.Component = plugin-tools
> >>>> and
> >>>> org.codehaus.plexus.component.annotations.Component = Plexus on Guice
> >>>>
> >>>> plugin-tools @Component annotation for objects injected by
> >>>> PluginParameterExpressionEvaluator causes confusion at plugin-tools
> >>>> level
> >>>
> >>> Can you point me at the code that implements this? I was under
> >>> impression that plugin-tools @Component was translated to plexus/guice
> >>> requirement at runtime and there was no real difference between the two.
> >>> Any special handing of @Component in PluginParameterExpressionEvaluator
> >>> should not be necessary in 3.2 and I would like to clean this up.
> >>>
> >>> --
> >>> Regards,
> >>> Igor
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> >>> For additional commands, e-mail: dev-help@maven.apache.org
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> >> For additional commands, e-mail: dev-help@maven.apache.org
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> > For additional commands, e-mail: dev-help@maven.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Igor Fedorenko <ig...@ifedorenko.com>.
Why not use jsr330 or plexus annotations and just deprecate plugin-tools
@Component annotation?
--
Regards,
Igor
On 2/8/2014, 11:24, Hervé BOUTEMY wrote:
> ok, so the other confusing part in plugin-tools is to have a @Component
> annotation equivalent to Plexus' @Requirement and not Plexus' @Component
> (which defines a component, not uses it)
>
> so perhaps we should deprecate plugin-tools @component/@Component in favor of
> a new @requirement/@Requirement
>
> (notice this part doesn't have anything to do with the hack for pseudo
> component)
>
> WDYT?
>
> Hervé
>
> Le samedi 8 février 2014 17:10:55 Robert Scholte a écrit :
>> If I'm correct, these are all the same:
>>
>> CDI @Inject
>> Plexus' @Requirement
>> Plugin's @Component
>>
>> However, the way MavenSession, MavenProject and MojoExecution are injected
>> isn't done by DI, but by the expression evaluator.
>>
>> Robert
>>
>> Op Sat, 08 Feb 2014 17:00:48 +0100 schreef Igor Fedorenko
>>
>> <ig...@ifedorenko.com>:
>>> On 2/8/2014, 9:56, Hervé BOUTEMY wrote:
>>>> ok, here the confusion is that there are 2 @Component annotations:
>>>> org.apache.maven.plugins.annotations.Component = plugin-tools
>>>> and
>>>> org.codehaus.plexus.component.annotations.Component = Plexus on Guice
>>>>
>>>> plugin-tools @Component annotation for objects injected by
>>>> PluginParameterExpressionEvaluator causes confusion at plugin-tools
>>>> level
>>>
>>> Can you point me at the code that implements this? I was under
>>> impression that plugin-tools @Component was translated to plexus/guice
>>> requirement at runtime and there was no real difference between the two.
>>> Any special handing of @Component in PluginParameterExpressionEvaluator
>>> should not be necessary in 3.2 and I would like to clean this up.
>>>
>>> --
>>> Regards,
>>> Igor
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Hervé BOUTEMY <he...@free.fr>.
ok, so the other confusing part in plugin-tools is to have a @Component
annotation equivalent to Plexus' @Requirement and not Plexus' @Component
(which defines a component, not uses it)
so perhaps we should deprecate plugin-tools @component/@Component in favor of
a new @requirement/@Requirement
(notice this part doesn't have anything to do with the hack for pseudo
component)
WDYT?
Hervé
Le samedi 8 février 2014 17:10:55 Robert Scholte a écrit :
> If I'm correct, these are all the same:
>
> CDI @Inject
> Plexus' @Requirement
> Plugin's @Component
>
> However, the way MavenSession, MavenProject and MojoExecution are injected
> isn't done by DI, but by the expression evaluator.
>
> Robert
>
> Op Sat, 08 Feb 2014 17:00:48 +0100 schreef Igor Fedorenko
>
> <ig...@ifedorenko.com>:
> > On 2/8/2014, 9:56, Hervé BOUTEMY wrote:
> >> ok, here the confusion is that there are 2 @Component annotations:
> >> org.apache.maven.plugins.annotations.Component = plugin-tools
> >> and
> >> org.codehaus.plexus.component.annotations.Component = Plexus on Guice
> >>
> >> plugin-tools @Component annotation for objects injected by
> >> PluginParameterExpressionEvaluator causes confusion at plugin-tools
> >> level
> >
> > Can you point me at the code that implements this? I was under
> > impression that plugin-tools @Component was translated to plexus/guice
> > requirement at runtime and there was no real difference between the two.
> > Any special handing of @Component in PluginParameterExpressionEvaluator
> > should not be necessary in 3.2 and I would like to clean this up.
> >
> > --
> > Regards,
> > Igor
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> > For additional commands, e-mail: dev-help@maven.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Igor Fedorenko <ig...@ifedorenko.com>.
In 3.2 it is possible to use jsr330 @Inject and plexus @Requirement to
inject MavenSession, MavenProject and MojoExecution.
--
Regards,
Igor
On 2/8/2014, 11:10, Robert Scholte wrote:
> If I'm correct, these are all the same:
>
> CDI @Inject
> Plexus' @Requirement
> Plugin's @Component
>
> However, the way MavenSession, MavenProject and MojoExecution are
> injected isn't done by DI, but by the expression evaluator.
>
> Robert
>
> Op Sat, 08 Feb 2014 17:00:48 +0100 schreef Igor Fedorenko
> <ig...@ifedorenko.com>:
>
>>
>>
>> On 2/8/2014, 9:56, Hervé BOUTEMY wrote:
>>> ok, here the confusion is that there are 2 @Component annotations:
>>> org.apache.maven.plugins.annotations.Component = plugin-tools
>>> and
>>> org.codehaus.plexus.component.annotations.Component = Plexus on Guice
>>>
>>> plugin-tools @Component annotation for objects injected by
>>> PluginParameterExpressionEvaluator causes confusion at plugin-tools
>>> level
>>>
>>
>> Can you point me at the code that implements this? I was under
>> impression that plugin-tools @Component was translated to plexus/guice
>> requirement at runtime and there was no real difference between the two.
>> Any special handing of @Component in PluginParameterExpressionEvaluator
>> should not be necessary in 3.2 and I would like to clean this up.
>>
>> --
>> Regards,
>> Igor
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Robert Scholte <rf...@apache.org>.
If I'm correct, these are all the same:
CDI @Inject
Plexus' @Requirement
Plugin's @Component
However, the way MavenSession, MavenProject and MojoExecution are injected
isn't done by DI, but by the expression evaluator.
Robert
Op Sat, 08 Feb 2014 17:00:48 +0100 schreef Igor Fedorenko
<ig...@ifedorenko.com>:
>
>
> On 2/8/2014, 9:56, Hervé BOUTEMY wrote:
>> ok, here the confusion is that there are 2 @Component annotations:
>> org.apache.maven.plugins.annotations.Component = plugin-tools
>> and
>> org.codehaus.plexus.component.annotations.Component = Plexus on Guice
>>
>> plugin-tools @Component annotation for objects injected by
>> PluginParameterExpressionEvaluator causes confusion at plugin-tools
>> level
>>
>
> Can you point me at the code that implements this? I was under
> impression that plugin-tools @Component was translated to plexus/guice
> requirement at runtime and there was no real difference between the two.
> Any special handing of @Component in PluginParameterExpressionEvaluator
> should not be necessary in 3.2 and I would like to clean this up.
>
> --
> Regards,
> Igor
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Igor Fedorenko <ig...@ifedorenko.com>.
On 2/8/2014, 9:56, Hervé BOUTEMY wrote:
> ok, here the confusion is that there are 2 @Component annotations:
> org.apache.maven.plugins.annotations.Component = plugin-tools
> and
> org.codehaus.plexus.component.annotations.Component = Plexus on Guice
>
> plugin-tools @Component annotation for objects injected by
> PluginParameterExpressionEvaluator causes confusion at plugin-tools level
>
Can you point me at the code that implements this? I was under
impression that plugin-tools @Component was translated to plexus/guice
requirement at runtime and there was no real difference between the two.
Any special handing of @Component in PluginParameterExpressionEvaluator
should not be necessary in 3.2 and I would like to clean this up.
--
Regards,
Igor
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Hervé BOUTEMY <he...@free.fr>.
ok, here the confusion is that there are 2 @Component annotations:
org.apache.maven.plugins.annotations.Component = plugin-tools
and
org.codehaus.plexus.component.annotations.Component = Plexus on Guice
plugin-tools @Component annotation for objects injected by
PluginParameterExpressionEvaluator causes confusion at plugin-tools level
Regards,
Hervé
Le samedi 8 février 2014 09:06:40 Igor Fedorenko a écrit :
> I think "confusion" is rather subjective term. Personally, I find
>
> @Parameter(defaultValue="${session}")
> MavenSession session;
>
> far more confusing than
>
> @Component
> MavenSession session;
>
>
> This is particular true in 3.2.0, which allows injection of
> MojoExecution, MavenSession and MavenProject via mojo execution Guice
> scope I introduced in [1]
>
>
> [1]
> https://git-wip-us.apache.org/repos/asf?p=maven.git;a=commit;h=8700b058574ea
> 79544603ee4eacd6171ef03aa46
>
> --
> Regards,
> Igor
>
> On 2/8/2014, 5:15, Hervé BOUTEMY wrote:
> > the confusion is that MojoExecution, MavenSession, MavenProject, and
> > generally everything injected by PluginParameterExpressionEvaluator [1]
> > are not Plexus components
> > Fields marked by @Component are not injected by
> > PluginParameterExpressionEvaluator, only fields marked by @Parameter are
> > injected like this
> >
> > Regards,
> >
> > Hervé
> >
> >
> > [1]
> > http://maven.apache.org/ref/3-LATEST/maven-core/apidocs/org/apache/maven/
> > plugin/PluginParameterExpressionEvaluator.html>
> > Le jeudi 6 février 2014 20:32:47 Igor Fedorenko a écrit :
> >> Hervé,
> >>
> >> Can you explain what confusion this causes?
> >>
> >> --
> >> Regards,
> >> Igor
> >>
> >> On 2/6/2014, 16:47, Hervé BOUTEMY wrote:
> >>> Hi,
> >>>
> >>> You'd better not use the @Component annotation but @Parameter instead:
> >>> this is a feature that will be deprecated in future version:
> >>>
> >>> http://jira.codehaus.org/browse/MPLUGIN-257
> >>>
> >>> Regards,
> >>>
> >>> Hervé
> >>>
> >>> Le jeudi 6 février 2014 22:04:57 Karl Heinz Marbaise a écrit :
> >>>> Hi,
> >>>>
> >>>> in the meantime i found a better way (thanks to Robert Scholte):
> >>>> @Component
> >>>> private MojoExecution mojoExecution;
> >>>>
> >>>>
> >>>> mojoExecution.getExecutionId();
> >>>> mojoExecution.getConfiguration();
> >>>>
> >>>> Kind regards
> >>>> Karl Heinz Marbaise
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> >>>> For additional commands, e-mail: dev-help@maven.apache.org
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> >>> For additional commands, e-mail: dev-help@maven.apache.org
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> >> For additional commands, e-mail: dev-help@maven.apache.org
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> > For additional commands, e-mail: dev-help@maven.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Igor Fedorenko <ig...@ifedorenko.com>.
I think "confusion" is rather subjective term. Personally, I find
@Parameter(defaultValue="${session}")
MavenSession session;
far more confusing than
@Component
MavenSession session;
This is particular true in 3.2.0, which allows injection of
MojoExecution, MavenSession and MavenProject via mojo execution Guice
scope I introduced in [1]
[1]
https://git-wip-us.apache.org/repos/asf?p=maven.git;a=commit;h=8700b058574ea79544603ee4eacd6171ef03aa46
--
Regards,
Igor
On 2/8/2014, 5:15, Hervé BOUTEMY wrote:
> the confusion is that MojoExecution, MavenSession, MavenProject, and generally
> everything injected by PluginParameterExpressionEvaluator [1] are not Plexus
> components
> Fields marked by @Component are not injected by
> PluginParameterExpressionEvaluator, only fields marked by @Parameter are
> injected like this
>
> Regards,
>
> Hervé
>
>
> [1] http://maven.apache.org/ref/3-LATEST/maven-core/apidocs/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html
>
> Le jeudi 6 février 2014 20:32:47 Igor Fedorenko a écrit :
>> Hervé,
>>
>> Can you explain what confusion this causes?
>>
>> --
>> Regards,
>> Igor
>>
>> On 2/6/2014, 16:47, Hervé BOUTEMY wrote:
>>> Hi,
>>>
>>> You'd better not use the @Component annotation but @Parameter instead:
>>> this is a feature that will be deprecated in future version:
>>>
>>> http://jira.codehaus.org/browse/MPLUGIN-257
>>>
>>> Regards,
>>>
>>> Hervé
>>>
>>> Le jeudi 6 février 2014 22:04:57 Karl Heinz Marbaise a écrit :
>>>> Hi,
>>>>
>>>> in the meantime i found a better way (thanks to Robert Scholte):
>>>> @Component
>>>> private MojoExecution mojoExecution;
>>>>
>>>>
>>>> mojoExecution.getExecutionId();
>>>> mojoExecution.getConfiguration();
>>>>
>>>> Kind regards
>>>> Karl Heinz Marbaise
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Hervé BOUTEMY <he...@free.fr>.
the confusion is that MojoExecution, MavenSession, MavenProject, and generally
everything injected by PluginParameterExpressionEvaluator [1] are not Plexus
components
Fields marked by @Component are not injected by
PluginParameterExpressionEvaluator, only fields marked by @Parameter are
injected like this
Regards,
Hervé
[1] http://maven.apache.org/ref/3-LATEST/maven-core/apidocs/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html
Le jeudi 6 février 2014 20:32:47 Igor Fedorenko a écrit :
> Hervé,
>
> Can you explain what confusion this causes?
>
> --
> Regards,
> Igor
>
> On 2/6/2014, 16:47, Hervé BOUTEMY wrote:
> > Hi,
> >
> > You'd better not use the @Component annotation but @Parameter instead:
> > this is a feature that will be deprecated in future version:
> >
> > http://jira.codehaus.org/browse/MPLUGIN-257
> >
> > Regards,
> >
> > Hervé
> >
> > Le jeudi 6 février 2014 22:04:57 Karl Heinz Marbaise a écrit :
> >> Hi,
> >>
> >> in the meantime i found a better way (thanks to Robert Scholte):
> >> @Component
> >> private MojoExecution mojoExecution;
> >>
> >>
> >> mojoExecution.getExecutionId();
> >> mojoExecution.getConfiguration();
> >>
> >> Kind regards
> >> Karl Heinz Marbaise
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> >> For additional commands, e-mail: dev-help@maven.apache.org
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> > For additional commands, e-mail: dev-help@maven.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Karl Heinz Marbaise <kh...@gmx.de>.
Hi Hervé,
> Hi,
>
> You'd better not use the @Component annotation but @Parameter instead: this is
> a feature that will be deprecated in future version:
>
> http://jira.codehaus.org/browse/MPLUGIN-257
Thanks for the hint learnt already (via IRC) the right way via
@Parameter ...
But according to the JIRA ticket it sounds like the wise way is to
change the following:
@Component
private MavenSession mavenSession;
into this (as mentioned in the JIRA ticket):
@Parameter( defaultValue="${session}", readonly=true )
private MavenSession session;
Thanks...
Kind regards
Karl Heinz
>
> Regards,
>
> Hervé
>
> Le jeudi 6 février 2014 22:04:57 Karl Heinz Marbaise a écrit :
>> Hi,
>>
>> in the meantime i found a better way (thanks to Robert Scholte):
>>
>> @Component
>> private MojoExecution mojoExecution;
>>
>>
>> mojoExecution.getExecutionId();
>> mojoExecution.getConfiguration();
>>
>> Kind regards
>> Karl Heinz Marbaise
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
>
Mit freundlichem Gruß
Karl-Heinz Marbaise
--
SoftwareEntwicklung Beratung Schulung Tel.: +49 (0) 2405 / 415 893
Dipl.Ing.(FH) Karl-Heinz Marbaise ICQ#: 135949029
Hauptstrasse 177 USt.IdNr: DE191347579
52146 Würselen http://www.soebes.de
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Igor Fedorenko <ig...@ifedorenko.com>.
Hervé,
Can you explain what confusion this causes?
--
Regards,
Igor
On 2/6/2014, 16:47, Hervé BOUTEMY wrote:
> Hi,
>
> You'd better not use the @Component annotation but @Parameter instead: this is
> a feature that will be deprecated in future version:
>
> http://jira.codehaus.org/browse/MPLUGIN-257
>
> Regards,
>
> Hervé
>
> Le jeudi 6 février 2014 22:04:57 Karl Heinz Marbaise a écrit :
>> Hi,
>>
>> in the meantime i found a better way (thanks to Robert Scholte):
>>
>> @Component
>> private MojoExecution mojoExecution;
>>
>>
>> mojoExecution.getExecutionId();
>> mojoExecution.getConfiguration();
>>
>> Kind regards
>> Karl Heinz Marbaise
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Hervé BOUTEMY <he...@free.fr>.
Hi,
You'd better not use the @Component annotation but @Parameter instead: this is
a feature that will be deprecated in future version:
http://jira.codehaus.org/browse/MPLUGIN-257
Regards,
Hervé
Le jeudi 6 février 2014 22:04:57 Karl Heinz Marbaise a écrit :
> Hi,
>
> in the meantime i found a better way (thanks to Robert Scholte):
>
> @Component
> private MojoExecution mojoExecution;
>
>
> mojoExecution.getExecutionId();
> mojoExecution.getConfiguration();
>
> Kind regards
> Karl Heinz Marbaise
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Karl Heinz Marbaise <kh...@gmx.de>.
Hi,
in the meantime i found a better way (thanks to Robert Scholte):
@Component
private MojoExecution mojoExecution;
mojoExecution.getExecutionId();
mojoExecution.getConfiguration();
Kind regards
Karl Heinz Marbaise
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Karl Heinz Marbaise <kh...@gmx.de>.
Hi Baptiste,
first thanks for the links and answers...
> Here's the thread:
> http://maven.40175.n5.nabble.com/Maven2-Maven3-plugin-development-Ensuring-only-the-available-parameters-are-allowed-tp5780854p5780948.html
>
> Maybe I'd try something along those lines:
>
> Plugin plugin = lookupThePluginYouWant(project.getBuildPlugins());
> Xpp3Dom config = (Xpp3Dom) plugin.getConfiguration();
> // Unleash hell
This brought me into the right direction....
What i have so far:
Using the following:
@Component
private PluginDescriptor pluginDescriptor;
and now in the and execution method of a mojo like this:
Xpp3Dom globalConfiguration = (Xpp3Dom)
pluginDescriptor.getPlugin().getConfiguration();
This will give me the global configuration which means the part...
<plugin>
<g...>..</g..>
<a...>..</a..>
<v...>..</v..>
<configuration>
<!-- Global Configuration -->
</configuration>
<executions>
<execution>
<id>...</id>
<configuration>
<!-- exec configuration -->
</configuration>
...
</...
via the following code snippet i can get access to the
exec configurations:
List<PluginExecution> executions =
pluginDescriptor.getPlugin().getExecutions();
for ( PluginExecution pluginExecution : executions )
{
Xpp3Dom executionConfiguration = (Xpp3Dom)
pluginExecution.getConfiguration();
}
but now I have the problem which of the exec configuration is one which
currently being executed ? Of course i can iterator through the list of
executions, but how do i know which is the correct one ?
Kind regards
Karl Heinz Marbaise
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Baptiste Mathus <ml...@batmat.net>.
Here's the thread:
http://maven.40175.n5.nabble.com/Maven2-Maven3-plugin-development-Ensuring-only-the-available-parameters-are-allowed-tp5780854p5780948.html
Maybe I'd try something along those lines:
Plugin plugin = lookupThePluginYouWant(project.getBuildPlugins());
Xpp3Dom config = (Xpp3Dom) plugin.getConfiguration();
// Unleash hell
?
HTH
2014-02-05 Karl Heinz Marbaise <kh...@gmx.de>:
> Hi Baptiste,
>
>
>
> > Hi,
>
>> I think I remember a recent answer from Stephen about plugin conf,
>> saying basically you'd just have to fall back to xpath project/build and
>> then see what's present.
>>
> First thanks for the hint...
>
> Any knowledge where to search for ?
>
> Or Stephen ? Do you have a hint ?
>
> Does exist an example within the apache maven plugins for such thing?
>
> Kind regards
> Karl-Heinz Marbaise
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
> --
> Baptiste <Batmat> MATHUS - http://batmat.net
> Sauvez un arbre,
> Mangez un castor ! nbsp;! <de...@maven.apache.org>
>
Re: Plugins with parameters and defaultValue
Posted by Karl Heinz Marbaise <kh...@gmx.de>.
Hi Baptiste,
> Hi,
> I think I remember a recent answer from Stephen about plugin conf,
> saying basically you'd just have to fall back to xpath project/build and
> then see what's present.
First thanks for the hint...
Any knowledge where to search for ?
Or Stephen ? Do you have a hint ?
Does exist an example within the apache maven plugins for such thing?
Kind regards
Karl-Heinz Marbaise
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: Plugins with parameters and defaultValue
Posted by Baptiste Mathus <ml...@batmat.net>.
Hi,
I think I remember a recent answer from Stephen about plugin conf, saying
basically you'd just have to fall back to xpath project/build and then see
what's present.
My 2 cents
2014-01-30 Karl Heinz Marbaise <kh...@gmx.de>:
> Hi,
>
> just a question concerning the usage of default values in a mojo...
>
> If i define a default value for a parameter in a Mojo like the following:
>
> @Parameter( defaultValue = "${project.build.finalName}", required = true )
> private String finalName;
>
> So the question is:
>
> Can i see the difference in the mojo code if someone in the pom file has
> written:
>
> <finalName/>
> or
> just omit it.
>
> or is this not possible ?
>
>
> In my opinion it's not possible to distinguish between those two cases.
>
> Any ideas ?
>
> Thanks in advance.
>
> Kind regards
> Karl Heinz Marbaise
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
> --
> Baptiste <Batmat> MATHUS - http://batmat.net
> Sauvez un arbre,
> Mangez un castor ! nbsp;! <de...@maven.apache.org>
RE: Plugins with parameters and defaultValue
Posted by Robert Patrick <ro...@oracle.com>.
>From what I can tell in my testing, the @Parameter attributes required=true and defaultValue="some value" are mutually exclusive (in terms of behavior). That is, if you combine defaultValue="..." and required=true, defaultValue always satisfies the required=true setting, making required=true irrelevant.
If a defaultValue is provided (regardless of whether or not required=true is set or not), you will get the default value injected in the following configurations specified for the parameter myValue:
- <myValue> </myValue>
- <myValue></myValue>
- <myValue/>
- myValue not specified in the configuration
If required=true is specified without a defaultValue specified, the same for cases above will cause build failures because the required parameter has not been specified.
--
Robert Patrick <ro...@oracle.com>
VP, FMW Platform Architecture
Oracle Corporation Office: +1.940.725.0011
1148 Triple Crown Court Fax: +1.940.725.0012
Bartonville, TX 76226, USA Mobile: +1.469.556.9450
Professional Oracle WebLogic Server
by Robert Patrick, Gregory Nyberg, and Philip Aston
with Josh Bregman and Paul Done
Book Home Page: http://www.wrox.com/
Kindle Version: http://www.amazon.com/
-----Original Message-----
From: Karl Heinz Marbaise [mailto:khmarbaise@gmx.de]
Sent: Thursday, January 30, 2014 12:23 PM
To: dev@maven.apache.org
Subject: Plugins with parameters and defaultValue
Hi,
just a question concerning the usage of default values in a mojo...
If i define a default value for a parameter in a Mojo like the following:
@Parameter( defaultValue = "${project.build.finalName}", required = true ) private String finalName;
So the question is:
Can i see the difference in the mojo code if someone in the pom file has
written:
<finalName/>
or
just omit it.
or is this not possible ?
In my opinion it's not possible to distinguish between those two cases.
Any ideas ?
Thanks in advance.
Kind regards
Karl Heinz Marbaise
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org For additional commands, e-mail: dev-help@maven.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org