Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooFooNamed.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFooNamed.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooFooNamed.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooFooNamed.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFooNamed.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFooNamed.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooFooNamed.java Sat Apr 14 01:09:09 2018 @@ -12,13 +12,15 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctorstaticreluctant; import javax.inject.Inject; +import javax.inject.Named; +import org.apache.aries.cdi.container.test.beans.Foo; import org.osgi.service.cdi.annotations.Reference; public class CtorFooFooNamed { @Inject - public CtorFooFooNamed(@Reference(name = "foo_a") Foo foo_a, @Reference(name = "foo_b") Foo foo_b) {} + public CtorFooFooNamed(@Reference @Named("foo_a") Foo foo_a, @Reference @Named("foo_b") Foo foo_b) {} } \ No newline at end of file
Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooNamed.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooNamed.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooNamed.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooNamed.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooNamed.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooNamed.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooNamed.java Sat Apr 14 01:09:09 2018 @@ -12,13 +12,15 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctorstaticreluctant; import javax.inject.Inject; +import javax.inject.Named; +import org.apache.aries.cdi.container.test.beans.Foo; import org.osgi.service.cdi.annotations.Reference; public class CtorFooNamed { @Inject - public CtorFooNamed(@Reference(name = "_foo_") Foo foo) {} + public CtorFooNamed(@Reference @Named("_foo_") Foo foo) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooOptional.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooOptional.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooOptional.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooOptional.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooOptional.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooOptional.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooOptional.java Sat Apr 14 01:09:09 2018 @@ -12,14 +12,16 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctorstaticreluctant; + +import java.util.Optional; import javax.inject.Inject; +import org.apache.aries.cdi.container.test.beans.Foo; import org.osgi.service.cdi.annotations.Reference; -import org.osgi.service.cdi.annotations.ReferenceCardinality; public class CtorFooOptional { @Inject - public CtorFooOptional(@Reference(cardinality = ReferenceCardinality.OPTIONAL) Foo foo) {} + public CtorFooOptional(@Reference Optional<Foo> foo) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorListFoo.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorListFoo.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorListFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorListFoo.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorListFoo.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorListFoo.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorListFoo.java Sat Apr 14 01:09:09 2018 @@ -12,12 +12,13 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctorstaticreluctant; import java.util.List; import javax.inject.Inject; +import org.apache.aries.cdi.container.test.beans.Foo; import org.osgi.service.cdi.annotations.Reference; public class CtorListFoo { Copied: aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.Bar.xml (from r1828903, aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.Bar.xml?p2=aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.Bar.xml&p1=aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml (original) +++ aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.Bar.xml Sat Apr 14 01:09:09 2018 @@ -15,6 +15,7 @@ */ --> -<beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0"> - <cdi:component class="org.apache.aries.cdi.container.test.beans.BarBadlyAnnotated" /> -</beans> \ No newline at end of file +<cdi:bean + xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0" + class="org.apache.aries.cdi.container.test.beans.Bar" +/> Copied: aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.BarAnnotated.xml (from r1828903, aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.BarAnnotated.xml?p2=aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.BarAnnotated.xml&p1=aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml (original) +++ aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.BarAnnotated.xml Sat Apr 14 01:09:09 2018 @@ -15,7 +15,6 @@ */ --> -<beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0"> - <cdi:component class="org.apache.aries.cdi.container.test.beans.Bar" /> - <cdi:component class="org.apache.aries.cdi.container.test.beans.Foo" /> -</beans> \ No newline at end of file +<cdi:bean + xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0" + class="org.apache.aries.cdi.container.test.beans.BarAnnotated" /> Copied: aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.BarBadlyAnnotated.xml (from r1828903, aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-annotated.xml) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.BarBadlyAnnotated.xml?p2=aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.BarBadlyAnnotated.xml&p1=aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-annotated.xml&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-annotated.xml (original) +++ aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.BarBadlyAnnotated.xml Sat Apr 14 01:09:09 2018 @@ -15,7 +15,6 @@ */ --> -<beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0"> - <cdi:component class="org.apache.aries.cdi.container.test.beans.BarAnnotated" /> - <cdi:component class="org.apache.aries.cdi.container.test.beans.FooAnnotated" /> -</beans> \ No newline at end of file +<cdi:bean + xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0" + class="org.apache.aries.cdi.container.test.beans.BarBadlyAnnotated" /> Copied: aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.FooAnnotated.xml (from r1828903, aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.FooAnnotated.xml?p2=aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.FooAnnotated.xml&p1=aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml (original) +++ aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.FooAnnotated.xml Sat Apr 14 01:09:09 2018 @@ -15,6 +15,6 @@ */ --> -<beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0"> - <cdi:component class="org.apache.aries.cdi.container.test.beans.BarBadlyAnnotated" /> -</beans> \ No newline at end of file +<cdi:bean + xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0" + class="org.apache.aries.cdi.container.test.beans.FooAnnotated" /> Copied: aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.FooService.xml (from r1828903, aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.FooService.xml?p2=aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.FooService.xml&p1=aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml (original) +++ aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.FooService.xml Sat Apr 14 01:09:09 2018 @@ -15,6 +15,6 @@ */ --> -<beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0"> - <cdi:component class="org.apache.aries.cdi.container.test.beans.BarBadlyAnnotated" /> -</beans> \ No newline at end of file +<cdi:bean + xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0" + class="org.apache.aries.cdi.container.test.beans.FooService" /> Modified: aries/trunk/cdi/cdi-extension-http/bnd.bnd URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extension-http/bnd.bnd?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extension-http/bnd.bnd (original) +++ aries/trunk/cdi/cdi-extension-http/bnd.bnd Sat Apr 14 01:09:09 2018 @@ -1,5 +1,9 @@ Bundle-Activator: org.apache.aries.cdi.extension.http.Activator -Provide-Capability: osgi.cdi.extension;osgi.cdi.extension=http;version:Version="${Bundle-Version}" +Provide-Capability: \ + osgi.cdi.extension;\ + osgi.cdi.extension=http;\ + implementation="org.apache.aries.cdi.extension.http.HttpExtension";\ + version:Version="${Bundle-Version}" Require-Capability:\ osgi.implementation;filter:='(&(osgi.implementation=osgi.cdi)(version>=0.0.1)(!(version>=1.0.0)))',\ osgi.implementation;filter:="(&(osgi.implementation=osgi.http)(version>=1.0)(!(version>=2.0)))" Modified: aries/trunk/cdi/cdi-extension-jndi/bnd.bnd URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extension-jndi/bnd.bnd?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extension-jndi/bnd.bnd (original) +++ aries/trunk/cdi/cdi-extension-jndi/bnd.bnd Sat Apr 14 01:09:09 2018 @@ -1,5 +1,9 @@ Bundle-Activator: org.apache.aries.cdi.extension.jndi.Activator -Provide-Capability: osgi.cdi.extension;osgi.cdi.extension=jndi;version:Version="${Bundle-Version}" +Provide-Capability: \ + osgi.cdi.extension;\ + osgi.cdi.extension=jndi;\ + implementation="org.apache.aries.cdi.extension.jndi.JndiExtension";\ + version:Version="${Bundle-Version}" Require-Capability:\ osgi.implementation;filter:='(&(osgi.implementation=osgi.cdi)(version>=0.0.1)(!(version>=1.0.0)))' -contract: JavaCDI Modified: aries/trunk/cdi/cdi-itests/logback.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/logback.xml?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/logback.xml (original) +++ aries/trunk/cdi/cdi-itests/logback.xml Sat Apr 14 01:09:09 2018 @@ -14,4 +14,4 @@ <root level="ERROR"> <appender-ref ref="STDOUT" /> </root> -</configuration> \ No newline at end of file +</configuration> Modified: aries/trunk/cdi/cdi-itests/pom.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/pom.xml?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/pom.xml (original) +++ aries/trunk/cdi/cdi-itests/pom.xml Sat Apr 14 01:09:09 2018 @@ -104,6 +104,11 @@ <dependencies> <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.util.promise</artifactId> + <version>1.1.0-SNAPSHOT</version> + </dependency> + <dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> <version>1.7.25</version> Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/CdiEventObserver.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/CdiEventObserver.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/CdiEventObserver.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/CdiEventObserver.java Sat Apr 14 01:09:09 2018 @@ -17,16 +17,16 @@ package org.apache.aries.cdi.test.beans; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; +import javax.enterprise.context.ApplicationScoped; import javax.enterprise.event.Observes; -import javax.inject.Singleton; +import javax.enterprise.inject.Any; import org.apache.aries.cdi.test.interfaces.BeanService; import org.apache.aries.cdi.test.interfaces.CdiEventObserverQualifier; -import org.osgi.service.cdi.CdiEvent; @CdiEventObserverQualifier -@Singleton -public class CdiEventObserver implements BeanService<List<CdiEvent>> { +@ApplicationScoped +public class CdiEventObserver implements BeanService<List<Object>> { @Override public String doSomething() { @@ -34,14 +34,14 @@ public class CdiEventObserver implements } @Override - public List<CdiEvent> get() { + public List<Object> get() { return events; } - public void onAnyDocumentEvent(@Observes CdiEvent event) { + public void onAnyDocumentEvent(@Observes @Any Object event) { events.add(event); } - private final List<CdiEvent> events = new CopyOnWriteArrayList<>(); + private final List<Object> events = new CopyOnWriteArrayList<>(); } Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ConstructorInjectedService.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ConstructorInjectedService.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ConstructorInjectedService.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ConstructorInjectedService.java Sat Apr 14 01:09:09 2018 @@ -19,12 +19,10 @@ import javax.inject.Inject; import org.apache.aries.cdi.test.interfaces.BeanService; import org.apache.aries.cdi.test.interfaces.Pojo; import org.osgi.service.cdi.annotations.Component; -import org.osgi.service.cdi.annotations.ServiceScope; +import org.osgi.service.cdi.annotations.Service; -@Component( - service = {ConstructorInjectedService.class, BeanService.class}, - scope = ServiceScope.SINGLETON -) +@Component +@Service({ConstructorInjectedService.class, BeanService.class}) public class ConstructorInjectedService implements BeanService<Pojo> { @Inject Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedBundleScopedImpl.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedBundleScopedImpl.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedBundleScopedImpl.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedBundleScopedImpl.java Sat Apr 14 01:09:09 2018 @@ -25,13 +25,10 @@ import org.apache.aries.cdi.test.interfa import org.osgi.framework.ServiceReference; import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Reference; -import org.osgi.service.cdi.annotations.ReferenceScope; -import org.osgi.service.cdi.annotations.ServiceScope; +import org.osgi.service.cdi.annotations.Service; -@Component( - service = {FieldInjectedBundleScopedImpl.class, FieldInjectedReference.class}, - scope = ServiceScope.SINGLETON -) +@Component +@Service({FieldInjectedBundleScopedImpl.class, FieldInjectedReference.class}) public class FieldInjectedBundleScopedImpl implements FieldInjectedReference<BundleScoped> { @Inject @@ -39,15 +36,11 @@ public class FieldInjectedBundleScopedIm private ServiceReference<BundleScoped> genericReference; @Inject - @Reference(service = BundleScoped.class, target = "(key=value)") + @Reference(value = BundleScoped.class, target = "(key=value)") private Map<String, Object> properties; @Inject - @Reference( - scope = ReferenceScope.BUNDLE, - service = BundleScoped.class, - target = "(key=value)" - ) + @Reference(value = BundleScoped.class, target = "(key=value)") @SuppressWarnings("rawtypes") private ServiceReference rawReference; Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedPrototypeScopedImpl.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedPrototypeScopedImpl.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedPrototypeScopedImpl.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedPrototypeScopedImpl.java Sat Apr 14 01:09:09 2018 @@ -25,13 +25,10 @@ import org.apache.aries.cdi.test.interfa import org.osgi.framework.ServiceReference; import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Reference; -import org.osgi.service.cdi.annotations.ReferenceScope; -import org.osgi.service.cdi.annotations.ServiceScope; +import org.osgi.service.cdi.annotations.Service; -@Component( - service = {FieldInjectedPrototypeScopedImpl.class, FieldInjectedReference.class}, - scope = ServiceScope.SINGLETON -) +@Component +@Service({FieldInjectedPrototypeScopedImpl.class, FieldInjectedReference.class}) public class FieldInjectedPrototypeScopedImpl implements FieldInjectedReference<PrototypeScoped> { @Inject @@ -39,15 +36,11 @@ public class FieldInjectedPrototypeScope private ServiceReference<PrototypeScoped> genericReference; @Inject - @Reference(service = PrototypeScoped.class, target = "(key=value)") + @Reference(value = PrototypeScoped.class, target = "(key=value)") private Map<String, Object> properties; @Inject - @Reference( - scope = ReferenceScope.PROTOTYPE, - service = PrototypeScoped.class, - target = "(key=value)" - ) + @Reference(value = PrototypeScoped.class, target = "(key=value)") @SuppressWarnings("rawtypes") private ServiceReference rawReference; Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedService.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedService.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedService.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedService.java Sat Apr 14 01:09:09 2018 @@ -19,12 +19,10 @@ import javax.inject.Inject; import org.apache.aries.cdi.test.interfaces.BeanService; import org.apache.aries.cdi.test.interfaces.Pojo; import org.osgi.service.cdi.annotations.Component; -import org.osgi.service.cdi.annotations.ServiceScope; +import org.osgi.service.cdi.annotations.Service; -@Component( - service = {FieldInjectedService.class, BeanService.class}, - scope = ServiceScope.SINGLETON -) +@Component +@Service({FieldInjectedService.class, BeanService.class}) public class FieldInjectedService implements BeanService<Pojo> { @Override Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_Optional.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_Optional.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_Optional.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_Optional.java Sat Apr 14 01:09:09 2018 @@ -14,7 +14,7 @@ package org.apache.aries.cdi.test.beans; -import java.util.Iterator; +import java.util.Collection; import java.util.concurrent.Callable; import javax.enterprise.inject.Instance; @@ -23,33 +23,33 @@ import javax.inject.Inject; import org.apache.aries.cdi.test.interfaces.BeanService; import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Reference; -import org.osgi.service.cdi.annotations.ReferenceCardinality; -import org.osgi.service.cdi.annotations.ServiceScope; +import org.osgi.service.cdi.annotations.Service; -@Component( - service = {BeanService.class, Instance_Optional.class}, - scope = ServiceScope.SINGLETON -) +@Component +@Service({BeanService.class, Instance_Optional.class}) +@SuppressWarnings("rawtypes") public class Instance_Optional implements BeanService<Callable<String>> { @Override public String doSomething() { int count = 0; - for (Iterator<?> iterator = _instance.iterator();iterator.hasNext();) { - System.out.println(iterator.next()); + Collection<Callable> callables = _instance.get(); + for (Callable callable : callables) { + System.out.println(callable); count++; } return String.valueOf(count); } @Override + @SuppressWarnings("unchecked") public Callable<String> get() { - Iterator<Callable<String>> iterator = _instance.iterator(); - return iterator.hasNext() ? iterator.next() : null; + Collection<Callable> iterator = _instance.get(); + return iterator.iterator().next(); } @Inject - @Reference(cardinality = ReferenceCardinality.MULTIPLE) - Instance<Callable<String>> _instance; + @Reference + Instance<Collection<Callable>> _instance; } Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceProperties.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceProperties.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceProperties.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceProperties.java Sat Apr 14 01:09:09 2018 @@ -19,19 +19,14 @@ import java.util.Map; import javax.enterprise.inject.Instance; import javax.inject.Inject; -import javax.inject.Singleton; import org.apache.aries.cdi.test.interfaces.BeanService; -import org.apache.aries.cdi.test.interfaces.SingletonScoped; import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Reference; -import org.osgi.service.cdi.annotations.ReferenceCardinality; -import org.osgi.service.cdi.annotations.ServiceScope; +import org.osgi.service.cdi.annotations.Service; -@Component( - service = {BeanService.class, Instance_ServiceProperties.class}, - scope = ServiceScope.SINGLETON -) +@Component +@Service({BeanService.class, Instance_ServiceProperties.class}) public class Instance_ServiceProperties implements BeanService<Map<String, Object>> { @Override @@ -50,7 +45,7 @@ public class Instance_ServiceProperties } @Inject - @Reference(service = SingletonScoped.class) + @Reference Instance<Map<String, Object>> _instance; } Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceReference.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceReference.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceReference.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceReference.java Sat Apr 14 01:09:09 2018 @@ -24,13 +24,10 @@ import org.apache.aries.cdi.test.interfa import org.osgi.framework.ServiceReference; import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Reference; -import org.osgi.service.cdi.annotations.ReferenceCardinality; -import org.osgi.service.cdi.annotations.ServiceScope; +import org.osgi.service.cdi.annotations.Service; -@Component( - service = {BeanService.class, Instance_ServiceReference.class}, - scope = ServiceScope.SINGLETON -) +@Component +@Service({BeanService.class, Instance_ServiceReference.class}) @SuppressWarnings("rawtypes") public class Instance_ServiceReference implements BeanService<ServiceReference> { @@ -50,7 +47,7 @@ public class Instance_ServiceReference i } @Inject - @Reference(service = SingletonScoped.class) + @Reference(SingletonScoped.class) Instance<ServiceReference> _instance; } Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/MethodInjectedService.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/MethodInjectedService.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/MethodInjectedService.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/MethodInjectedService.java Sat Apr 14 01:09:09 2018 @@ -19,12 +19,10 @@ import javax.inject.Inject; import org.apache.aries.cdi.test.interfaces.BeanService; import org.apache.aries.cdi.test.interfaces.Pojo; import org.osgi.service.cdi.annotations.Component; -import org.osgi.service.cdi.annotations.ServiceScope; +import org.osgi.service.cdi.annotations.Service; -@Component( - service = {MethodInjectedService.class, BeanService.class}, - scope = ServiceScope.SINGLETON -) +@Component +@Service({MethodInjectedService.class, BeanService.class}) public class MethodInjectedService implements BeanService<Pojo> { @Inject Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ServiceWithProperties.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ServiceWithProperties.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ServiceWithProperties.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ServiceWithProperties.java Sat Apr 14 01:09:09 2018 @@ -14,142 +14,51 @@ package org.apache.aries.cdi.test.beans; -import java.lang.annotation.ElementType; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import javax.inject.Inject; import javax.inject.Qualifier; -import javax.inject.Singleton; -import org.apache.aries.cdi.test.beans.ServiceWithProperties.MoreProperties; import org.apache.aries.cdi.test.interfaces.BeanService; import org.apache.aries.cdi.test.interfaces.Pojo; import org.osgi.service.cdi.annotations.Component; -import org.osgi.service.cdi.annotations.ServiceScope; - -@Component( - property = { - "test.key.b1=test.value.b1", - "test.key.b2=test.value.b2", - - "p.Boolean:Boolean=true", - "p.Boolean.array:Boolean=true", - "p.Boolean.array:Boolean=false", - - "p.Boolean.list:List<Boolean>=false", - "p.Boolean.list:List<Boolean>=true", - - "p.Boolean.set:Set<Boolean>=true", - "p.Boolean.set:Set<Boolean>=true", - "p.Boolean.set:Set<Boolean>=false", - - "p.Byte:Byte=2", - - "p.Byte.array:Byte=2", - "p.Byte.array:Byte=34", - - "p.Byte.list:List<Byte>=34", - "p.Byte.list:List<Byte>=2", - - "p.Byte.set:Set<Byte>=34", - "p.Byte.set:Set<Byte>=34", - "p.Byte.set:Set<Byte>=2", - - "p.Character:Character=C", - - "p.Character.array:Character=C", - "p.Character.array:Character=D", - - "p.Character.list:List<Character>=D", - "p.Character.list:List<Character>=C", - - "p.Character.set:Set<Character>=D", - "p.Character.set:Set<Character>=D", - "p.Character.set:Set<Character>=C", - - "p.Double:Double=2.5", - - "p.Double.array:Double=2.5", - "p.Double.array:Double=45.678", - - "p.Double.list:List<Double>=45.678", - "p.Double.list:List<Double>=2.5", - - "p.Double.set:Set<Double>=45.678", - "p.Double.set:Set<Double>=45.678", - "p.Double.set:Set<Double>=2.5", - - "p.Float:Float=3.4", - - "p.Float.array:Float=3.4", - "p.Float.array:Float=78.9", +import org.osgi.service.cdi.annotations.Service; - "p.Float.list:List<Float>=78.9", - "p.Float.list:List<Float>=3.4", - - "p.Float.set:Set<Float>=78.9", - "p.Float.set:Set<Float>=78.9", - "p.Float.set:Set<Float>=3.4", - - "p.Integer:Integer=5", - - "p.Integer.array:Integer=5", - "p.Integer.array:Integer=34567", - - "p.Integer.list:List<Integer>=34567", - "p.Integer.list:List<Integer>=5", - - "p.Integer.set:Set<Integer>=34567", - "p.Integer.set:Set<Integer>=34567", - "p.Integer.set:Set<Integer>=5", - - "p.Long:Long=7", - - "p.Long.array:Long=7", - "p.Long.array:Long=7789654", - - "p.Long.list:List<Long>=7789654", - "p.Long.list:List<Long>=7", - - "p.Long.set:Set<Long>=7789654", - "p.Long.set:Set<Long>=7789654", - "p.Long.set:Set<Long>=7", - - "p.Short:Short=25", - - "p.Short.array:Short=25", - "p.Short.array:Short=196", - - "p.Short.list:List<Short>=196", - "p.Short.list:List<Short>=25", - - "p.Short.set:Set<Short>=196", - "p.Short.set:Set<Short>=196", - "p.Short.set:Set<Short>=25", - - "p.String=black", - - "p.String.array=black", - "p.String.array=green", - - "p.String.list:List<String>=green", - "p.String.list:List<String>=black", - - "p.String.set:Set<String>=green", - "p.String.set:Set<String>=green", - "p.String.set:Set<String>=black" - }, - service = {ServiceWithProperties.class, BeanService.class}, - scope = ServiceScope.SINGLETON -) -@MoreProperties(glub_integer = 45, goo_string = "green") +@Component +@Service({ServiceWithProperties.class, BeanService.class}) +@ServiceWithProperties.Props +@ServiceWithProperties.MoreProperties(glub_integer = 45, goo_string = "green") public class ServiceWithProperties implements BeanService<Pojo> { - @Qualifier - @Retention(value = RetentionPolicy.RUNTIME) - @Target(value = { ElementType.TYPE }) + @Qualifier @Retention(RUNTIME) @Target(TYPE) + public @interface Props { + String test_key_b1() default "test.value.b1"; + String test_key_b2() default "test.value.b2"; + boolean p_Boolean() default true; + boolean[] p_Boolean_array() default {true, false}; + byte p_Byte() default 2; + byte[] p_Byte_array() default {2, 34}; + char p_Character() default 'C'; + char[] p_Character_array() default {'C', 'D'}; + double p_Double() default 2.5; + double[] p_Double_array() default {2.5, 45.678}; + float p_Float() default 3.4f; + float[] p_Float_array() default {3.4f, 78.9f}; + int p_Integer() default 5; + int[] p_Integer_array() default {5, 34567}; + long p_Long() default 7l; + long[] p_Long_array() default {7l, 7789654l}; + short p_Short() default 25; + short[] p_Short_array() default {25, 196}; + String p_String() default "black"; + String[] p_String_array() default {"black", "green"}; + } + + @Qualifier @Retention(RUNTIME) @Target(TYPE ) public @interface MoreProperties { String goo_string(); int glub_integer(); Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java Sat Apr 14 01:09:09 2018 @@ -19,14 +19,13 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.Callable; import javax.enterprise.context.spi.CreationalContext; import javax.enterprise.inject.Any; import javax.enterprise.inject.spi.Bean; import javax.enterprise.inject.spi.BeanManager; -import javax.enterprise.util.AnnotationLiteral; -import org.apache.aries.cdi.test.interfaces.Pojo; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.Filter; @@ -36,8 +35,10 @@ import org.osgi.framework.wiring.BundleW import org.osgi.framework.wiring.BundleWiring; import org.osgi.namespace.extender.ExtenderNamespace; import org.osgi.service.cdi.CdiConstants; -import org.osgi.service.cdi.CdiContainer; -import org.osgi.service.cdi.CdiEvent; +import org.osgi.service.cdi.runtime.CdiRuntime; +import org.osgi.service.cdi.runtime.dto.ContainerDTO; +import org.osgi.util.promise.Promise; +import org.osgi.util.promise.PromiseFactory; import org.osgi.util.tracker.ServiceTracker; import junit.framework.TestCase; @@ -50,26 +51,31 @@ public class AbstractTestCase extends Te servicesBundle.start(); cdiBundle = bundleContext.installBundle("basic-beans.jar" , getBundle("basic-beans.jar")); cdiBundle.start(); + + runtimeTracker = new ServiceTracker<>(bundleContext, CdiRuntime.class, null); + runtimeTracker.open(); + cdiRuntime = runtimeTracker.waitForService(timeout); } @Override protected void tearDown() throws Exception { + runtimeTracker.close(); cdiBundle.uninstall(); servicesBundle.uninstall(); } - void assertPojoExists(BeanManager beanManager) { - Set<Bean<?>> beans = beanManager.getBeans(Pojo.class, any); + void assertBeanExists(Class<?> clazz, BeanManager beanManager) { + Set<Bean<?>> beans = beanManager.getBeans(clazz, Any.Literal.INSTANCE); assertFalse(beans.isEmpty()); Iterator<Bean<?>> iterator = beans.iterator(); Bean<?> bean = iterator.next(); - assertTrue(Pojo.class.isAssignableFrom(bean.getBeanClass())); + assertTrue(clazz.isAssignableFrom(bean.getBeanClass())); assertFalse(iterator.hasNext()); bean = beanManager.resolve(beans); CreationalContext<?> ctx = beanManager.createCreationalContext(bean); - Pojo pojo = (Pojo)beanManager.getReference(bean, Pojo.class, ctx); + Object pojo = clazz.cast(beanManager.getReference(bean, clazz, ctx)); assertNotNull(pojo); } @@ -98,18 +104,6 @@ public class AbstractTestCase extends Te return null; } - ServiceTracker<CdiContainer, CdiContainer> getServiceTracker(long bundleId) throws InvalidSyntaxException { - Filter filter = bundleContext.createFilter( - "(&(objectClass=" + CdiContainer.class.getName() + ")(service.bundleid=" + bundleId + ")(" + - CdiConstants.CDI_CONTAINER_STATE + "=" + CdiEvent.Type.CREATED + "))"); - - ServiceTracker<CdiContainer, CdiContainer> serviceTracker = new ServiceTracker<>(bundleContext, filter, null); - - serviceTracker.open(); - - return serviceTracker; - } - public Bundle installBundle(String url) throws Exception { return installBundle(url, true); } @@ -124,17 +118,56 @@ public class AbstractTestCase extends Te return b; } - CdiContainer waitForCdiContainer() throws Exception { - return waitForCdiContainer(bundle.getBundleId()); + Filter filter(String pattern, Object... objects) { + try { + return FrameworkUtil.createFilter(String.format(pattern, objects)); + } + catch (InvalidSyntaxException e) { + throw new RuntimeException(e.getMessage()); + } } - CdiContainer waitForCdiContainer(long bundleId) throws Exception { - return getServiceTracker(bundleId).waitForService(timeout); + BeanManager getBeanManager(Bundle bundle) throws Exception { + return getServiceTracker(bundle).waitForService(timeout); } - static final AnnotationLiteral<Any> any = new AnnotationLiteral<Any>() { - private static final long serialVersionUID = 1L; - }; + ServiceTracker<BeanManager, BeanManager> getServiceTracker(Bundle bundle) throws Exception { + ServiceTracker<BeanManager, BeanManager> serviceTracker = new ServiceTracker<>( + bundleContext, + filter( + "(&(objectclass=%s)(bundle.id=%d))", + BeanManager.class.getName(), + bundle.getBundleId()), + null); + serviceTracker.open(); + return serviceTracker; + } + + Promise<ContainerDTO> getContainerDTO() throws Exception { + return getContainerDTO(bundle); + } + + Promise<ContainerDTO> getContainerDTO(Bundle bundle) throws Exception { + final PromiseFactory factory = new PromiseFactory( + PromiseFactory.inlineExecutor()); + + Promise<ContainerDTO> promise = factory.submit(new Callable<ContainerDTO>() { + @Override + public ContainerDTO call() throws Exception { + while (!Thread.interrupted()) { + ContainerDTO containerDTO = cdiRuntime.getContainerDTO(bundle); + if (containerDTO == null) { + Thread.sleep(10); + continue; + } + return containerDTO; + } + return null; + } + }); + + return promise.timeout(timeout); + } static final Bundle bundle = FrameworkUtil.getBundle(CdiBeanTests.class); static final BundleContext bundleContext = bundle.getBundleContext(); @@ -142,6 +175,8 @@ public class AbstractTestCase extends Te Bundle cdiBundle; Bundle servicesBundle; - CdiContainer cdiContainer; + CdiRuntime cdiRuntime; + Promise<ContainerDTO> containerDTO; + ServiceTracker<CdiRuntime, CdiRuntime> runtimeTracker; } \ No newline at end of file Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiBeanTests.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiBeanTests.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiBeanTests.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiBeanTests.java Sat Apr 14 01:09:09 2018 @@ -38,7 +38,7 @@ public class CdiBeanTests extends Abstra @Override protected void setUp() throws Exception { super.setUp(); - cdiContainer = waitForCdiContainer(cdiBundle.getBundleId()); + containerDTO = getContainerDTO(cdiBundle); } public void testConstructorInjectedService() throws Exception { @@ -232,7 +232,7 @@ public class CdiBeanTests extends Abstra } public void testBundleContextInjection() throws Exception { - BeanManager beanManager = cdiContainer.getBeanManager(); + BeanManager beanManager = getBeanManager(cdiBundle); assertNotNull(beanManager); Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiContainerTests.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiContainerTests.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiContainerTests.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiContainerTests.java Sat Apr 14 01:09:09 2018 @@ -17,6 +17,7 @@ package org.apache.aries.cdi.test.cases; import javax.enterprise.inject.spi.BeanManager; import javax.enterprise.inject.spi.CDI; +import org.apache.aries.cdi.test.interfaces.Pojo; import org.osgi.framework.wiring.BundleWiring; public class CdiContainerTests extends AbstractTestCase { @@ -24,14 +25,14 @@ public class CdiContainerTests extends A @Override protected void setUp() throws Exception { super.setUp(); - cdiContainer = waitForCdiContainer(cdiBundle.getBundleId()); + containerDTO = getContainerDTO(cdiBundle); } public void testGetBeanFromCdiContainerService() throws Exception { - BeanManager beanManager = cdiContainer.getBeanManager(); + BeanManager beanManager = getBeanManager(cdiBundle); assertNotNull(beanManager); - assertPojoExists(beanManager); + assertBeanExists(Pojo.class, beanManager); } public void testGetBeanManagerFromCDI() throws Exception { @@ -46,7 +47,7 @@ public class CdiContainerTests extends A BeanManager beanManager = CDI.current().getBeanManager(); assertNotNull(beanManager); - assertPojoExists(beanManager); + assertBeanExists(Pojo.class, beanManager); } finally { currentThread.setContextClassLoader(contextClassLoader); Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiExtenderTests.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiExtenderTests.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiExtenderTests.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiExtenderTests.java Sat Apr 14 01:09:09 2018 @@ -14,8 +14,9 @@ package org.apache.aries.cdi.test.cases; +import javax.enterprise.inject.spi.BeanManager; + import org.osgi.framework.Bundle; -import org.osgi.service.cdi.CdiContainer; import org.osgi.util.tracker.ServiceTracker; public class CdiExtenderTests extends AbstractTestCase { @@ -23,7 +24,7 @@ public class CdiExtenderTests extends Ab public void testStopExtender() throws Exception { Bundle cdiExtenderBundle = getCdiExtenderBundle(); - ServiceTracker<CdiContainer,CdiContainer> serviceTracker = getServiceTracker(cdiBundle.getBundleId()); + ServiceTracker<BeanManager,BeanManager> serviceTracker = getServiceTracker(cdiBundle); try { assertNotNull(serviceTracker.waitForService(timeout)); Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ConfigurationTests.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ConfigurationTests.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ConfigurationTests.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ConfigurationTests.java Sat Apr 14 01:09:09 2018 @@ -18,22 +18,10 @@ import static org.junit.Assert.assertArr import java.util.Dictionary; import java.util.Hashtable; -import java.util.Map; -import java.util.Set; import java.util.concurrent.Callable; -import javax.enterprise.context.spi.CreationalContext; -import javax.enterprise.inject.spi.Bean; -import javax.enterprise.inject.spi.BeanManager; -import javax.enterprise.util.TypeLiteral; - import org.apache.aries.cdi.test.interfaces.BeanService; import org.osgi.framework.Bundle; -import org.osgi.framework.Filter; -import org.osgi.framework.ServiceReference; -import org.osgi.service.cdi.CdiConstants; -import org.osgi.service.cdi.CdiContainer; -import org.osgi.service.cdi.CdiEvent; import org.osgi.service.cm.Configuration; import org.osgi.service.cm.ConfigurationAdmin; import org.osgi.util.tracker.ServiceTracker; @@ -47,23 +35,11 @@ public class ConfigurationTests extends Configuration configurationA = null, configurationB = null; try { - Filter filter = bundleContext.createFilter( - "(&(objectClass=" + CdiContainer.class.getName() + ")(service.bundleid=" + tb3Bundle.getBundleId() + "))"); - - ServiceTracker<CdiContainer, CdiContainer> containerTracker = new ServiceTracker<>( - bundleContext, filter, null); - - containerTracker.open(); - - containerTracker.waitForService(timeout); - - ServiceReference<CdiContainer> serviceReference = containerTracker.getServiceReference(); - - assertNotNull(serviceReference); + containerDTO = getContainerDTO(); - assertEquals( - CdiEvent.Type.WAITING_FOR_CONFIGURATIONS, - serviceReference.getProperty(CdiConstants.CDI_CONTAINER_STATE)); +// assertEquals( +// WAITING_FOR_CONFIGURATIONS, +// containerDTO...); configurationA = configurationAdmin.getConfiguration("org.apache.aries.cdi.test.tb3.ConfigurationBeanA", "?"); @@ -78,17 +54,7 @@ public class ConfigurationTests extends properties.put("ports", new int[] {80}); configurationB.update(properties); - containerTracker.close(); - - filter = bundleContext.createFilter( - "(&(objectClass=" + CdiContainer.class.getName() + ")(service.bundleid=" + tb3Bundle.getBundleId() + - ")(" + CdiConstants.CDI_CONTAINER_STATE + "=CREATED))"); - - containerTracker = new ServiceTracker<>(bundleContext, filter, null); - - containerTracker.open(); - - containerTracker.waitForService(timeout); + // after this we should eventually get the bean manager... ServiceTracker<BeanService, BeanService> stA = new ServiceTracker<BeanService, BeanService>( bundleContext, bundleContext.createFilter( @@ -140,15 +106,11 @@ public class ConfigurationTests extends Configuration configurationC = null; try { - Filter filter = bundleContext.createFilter( - "(&(objectClass=" + CdiContainer.class.getName() + ")(service.bundleid=" + tb5Bundle.getBundleId() + - ")(" + CdiConstants.CDI_CONTAINER_STATE + "=CREATED))"); - - ServiceTracker<CdiContainer, CdiContainer> containerTracker = new ServiceTracker<>(bundleContext, filter, null); - - containerTracker.open(); + containerDTO = getContainerDTO(); - containerTracker.waitForService(timeout); +// assertEquals( +// SHOULD BE OK, +// containerDTO...); ServiceTracker<BeanService, BeanService> stC = new ServiceTracker<BeanService, BeanService>( bundleContext, bundleContext.createFilter( Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/EventsTests.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/EventsTests.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/EventsTests.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/EventsTests.java Sat Apr 14 01:09:09 2018 @@ -24,18 +24,17 @@ import javax.enterprise.util.AnnotationL import org.apache.aries.cdi.test.interfaces.BeanService; import org.apache.aries.cdi.test.interfaces.CdiEventObserverQualifier; -import org.osgi.service.cdi.CdiEvent; public class EventsTests extends AbstractTestCase { @Override protected void setUp() throws Exception { super.setUp(); - cdiContainer = waitForCdiContainer(cdiBundle.getBundleId()); + containerDTO = getContainerDTO(cdiBundle); } public void testEventsGetSent() throws Exception { - BeanManager beanManager = cdiContainer.getBeanManager(); + BeanManager beanManager = getBeanManager(cdiBundle); assertNotNull(beanManager); @@ -46,8 +45,8 @@ public class EventsTests extends Abstrac Object bcb = beanManager.getReference(bean, Object.class, ctx); assertNotNull(bcb); @SuppressWarnings("unchecked") - BeanService<List<CdiEvent>> bti = (BeanService<List<CdiEvent>>)bcb; - List<CdiEvent> list = bti.get(); + BeanService<List<Object>> bti = (BeanService<List<Object>>)bcb; + List<Object> list = bti.get(); assertNotNull(list); assertEquals(1, list.size()); } Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/JndiExtensionTests.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/JndiExtensionTests.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/JndiExtensionTests.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/JndiExtensionTests.java Sat Apr 14 01:09:09 2018 @@ -14,22 +14,19 @@ package org.apache.aries.cdi.test.cases; -import java.util.Collection; import java.util.Hashtable; import java.util.List; import javax.enterprise.inject.spi.BeanManager; import javax.naming.InitialContext; +import org.apache.aries.cdi.test.interfaces.Pojo; import org.osgi.framework.Bundle; import org.osgi.framework.BundleEvent; -import org.osgi.framework.ServiceReference; import org.osgi.framework.wiring.BundleCapability; import org.osgi.framework.wiring.BundleWiring; import org.osgi.resource.Capability; -import org.osgi.service.cdi.CdiConstants; -import org.osgi.service.cdi.CdiContainer; -import org.osgi.service.cdi.CdiEvent; +import org.osgi.service.cdi.PortableExtensionNamespace; import org.osgi.service.jndi.JNDIConstants; import org.osgi.util.tracker.BundleTracker; import org.osgi.util.tracker.BundleTrackerCustomizer; @@ -39,7 +36,7 @@ public class JndiExtensionTests extends @Override protected void setUp() throws Exception { super.setUp(); - cdiContainer = waitForCdiContainer(cdiBundle.getBundleId()); + containerDTO = getContainerDTO(cdiBundle); } public void testGetBeanManagerThroughJNDI() throws Exception { @@ -50,7 +47,7 @@ public class JndiExtensionTests extends BeanManager beanManager = (BeanManager)context.lookup("java:comp/BeanManager"); assertNotNull(beanManager); - assertPojoExists(beanManager); + assertBeanExists(Pojo.class, beanManager); } public void testDisableExtensionAndCDIContainerWaits() throws Exception { @@ -60,7 +57,7 @@ public class JndiExtensionTests extends @Override public Bundle addingBundle(Bundle bundle, BundleEvent arg1) { List<BundleCapability> capabilities = bundle.adapt( - BundleWiring.class).getCapabilities(CdiConstants.CDI_EXTENSION_NAMESPACE); + BundleWiring.class).getCapabilities(PortableExtensionNamespace.CDI_EXTENSION_NAMESPACE); if (capabilities.isEmpty()) { return null; @@ -91,33 +88,15 @@ public class JndiExtensionTests extends Bundle extensionBundle = bt.getBundles()[0]; - Collection<ServiceReference<CdiContainer>> serviceReferences = bundleContext.getServiceReferences( - CdiContainer.class, "(&(objectClass=" + CdiContainer.class.getName() + ")(service.bundleid=" + - cdiBundle.getBundleId() + "))"); - - assertNotNull(serviceReferences); - assertFalse(serviceReferences.isEmpty()); - - ServiceReference<CdiContainer> serviceReference = serviceReferences.iterator().next(); - - CdiEvent.Type state = (CdiEvent.Type)serviceReference.getProperty( - CdiConstants.CDI_CONTAINER_STATE); - - assertEquals(CdiEvent.Type.CREATED, state); + // TODO Check that everything is ok... extensionBundle.stop(); - state = (CdiEvent.Type)serviceReference.getProperty( - CdiConstants.CDI_CONTAINER_STATE); - - assertEquals(CdiEvent.Type.WAITING_FOR_EXTENSIONS, state); + // TODO check that CDI bundles dependent on the extension are not not OK extensionBundle.start(); - state = (CdiEvent.Type)serviceReference.getProperty( - CdiConstants.CDI_CONTAINER_STATE); - - assertEquals(CdiEvent.Type.CREATED, state); + // TODO check that they are ok again! } } \ No newline at end of file Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/OSGiBeanDescriptorTests.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/OSGiBeanDescriptorTests.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/OSGiBeanDescriptorTests.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/OSGiBeanDescriptorTests.java Sat Apr 14 01:09:09 2018 @@ -24,7 +24,6 @@ import javax.enterprise.util.TypeLiteral import org.apache.aries.cdi.test.interfaces.BeanService; import org.apache.aries.cdi.test.interfaces.Pojo; import org.osgi.framework.Bundle; -import org.osgi.service.cdi.CdiContainer; import org.osgi.util.tracker.ServiceTracker; public class OSGiBeanDescriptorTests extends AbstractTestCase { @@ -50,10 +49,8 @@ public class OSGiBeanDescriptorTests ext Bundle tb1Bundle = installBundle("tb1.jar"); Bundle tb2Bundle = installBundle("tb2.jar"); - CdiContainer cdiContainer = waitForCdiContainer(tb1Bundle.getBundleId()); - try { - BeanManager beanManager = cdiContainer.getBeanManager(); + BeanManager beanManager = getBeanManager(tb1Bundle); Set<Bean<?>> beans = beanManager.getBeans("beanimpl"); Bean<?> bean = beanManager.resolve(beans); CreationalContext<?> ctx = beanManager.createCreationalContext(bean); Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb3/ConfigurationBeanA.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb3/ConfigurationBeanA.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb3/ConfigurationBeanA.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb3/ConfigurationBeanA.java Sat Apr 14 01:09:09 2018 @@ -14,22 +14,32 @@ package org.apache.aries.cdi.test.tb3; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; import java.util.concurrent.Callable; import javax.inject.Inject; +import javax.inject.Qualifier; import org.apache.aries.cdi.test.interfaces.BeanService; import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Configuration; -import org.osgi.service.cdi.annotations.ConfigurationPolicy; -import org.osgi.service.cdi.annotations.ServiceScope; +import org.osgi.service.cdi.annotations.PID; +import org.osgi.service.cdi.annotations.PID.Policy; -@Component( - property = "bean=A", - scope = ServiceScope.SINGLETON -) +@Component +@PID(policy = Policy.REQUIRED) +@ConfigurationBeanA.Props public class ConfigurationBeanA implements BeanService<Callable<int[]>> { + @Qualifier @Retention(RUNTIME) @Target(TYPE ) + public @interface Props { + String bean() default "A"; + } + @Override public String doSomething() { return config.color(); @@ -45,7 +55,7 @@ public class ConfigurationBeanA implemen }; } - @Configuration(configurationPolicy = ConfigurationPolicy.REQUIRE) + @Configuration @Inject Config config; Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb3/ConfigurationBeanB.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb3/ConfigurationBeanB.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb3/ConfigurationBeanB.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb3/ConfigurationBeanB.java Sat Apr 14 01:09:09 2018 @@ -14,23 +14,34 @@ package org.apache.aries.cdi.test.tb3; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; import java.util.Map; import java.util.concurrent.Callable; import javax.inject.Inject; +import javax.inject.Qualifier; import org.apache.aries.cdi.test.interfaces.BeanService; import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Configuration; -import org.osgi.service.cdi.annotations.ConfigurationPolicy; -import org.osgi.service.cdi.annotations.ServiceScope; +import org.osgi.service.cdi.annotations.PID; +import org.osgi.service.cdi.annotations.PID.Policy; -@Component( - property = "bean=B", - scope = ServiceScope.SINGLETON -) +@Component +@PID(value = "org.apache.aries.cdi.test.tb3.ConfigurationBeanA", policy = Policy.REQUIRED) +@PID(policy = Policy.REQUIRED) +@ConfigurationBeanB.Props public class ConfigurationBeanB implements BeanService<Callable<int[]>> { + @Qualifier @Retention(RUNTIME) @Target(TYPE ) + public @interface Props { + String bean() default "B"; + } + @Override public String doSomething() { return (String)config.get("color"); @@ -46,10 +57,7 @@ public class ConfigurationBeanB implemen }; } - @Configuration( - configurationPolicy = ConfigurationPolicy.REQUIRE, - value = {"org.apache.aries.cdi.test.tb3.ConfigurationBeanA", "$"} - ) + @Configuration @Inject Map<String, Object> config; Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb5/ConfigurationBeanC.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb5/ConfigurationBeanC.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb5/ConfigurationBeanC.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb5/ConfigurationBeanC.java Sat Apr 14 01:09:09 2018 @@ -14,19 +14,31 @@ package org.apache.aries.cdi.test.tb5; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; import java.util.concurrent.Callable; import javax.inject.Inject; +import javax.inject.Qualifier; import org.apache.aries.cdi.test.interfaces.BeanService; import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Configuration; -import org.osgi.service.cdi.annotations.ConfigurationPolicy; -import org.osgi.service.cdi.annotations.ServiceScope; +import org.osgi.service.cdi.annotations.PID; -@Component(property = "bean=C", scope = ServiceScope.SINGLETON) +@Component +@PID("foo.bar") +@ConfigurationBeanC.Props public class ConfigurationBeanC implements BeanService<Callable<int[]>> { + @Qualifier @Retention(RUNTIME) @Target(TYPE ) + public @interface Props { + String bean() default "C"; + } + @Override public String doSomething() { return config.color(); @@ -42,7 +54,7 @@ public class ConfigurationBeanC implemen }; } - @Configuration(value = "foo.bar") + @Configuration @Inject Config config; Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BarServlet.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BarServlet.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BarServlet.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BarServlet.java Sat Apr 14 01:09:09 2018 @@ -14,10 +14,16 @@ package org.apache.aries.cdi.test.tb6; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + import java.io.IOException; import java.io.PrintWriter; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; import javax.inject.Inject; +import javax.inject.Qualifier; import javax.servlet.Servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; @@ -25,19 +31,20 @@ import javax.servlet.http.HttpServletReq import javax.servlet.http.HttpServletResponse; import org.osgi.service.cdi.annotations.Component; -import org.osgi.service.cdi.annotations.ServiceScope; -import org.osgi.service.http.whiteboard.HttpWhiteboardConstants; +import org.osgi.service.cdi.annotations.Service; -@Component( - property = { - HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_NAME + "=bar", - HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN + "=/bar" - }, - service = Servlet.class, - scope = ServiceScope.SINGLETON -) +@Component +@Service(Servlet.class) +@BarServlet.Props public class BarServlet extends HttpServlet { + @Qualifier @Retention(RUNTIME) @Target(TYPE ) + public @interface Props { + String osgi_http_whiteboard_servlet_name() default "bar"; + String osgi_http_whiteboard_servlet_pattern() default "/bar"; + + } + private static final long serialVersionUID = 1L; @Override Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/FooServlet.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/FooServlet.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/FooServlet.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/FooServlet.java Sat Apr 14 01:09:09 2018 @@ -14,10 +14,16 @@ package org.apache.aries.cdi.test.tb6; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + import java.io.IOException; import java.io.PrintWriter; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; import javax.inject.Inject; +import javax.inject.Qualifier; import javax.servlet.Servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; @@ -25,19 +31,20 @@ import javax.servlet.http.HttpServletReq import javax.servlet.http.HttpServletResponse; import org.osgi.service.cdi.annotations.Component; -import org.osgi.service.cdi.annotations.ServiceScope; -import org.osgi.service.http.whiteboard.HttpWhiteboardConstants; +import org.osgi.service.cdi.annotations.Service; -@Component( - property = { - HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_NAME + "=foo", - HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN + "=/foo" - }, - service = Servlet.class, - scope = ServiceScope.SINGLETON -) +@Component +@Service(Servlet.class) +@FooServlet.Props public class FooServlet extends HttpServlet { + @Qualifier @Retention(RUNTIME) @Target(TYPE ) + public @interface Props { + String osgi_http_whiteboard_servlet_name() default "foo"; + String osgi_http_whiteboard_servlet_pattern() default "/foo"; + + } + private static final long serialVersionUID = 1L; @Override