Indeed, @Named != named... got it! :-)

But I still fail to understand _where_ the workaround for 'javax...' is 
actually implemented:

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=
> >
> >
> >
> > 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 ...
> > <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