Tamás
Thank you very much for the complete nexus plugin example, it seems
like one-to-one mapping to our osgi problem domain.
I now totally get what you are saying, and yes, we could use the
approach similar to nexus plugin declarations in the karaf maven plugin.
However (unfortunately?), I was watching Jason Van Zyl presentation
about maven 3.1.0
and got (over?) inspired by the promise "to get free from the
constrains of the past" :-)
And the approach the nexus plugin is taking seems like a needless
kludge work around basic need
to be able to annotate <dependency> with user properties - the kind
of constrains I would like maven to remove in 3.1.0.
So: can I please respectfully request a formal PMC vote on my change
request or should I just go away and leave you all alone? :-)
Thank you,
Andrei
-------- Original Message --------
Subject: Re: [VOTE] Apache 3.1.0-alpha-1
From: Tamás Cservenák <[email protected]>
To: Maven Developers List <[email protected]>
Cc: Wayne Fay <[email protected]>
Date: Thu 04 Apr 2013 11:19:01 AM CDT
> Andrei,
>
> Wayne is right, the dependencies (or even depMgt) section is NOT a place
> for information like these.
> This is Karaf plugin specific, it must go into plugin configuration.
>
> As _similar_ example, here is a quite simple example, but with very similar
> intention (true, the amount of params here is 1, but the plugin config is
> easily extensible to receive whatever you want):
> https://github.com/sonatype/nexus-plugin-bundle
>
> This plugin above is meant to create Nexus Plugin Bundles. While those are
> NOT OSGi plugins, they are "designed" similarly. Every Nexus plugin (might)
> have a set of dependencies, and it might choose to keep the "private" or
> "export" them (make those available for other plugin bundles depending on
> this plugin).
>
> A good example plugin configuration is the one for
> nexus-indexer-lucene-plugin (that bundles Maven Indexer as Nexus plugin).
> The Maven Indexer API sadly has Lucene refefences, so it _has_ to export
> Lucene too. Hence, the nexus-plugin-bundle-plugin config looks like this:
>
> https://github.com/sonatype/nexus/blob/master/plugins/indexer/nexus-indexer-lucene-plugin/pom.xml#L135
>
> As you see, the plugin defines dependencies "as usual", and the plugin
> configuration simply enlists the GAs of deps needed to make them public.
>
> This means that change for plugin config is needed only when G or A changes
> of a dependency, or a new dependency needs to be exported...
>
>
> Now, in your case, this list here
> https://github.com/sonatype/nexus-plugin-bundle/blob/master/maven-plugin/src/main/java/org/sonatype/nexus/pluginbundle/maven/GenerateMetadataMojo.java#L83
>
> Might be something other than List<String>, it might be a list of some
> beans, or even list of maps (can maven do that from plugin config?) that
> can hold ANY property you want to use in your plugin.
>
>
> HTH,
> ~t~
>
>
> On Thu, Apr 4, 2013 at 5:03 PM, Andrei Pozolotin <[email protected]
>> wrote:
>> *Wayne*
>>
>> 1) in this case "I choose madness" :-)
>>
>> 2) here is my request:
>> please provide an option to modello or whoever is enforcing strict
>> xml model in maven
>> to relax the rules, so people can use maven they way it fits them,
>> while enforcing the rules by default.
>>
>> Thank you,
>>
>> Andrei
>>
>> -------- Original Message --------
>> Subject: Re: [VOTE] Apache 3.1.0-alpha-1
>> From: Wayne Fay <[email protected]>
>> To: Andrei Pozolotin <[email protected]>
>> Cc: Maven Developers List <[email protected]>
>> Date: Thu 04 Apr 2013 09:56:40 AM CDT
>>>> the way I understand your suggestions is essentially I must duplicate
>>>> configuration:
>>> Yes, just like you do with the other plugins mentioned.
>>>
>>> Wayne
>>>
>>
>>