You can implement contextualizable and then get the container where you could get the ArchiverManager. However, I imagine plexus wouldn't instantiate your object until it was needed, so chicken or egg.
-----Original Message----- From: nicolas de loof [mailto:[EMAIL PROTECTED] Sent: Thursday, October 18, 2007 10:54 AM To: Maven Developers List Subject: Re: plexus classloader issue ? Right, I've bundled my extensions in a jar that only contains a plexus component.xml for custom lifecycle and handlers. I have to set my extension as both <build><extensions> and <build><plugins><extensions=true If I don't set the plugin, my artifactHandler is not registered and my dependencies (with custom archive format) are not downloaded. Is there any way for an extension to get some "bootstrap" component ? Some plexus lifecycle interface that will be invoked even if the component is not looked-up ? I'd like to regsiter my custom artifactHandler to the ArtifactHandlerManager before maven tries to resolve project dependencies. Nico. 2007/10/18, Brian E. Fox <[EMAIL PROTECTED]>: > > You definitely want your lifecycle and handlers separated from the > plugin. The extensions are loaded into the core classloader and if you > plugin pulls in things like velocity, it will mess up other plugins. (we > had this problem with archetypeng). Also, don't ever use a plugin as a > dependency, other bad things can happen. > > -----Original Message----- > From: nicolas de loof [mailto:[EMAIL PROTECTED] > Sent: Thursday, October 18, 2007 4:41 AM > To: Maven Developers List > Subject: Re: plexus classloader issue ? > > My extension also defines maven extensions (custom lifecycle and > ArtifactHandler) > I'll have to split it into extension and common-tools, so that > common-tools > can be shared as a dependency. > > 2007/10/18, Tim Kettler <[EMAIL PROTECTED]>: > > > > Hi, > > > > nicolas de loof schrieb: > > > My first plugin defines some custom components, shored with other > > plugins. > > > It is used from other projects as a maven extension. > > > > > > My second plugin uses this component > > > > > > My main project uses the 2d plugin and has the 1rst one set as > > extension. > > > The second plugin cannot initialize (classloader issue). Seems the > > > UnArchiver class loaded in 2d plugin isn't same as the ZipArchiver > -> > > > UnArchiver loaded by the first plugin. > > > > Why don't you just put the shared components in a library jar and > depend > > on that in both plugins. I think, that's the proper way of doing it > and > > would avoid classloader issues and having to use the extensions hack > > altogether. > > > > > I think plugins use separate classloaders : > > > > Yes, each plugin uses its own plexus child container. > > > > [...] > > > > >>>> > > >>>> Nico. > > >>>> > > > > -Tim > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
