[cdi-dev] Injection with heritage and CDI

Martin Kouba mkouba at redhat.com
Mon Jul 10 05:13:55 EDT 2017


Hi all,

I think Romain's workaround would not work for the second injection 
point, i.e. for @Inject @FerrariQualifier Car ferrari because 
@Typed(SportCar.class) DefaultSportCar would remove the Car from the 
bean types of DefaultSportCar.

I agree that it looks like an incorrect usage of qualifiers though.

Martin

Dne 8.7.2017 v 16:36 Romain Manni-Bucau napsal(a):
> Hi Otavio
> 
> Not sure it firts cdi-dev bit you can @Default @Ferrari 
> @Typed(SportCar.class) the nice red car to exclude it from Car type and 
> keep Car injection using DefaultCar and SportCar using the ferrari or 
> implicit default qualifier.
> 
> But the sample sounds like a misusage of qualifier so maybe check it is 
> really what you and to do.
> 
> 
> Le 8 juil. 2017 16:27, "Otávio Gonçalves de Santana" 
> <otaviopolianasantana at gmail.com <mailto:otaviopolianasantana at gmail.com>> 
> a écrit :
> 
> 
>     Hey, I have a question about heritage and CDI.
>     Given two interfaces:
> 
>       * Car interface
>       * SportCar that extends Car
> 
> 
>     interface  Car{
>     }
> 
>     interface  SportCarextends  Car{
>     }
> 
> 
>     class  DefaultCarimplements  Car{
>     }
> 
>     @FerrariQualifier
>     class  DefaultSportCarimplements  SportCar{
>     }
> 
>     What I would like to inject:
> 
>     @Inject
>     private  Car car;  //inject DefaultCar
> 
>     @Inject
>     @FerrariQualifier
>     private  Car ferrari;  //inject DefaultSportCar
> 
> 
>     @Inject
>     private  SportCar sportCar;//inject DefaultSportCar
> 
> 
> 
>     How can I do that?
> 
>     -- 
>     Otávio Gonçalves de Santana
> 
> 
>     twitter: http://twitter.com/otaviojava <http://twitter.com/otaviojava>
>     site: _http://about.me/otaviojava_
> 
> 
>     _______________________________________________
>     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
>     <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
>     <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.
> 

-- 
Martin Kouba
Senior Software Engineer
Red Hat, Czech Republic


More information about the cdi-dev mailing list