Wouldn't it make more sense to roll our own version of "typed" then?
Leaking "ee" stuff from core does not seem like nice thing.

Kristian (Who will only touch "ee" stuff with a pitchfork)


2014-02-13 18:01 GMT+01:00 Igor Fedorenko <i...@ifedorenko.com>:

> Please keep @Typed annotation available outside of core.
>
> I use @Typed annotation in one of my (private) core extensions where I
> need a class to implement an interface but not make that interface
> visible for injection in other components.
>
> --
> Regards,
> Igor
>
>
> On 2/13/2014, 9:43, Jason van Zyl wrote:
>
>>
>> On Feb 13, 2014, at 8:44 AM, Stuart McCulloch <mccu...@gmail.com> wrote:
>>
>>  On 13 Feb 2014, at 13:30, Jason van Zyl <ja...@takari.io> wrote:
>>>
>>>  I would consider something like SFL4J as something which is now part of
>>>> our API think it's fine to expose something like that. I'm not sure the
>>>> same holds true for CDI. Wouldn't it be better just to completely hide it?
>>>>
>>>
>>> As mentioned in http://wiki.eclipse.org/Sisu/
>>> PlexusMigration#Type_Override, the @javax.enterprise.inject.Typed
>>> annotation can be used to restrict the type visibility of components.
>>>
>>> Hiding this package means you wouldn't be able to use this feature
>>> outside of Maven core - so I guess it depends whether you consider CDI's
>>> @Typed part of the component API like JSR330's @Inject.
>>>
>>>
>> I would say I don't consider it part of our API, so I'd be inclined to
>> hide it and strictly stick to JSR330. Will Sisu not load without it? I
>> think we keep running into these issues with App Servers because people are
>> trying to run their App Server in Maven's runtime environment which doesn't
>> really make sense. For any of these strange conflicts that arise with SLF4J
>> or other APIs I think we should just encourage people to run any sort of
>> test for your App Server with an environment akin to production in that you
>> should fork once with your own classpath and whatever else you need.
>> Maven's APIs and runtime environment are for build related activities.
>> Where we have this cross over like like the jetty/tomcat/wildfly-maven-plugin
>> I think we should just tell people the best thing to do is fork once and do
>> what you like.
>>
>>  The CDI API is at least standardised (one of the reasons why the
>>> container respects @Typed rather than creating it's own ad-hoc annotation
>>> which wouldn't be as portable).
>>>
>>>
>> Why would we need it? You have any use cases at hand?
>>
>>  On Feb 13, 2014, at 5:56 AM, Stuart McCulloch <mccu...@gmail.com> wrote:
>>>>
>>>>  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
>>>>>
>>>>>
>>>> Thanks,
>>>>
>>>> Jason
>>>>
>>>> ----------------------------------------------------------
>>>> Jason van Zyl
>>>> Founder,  Apache Maven
>>>> http://twitter.com/jvanzyl
>>>> http://twitter.com/takari_io
>>>> ---------------------------------------------------------
>>>>
>>>> Selfish deeds are the shortest path to self destruction.
>>>>
>>>> -- The Seven Samuari, Akira Kurosawa
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>>> For additional commands, e-mail: dev-h...@maven.apache.org
>>>
>>>
>> Thanks,
>>
>> Jason
>>
>> ----------------------------------------------------------
>> Jason van Zyl
>> Founder,  Apache Maven
>> http://twitter.com/jvanzyl
>> http://twitter.com/takari_io
>> ---------------------------------------------------------
>>
>> Simplex sigillum veri. (Simplicity is the seal of truth.)
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>
>

Reply via email to