package org.jboss.weld.tests.producer.weld1368; import javax.enterprise.inject.Produces; import javax.enterprise.inject.Specializes; import javax.enterprise.inject.Typed; /** * See http://issues.jboss.org/browse/WELD-1368 * * @author tremes * */ public class SpecializedProducer { @Typed public static class TestBean1 { } public static class TestProducer1 { @Produces public TestBean1 testBean() { return new TestBean1(); } } @Typed public static class TestBean2 extends TestBean1 { } public static class TestProducer2 extends TestProducer1 { public void anyMethod() { } @Produces @Specializes @Override public TestBean2 testBean() { return new TestBean2(); } } @Typed public static class TestBean3 extends TestBean2 { } public static class TestProducer3 extends TestProducer2 { @Produces @Specializes @Override public TestBean3 testBean() { return new TestBean3(); } } }