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

Jozef Hartinger jharting at redhat.com
Thu Jan 15 04:46:53 EST 2015


The @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