[cdi-dev] Answer from EL spec lead: no, "." is not valid in an EL name.
Jozef Hartinger
jharting at redhat.com
Thu Jan 15 05:22:44 EST 2015
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> 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