Much as I hate leaking stuff like this, it would appear to me that extending the import (alternative 2) is the correct thing to do.
Of course, if imports.put( "javax.enterprise.inject.Typed", coreRealm ); doesn't break any tests we could always start with that. I'll give it a shot tonight. Kristian 2014-02-13 11:56 GMT+01:00 Stuart McCulloch <mccu...@gmail.com>: > On 13 Feb 2014, at 07:28, Kristian Rosenvold <kristian.rosenv...@gmail.com> > wrote: > > > Stuart, > > > > We're seeing java.lang.LinkageError: loader constraint violation: loader > > (instance of org/codehaus/plexus/classworlds/realm/ClassRealm) previously > > initiated loading for a different type with name > > "javax/enterprise/util/TypeLiteral" using the maven-jetty-plugin on 3.1. > I > > can't really see this seeping through in DefaultClassRealmManager, but > > google shows me https://java.net/jira/browse/GLASSFISH-20802 > > > > Is this something you understand ? > > DefaultClassRealmManager currently exposes the complete > javax.enterprise.inject package from CDI-API: > > imports.put( "javax.enterprise.inject.*", coreRealm ); > > This package contains annotations, exceptions, and one interface - and it > looks like the interface pulls in a type from javax.enterprise.util: > > > http://docs.oracle.com/javaee/6/api/javax/enterprise/inject/Instance.html#select(javax.enterprise.util.TypeLiteral,%20java.lang.annotation.Annotation.. > .) > > Which means that while javax.enterprise.inject.Instance is loaded and > exposed from the core realm, javax.enterprise.util.TypeLiteral will be > loaded from core but not exposed - this is likely the cause of the > constraint violation. > > There are two solutions - first we could narrow the exposure in > DefaultClassRealmManager to: > > imports.put( "javax.enterprise.inject.Typed", coreRealm ); > > since that is the only CDI annotation we're really interested in, and it > has no dependencies to other types. > > Alternatively we could widen the exposure to include the > javax.enterprise.util package: > > imports.put( "javax.enterprise.inject.*", coreRealm ); > imports.put( "javax.enterprise.util.*", coreRealm ); > > which should also fix the loader constraint while not introducing other > issues. > > WDYT? > > > Kristian > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > For additional commands, e-mail: dev-h...@maven.apache.org > >