Hello, in my Project I use a ServletContextListener to execute Code after
the Application is deployed. 
I have a interface “StartListener” with a single Metod, void onStart(), and
all classes that implement this interface are injected in my
ServletContextListener with @Inject @All. 
In a Loop I execute the onStart() Method of every StartListener. 

It works as expected. 
In my Sample Project I have 3 classes (StartListenerImpl1 –
StartListenerImpl3) that implement the interface and just log their name. So
if I deploy the Application I see in the log: 


Now I add another class SpecialStartListenerImpl that extends
StartListenerImpl1. I annotate it with @Specializes overwrite the onStart()
Method to log SpecialStartListenerImpl and deploy the application. 

What I expect to see in the log:



What is in the logs if I deploy the application to Tomee 1.6



StartListenerImpl2 and StartListenerImpl3 were not instantiate and not
injected in the ServletContextListener. @Specializes did not only deactivate
StartListenerImpl1 but also StartListenerImpl2 and StartListenerImpl3. This
is of course not what I wanted. 

If I deploy the same application on Glassfish 4.0 I get what I expect: 


Is this a OpenWebBeans Issue? Should I create a Bugreport? I attached my
demo project as example. 
Webmodul.zip
<http://openejb.979440.n4.nabble.com/file/n4665967/Webmodul.zip>  




--
View this message in context: 
http://openejb.979440.n4.nabble.com/Weird-Behavior-with-Specializes-and-Inject-Any-tp4665967.html
Sent from the OpenEJB User mailing list archive at Nabble.com.

Reply via email to