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

Mark Struberg struberg at yahoo.de
Thu Jan 15 05:11:52 EST 2015


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.

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> 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>
>>>  To: Romain Manni-Bucau <rmannibucau at gmail.com>
>>>  Cc: Cdi-dev <cdi-dev at lists.jboss.org>; Edward Burns 
> <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>
>>>  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>:
>>>>>    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> 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 | 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
>>>>>>   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
>>>>>   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
>>>>   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
>>>  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
>>  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.
> 


More information about the cdi-dev mailing list