[cdi-dev] Answer from EL spec lead: no, "." is not valid in an EL name.

Jozef Hartinger jharting at redhat.com
Fri Jan 16 02:32:05 EST 2015


No, it means that since we have the bean name 
"javax.enterprise.context.conversation" defined, the following bean 
names are not allowed to be defined by a different bean:

javax
javax.enterprise
javax.enterprise.context
and of course javax.enterprise.context.conversation

All the others, e.g. javax.enterprise.foo or javax.bar are fine.


On 01/16/2015 08:20 AM, Romain Manni-Bucau wrote:
>
> Hmm
>
> Does it mean CDI cant add javax.enterprise.xxx bean? Or even other 
> specs cant add javax.xxx beans?
>
> Le 16 janv. 2015 08:10, "Jozef Hartinger" <jharting at redhat.com 
> <mailto:jharting at redhat.com>> a écrit :
>
>     OK, the relevant part goes:
>
>     "If the bean name of one bean is of the form x.y, where y is a
>     valid bean name, and x is the bean name of the other bean,
>
>     the container automatically detects the problem and treats it as a
>     deployment problem."
>
>     Let's have:
>     @Named("team1.superBean.enriched") class Bean1
>     @Named("team1.superBean") class Bean2
>
>     Now
>     1) "If the bean name of one bean is of the form x.y"
>
>     We can match the "x.y" pattern on Bean1's name as:
>     (team1.superBean) . (enriched)
>     thus:
>     x = team1.superBean
>     y = enriched
>
>     2) "where y is a valid bean name"
>     "enriched" is indeed a valid bean name
>
>     3) "and x is the bean name of the other bean"
>     x ("team1.superBean") is at the same time the name of Bean2
>
>     4) Therefore, "the container automatically detects the problem and
>     treats it as a deployment problem".
>
>     Therefore, this scenario does not become a conflict at runtime.
>
>     HTH,
>     Jozef
>
>
>
>
>
>     On 01/15/2015 02:44 PM, Romain Manni-Bucau wrote:
>
>         @Jozef: can you quote it please - sorry if it is obvious but I
>         dont
>         see it in 5.3.1, I look 1.2 version BTW. It only deals with names
>         where or CDI where here we conflict between resolvers.
>
>
>         Romain Manni-Bucau
>         @rmannibucau
>         http://www.tomitribe.com
>         http://rmannibucau.wordpress.com
>         https://github.com/rmannibucau
>
>
>         2015-01-15 12:59 GMT+01:00 Jozef Hartinger
>         <jharting at redhat.com <mailto:jharting at redhat.com>>:
>
>             On 01/15/2015 11:35 AM, Romain Manni-Bucau wrote:
>
>                         @Named("team1.superBean") and
>                         @Named("team1.superBean.enriched") will
>                         lead to conflicts and that's things I saw
>                         several times in spring apps
>                         which are clearly not possible using CDI + EL
>                         properly.
>
>                     Yes and these conflicts are handled by the spec.
>                     See 5.3.1
>
>                 Hmm not sure. If enriched is a property of the first
>                 bean then spec
>                 doesn't help.
>
>             The spec deals with exactly these types of cases in 5.3.1
>
>
>                         Romain Manni-Bucau
>                         @rmannibucau
>                         http://www.tomitribe.com
>                         http://rmannibucau.wordpress.com
>                         https://github.com/rmannibucau
>
>
>                         2015-01-15 11:22 GMT+01:00 Jozef Hartinger
>                         <jharting at redhat.com
>                         <mailto:jharting at redhat.com>>:
>
>                             On 01/15/2015 11:11 AM, Mark Struberg wrote:
>
>                                 Jozef, your argumentation is flawed
>                                 already at the very beginning.
>                                 Currently there is no bean with the
>                                 name "javax", thus "x.y ... and x
>                                 is
>                                 the
>                                 bean name of the other bean" will not
>                                 be a problem.
>
>                                 All that javax is simply not a bean
>                                 name but a dirty hack in the
>                                 ELResolver. That is something totally
>                                 different.
>
>                             Mark, please read the e-mail again. I am
>                             not saying there are two beans
>                             named "javax". I am saying there are two
>                             beans with the following
>                             names:
>
>                             - javax.enterprise.context.conversation
>                             (the built-in one)
>                             - javax (Marks's bean)
>
>                             where the former one is in form x.y where
>                             y is a valid bean name:
>                             (javax) . (enterprise.context.conversation)
>
>                             and thus since javax is both x above and a
>                             bean name of Mark's bean,
>                             this
>                             results in an exception.
>
>
>                                 Thus the rest of your argumentation
>                                 chain is also invalid.
>
>                                 LieGrue,
>                                 strub
>
>
>                                     On Thursday, 15 January 2015,
>                                     10:47, Jozef Hartinger
>                                     <jharting at redhat.com
>                                     <mailto:jharting at redhat.com>> wrote:
>
>                                         T he @Named("javax") argument
>                                         is not valid. The spec says:
>
>                                     Suppose two beans are both
>                                     available for injection in a
>                                     certain war,
>                                     and
>                                     either:
>                                     - the two beans have the same bean
>                                     name and the name is not
>                                     resolvable,
>                                     or
>                                     - the bean name of one bean is of
>                                     the form x.y, where y is a valid
>                                     bean
>                                     name, and x is the bean
>                                     name of the other bean,
>                                     the container automatically
>                                     detects the problem and treats it as a
>                                     deployment problem.
>
>                                     So we have two beans:
>                                     -
>                                     javax.enterprise.context.conversation
>                                     (the built-in one)
>                                     - javax (Marks's bean)
>
>                                     now:
>
>                                     1) the bean name of one bean is of
>                                     the form x.y, where y is a valid
>                                     bean
>                                     name - that is
>                                     javax.enterprise.context.conversation
>                                     x = javax
>                                     y = enterprise.context.conversation
>                                     2) and x is the bean name of the
>                                     other bean - same as the name of
>                                     Mark's
>                                     @Named("javax") bean
>                                     3) the container automatically
>                                     detects the problem and treats it as a
>                                     deployment problem
>
>                                     Therefore, a bean named
>                                     @Named("javax") will cause a
>                                     deployment
>                                     problem
>                                     no matter whether it is actually
>                                     available via EL or not.
>
>                                     To summarize, the spec already
>                                     anticipates the problem and forbids
>                                     this
>                                     case explicitly.
>
>
>
>                                     On 01/14/2015 04:45 PM, Mark
>                                     Struberg wrote:
>
>                                              And then break all
>                                         applications which have a
>                                         @Named("javax")
>
>                                     public class MyBean?
>
>                                              It's simply not an option
>                                         imo. It breaks lots of other
>                                         specs and
>
>                                     features. This is an XOR situation.
>
>
>                                              LieGrue,
>                                              strub
>
>
>
>
>                                              ----- Original Message -----
>
>                                                  From: Pete Muir
>                                             <pmuir at redhat.com
>                                             <mailto:pmuir at redhat.com>>
>                                                  To: Romain
>                                             Manni-Bucau
>                                             <rmannibucau at gmail.com
>                                             <mailto:rmannibucau at gmail.com>>
>                                                  Cc: Cdi-dev
>                                             <cdi-dev at lists.jboss.org
>                                             <mailto:cdi-dev at lists.jboss.org>>;
>                                             Edward Burns
>
>                                     <edward.burns at oracle.com
>                                     <mailto:edward.burns at oracle.com>>
>
>                                                  Sent: Wednesday, 14
>                                             January 2015, 11:56
>                                                  Subject: Re:
>                                             [cdi-dev] Answer from EL
>                                             spec lead: no,    "."
>
>                                     is not valid in an EL name.
>
>                                                  We need to go for
>                                             both (A) and (B).
>
>                                                  We would need to
>                                             deprecate the existing
>                                             name before we can
>                                             allow
>                                             it
>                                             to
>
>                                     not be
>
>                                                  supported. This means
>                                             CDI 3. So I would suggest
>                                             we deprecate it
>                                             in
>                                             2,
>
>                                     add an
>
>                                                  alternative that can
>                                             be used, and then consider
>                                             removing it in
>                                             CDI
>                                             3.
>
>                                     In the
>
>                                                  meantime for CDI 2,
>                                             we will need to improve
>                                             the TCK to check
>                                             this
>                                             more
>                                                  carefully.
>
>                                                        On 14 Jan 2015,
>                                                 at 10:09, Romain
>                                                 Manni-Bucau
>
>                                     <rmannibucau at gmail.com
>                                     <mailto:rmannibucau at gmail.com>>
>
>                                                  wrote:
>
>                                                        +1 for B (IMO
>                                                 it is not used that much)
>
>
>
>
>                                                        Romain Manni-Bucau
>                                                        @rmannibucau
>                                                 http://www.tomitribe.com
>                                                 http://rmannibucau.wordpress.com
>                                                 https://github.com/rmannibucau
>
>
>                                                        2015-01-14
>                                                 10:54 GMT+01:00 Jozef
>                                                 Hartinger
>
>                                     <jharting at redhat.com
>                                     <mailto:jharting at redhat.com>>:
>
>                                                            I think
>                                                     further action is
>                                                     needed on this.
>                                                     Now that it has
>
>                                     been
>
>                                                  confirmed
>
>                                                            that
>                                                     "javax.enterprise.context.conversation"
>                                                     itself
>
>                                     is not a
>
>                                                  valid EL
>
>                                                            name we
>                                                     should either:
>
>                                                            A) Require
>                                                     all CDI
>                                                     implementations to
>                                                     adapt the
>
>                                     property-based approach
>
>                                                            which
>                                                     allows this to be
>                                                     implemented
>                                                     portably (as Weld
>                                                     does)
>                                                            B) Declare
>                                                     publicly that
>                                                     although the CDI
>                                                     spec declares the
>
>                                     given name,
>
>                                                            it is a bug
>                                                     and applications
>                                                     should not use the
>                                                     name. (What
>
>                                     about
>
>                                                          
>                                                      compatibility
>                                                     with existing
>                                                     applications?)
>
>                                                            Jozef
>
>                                                            On
>                                                     01/08/2015 09:27
>                                                     AM, Mark Struberg
>                                                     wrote:
>
>                                                                Dear
>                                                         CDI fellows!
>
>                                                                I've
>                                                         received an
>                                                         answer
>                                                         regarding our
>                                                         EL question
>
>                                     from the EL
>
>                                                  Spec Lead.
>
>                                                                Ed,
>                                                         thanks for
>                                                         helping us!
>
>
>                                                                LieGrue,
>                                                                strub
>
>
>
>
>                                                                    On
>                                                             Tuesday, 6
>                                                             January
>                                                             2015,
>                                                             23:14,
>                                                             Edward Burns
>
>                                                
>                                              <edward.burns at oracle.com
>                                             <mailto:edward.burns at oracle.com>>
>                                             wrote:
>
>                                                                      
>                                                                  Hello
>                                                                 Mark,
>
>                                                                    To
>                                                             close this
>                                                             out, no,
>                                                             "." is not
>                                                             valid in
>
>                                     an EL
>
>                                                  name.  An EL name
>
>                                                                    must
>                                                                    be
>                                                             a java
>                                                             identifier. I'm
>                                                             told this was
>
>                                     discussed by Pete
>
>                                                  a long time
>
>                                                                    ago
>                                                             in the EL
>                                                             3.0 EG.
>
>                                                                    Ed
>
>                                                                    --
>                                                                    |
>                                                             edward.burns at oracle.com
>                                                             <mailto:edward.burns at oracle.com>
>                                                             | office:
>                                                             +1 407 458
>                                                             0017
>                                                                    |
>                                                             42 days
>                                                             til
>                                                             DevNexus 2015
>                                                                    |
>                                                             52 days
>                                                             til
>                                                             JavaLand 2015
>                                                                    |
>                                                             62 days
>                                                             til
>                                                             CONFESS 2015
>
>                                                          _______________________________________________
>                                                                cdi-dev
>                                                         mailing list
>                                                         cdi-dev at lists.jboss.org
>                                                         <mailto:cdi-dev at lists.jboss.org>
>                                                         https://lists.jboss.org/mailman/listinfo/cdi-dev
>
>                                                                Note
>                                                         that for all
>                                                         code provided
>                                                         on this list, the
>
>                                     provider licenses
>
>                                                  the code under the
>                                             Apache License, Version 2
>                                                
>                                              (http://www.apache.org/licenses/LICENSE-2.0.html).
>                                             For all
>                                             other
>                                             ideas
>
>                                     provided
>
>                                                  on this list, the
>                                             provider waives all patent
>                                             and other
>                                             intellectual
>
>                                     property
>
>                                                  rights inherent in
>                                             such information.
>
>                                                      _______________________________________________
>                                                            cdi-dev
>                                                     mailing list
>                                                     cdi-dev at lists.jboss.org
>                                                     <mailto:cdi-dev at lists.jboss.org>
>                                                     https://lists.jboss.org/mailman/listinfo/cdi-dev
>
>                                                            Note that
>                                                     for all code
>                                                     provided on this
>                                                     list, the provider
>
>                                     licenses the
>
>                                                  code under the Apache
>                                             License, Version 2
>                                                
>                                              (http://www.apache.org/licenses/LICENSE-2.0.html).
>                                             For all
>                                             other
>                                             ideas
>
>                                     provided
>
>                                                  on this list, the
>                                             provider waives all patent
>                                             and other
>                                             intellectual
>
>                                     property
>
>                                                  rights inherent in
>                                             such information.
>
>                                                      
>                                                  _______________________________________________
>                                                        cdi-dev mailing
>                                                 list
>                                                 cdi-dev at lists.jboss.org <mailto:cdi-dev at lists.jboss.org>
>                                                 https://lists.jboss.org/mailman/listinfo/cdi-dev
>
>                                                        Note that for
>                                                 all code provided on
>                                                 this list, the provider
>
>                                     licenses the
>
>                                                  code under the Apache
>                                             License, Version 2
>                                                
>                                              (http://www.apache.org/licenses/LICENSE-2.0.html).
>                                             For all
>                                             other
>                                             ideas
>
>                                     provided
>
>                                                  on this list, the
>                                             provider waives all patent
>                                             and other
>                                             intellectual
>
>                                     property
>
>                                                  rights inherent in
>                                             such information.
>
>
>                                                
>                                              _______________________________________________
>                                                  cdi-dev mailing list
>                                             cdi-dev at lists.jboss.org
>                                             <mailto:cdi-dev at lists.jboss.org>
>                                             https://lists.jboss.org/mailman/listinfo/cdi-dev
>
>                                                  Note that for all
>                                             code provided on this
>                                             list, the provider
>                                             licenses
>                                             the
>
>                                     code
>
>                                                  under the Apache
>                                             License, Version 2
>                                                
>                                              (http://www.apache.org/licenses/LICENSE-2.0.html).
>                                             For all
>                                             other
>                                             ideas
>
>                                     provided
>
>                                                  on this list, the
>                                             provider waives all patent
>                                             and other
>                                             intellectual
>
>                                     property
>
>                                                  rights inherent in
>                                             such information.
>
>                                            
>                                          _______________________________________________
>                                              cdi-dev mailing list
>                                         cdi-dev at lists.jboss.org
>                                         <mailto:cdi-dev at lists.jboss.org>
>                                         https://lists.jboss.org/mailman/listinfo/cdi-dev
>
>                                              Note that for all code
>                                         provided on this list, the
>                                         provider
>                                         licenses
>                                         the
>
>                                     code under the Apache License,
>                                     Version 2
>                                     (http://www.apache.org/licenses/LICENSE-2.0.html).
>                                     For all other
>                                     ideas
>                                     provided
>                                     on this list, the provider waives
>                                     all patent and other intellectual
>                                     property
>                                     rights inherent in such information.
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/cdi-dev/attachments/20150116/f0c0a841/attachment-0001.html 


More information about the cdi-dev mailing list