After trying to chase down a problem with extensions it became very
clear to me that we have mixed concerns with extensions and it just
makes the core crappy.
The biggest offender are providers posing as extensions: wagon-webdav
is not an extension, it is a dependency required by the deploy
plugin. In the exact same way you would specify an SCM provider as
dependency of the release plugin if you needed, say, ClearCase
support. These are not general extensions they are specifically
required by certain plugins and should be defined as such to scope
their use. Dumping wagon-webdav into the core is not very bright
considering it's use is limited to the deploy plugin.
People have also used extensions to make available certain resources
like checkstyle rules. Are these also not dependencies of a given
plugin?
Finally, the only things that in my opinion count as extensions are
addition components that augment core functionality: artifact
resolvers, version conflict resolvers, profile activator, project
builders and the like. These should have an element like
<coreExtensions/> or something like it. Look at the extensions
element and it begs the questions and extension to what exactly.
For 2.1 I would like to use providers stated as dependencies which
they are (easy to do in corporate builds), and the rest are core
components. John has been working on some active collections, and I
think they can be finished so that we could clarify how the system is
augmented by 2.1-alpha-2.
Anyone have any problems with this clarification?
Thanks,
Jason
----------------------------------------------------------
Jason van Zyl
Founder and PMC Chair, Apache Maven
jason at sonatype dot com
----------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]