yep, you can add a test on "enterprise" as well.

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://blog-rmannibucau.rhcloud.com> | Old Wordpress Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber
<http://www.tomitribe.com> | JavaEE Factory
<https://javaeefactory-rmannibucau.rhcloud.com>

2016-09-29 14:38 GMT+02:00 Xavier Dury <[email protected]>:

> something like this? https://gist.github.com/kalgon/
> c1ccffff45540a629314f615b90f944f
>
>
>
>
>
>
> From: Romain Manni-Bucau <[email protected]>
> Sent: Thursday, September 29, 2016 11:43 AM
> To: [email protected]
> Subject: Re: OpenEJB and EL
>
> think it is doable with a custom ELResolver without having to hold this map
> which can be wrong for pseudo scoped beans.
>
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>
>
>
> Romain Manni-Bucau (@rmannibucau) | Twitter
> twitter.com
> The latest Tweets from Romain Manni-Bucau (@rmannibucau). ASF / Java(EE) /
> Angular. LinkedIn: https://t.co/dX7XMGjbBi. JavaEE Factory:
> https://t.co/0VnvWwbedt . Blog ...
> <https://blog-rmannibucau.rhcloud.com> | Old Wordpress Blog
>
>
> RBlog: the RManniBucau v2 Blog
> blog-rmannibucau.rhcloud.com
> RBlog: Romain Manni-Bucau Blog about Java, JavaEE, TomEE, Angular, Open
> Source, Code and geeky topics...
> <http://rmannibucau.wordpress.com> | Github <https://github.com/
> rmannibucau> |
>
>
> [old blog] new RManniBucau().blog()
> rmannibucau.wordpress.com
> New blog on: https://blog-rmannibucau.rhcloud.com/
> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber
> <http://www.tomitribe.com> | JavaEE Factory
> <https://javaeefactory-rmannibucau.rhcloud.com>
>
> 2016-09-29 11:38 GMT+02:00 Xavier Dury <[email protected]>:
>
> > Thanks, now I understand better why it is not implemented in OWB.
> >
> > Funny, I came to the same conclusion and was busy implementing an
> > @ApplicationScoped @Named Beans (which implements Map<String, Object> so
> I
> > can do #{beans['javax.enteprise.context.conversation']}.
> >
> > Xavier
> >
> >
> >
> >
> >
> >
> > From: Mark Struberg <[email protected]>
> > Sent: Thursday, September 29, 2016 10:32 AM
> > To: [email protected]
> > Subject: Re: OpenEJB and EL
> >
> > Yea, now you probably understand my 'oh boy' reaction ;)
> >
> >
> > My initial reaction when discovering this problem back then (a few years
> > ago) was to simply replace the dots with underlines ->
> > javax_enterprise_context_conversation
> >
> > But this solution wasn't choosen.
> >
> >
> > The reason why I don't like to implement it in OWB is that CDI is sadly
> > _not_ the only spec which defined such. E.g. the Servlet specifies that
> > there is a request parameter 'javax.servlet.request.key_size' or
> > 'javax.servlet.error.message' and others.
> >
> > But despite all servlet request parameters are available via an
> ELResolver
> > it is also _not_ possible to simply write "#{javax.servlet.request.key_
> > size}".
> >
> > While in the servlet spec this was primarily targetted to be
> > programmatically available from the request attriubute (and EL is only an
> > implicit way), it is a 'first class citizen' in CDI. But still doesn't
> work.
> >
> > You could provide the following which is probably even more straight
> > forward than the producer:
> >
> >
> > @ApplicationScoped
> > @Named
> > public class NameResolver {
> >
> >   private @Inject BeanManager bm;
> >
> >
> >   public Object get(String beanName) {
> >     Set<Bean> beans = bm.getBeans(beanName);
> >     Bean bean = bm.resolve(beans);
> >     return bm.getReference(bean, bean.getType() or so,
> > bm.createCreationalContext());
> >
> >   }
> > }
> >
> >
> > (of course with null checks etc, just sketched that wo trying).
> > That should be available as #{nameResolver.get("javax.
> enterprise.context.
> > conversation")}
> >
> >
> > LieGrue,
> > strub
> >
> > > On Thursday, 29 September 2016, 9:21, Romain Manni-Bucau <
> > [email protected]> wrote:
> > > > 2016-09-29 9:15 GMT+02:00 Xavier Dury <[email protected]>:
> > >
> > >>  Indeed, @Named != named... got it! :-)
> > >>
> > >>  But I still fail to understand _where_ the workaround for
> > > 'javax...' is
> > >>  actually implemented:
> > >>
> > >>
> > > nowhere cause it introduces other issues in EL so the workaround is
> only
> > a
> > > workaround not a nasty way to get a feature.
> > >
> > >
> > >>  1) if it is implemented in OWB then why is
> > > 'elContext.addELResolver(beanManager.getELResolver());'
> > >>  not working? I would expect the returned el resolver to contain the
> > >>  workaround.
> > >>  2) if it is implemented elsewhere (TomEE for example), I don't
> > > understand
> > >>  why as this requirement comes from the CDI spec and should be
> > implemented
> > >>  in OWB... so back to (1)
> > >>
> > >>  I am stuck in an infinite loop ;-)
> > >>
> > >>
> > >>
> > >>
> > >>  From: Romain Manni-Bucau <[email protected]>
> > >>  Sent: Thursday, September 29, 2016 8:54 AM
> > >>  To: [email protected]
> > >>  Subject: Re: OpenEJB and EL
> > >>
> > >>  2016-09-29 8:32 GMT+02:00 Xavier Dury <[email protected]>:
> > >>
> > >>  > @Mark
> > >>  >
> > >>  > thanks, it works when adding any other qualifier!
> > >>  >
> > >>  > btw, do you think it would hurt to qualify the built-in
> conversation
> > > bean
> > >>  > with @Named("javax.enterprise.context.conversation") in OWB?
> > > That way I
> > >>  > could inject the built-in with @Inject @Named("javax.enteprise.
> > >>  context.conversation")
> > >>  > and expose it via @Produces @Named("conversation") without
> > > resorting to
> > >>  > some extra qualifier.
> > >>  >
> > >>  > @Romain
> > >>  >
> > >>  > I was wondering where exactly is your hacky el resolver
> implemented?
> > > If
> > >>  > the "javax.enterprise.context.conversation" name is a
> > > requirement coming
> > >>  > from the CDI spec, then I would suppose it is implemented in OWB
> (in
> > > the
> > >>  > resolver you get from the BeanManager) but as my tests with
> OEJB+OWB
> > >>  fail,
> > >>  > I suppose it is not there (or not enabled in some way). On the
> > > contrary,
> > >>  if
> > >>  > the requirement comes from the java EE spec, then I suppose it is
> > >>  > implemented in TomEE and that would explain why my tests fail.
> > >>  >
> > >>  >
> > >>  The name is built it in openwebbeans:
> > >>  https://github.com/apache/openwebbeans/blob/trunk/
> > >>  webbeans-impl/src/main/java/org/apache/webbeans/component/
> > >>  ConversationBean.java#L54
> > >>
> > >>  The spec states:
> > >>
> > >>  "The container provides a built-in bean with bean type Conversation,
> > > scope
> > >>  @RequestScoped, and qualifier@Default, named
> > >>  javax.enterprise.context.conversation."
> > >>
> > >>  So no qualifier @Named but a Bean<?> name (no comment ;))
> > >>
> > >>
> > >>  > Xavier
> > >>  >
> > >>  >
> > >>  >
> > >>  >
> > >>  > From: Mark Struberg <[email protected]>
> > >>  > Sent: Thursday, September 29, 2016 12:12 AM
> > >>  > To: [email protected]
> > >>  > Subject: Re: OpenEJB and EL
> > >>  >
> > >>  > @Default is always assumed when you don't add a specific Qualifier
> > > other
> > >>  > than @Named and @Any.
> > >>  >
> > >>  > Xavier, can you please add any random qualifier? E.g. @Destroyed.
> > >>  >
> > >>  > This will stop CDI from complaining but EL should work.
> > >>  >
> > >>  > LieGrue,
> > >>  > strub
> > >>  >
> > >>  >
> > >>  >
> > >>  >
> > >>  >
> > >>  > > On Thursday, 29 September 2016, 0:04, Xavier Dury
> > > <[email protected]>
> > >>  > wrote:
> > >>  > > >
> > > https://gist.github.com/kalgon/fbf529dc9c9764c115433cfb2f0f82bf
> >
> >
> >
> > OpenEjbElTest.java
> > gist.github.com
> > property=
> > >>
> > >>
> > >>
> > >>  OpenEjbElTest.java
> > >>  gist.github.com
> > >>  property=
> > >>  >
> > >>  >
> > >>  >
> > >>  > OpenEjbElTest.java
> > >>  > gist.github.com
> > >>  > property=
> > >>  > >
> > >>  > >
> > >>  > >
> > >>  > > From: Xavier Dury <[email protected]>
> > >>  > > Sent: Wednesday, September 28, 2016 11:54 PM
> > >>  > > To: [email protected]
> > >>  > > Subject: Re: OpenEJB and EL
> > >>  > >
> > >>  > > No, I didn't add the @Default to the @Produces method.
> > >>  > >
> > >>  > > I verified:
> > >>  > >
> > >>  > > @RequestScoped
> > >>  > > public class ConversationWrapper {
> > >>  > >
> > >>  > >         private @Inject Conversation conv;
> > >>  > >
> > >>  > >         @Produces
> > >>  > >         @Dependent
> > >>  > >         @Named("conv")
> > >>  > >         public Conversation getConv() {
> > >>  > >                 return conv;
> > >>  > >         }
> > >>  > > }
> > >>  > >
> > >>  > > result:
> > >>  > >
> > >>  > > Caused by: javax.enterprise.inject.AmbiguousResolutionException:
> > > There
> > >>  > is more
> > >>  > > than one Bean with type javax.enterprise.context.
> > >>  ConversationQualifiers:
> > >>  > > [@javax.enterprise.inject.Default()]
> > >>  > > for injection into Field Injection Point, field name :  conv,
> > > Bean
> > >>  Owner
> > >>  > :
> > >>  > > [ConversationWrapper, WebBeansType:MANAGED, Name:null, API
> > >>  > > Types:[java.lang.Object,eg.ConversationWrapper],
> > >>  > > Qualifiers:[javax.enterprise.inject.Default,javax.
> > >>  > enterprise.inject.Any]]
> > >>  > > found beans:
> > >>  > > ConversationImpl, WebBeansType:CONVERSATION,
> > >>  > > Name:javax.enterprise.context.conversation, API
> > >>  > > Types:[java.lang.Object,org.apache.webbeans.conversation.
> > >>  > ConversationImpl,javax.enterprise.context.Conversation],
> > >>  > > Qualifiers:[javax.enterprise.inject.Default,javax.
> > >>  enterprise.inject.Any]
> > >>  > from
> > >>  > > jar:file:/C:/Users/xavier/.m2/repository/org/apache/
> > >>  > openwebbeans/openwebbeans-impl/1.6.3/openwebbeans-impl-
> > >>  > 1.6.3.jar!/org/apache/webbeans/conversation/ConversationImpl.class
> > >>  > > Conversation, WebBeansType:PRODUCERMETHOD, Name:conv, API
> > >>  > > Types:[java.lang.Object,javax.enterprise.context.Conversation],
> > >>  > > Qualifiers:[javax.enterprise.inject.Default,javax.
> > >>  > enterprise.inject.Any,javax.inject.Named]
> > >>  > > from
> > >>  > >
> > > file:/D:/development/workspaces/openejb-el/target/test-classes/eg/
> > >>  > ConversationWrapper.class
> > >>  > >
> > >>  > >
> > >>  > >
> > >>  > >
> > >>  > > From: Romain Manni-Bucau <[email protected]>
> > >>  > > Sent: Wednesday, September 28, 2016 11:47 PM
> > >>  > > To: [email protected]
> > >>  > > Subject: Re: OpenEJB and EL
> > >>  > >
> > >>  > > Conversation, WebBeansType:PRODUCERMETHOD, Name:conv, API
> > >>  > > Types:[java.lang.Object,javax.enterprise.context.Conversation],
> > >>  > > Qualifiers:[javax.enterprise.inject.Default,javax.
> > >>  > > enterprise.inject.Any,javax.inject.Named] from
> > > file:/D:/development/
> > >>  > >
> > > workspaces/openejb-el/target/test-classes/eg/ConversationWrapper.class
> > >>  > >
> > >>  > > Why is there @Default there? producer should only have the @Named
> > > you
> > >>  set
> > >>  > >
> > >>  > >
> > >>  > > Romain Manni-Bucau
> > >>  > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> >
> >
> > Romain Manni-Bucau (@rmannibucau) | Twitter
> > twitter.com
> > The latest Tweets from Romain Manni-Bucau (@rmannibucau). ASF / Java(EE)
> /
> > Angular. LinkedIn: https://t.co/dX7XMGjbBi. JavaEE Factory:
> > https://t.co/0VnvWwbedt . Blog ...
> > >>
> > >>
> > >>
> > >>  Romain Manni-Bucau (@rmannibucau) | Twitter
> > >>  twitter.com
> > >>  The latest Tweets from Romain Manni-Bucau (@rmannibucau). ASF /
> > Java(EE) /
> > >>  Angular. LinkedIn: https://t.co/dX7XMGjbBi. JavaEE Factory:
> > >>  https://t.co/0VnvWwbedt . Blog ...
> > >>  >
> > >>  >
> > >>  >
> > >>  > Romain Manni-Bucau (@rmannibucau) | Twitter
> > >>  > twitter.com
> > >>  > The latest Tweets from Romain Manni-Bucau (@rmannibucau). ASF /
> > > Java(EE)
> > >>  /
> > >>  > Angular. LinkedIn: https://t.co/dX7XMGjbBi. JavaEE Factory:
> > >>  > https://t.co/0VnvWwbedt . Blog ...
> > >>  > >
> > >>  > >
> > >>  > >
> > >>  > > Romain Manni-Bucau (@rmannibucau) | Twitter
> > >>  > > twitter.com
> > >>  > > The latest Tweets from Romain Manni-Bucau (@rmannibucau). ASF /
> > >>  Java(EE)
> > >>  > /
> > >>  > > Angular. LinkedIn: https://t.co/dX7XMGjbBi. JavaEE Factory:
> > >>  > > https://t.co/0VnvWwbedt . Blog ...
> > >>  > >
> > >>  > >
> > >>  > >
> > >>  > > Romain Manni-Bucau (@rmannibucau) | Twitter
> > >>  > > twitter.com
> > >>  > > The latest Tweets from Romain Manni-Bucau (@rmannibucau). ASF /
> > >>  Java(EE)
> > >>  > /
> > >>  > > Angular. LinkedIn: https://t.co/dX7XMGjbBi. JavaEE Factory:
> > >>  > > https://t.co/0VnvWwbedt . Blog ...
> > >>  > > <https://blog-rmannibucau.rhcloud.com> | Old Wordpress Blog
> > >>  > >
> > >>  > >
> > >>  > > RBlog: the RManniBucau v2 Blog
> > >>  > > blog-rmannibucau.rhcloud.com
> > >>  > > RBlog: Romain Manni-Bucau Blog about Java, JavaEE, TomEE,
> > > Angular, Open
> > >>  > Source,
> > >>  > > Code and geeky topics...
> > >>  > > <http://rmannibucau.wordpress.com> | Github
> > >>  > > <https://github.com/rmannibucau> |
> > >>  > >
> > >>  > >
> > >>  > > [old blog] new RManniBucau().blog()
> > >>  > > rmannibucau.wordpress.com
> > >>  > > New blog on: https://blog-rmannibucau.rhcloud.com/
> > >>  > > LinkedIn <https://www.linkedin.com/in/rmannibucau> |
> > > Tomitriber
> > >>  > > <http://www.tomitribe.com> | JavaEE Factory
> > >>  > > <https://javaeefactory-rmannibucau.rhcloud.com>
> > >>  > >
> > >>  > > 2016-09-28 23:45 GMT+02:00 Xavier Dury
> > > <[email protected]>:
> > >>  > >
> > >>  > >>  It seems that to inject the conversation in
> > >>  > > ConversationWrapper.conversation,
> > >>  > >>  OWB does consider both the build-in conversation bean and
> > > the
> > >>  produced
> > >>  > one
> > >>  > >>  from... ConversationWrapper.getConv().
> > >>  > >>
> > >>  > >>  I tried something like that:
> > >>  > >>
> > >>  > >>  @RequestScoped
> > >>  > >>  public class ConversationWrapper {
> > >>  > >>
> > >>  > >>          private @Inject
> > >>  > > @Named("javax.enterprise.context.conversation")
> > >>  > >>  Conversation conv;
> > >>  > >>
> > >>  > >>          @Produces
> > >>  > >>          @Dependent
> > >>  > >>          @Named("conv")
> > >>  > >>          public Conversation getConv() {
> > >>  > >>                  return conv;
> > >>  > >>          }
> > >>  > >>  }
> > >>  > >>
> > >>  > >>  But it gives the following error:
> > >>  > >>
> > >>  > >>  Caused by:
> > > javax.enterprise.inject.UnsatisfiedResolutionException:
> > >>  Api
> > >>  > >>  type [javax.enterprise.context.Conversation] is not found
> > > with the
> > >>  > >>  qualifiers
> > >>  > >>  Qualifiers:
> > > [@javax.inject.Named(value=javax.enterprise.context.
> > >>  > >>  conversation)]
> > >>  > >>  for injection into Field Injection Point, field name :
> > > conv, Bean
> > >>  > Owner :
> > >>  > >>  [ConversationWrapper, WebBeansType:MANAGED, Name:null, API
> > >>  > >>  Types:[eg.ConversationWrapper,java.lang.Object],
> > >>  > >>  Qualifiers:[javax.enterprise.inject.Default,javax.
> > >>  > enterprise.inject.Any]]
> > >>  > >>
> > >>  > >>
> > >>  > >>
> > >>  > >>
> > >>  > >>  From: Xavier Dury <[email protected]>
> > >>  > >>  Sent: Wednesday, September 28, 2016 11:34 PM
> > >>  > >>  To: [email protected]
> > >>  > >>  Subject: Re: OpenEJB and EL
> > >>  > >>
> > >>  > >>  Got the same result with 'conv':
> > >>  > >>
> > >>  > >>  Caused by:
> > > javax.enterprise.inject.AmbiguousResolutionException:
> > >>  > There is
> > >>  > >>  more than one Bean with type
> > >>  > > javax.enterprise.context.ConversationQualifiers:
> > >>  > >>  [@javax.enterprise.inject.Default()]
> > >>  > >>  for injection into Field Injection Point, field name :
> > > conversation,
> > >>  > Bean
> > >>  > >>  Owner : [ConversationAliaser, WebBeansType:MANAGED,
> > > Name:null, API
> > >>  > >>  Types:[java.lang.Object,eg.ConversationAliaser],
> > >>  > >>  Qualifiers:[javax.enterprise.inject.Default,javax.
> > >>  > enterprise.inject.Any]]
> > >>  > >>  found beans:
> > >>  > >>  Conversation, WebBeansType:PRODUCERMETHOD, Name:conv, API
> > >>  > >>
> > > Types:[java.lang.Object,javax.enterprise.context.Conversation],
> > >>  > >>  Qualifiers:[javax.enterprise.inject.Default,javax.
> > >>  > >>  enterprise.inject.Any,javax.inject.Named] from
> > > file:/D:/development/
> > >>  > >>  workspaces/openejb-el/target/test-classes/eg/
> > >>  ConversationWrapper.class
> > >>  > >>  ConversationImpl, WebBeansType:CONVERSATION,
> > >>  > > Name:javax.enterprise.context.conversation,
> > >>  > >>  API
> > > Types:[org.apache.webbeans.conversation.ConversationImpl,
> > >>  > >>  javax.enterprise.context.Conversation,java.lang.Object],
> > >>  > >>  Qualifiers:[javax.enterprise.inject.Default,javax.
> > >>  > enterprise.inject.Any]
> > >>  > >>  from jar:file:/C:/Users/xavier/.m2/repository/org/apache/
> > >>  > >>  openwebbeans/openwebbeans-impl/1.6.3/openwebbeans-impl-
> > >>  > >>
> > > 1.6.3.jar!/org/apache/webbeans/conversation/ConversationImpl.class
> > >>  > >>
> > >>  > >>
> > >>  > >>
> > >>  > >>
> > >>  > >>
> > >>  > >>
> > >>  > >>
> > >>  > >>  From: Romain Manni-Bucau <[email protected]>
> > >>  > >>  Sent: Wednesday, September 28, 2016 11:29 PM
> > >>  > >>  To: [email protected]
> > >>  > >>  Cc: Mark Struberg
> > >>  > >>  Subject: Re: OpenEJB and EL
> > >>  > >>
> > >>  > >>  missing @Named("conv")?
> > >>  > >>
> > >>  > >>
> > >>  > >>  Romain Manni-Bucau
> > >>  > >>  @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > >>  > >>
> > >>  > >>
> > >>  > >>
> > >>  > >>  Romain Manni-Bucau (@rmannibucau) | Twitter
> > >>  > >>  twitter.com
> > >>  > >>  The latest Tweets from Romain Manni-Bucau (@rmannibucau).
> > > ASF /
> > >>  > Java(EE) /
> > >>  > >>  Angular. LinkedIn: https://t.co/dX7XMGjbBi. JavaEE Factory:
> > >>  > >>  https://t.co/0VnvWwbedt . Blog ...
> > >>  > >>
> > >>  > >>
> > >>  > >>
> > >>  > >>  Romain Manni-Bucau (@rmannibucau) | Twitter
> > >>  > >>  twitter.com
> > >>  > >>  The latest Tweets from Romain Manni-Bucau (@rmannibucau).
> > > ASF /
> > >>  > Java(EE) /
> > >>  > >>  Angular. LinkedIn: https://t.co/dX7XMGjbBi. JavaEE Factory:
> > >>  > >>  https://t.co/0VnvWwbedt . Blog ...
> > >>  > >>  <https://blog-rmannibucau.rhcloud.com> | Old Wordpress
> > > Blog
> > >>  > >>
> > >>  > >>
> > >>  > >>  RBlog: the RManniBucau v2 Blog
> > >>  > >>  blog-rmannibucau.rhcloud.com
> > >>  > >>  RBlog: Romain Manni-Bucau Blog about Java, JavaEE, TomEE,
> > > Angular,
> > >>  Open
> > >>  > >>  Source, Code and geeky topics...
> > >>  > >>  <http://rmannibucau.wordpress.com> | Github
> > > <https://github.com/
> > >>  > >>  rmannibucau> |
> > >>  > >>
> > >>  > >>
> > >>  > >>  [old blog] new RManniBucau().blog()
> > >>  > >>  rmannibucau.wordpress.com
> > >>  > >>  New blog on: https://blog-rmannibucau.rhcloud.com/
> > >>  > >>  LinkedIn <https://www.linkedin.com/in/rmannibucau> |
> > > Tomitriber
> > >>  > >>  <http://www.tomitribe.com> | JavaEE Factory
> > >>  > >>  <https://javaeefactory-rmannibucau.rhcloud.com>
> > >>  > >>
> > >>  > >>  2016-09-28 23:27 GMT+02:00 Xavier Dury
> > > <[email protected]>:
> > >>  > >>
> > >>  > >>  >
> > >>  > >>  > Caused by:
> > > javax.enterprise.inject.AmbiguousResolutionException:
> > >>  > There
> > >>  > >>  is
> > >>  > >>  > more than one Bean with type javax.enterprise.context.
> > >>  > >>  ConversationQualifiers:
> > >>  > >>  > [@javax.enterprise.inject.Default()]
> > >>  > >>  > for injection into Field Injection Point, field name :
> > >>  conversation,
> > >>  > >>  Bean
> > >>  > >>  > Owner : [ConversationAliaser, WebBeansType:MANAGED,
> > > Name:null, API
> > >>  > >>  > Types:[eg.ConversationAliaser,java.lang.Object],
> > >>  > >>  > Qualifiers:[javax.enterprise.inject.Default,javax.
> > >>  > >>  enterprise.inject.Any]]
> > >>  > >>  > found beans:
> > >>  > >>  > Conversation, WebBeansType:PRODUCERMETHOD,
> > > Name:conversation, API
> > >>  > >>  >
> > > Types:[javax.enterprise.context.Conversation,java.lang.Object],
> > >>  > >>  > Qualifiers:[javax.enterprise.inject.Default,javax.
> > >>  > >>  > enterprise.inject.Any,javax.inject.Named] from
> > >>  file:/D:/development/
> > >>  > >>  > workspaces/openejb-el/target/test-classes/eg/
> > >>  > ConversationWrapper.class
> > >>  > >>  > ConversationImpl, WebBeansType:CONVERSATION,
> > >>  > >>  Name:javax.enterprise.context.conversation,
> > >>  > >>  > API
> > > Types:[org.apache.webbeans.conversation.ConversationImpl,
> > >>  > >>  >
> > > javax.enterprise.context.Conversation,java.lang.Object],
> > >>  > >>  >
> > >>  > > Qualifiers:[javax.enterprise.inject.Default,javax.
> > >>  enterprise.inject.Any]
> > >>  > >>  > from
> > > jar:file:/C:/Users/xavier/.m2/repository/org/apache/
> > >>  > >>  > openwebbeans/openwebbeans-impl/1.6.3/openwebbeans-impl-
> > >>  > >>  >
> > > 1.6.3.jar!/org/apache/webbeans/conversation/ConversationImpl.class
> > >>  > >>  >
> > >>  > >>  >
> > >>  > >>  >
> > >>  > >>  >
> > >>  > >>  >
> > >>  > >>  >
> > >>  > >>  >
> > >>  > >>  > From: Mark Struberg <[email protected]>
> > >>  > >>  > Sent: Wednesday, September 28, 2016 11:20 PM
> > >>  > >>  > To: [email protected]
> > >>  > >>  > Subject: Re: OpenEJB and EL
> > >>  > >>  >
> > >>  > >>  > +1
> > >>  > >>  >
> > >>  > >>  > means
> > >>  > >>  >
> > >>  > >>  > @RequestScoped
> > >>  > >>  >
> > >>  > >>  > public class ConversationWrapper {
> > >>  > >>  >   private @Inject Conversation conv;
> > >>  > >>  >
> > >>  > >>  >   @Produces
> > >>  > >>  >   @Dependent
> > >>  > >>  >   @Named("conv")
> > >>  > >>  >
> > >>  > >>  >   public Conversation getConv() {
> > >>  > >>  >     return conv;
> > >>  > >>  >   }
> > >>  > >>  > }
> > >>  > >>  >
> > >>  > >>  >
> > >>  > >>  >
> > >>  > >>  >
> > >>  > >>  > On Wednesday, 28 September 2016, 23:10, Romain
> > > Manni-Bucau <
> > >>  > >>  > [email protected]> wrote:
> > >>  > >>  >
> > >>  > >>  >
> > >>  > >>  > >
> > >>  > >>  > >
> > >>  > >>  > >a producer allows to get a shorter/more elegant
> > > naming like
> > >>  > > #{conv.id}
> > >>  > >>  > if you @Produces @Named("conv") ;)
> > >>  > >>  > >
> > >>  > >>  > >
> > >>  > >>  > >
> > >>  > >>  > >Romain Manni-Bucau
> > >>  > >>  > >@rmannibucau |  Blog | Old Wordpress Blog | Github
> > > | LinkedIn |
> > >>  > >>  > Tomitriber | JavaEE Factory
> > >>  > >>  > >
> > >>  > >>  > >2016-09-28 23:01 GMT+02:00 Mark Struberg
> > >>  > > <[email protected]>:
> > >>  > >>  > >
> > >>  > >>  > >Oh boy, sorry for you. You did hit a blank spot in
> > > the CDI spec.
> > >>  > >>  > >>
> > >>  > >>  > >>Problem is that the EE umbrella spec, the EL
> > > spec and the CDI
> > >>  > > spec
> > >>  > >>  > contradict each other.
> > >>  > >>  > >>
> > >>  > >>  > >>The Weld guys solved this by introducing a
> > > Javax class. But
> > >>  > > that takes
> > >>  > >>  > away the whole javax.* tree for the EL. That's just
> > > not good as it
> > >>  > >>  > contradicts the EL spec.
> > >>  > >>  > >>
> > >>  > >>  > >>Could you please try the following
> > >>  > >>  > >>
> > >>  > >>  > >>@RequestScoped
> > >>  > >>  > >>@Named("conversation")
> > >>  > >>  > >>public class ConversationWrapper {
> > >>  > >>  > >>   private @Inject Conversation conv;
> > >>  > >>  > >>
> > >>  > >>  > >>  public Conversation get() {
> > >>  > >>  > >>       return conv;
> > >>  > >>  > >>   }
> > >>  > >>  > >>}
> > >>  > >>  > >>
> > >>  > >>  > >>And in the EL just use
> > > #{conversation.get.id}
> > >>  > >>  > >>
> > >>  > >>  > >>LieGrue,
> > >>  > >>  > >>strub
> > >>  > >>  > >>
> > >>  > >>  > >>
> > >>  > >>  > >>
> > >>  > >>  > >>
> > >>  > >>  > >>
> > >>  > >>  > >>> On Wednesday, 28 September 2016, 22:12,
> > > Xavier Dury <
> > >>  > >>  > [email protected]> wrote:
> > >>  > >>  > >>> > I really don't understand how
> > > something like
> > >>  > > <f:param
> > >>  > >>  > >>> name="cid"
> > >>  > >>  > >>> value="#{javax.enterprise.
> > >>  > > context.conversation.id}"/> actually
> > >>  > >>  > >>> works... something must be made to make
> > > the EL processor
> > >>  > > accept that
> > >>  > >>  > invalid
> > >>  > >>  > >>> bean name.
> > >>  > >>  > >>>
> > >>  > >>  > >>> Making a producer which @Produces @Named
> > > Conversation
> > >>  > > conflicts with
> > >>  > >>  > the
> > >>  > >>  > >>> built-in bean from OWB (with
> > > WebBeanType.CONVERSATION)...
> > >>  > >>  > >>>
> > >>  > >>  > >>> ... so, I have done the following for my
> > > tests but I feel
> > >>  > > a bit
> > >>  > >>  > ashamed because
> > >>  > >>  > >>> I can't imagine there is no better
> > > solution than this
> > >>  > > ;-)
> > >>  > >>  > >>>
> > >>  > >>  > >>> public class ConversationAliaser {
> > >>  > >>  > >>>     public class Javax {
> > >>  > >>  > >>>         public Enterprise getEnterprise()
> > > {return
> > >>  > > new Enterprise();}
> > >>  > >>  > >>>
> > >>  > >>  > >>>     }
> > >>  > >>  > >>>     public class Enterprise {
> > >>  > >>  > >>>         public Context getContext()
> > > {return new
> > >>  > > Context();}
> > >>  > >>  > >>>     }
> > >>  > >>  > >>>     public class Context {
> > >>  > >>  > >>>         public Conversation
> > > getConversation()
> > >>  > > {return conversation;}
> > >>  > >>  > >>>
> > >>  > >>  > >>>     }
> > >>  > >>  > >>>     @Inject
> > >>  > >>  > >>>     private Conversation conversation;
> > >>  > >>  > >>>     @Produces @ApplicationScoped
> > >>  > > @Named("javax")
> > >>  > >>  > >>>     public Javax javax() {return new
> > > Javax();}
> > >>  > >>  > >>> }
> > >>  > >>  > >>>
> > >>  > >>  > >>> But that works!
> > >>  > >>  > >>>
> > >>  > >>  > >>> Xavier
> > >>  > >>  > >>>
> > >>  > >>  > >>>
> > >>  > >>  > >>>
> > >>  > >>  > >>> From: Xavier Dury
> > > <[email protected]>
> > >>  > >>  > >>> Sent: Wednesday, September 28, 2016 8:42
> > > PM
> > >>  > >>  > >>> To: [email protected]
> > >>  > >>  > >>> Subject: Re: OpenEJB and EL
> > >>  > >>  > >>>
> > >>  > >>  > >>> Hmmm... I guess I'll have to @Produces
> > > @Named the
> > >>  > > conversation if I
> > >>  > >>  > want to
> > >>  > >>  > >>> use it in ELs. I don't know if
> > > something like
> > >>  > >>  > >>> #{applicationScope['javax.
> > > enterprise.context.
> > >>  > >>  > conversation'].transient}
> > >>  > >>  > >>> would work?
> > >>  > >>  > >>>
> > >>  > >>  > >>> I remember back in my JSP days that,
> > > sometimes, I had to
> > >>  > > use
> > >>  > >>  something
> > >>  > >>  > like
> > >>  > >>  > >>> ${requestScope['javax.servlet.
> > >>  > > forward.request_uri']} instead of
> > >>  > >>  > >>> plain ${javax.servlet.forward.
> > > request_uri}.
> > >>  > >>  > >>>
> > >>  > >>  > >>> Xavier
> > >>  > >>  > >>>
> > >>  > >>  > >>>
> > >>  > >>  > >>> From: Romain Manni-Bucau
> > > <[email protected]>
> > >>  > >>  > >>> Sent: Wednesday, September 28, 2016 6:54
> > > PM
> > >>  > >>  > >>> To: [email protected]
> > >>  > >>  > >>> Subject: Re: OpenEJB and EL
> > >>  > >>  > >>>
> > >>  > >>  > >>> hmm, wonder if it is linked to the value
> > > you try to
> > >>  > > evaluate (which
> > >>  > >>  > doesn't
> > >>  > >>  > >>> respect EL spec even if in CDI spec -
> > > don't ask
> > >>  > > please ;)).. See
> > >>  > >>  > >>> https://issues.jboss.org/
> > > browse/CDITCK-462 /
> > >>  > >>  >
> > >>  > >>  >
> > >>  > >>  > System Dashboard - JBoss Issue Tracker
> > >>  > >>  > issues.jboss.org
> > >>  > >>  > Atlassian JIRA Project Management Software
> > >>  > > (v6.4.11#64026-sha1:78f6ec4)
> > >>  > >>  > About JIRA; Report a problem; Powered by a free
> > > Atlassian JIRA open
> > >>  > >>  source
> > >>  > >>  > license for Red Hat ...
> > >>  > >>  > >>> http://lists.jboss.org/
> > > pipermail/cdi-dev/2015-
> > >>  > > January/006009.html
> > >>  > >>  >
> > >>  > >>  >
> > >>  > >>  > lists.jboss.org Mailing Lists
> > >>  > >>  > lists.jboss.org
> > >>  > >>  > lists.jboss.org Mailing Lists: Welcome! Below is a
> > > listing of all
> > >>  > the
> > >>  > >>  > public mailing lists on lists.jboss.org. Click on a
> > > list name to
> > >>  get
> > >>  > >>  more
> > >>  > >>  > information ...
> > >>  > >>  > >>>
> > >>  > >>  > >>>
> > >>  > >>  > >>>
> > >>  > >>  > >>>
> > >>  > >>  > >>> Romain Manni-Bucau
> > >>  > >>  > >>> @rmannibucau <https://twitter.com/
> > > rmannibucau> |
> > >>  > > Blog
> > >>  > >>  > >>>
> > >>  > >>  > >>>
> > >>  > >>  > >>>
> > >>  > >>  > >>> Romain Manni-Bucau (@rmannibucau) |
> > > Twitter
> > >>  > >>  > >>> twitter.com
> > >>  > >>  > >>> The latest Tweets from Romain Manni-Bucau
> > > (@rmannibucau).
> > >>  > > ASF /
> > >>  > >>  > Java(EE) /
> > >>  > >>  > >>> Angular. LinkedIn:
> > > https://t.co/dX7XMGjbBi. JavaEE
> > >>  > > Factory:
> > >>  > >>  > >>> https://t.co/0VnvWwbedt . Blog ...
> > >>  > >>  > >>> <https://blog-rmannibucau.
> > > rhcloud.com> | Old
> > >>  > > Wordpress Blog
> > >>  > >>  > >>> <http://rmannibucau.wordpress. com>
> > > | Github
> > >>  > >>  > >>> <https://github.com/ rmannibucau> |
> > >>  > >>  > >>> LinkedIn <https://www.linkedin.com/in/
> > > rmannibucau>
> > >>  > > | Tomitriber
> > >>  > >>  > >>> <http://www.tomitribe.com> | JavaEE
> > > Factory
> > >>  > >>  > >>> <https://javaeefactory-
> > > rmannibucau.rhcloud.com>
> > >>  > >>  > >>>
> > >>  > >>  > >>> 2016-09-28 18:17 GMT+02:00 Xavier Dury
> > >>  > > <[email protected]>:
> > >>  > >>  > >>>
> > >>  > >>  > >>>>  Hi Romain,
> > >>  > >>  > >>>>
> > >>  > >>  > >>>>  I tried with
> > > org.apache.tomcat:tomcat-
> > >>  > > jasper-el:8.5.5 but it does
> > >>  > >>  > not
> > >>  > >>  > >>>>  parse my expression until I change
> > >>  > > ".transient" by
> > >>  > >>  > >>> ".isTransient()" and
> > >>  > >>  > >>>>  then it gives the same error:
> > > javax.el.
> > >>  > > PropertyNotFoundException:
> > >>  > >>  > >>>>  ELResolver cannot handle a null base
> > > Object with
> > >>  > > identifier
> > >>  > >>  > >>> 'javax'.
> > >>  > >>  > >>>>
> > >>  > >>  > >>>>  Does the EL context need something
> > > else than adding
> > >>  > > the
> > >>  > >>  > >>>>  BeanManager.getELResolver()  to be
> > > able to resolve
> > >>  > > some implicit
> > >>  > >>  > objects? I
> > >>  > >>  > >>>>  don't understand why it works
> > > with ri-1.0.
> > >>  > >>  > >>>>
> > >>  > >>  > >>>>  Xavier
> > >>  > >>  > >>>>
> > >>  > >>  > >>>>
> > >>  > >>  > >>>>  From: Romain Manni-Bucau
> > >>  > > <[email protected]>
> > >>  > >>  > >>>>  Sent: Wednesday, September 28, 2016
> > > 4:02 PM
> > >>  > >>  > >>>>  To: [email protected]
> > >>  > >>  > >>>>  Subject: Re: OpenEJB and EL
> > >>  > >>  > >>>>
> > >>  > >>  > >>>>  Hi Xavier
> > >>  > >>  > >>>>
> > >>  > >>  > >>>>  On the phone so hard to give you a
> > > link bit try
> > >>  > > using tomcat el
> > >>  > >>  impl
> > >>  > >>  > of
> > >>  > >>  > >>>>  tomcat 8.5
> > >>  > >>  > >>>>
> > >>  > >>  > >>>>  Le 28 sept. 2016 15:29, "Xavier
> > > Dury"
> > >>  > > <[email protected]>
> > >>  > >>  > >>> a écrit :
> > >>  > >>  > >>>>
> > >>  > >>  > >>>>  > Hi,
> > >>  > >>  > >>>>  >
> > >>  > >>  > >>>>  > I am using OpenEJB for my tests
> > > and need
> > >>  > > support for EL
> > >>  > >>  > expressions in
> > >>  > >>  > >>> my
> > >>  > >>  > >>>>  > own code.
> > >>  > >>  > >>>>  >
> > >>  > >>  > >>>>  > By default, if I do something
> > > like this (pay
> > >>  > > attention to the
> > >>  > >>  > >>>>  expression):
> > >>  > >>  > >>>>  >
> > >>  > >>  > >>>>  > ExpressionFactory factory =
> > > beanManager.
> > >>  > > wrapExpressionFactory(
> > >>  > >>  > >>>>  > ExpressionFactory.newInstance(
> > > ));
> > >>  > >>  > >>>>  > StandardELContext elContext =
> > > new
> > >>  > > StandardELContext(factory);
> > >>  > >>  > >>>>  > elContext.addELResolver(
> > >>  > > beanManager.getELResolver());
> > >>  > >>  > >>>>  > ValueExpression expression =
> > >>  > > factory.createValueExpression(
> > >>  > >>  > elContext,
> > >>  > >>  > >>>>  >
> > > "#{javax.enterprise.context.
> > >>  > > conversation.transient}",
> > >>  > >>  > >>> Boolean.class);
> > >>  > >>  > >>>>  > expression.getValue(elContext) ;
> > >>  > >>  > >>>>  >
> > >>  > >>  > >>>>  > and only add
> > > org.apache.tomee:openejb-core:
> > >>  > > 7.0.1 to my project
> > >>  > >>  > then I
> > >>  > >>  > >>>>  get
> > >>  > >>  > >>>>  > javax.el.ELException: Unable to
> > > find
> > >>  > > ExpressionFactory of type:
> > >>  > >>  > >>>>  > org.apache.el.
> > > ExpressionFactoryImpl
> > >>  > >>  > >>>>  >
> > >>  > >>  > >>>>  > if I add
> > > org.glassfish:javax.el:3.0.0 then I
> > >>  > > get javax.el.
> > >>  > >>  > >>>>  PropertyNotFoundException:
> > >>  > >>  > >>>>  > ELResolver cannot handle a null
> > > base Object
> > >>  > > with identifier
> > >>  > >>  > >>> 'javax'
> > >>  > >>  > >>>>  >
> > >>  > >>  > >>>>  > if I switch the EL library to
> > >>  > > com.sun.el:el-ri:1.0 (+
> > >>  > >>  > >>> META-INF/javax.el.
> > >>  > >>  > >>>>  ExpressionFactory
> > >>  > >>  > >>>>  > < com.sun.el.
> > > ExpressionFactoryImpl) then my
> > >>  > > expression can be
> > >>  > >>  > >>> evaluated
> > >>  > >>  > >>>>  > but I can't use any new
> > > feature of 3.0
> > >>  > > (like lambdas)
> > >>  > >>  > >>>>  >
> > >>  > >>  > >>>>  > So, either my dependencies are
> > > wrong or I am
> > >>  > > not correctly
> > >>  > >>  > >>> initializing
> > >>  > >>  > >>>>  my
> > >>  > >>  > >>>>  > factory.
> > >>  > >>  > >>>>  >
> > >>  > >>  > >>>>  > Does anybody have an idea?
> > >>  > >>  > >>>>  >
> > >>  > >>  > >>>>  > Thanks,
> > >>  > >>  > >>>>  >
> > >>  > >>  > >>>>  > Xavier
> > >>  > >>  > >>>>
> > >>  > >>  > >>>>
> > >>  > >>  > >>>
> > >>  > >>  > >>
> > >>  > >>  > >
> > >>  > >>  > >
> > >>  > >>  > >
> > >>  > >>  >
> > >>  > >>  >
> > >>  > >>
> > >>  > >>
> > >>  > >
> > >>  >
> > >>  >
> > >>
> > >>
> > >
> >
> >
>
>

Reply via email to