[cdi-dev] Challenge TCK test for indirect specialization rules

Martin Kouba mkouba at redhat.com
Wed Jun 4 02:43:17 EDT 2014


Dne 3.6.2014 14:42, Mark Struberg napsal(a):
>> if the intention was not to ignore the beans in-between, 
>> then the rule for indirect specialization seems quite redundant to me.
> 
> Exactly. Also please note that we usually define the things which shall work and do not define all things which are excluded. And if we do, then we define '... a DeploymentError has to be thrown' or similar.
> 
> The complete indirect specialization section would be totally redundant and thus useless if leaving out all 'intermediate' @Specialized beans would not have been intended.
> If it would have been intended as 'transitive' then this could have been written much easier.
> 
> Please also note that the TCK for CDI-1.0 did NOT cover this in that way and also old Weld implementations did not behave that way.

Not an argument. CDI TCK 1.0 did not cover a lot of things (compare ~830
tests in TCK 1.0 vs ~1530 tests in TCK 1.1) and many parts were not
covered properly. The same for RI - there was a lot of bugs in weld 1.x.

> To me this seems to be purely an introduction of Weld-2.0 but it's neither backed by the spec nor by the old TCK...

I do think it is covered by the spec. If we get some reasonable
arguments and acknowledgment from EG we're ready to fix/exclude the tests.

> 
> So please remove the respective tests from the TCK and let's file this into non-portable. It's not ok to have a TCK test for things which are neither backed by the spec nor did work that way in various CDI-1.0 implementations (including Weld itself).
> 
> LieGrue,
> strub
> 
> --------------------------------------------
> On Tue, 3/6/14, Jozef Hartinger <jharting at redhat.com> wrote:
> 
>  Subject: Re: [cdi-dev] Challenge TCK test for indirect specialization rules
>  To: "Mark Struberg" <struberg at yahoo.de>, cdi-dev at lists.jboss.org
>  Date: Tuesday, 3 June, 2014, 12:05
>  
>  The way I read it is that
>  the "indirect specialization" part is just a 
>  different way of saying that specialization is
>  transitive. From that it 
>  is apparent that
>  you cannot just leave out the bean in the middle.
>  
>  Jozef
>  
>  On
>  06/03/2014 10:37 AM, Mark Struberg wrote:
>  > Hi!
>  >
>  > The question is about
>  >
>  org.jboss.cdi.tck.tests.inheritance.specialization.simple.SimpleBeanSpecializationTest#testSpecializingBeanHasNameOfSpecializedBean
>  > and a few other tests in there.
>  >
>  > Imo they directly
>  contradict 4.3.1 of the spec:
>  >
>  > -------
>  > Formally, a
>  bean X is said to specialize another bean Y if either:
>  > • X directly specializes Y, or
>  > • a bean Z exists, such that X directly
>  specializes Z and Z specializes Y. Then X will inherit the
>  qualifiers and bean name of Y:
>  > • the
>  qualifiers of X include all qualifiers of Y, together with
>  all qualifiers declared explicitly by X, and
>  > • if Y has a bean name, the bean name of
>  X is the same as the bean name of Y.
>  >
>  -------
>  >
>  > in this
>  wording the 'intermediate class' Z in the
>  inheritance chain X -> Z -> Y intentionally gets
>  ignored imo.
>  > It explicitly doesn't
>  say that 'all @Specializes up in the chain' do
>  account for the name and qualifiers.
>  >
>  > To me it reads like the 'last'
>  (outermost) @Specializes and the 'first'
>  non-specializes beans do count. All @Specializes beans
>  in-between get ignored when it comes to @Named and
>  @Qualifier resolution.
>  > There was imo
>  also a test for it in the CDI-1.0 TCK which we did
>  successfully pass. But obviously this got rewritten to a
>  different behavior.
>  >
>  >
>  > Here is the
>  transcript of my discussion with martin and jozef so far:
>  > http://transcripts.jboss.org/channel/irc.freenode.org/%23jsr346/2014/%23jsr346.2014-06-03.log.html
>  >
>  > txs and LieGrue,
>  > strub
>  >
>  >
>  _______________________________________________
>  > cdi-dev mailing list
>  >
>  cdi-dev at lists.jboss.org
>  > https://lists.jboss.org/mailman/listinfo/cdi-dev
>  
> 
> _______________________________________________
> cdi-dev mailing list
> cdi-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/cdi-dev
> 



More information about the cdi-dev mailing list