That sounds like the right approach. I'm not sure how the TCCL is used in 
maven-3, but in Maven 2.x it was to set to the plugin's classloader just for 
the duration of the plugin execution, then restored.

- Brett

On 12/07/2011, at 10:33 AM, Benson Margulies wrote:

> The maven-jxr-plugin uses doxia-site-renderer. This, in turn, uses
> plexus-velocity, which in turn uses velocity version 1.5.
> 
> So, you would think that it would be a piece of cake to make JXR use
> the same thing.
> 
> But I got errors indicating that velocity was ending up with a class
> loader straddle and two copies of a critical interface in two class
> loaders.
> 
> And, indeed, a bit of poking around, shows that (a) Velocity uses the
> thread context class loader to load the resource manager, and (b) that
> was set to some Realm or another, but not the one into which the
> plugin itself had been loaded. So, when Velocity explicitly asked to
> load the resource manager class into the tccl, it ended up with a
> second copy.
> 
> So, I wrapped the call from the plugin into JXR itself in a
> try/finally to set and restore the tccl, and things worked.
> 
> Is there something I'm missing?
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
> 

--
Brett Porter
br...@apache.org
http://brettporter.wordpress.com/
http://au.linkedin.com/in/brettporter





---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to