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