Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel_TupleTest.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel_TupleTest.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel_TupleTest.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel_TupleTest.java Sat Apr 14 01:09:09 2018 @@ -15,6 +15,8 @@ package org.apache.aries.cdi.container.internal.reference; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import java.lang.reflect.Type; import java.util.Collection; @@ -26,11 +28,11 @@ import javax.enterprise.inject.Instance; import javax.enterprise.inject.spi.InjectionPoint; import org.apache.aries.cdi.container.internal.model.CollectionType; -import org.apache.aries.cdi.container.internal.reference.ReferenceModel; +import org.apache.aries.cdi.container.internal.util.Sets; import org.apache.aries.cdi.container.test.MockInjectionPoint; import org.apache.aries.cdi.container.test.beans.Foo; import org.junit.Test; -import org.osgi.service.cdi.annotations.ReferenceCardinality; +import org.osgi.service.cdi.annotations.Reference; import org.osgi.util.converter.TypeReference; public class ReferenceModel_TupleTest { @@ -38,29 +40,31 @@ public class ReferenceModel_TupleTest { @Test public void withServiceType() throws Exception { Type type = new TypeReference< - Map.Entry<Map<String, ?>, Callable<?>> + Map.Entry<Map<String, ?>, Integer> >(){}.getType(); InjectionPoint injectionPoint = new MockInjectionPoint(type); - ReferenceModel referenceModel = new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).build(); + ReferenceModel referenceModel = new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); assertEquals(Map.Entry.class, referenceModel.getBeanClass()); - assertEquals(Callable.class, referenceModel.getServiceClass()); + assertEquals(Integer.class, referenceModel.getServiceType()); assertEquals(type, referenceModel.getInjectionPointType()); - assertEquals(ReferenceCardinality.MANDATORY, referenceModel.getCardinality()); + assertFalse(referenceModel.dynamic()); + assertFalse(referenceModel.optional()); + assertTrue(referenceModel.unary()); assertEquals(CollectionType.TUPLE, referenceModel.getCollectionType()); } @Test(expected = IllegalArgumentException.class) public void withServiceType_wrongKeyType_A() throws Exception { Type type = new TypeReference< - Map.Entry<?, Callable<?>> + Map.Entry<?, Integer> >(){}.getType(); InjectionPoint injectionPoint = new MockInjectionPoint(type); - new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).build(); + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); } @Test(expected = IllegalArgumentException.class) @@ -71,7 +75,7 @@ public class ReferenceModel_TupleTest { InjectionPoint injectionPoint = new MockInjectionPoint(type); - new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).build(); + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); } @Test(expected = IllegalArgumentException.class) @@ -83,7 +87,7 @@ public class ReferenceModel_TupleTest { InjectionPoint injectionPoint = new MockInjectionPoint(type); - new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).build(); + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); } @Test(expected = IllegalArgumentException.class) @@ -94,7 +98,7 @@ public class ReferenceModel_TupleTest { InjectionPoint injectionPoint = new MockInjectionPoint(type); - new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).build(); + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); } @Test(expected = IllegalArgumentException.class) @@ -105,7 +109,7 @@ public class ReferenceModel_TupleTest { InjectionPoint injectionPoint = new MockInjectionPoint(type); - new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).build(); + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); } @Test(expected = IllegalArgumentException.class) @@ -116,7 +120,7 @@ public class ReferenceModel_TupleTest { InjectionPoint injectionPoint = new MockInjectionPoint(type); - new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).build(); + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); } @Test(expected = IllegalArgumentException.class) @@ -128,23 +132,47 @@ public class ReferenceModel_TupleTest { InjectionPoint injectionPoint = new MockInjectionPoint(type); - new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).build(); + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); + } + + @Test(expected = IllegalArgumentException.class) + public void withServiceDefinedButGenericTuple() throws Exception { + Type type = new TypeReference< + Map.Entry<Map<String, ?>, ?> + >(){}.getType(); + + InjectionPoint injectionPoint = new MockInjectionPoint(type, Sets.hashSet(Reference.Literal.of(Integer.class, ""))); + + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); + } + + @Test(expected = IllegalArgumentException.class) + public void withServiceDefinedButNotAssignable() throws Exception { + Type type = new TypeReference< + Map.Entry<Map<String, ?>, String> + >(){}.getType(); + + InjectionPoint injectionPoint = new MockInjectionPoint(type, Sets.hashSet(Reference.Literal.of(Integer.class, ""))); + + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); } @Test public void withServiceDefined() throws Exception { Type type = new TypeReference< - Map.Entry<Map<String, ?>, ?> + Map.Entry<Map<String, ?>, Number> >(){}.getType(); - InjectionPoint injectionPoint = new MockInjectionPoint(type); + InjectionPoint injectionPoint = new MockInjectionPoint(type, Sets.hashSet(Reference.Literal.of(Integer.class, ""))); - ReferenceModel referenceModel = new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).service(Callable.class).build(); + ReferenceModel referenceModel = new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); assertEquals(Map.Entry.class, referenceModel.getBeanClass()); - assertEquals(Callable.class, referenceModel.getServiceClass()); + assertEquals(Integer.class, referenceModel.getServiceType()); assertEquals(type, referenceModel.getInjectionPointType()); - assertEquals(ReferenceCardinality.MANDATORY, referenceModel.getCardinality()); + assertFalse(referenceModel.dynamic()); + assertFalse(referenceModel.optional()); + assertTrue(referenceModel.unary()); assertEquals(CollectionType.TUPLE, referenceModel.getCollectionType()); } @@ -157,23 +185,25 @@ public class ReferenceModel_TupleTest { InjectionPoint injectionPoint = new MockInjectionPoint(type); - new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).build(); + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); } @Test public void collectionWithServiceDefined() throws Exception { Type type = new TypeReference< - Collection<Map.Entry<Map<String, ?>, ?>> + Collection<Map.Entry<Map<String, ?>, Number>> >(){}.getType(); - InjectionPoint injectionPoint = new MockInjectionPoint(type); + InjectionPoint injectionPoint = new MockInjectionPoint(type, Sets.hashSet(Reference.Literal.of(Integer.class, ""))); - ReferenceModel referenceModel = new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).service(Callable.class).build(); + ReferenceModel referenceModel = new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); assertEquals(Collection.class, referenceModel.getBeanClass()); - assertEquals(Callable.class, referenceModel.getServiceClass()); + assertEquals(Integer.class, referenceModel.getServiceType()); assertEquals(type, referenceModel.getInjectionPointType()); - assertEquals(ReferenceCardinality.MULTIPLE, referenceModel.getCardinality()); + assertFalse(referenceModel.dynamic()); + assertTrue(referenceModel.optional()); + assertFalse(referenceModel.unary()); assertEquals(CollectionType.TUPLE, referenceModel.getCollectionType()); } @@ -186,23 +216,25 @@ public class ReferenceModel_TupleTest { InjectionPoint injectionPoint = new MockInjectionPoint(type); - new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).build(); + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); } @Test public void listWithServiceDefined() throws Exception { Type type = new TypeReference< - List<Map.Entry<Map<String, ?>, ?>> + List<Map.Entry<Map<String, ?>, Number>> >(){}.getType(); - InjectionPoint injectionPoint = new MockInjectionPoint(type); + InjectionPoint injectionPoint = new MockInjectionPoint(type, Sets.hashSet(Reference.Literal.of(Integer.class, ""))); - ReferenceModel referenceModel = new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).service(Callable.class).build(); + ReferenceModel referenceModel = new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); assertEquals(List.class, referenceModel.getBeanClass()); - assertEquals(Callable.class, referenceModel.getServiceClass()); + assertEquals(Integer.class, referenceModel.getServiceType()); assertEquals(type, referenceModel.getInjectionPointType()); - assertEquals(ReferenceCardinality.MULTIPLE, referenceModel.getCardinality()); + assertFalse(referenceModel.dynamic()); + assertTrue(referenceModel.optional()); + assertFalse(referenceModel.unary()); assertEquals(CollectionType.TUPLE, referenceModel.getCollectionType()); } @@ -215,27 +247,18 @@ public class ReferenceModel_TupleTest { InjectionPoint injectionPoint = new MockInjectionPoint(type); - new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).build(); + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); } - @Test + @Test(expected = IllegalArgumentException.class) public void instanceWithServiceDefined() throws Exception { Type type = new TypeReference< - Instance<Map.Entry<Map<String, ?>, ?>> - >(){}.getType(); - Type injectionPointType = new TypeReference< - Map.Entry<Map<String, ?>, ?> + Instance<Map.Entry<Map<String, ?>, Number>> >(){}.getType(); - InjectionPoint injectionPoint = new MockInjectionPoint(type); - - ReferenceModel referenceModel = new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).service(Callable.class).build(); + InjectionPoint injectionPoint = new MockInjectionPoint(type, Sets.hashSet(Reference.Literal.of(Integer.class, ""))); - assertEquals(Map.Entry.class, referenceModel.getBeanClass()); - assertEquals(Callable.class, referenceModel.getServiceClass()); - assertEquals(injectionPointType, referenceModel.getInjectionPointType()); - assertEquals(ReferenceCardinality.MULTIPLE, referenceModel.getCardinality()); - assertEquals(CollectionType.TUPLE, referenceModel.getCollectionType()); + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); } /////////////////////////////////////////////////////////////////////////////// @@ -248,12 +271,14 @@ public class ReferenceModel_TupleTest { InjectionPoint injectionPoint = new MockInjectionPoint(type); - ReferenceModel referenceModel = new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).build(); + ReferenceModel referenceModel = new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); assertEquals(Map.Entry.class, referenceModel.getBeanClass()); - assertEquals(Foo.class, referenceModel.getServiceClass()); + assertEquals(Foo.class, referenceModel.getServiceType()); assertEquals(type, referenceModel.getInjectionPointType()); - assertEquals(ReferenceCardinality.MANDATORY, referenceModel.getCardinality()); + assertFalse(referenceModel.dynamic()); + assertFalse(referenceModel.optional()); + assertTrue(referenceModel.unary()); assertEquals(CollectionType.TUPLE, referenceModel.getCollectionType()); } @@ -263,9 +288,9 @@ public class ReferenceModel_TupleTest { Map.Entry<Map<String, Object>, Foo> >(){}.getType(); - InjectionPoint injectionPoint = new MockInjectionPoint(type); + InjectionPoint injectionPoint = new MockInjectionPoint(type, Sets.hashSet(Reference.Literal.of(Integer.class, ""))); - new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).service(Callable.class).build(); + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); } @Test @@ -276,12 +301,14 @@ public class ReferenceModel_TupleTest { InjectionPoint injectionPoint = new MockInjectionPoint(type); - ReferenceModel referenceModel = new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).build(); + ReferenceModel referenceModel = new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); assertEquals(Collection.class, referenceModel.getBeanClass()); - assertEquals(Foo.class, referenceModel.getServiceClass()); + assertEquals(Foo.class, referenceModel.getServiceType()); assertEquals(type, referenceModel.getInjectionPointType()); - assertEquals(ReferenceCardinality.MULTIPLE, referenceModel.getCardinality()); + assertFalse(referenceModel.dynamic()); + assertTrue(referenceModel.optional()); + assertFalse(referenceModel.unary()); assertEquals(CollectionType.TUPLE, referenceModel.getCollectionType()); } @@ -291,9 +318,9 @@ public class ReferenceModel_TupleTest { Collection<Map.Entry<Map<String, Object>, Foo>> >(){}.getType(); - InjectionPoint injectionPoint = new MockInjectionPoint(type); + InjectionPoint injectionPoint = new MockInjectionPoint(type, Sets.hashSet(Reference.Literal.of(Integer.class, ""))); - new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).service(Callable.class).build(); + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); } @Test @@ -304,12 +331,14 @@ public class ReferenceModel_TupleTest { InjectionPoint injectionPoint = new MockInjectionPoint(type); - ReferenceModel referenceModel = new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).build(); + ReferenceModel referenceModel = new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); assertEquals(List.class, referenceModel.getBeanClass()); - assertEquals(Foo.class, referenceModel.getServiceClass()); + assertEquals(Foo.class, referenceModel.getServiceType()); assertEquals(type, referenceModel.getInjectionPointType()); - assertEquals(ReferenceCardinality.MULTIPLE, referenceModel.getCardinality()); + assertFalse(referenceModel.dynamic()); + assertTrue(referenceModel.optional()); + assertFalse(referenceModel.unary()); assertEquals(CollectionType.TUPLE, referenceModel.getCollectionType()); } @@ -319,29 +348,9 @@ public class ReferenceModel_TupleTest { List<Map.Entry<Map<String, Object>, Foo>> >(){}.getType(); - InjectionPoint injectionPoint = new MockInjectionPoint(type); + InjectionPoint injectionPoint = new MockInjectionPoint(type, Sets.hashSet(Reference.Literal.of(Integer.class, ""))); - new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).service(Callable.class).build(); - } - - @Test - public void typed_instanceWithoutServiceDefined() throws Exception { - Type type = new TypeReference< - Instance<Map.Entry<Map<String, Object>, Foo>> - >(){}.getType(); - Type injectionPointType = new TypeReference< - Map.Entry<Map<String, Object>, Foo> - >(){}.getType(); - - InjectionPoint injectionPoint = new MockInjectionPoint(type); - - ReferenceModel referenceModel = new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).build(); - - assertEquals(Map.Entry.class, referenceModel.getBeanClass()); - assertEquals(Foo.class, referenceModel.getServiceClass()); - assertEquals(injectionPointType, referenceModel.getInjectionPointType()); - assertEquals(ReferenceCardinality.MULTIPLE, referenceModel.getCardinality()); - assertEquals(CollectionType.TUPLE, referenceModel.getCollectionType()); + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); } @Test(expected = IllegalArgumentException.class) @@ -350,9 +359,8 @@ public class ReferenceModel_TupleTest { Instance<Map.Entry<Map<String, Object>, Foo>> >(){}.getType(); - InjectionPoint injectionPoint = new MockInjectionPoint(type); + InjectionPoint injectionPoint = new MockInjectionPoint(type, Sets.hashSet(Reference.Literal.of(Integer.class, ""))); - new ReferenceModel.Builder(injectionPoint.getQualifiers()).annotated(injectionPoint.getAnnotated()).service(Callable.class).build(); + new ReferenceModel.Builder().injectionPoint(injectionPoint).build(); } - } \ No newline at end of file
Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainer.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainer.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainer.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainer.java Sat Apr 14 01:09:09 2018 @@ -18,13 +18,13 @@ import java.util.Collections; import java.util.List; import java.util.Set; +import javax.enterprise.inject.Any; import javax.enterprise.inject.spi.Bean; import javax.enterprise.inject.spi.BeanManager; import javax.enterprise.inject.spi.Extension; import org.apache.aries.cdi.container.internal.container.ContainerDeployment; import org.apache.aries.cdi.container.internal.container.ContainerEnvironment; -import org.apache.aries.cdi.container.internal.literal.AnyLiteral; import org.jboss.weld.bootstrap.WeldBootstrap; import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive; import org.jboss.weld.bootstrap.spi.Deployment; @@ -63,7 +63,7 @@ public class MockCdiContainer implements final BeanManager managerImpl = getBeanManager(); Set<javax.enterprise.inject.spi.Bean<?>> beans = - managerImpl.getBeans(clazz, AnyLiteral.INSTANCE); + managerImpl.getBeans(clazz, Any.Literal.INSTANCE); Assert.assertFalse(beans.isEmpty()); Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainerAndComponents.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainerAndComponents.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainerAndComponents.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainerAndComponents.java Sat Apr 14 01:09:09 2018 @@ -14,13 +14,13 @@ package org.apache.aries.cdi.container.test; -import static org.apache.aries.cdi.container.test.TestUtil.*; +import static org.apache.aries.cdi.container.test.TestUtil.getContainerState; import java.util.Collections; import java.util.HashMap; import java.util.Map; -import org.apache.aries.cdi.container.internal.component.ComponentModel; +import org.apache.aries.cdi.container.internal.component.OSGiBean; import org.apache.aries.cdi.container.internal.container.ContainerDiscovery; import org.apache.aries.cdi.container.internal.container.ContainerState; import org.apache.aries.cdi.container.internal.model.BeansModel; @@ -30,15 +30,15 @@ import org.apache.aries.cdi.container.in public class MockCdiContainerAndComponents implements AutoCloseable { public MockCdiContainerAndComponents(String name, String... beanClasses) throws Exception { - Map<String, ComponentModel> components = new HashMap<>(); + Map<String, OSGiBean> beans = new HashMap<>(); for (String className : beanClasses) { Class<?> clazz = Class.forName(className); - components.put(className, new ComponentModel.Builder(clazz).build()); + beans.put(className, new OSGiBean.Builder(clazz).build()); } - _beansModel = new BeansModel(components, Collections.emptyList()); + _beansModel = new BeansModel(beans, Collections.emptyList(), Collections.emptyList(), Collections.emptyList()); _containerState = getContainerState(_beansModel); Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockInjectionPoint.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockInjectionPoint.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockInjectionPoint.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockInjectionPoint.java Sat Apr 14 01:09:09 2018 @@ -19,6 +19,7 @@ import java.lang.reflect.Member; import java.lang.reflect.Type; import java.util.Collections; import java.util.Set; +import java.util.stream.Collectors; import javax.enterprise.inject.spi.Annotated; import javax.enterprise.inject.spi.Bean; @@ -31,6 +32,13 @@ public class MockInjectionPoint implemen public MockInjectionPoint(Type type) { _type = type; _annotated = new MockAnnotated(_type); + _qualifiers = Collections.emptySet(); + } + + public MockInjectionPoint(Type type, Set<Annotation> qualifiers) { + _type = type; + _annotated = new MockAnnotated(_type); + _qualifiers = qualifiers; } @Override @@ -40,7 +48,7 @@ public class MockInjectionPoint implemen @Override public Set<Annotation> getQualifiers() { - return Collections.emptySet(); + return _qualifiers; } @Override @@ -75,26 +83,33 @@ public class MockInjectionPoint implemen private final Type _type; private final Annotated _annotated; + private final Set<Annotation> _qualifiers; - private static class MockAnnotated implements Annotated { + private class MockAnnotated implements Annotated { public MockAnnotated(Type service) { _service = service; } + @SuppressWarnings("unchecked") @Override public <T extends Annotation> T getAnnotation(Class<T> annotationType) { - return null; + return _qualifiers.stream().filter( + ann -> ann.annotationType().equals(annotationType) + ).map(ann -> (T)ann).findFirst().orElse(null); } @Override public Set<Annotation> getAnnotations() { - return Collections.emptySet(); + return _qualifiers; } + @SuppressWarnings("unchecked") @Override public <T extends Annotation> Set<T> getAnnotations(Class<T> annotationType) { - return null; + return _qualifiers.stream().filter( + ann -> ann.annotationType().equals(annotationType) + ).map(ann -> (T)ann).collect(Collectors.toSet()); } @Override @@ -104,12 +119,14 @@ public class MockInjectionPoint implemen @Override public Set<Type> getTypeClosure() { - return Sets.hashSet(_service); + return Sets.hashSet(_service, Object.class); } @Override public boolean isAnnotationPresent(Class<? extends Annotation> annotationType) { - return false; + return _qualifiers.stream().filter( + ann -> ann.annotationType().equals(annotationType) + ).findFirst().isPresent(); } private final Type _service; Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/TestUtil.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/TestUtil.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/TestUtil.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/TestUtil.java Sat Apr 14 01:09:09 2018 @@ -27,7 +27,6 @@ import java.util.concurrent.ConcurrentHa import javax.enterprise.inject.spi.BeanManager; -import org.apache.aries.cdi.container.internal.configuration.ConfigurationCallback; import org.apache.aries.cdi.container.internal.container.ContainerState; import org.apache.aries.cdi.container.internal.model.AbstractModelBuilder; import org.apache.aries.cdi.container.internal.model.BeansModel; @@ -40,23 +39,19 @@ import org.jboss.weld.serialization.spi. import org.osgi.framework.ServiceObjects; import org.osgi.framework.ServiceReference; import org.osgi.service.cdi.CdiConstants; -import org.osgi.service.cdi.annotations.ConfigurationPolicy; import org.osgi.service.cm.ManagedService; import org.osgi.util.tracker.ServiceTrackerCustomizer; public class TestUtil { - public static ConfigurationCallback getCallback(ConfigurationPolicy policy) { - return new ConfigurationCallback.Builder().policy(policy).build(); - } - public static AbstractModelBuilder getModelBuilder(final String osgiBeansFile) { return getModelBuilder( Arrays.asList( - "OSGI-INF/cdi/beans-configuration.xml", - "OSGI-INF/cdi/beans-only.xml", - "OSGI-INF/cdi/beans-references.xml", - "OSGI-INF/cdi/beans-services.xml" + "OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.Bar.xml", + "OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.BarAnnotated.xml", + "OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.BarBadlyAnnotated.xml", + "OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.FooAnnotated.xml", + "OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.FooService.xml" ), osgiBeansFile); } @@ -92,7 +87,7 @@ public class TestUtil { }; } - public static <T> Collection<T> sort(Collection<T> set) { + public static <T extends Comparable<T>> Collection<T> sort(Collection<T> set) { return sort(set, (c1, c2) -> c1.getClass().getName().compareTo(c2.getClass().getName())); } @@ -118,6 +113,7 @@ public class TestUtil { return beansModel; } + @Override public <T extends ResourceLoader & ProxyServices> T loader() { return null; } Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ArrayListFooProducer.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ArrayListFooProducer.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ArrayListFooProducer.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ArrayListFooProducer.java Sat Apr 14 01:09:09 2018 @@ -18,11 +18,8 @@ import java.util.ArrayList; import javax.enterprise.inject.Produces; -import org.osgi.service.cdi.annotations.Reference; - public class ArrayListFooProducer { @Produces - @Reference public ArrayList<Foo> getFoo() { ArrayList<Foo> al = new ArrayList<>(); al.add(new Foo() {}); Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarAnnotated.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarAnnotated.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarAnnotated.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarAnnotated.java Sat Apr 14 01:09:09 2018 @@ -16,46 +16,52 @@ package org.apache.aries.cdi.container.t import java.util.Collection; import java.util.Map; +import java.util.Optional; import javax.enterprise.inject.Instance; import javax.inject.Inject; +import javax.inject.Named; +import javax.inject.Provider; import org.osgi.framework.ServiceReference; import org.osgi.service.cdi.annotations.Configuration; +import org.osgi.service.cdi.annotations.Greedy; +import org.osgi.service.cdi.annotations.PID; +import org.osgi.service.cdi.annotations.Prototype; import org.osgi.service.cdi.annotations.Reference; -import org.osgi.service.cdi.annotations.ReferenceCardinality; -import org.osgi.service.cdi.annotations.ReferencePolicy; -import org.osgi.service.cdi.annotations.ReferencePolicyOption; -import org.osgi.service.cdi.annotations.ReferenceScope; public class BarAnnotated { @Inject - @Reference(cardinality = ReferenceCardinality.OPTIONAL) - Foo foo; + @Reference + Optional<Foo> foo; @Inject - @Reference(name = "foos") + @Named("foos") + @Reference Instance<Foo> instanceFoos; @Inject - @Reference(policy = ReferencePolicy.DYNAMIC) - Collection<Foo> collectionFoos; + @Reference + Provider<Collection<Foo>> collectionFoos; @Inject - @Reference(policyOption = ReferencePolicyOption.GREEDY) + @Greedy + @Reference Collection<Map.Entry<Map<String, Object>, Foo>> tupleFoos; @Inject - @Reference(scope = ReferenceScope.PROTOTYPE) + @Prototype + @Reference Collection<ServiceReference<Foo>> serviceReferencesFoos; @Inject - @Reference(service = Foo.class) + @Reference(Foo.class) Collection<Map<String, Object>> propertiesFoos; @Inject - @Configuration("foo.config") + @PID("foo.config") + @Configuration Config config; } Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarProducer.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarProducer.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarProducer.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarProducer.java Sat Apr 14 01:09:09 2018 @@ -16,11 +16,8 @@ package org.apache.aries.cdi.container.t import javax.enterprise.inject.Produces; -import org.osgi.service.cdi.annotations.Reference; - public class BarProducer { @Produces - @Reference public Bar getBar() { return new Bar() {}; } Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CollectionFooProducer.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CollectionFooProducer.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CollectionFooProducer.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CollectionFooProducer.java Sat Apr 14 01:09:09 2018 @@ -19,11 +19,8 @@ import java.util.Collection; import javax.enterprise.inject.Produces; -import org.osgi.service.cdi.annotations.Reference; - public class CollectionFooProducer { @Produces - @Reference public Collection<Foo> getFoo() { return Arrays.asList(new Foo() {}); } Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooAnnotated.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooAnnotated.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooAnnotated.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooAnnotated.java Sat Apr 14 01:09:09 2018 @@ -14,14 +14,26 @@ package org.apache.aries.cdi.container.test.beans; -import org.osgi.service.cdi.annotations.Component; -import org.osgi.service.cdi.annotations.ServiceScope; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; -@Component( - name = "foo.annotated", - property = {"service.ranking:Integer=12"}, - service = Foo.class, - scope = ServiceScope.SINGLETON -) +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import javax.inject.Named; +import javax.inject.Qualifier; + +import org.osgi.service.cdi.annotations.Service; +import org.osgi.service.cdi.annotations.SingleComponent; + +@Qualifier @Retention(RUNTIME) @Target(TYPE) +@interface ServiceRanking { + int value(); +} + +@SingleComponent +@Named("foo.annotated") +@Service(Foo.class) +@ServiceRanking(12) public class FooAnnotated implements Foo, Cloneable { } Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooProducer.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooProducer.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooProducer.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooProducer.java Sat Apr 14 01:09:09 2018 @@ -18,11 +18,8 @@ import java.util.Objects; import javax.enterprise.inject.Produces; -import org.osgi.service.cdi.annotations.Reference; - public class FooProducer { @Produces - @Reference public Foo getFoo() { return new Foo() { @Override Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ListFooProducer.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ListFooProducer.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ListFooProducer.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ListFooProducer.java Sat Apr 14 01:09:09 2018 @@ -19,11 +19,8 @@ import java.util.List; import javax.enterprise.inject.Produces; -import org.osgi.service.cdi.annotations.Reference; - public class ListFooProducer { @Produces - @Reference public List<Foo> getFoo() { return Arrays.asList(new Foo() {}); } Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodBindFooNamed.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodBindFooNamed.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodBindFooNamed.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodBindFooNamed.java Sat Apr 14 01:09:09 2018 @@ -15,10 +15,11 @@ package org.apache.aries.cdi.container.test.beans; import javax.inject.Inject; +import javax.inject.Named; import org.osgi.service.cdi.annotations.Reference; public class MethodBindFooNamed { @Inject - public void bindFoo(@Reference(name = "_foo_") Foo foo) {} + public void bindFoo(@Reference @Named("_foo_") Foo foo) {} } \ No newline at end of file Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ObserverFoo.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ObserverFoo.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ObserverFoo.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ObserverFoo.java Sat Apr 14 01:09:09 2018 @@ -22,8 +22,7 @@ import javax.enterprise.event.Observes; import javax.enterprise.inject.spi.EventMetadata; import org.osgi.service.cdi.annotations.Reference; -import org.osgi.service.cdi.annotations.ReferenceCardinality; -import org.osgi.service.cdi.annotations.ServiceEvent; +import org.osgi.service.cdi.reference.ReferenceEvent; @ApplicationScoped public class ObserverFoo { @@ -33,21 +32,21 @@ public class ObserverFoo { } void foos( - @Observes - @Reference(cardinality = ReferenceCardinality.MULTIPLE) - ServiceEvent<Foo> event, + @Observes @Reference ReferenceEvent<Foo> event, EventMetadata eventMetadata) { - event.adding( + event.onAdding( foo -> { System.out.printf("Adding %s, %s%n", foo, eventMetadata); _foos.add(foo); } - ).modified( + ); + event.onUpdate( foo -> { System.out.printf("Modified %s, %s%n", foo, eventMetadata); } - ).removed( + ); + event.onRemove( foo -> { System.out.printf("Removed %s, %s%n", foo, eventMetadata); _foos.remove(foo); Added: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ReferenceEventImpl.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ReferenceEventImpl.java?rev=1829114&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ReferenceEventImpl.java (added) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ReferenceEventImpl.java Sat Apr 14 01:09:09 2018 @@ -0,0 +1,150 @@ +/** + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.aries.cdi.container.test.beans; + +import java.util.Map; +import java.util.Map.Entry; +import java.util.function.Consumer; + +import org.osgi.framework.ServiceReference; +import org.osgi.service.cdi.reference.ReferenceEvent; +import org.osgi.service.cdi.reference.ReferenceServiceObjects; + +public class ReferenceEventImpl<T> implements ReferenceEvent<T> { + + enum Event { ADDING, MODIFIED, REMOVED } + private final T _t; + private final ReferenceEventImpl.Event _event; + + public ReferenceEventImpl(T t, ReferenceEventImpl.Event event) { + _t = t; + _event = event; + } + + @Override + public void onAdding(Consumer<T> action) { + // TODO Auto-generated method stub + + } + + @Override + public void onAddingServiceReference(Consumer<ServiceReference<T>> consumer) { + // TODO Auto-generated method stub + + } + + @Override + public void onAddingServiceObjects(Consumer<ReferenceServiceObjects<T>> consumer) { + // TODO Auto-generated method stub + + } + + @Override + public void onAddingProperties(Consumer<Map<String, ?>> consumer) { + // TODO Auto-generated method stub + + } + + @Override + public void onAddingTuple(Consumer<Entry<Map<String, ?>, T>> consumer) { + // TODO Auto-generated method stub + + } + + @Override + public void onUpdate(Consumer<T> action) { + // TODO Auto-generated method stub + + } + + @Override + public void onUpdateServiceReference(Consumer<ServiceReference<T>> consumer) { + // TODO Auto-generated method stub + + } + + @Override + public void onUpdateServiceObjects(Consumer<ReferenceServiceObjects<T>> consumer) { + // TODO Auto-generated method stub + + } + + @Override + public void onUpdateProperties(Consumer<Map<String, ?>> consumer) { + // TODO Auto-generated method stub + + } + + @Override + public void onUpdateTuple(Consumer<Entry<Map<String, ?>, T>> consumer) { + // TODO Auto-generated method stub + + } + + @Override + public void onRemove(Consumer<T> consumer) { + // TODO Auto-generated method stub + + } + + @Override + public void onRemoveServiceReference(Consumer<ServiceReference<T>> consumer) { + // TODO Auto-generated method stub + + } + + @Override + public void onRemoveServiceObjects(Consumer<ReferenceServiceObjects<T>> consumer) { + // TODO Auto-generated method stub + + } + + @Override + public void onRemoveProperties(Consumer<Map<String, ?>> consumer) { + // TODO Auto-generated method stub + + } + + @Override + public void onRemoveTuple(Consumer<Entry<Map<String, ?>, T>> consumer) { + // TODO Auto-generated method stub + + } + +/* @Override + public ServiceEvent<T> adding(Consumer<T> consumer) { + if (_event == Event.ADDING) { + consumer.accept(_t); + }; + return this; + } + + @Override + public ServiceEvent<T> modified(Consumer<T> consumer) { + if (_event == Event.MODIFIED) { + consumer.accept(_t); + } + return this; + } + + @Override + public ServiceEvent<T> removed(Consumer<T> consumer) { + if (_event == Event.REMOVED) { + consumer.accept(_t); + } + return this; + } +*/ +} \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorCollectionFoo.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorCollectionFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorCollectionFoo.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorCollectionFoo.java Sat Apr 14 01:09:09 2018 @@ -12,15 +12,18 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctordynamicgreedy; import java.util.Collection; import javax.inject.Inject; +import javax.inject.Provider; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; import org.osgi.service.cdi.annotations.Reference; public class CtorCollectionFoo { @Inject - public CtorCollectionFoo(@Reference Collection<Foo> foos) {} + public CtorCollectionFoo(@Greedy @Reference Provider<Collection<Foo>> foos) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFoo.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFoo.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFoo.java Sat Apr 14 01:09:09 2018 @@ -12,13 +12,16 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctordynamicgreedy; import javax.inject.Inject; +import javax.inject.Provider; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; import org.osgi.service.cdi.annotations.Reference; public class CtorFoo { @Inject - public CtorFoo(@Reference Foo foo) {} + public CtorFoo(@Greedy @Reference Provider<Foo> foo) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFooBar.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFooBar.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFooBar.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFooBar.java Sat Apr 14 01:09:09 2018 @@ -12,13 +12,17 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctordynamicgreedy; import javax.inject.Inject; +import javax.inject.Provider; +import org.apache.aries.cdi.container.test.beans.Bar; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; import org.osgi.service.cdi.annotations.Reference; public class CtorFooBar { @Inject - public CtorFooBar(@Reference Foo foo, @Reference Bar bar) {} + public CtorFooBar(@Greedy @Reference Provider<Foo> foo, @Greedy @Reference Provider<Bar> bar) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFooFoo.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFooFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFooFoo.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFooFoo.java Sat Apr 14 01:09:09 2018 @@ -12,13 +12,16 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctordynamicgreedy; import javax.inject.Inject; +import javax.inject.Provider; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; import org.osgi.service.cdi.annotations.Reference; public class CtorFooFoo { @Inject - public CtorFooFoo(@Reference Foo foo_a, @Reference Foo foo_b) {} + public CtorFooFoo(@Greedy @Reference Provider<Foo> foo_a, @Greedy @Reference Provider<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/ctordynamicgreedy/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/ctordynamicgreedy/CtorFooFooNamed.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/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/ctordynamicgreedy/CtorFooFooNamed.java Sat Apr 14 01:09:09 2018 @@ -12,13 +12,19 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctordynamicgreedy; import javax.inject.Inject; +import javax.inject.Named; +import javax.inject.Provider; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; 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( + @Greedy @Reference @Named("foo_a") Provider<Foo> foo_a, + @Greedy @Reference @Named("foo_b") Provider<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/ctordynamicgreedy/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/ctordynamicgreedy/CtorFooNamed.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/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/ctordynamicgreedy/CtorFooNamed.java Sat Apr 14 01:09:09 2018 @@ -12,13 +12,17 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctordynamicgreedy; import javax.inject.Inject; +import javax.inject.Named; +import javax.inject.Provider; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; import org.osgi.service.cdi.annotations.Reference; public class CtorFooNamed { @Inject - public CtorFooNamed(@Reference(name = "_foo_") Foo foo) {} + public CtorFooNamed(@Greedy @Reference @Named("_foo_") Provider<Foo> foo) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/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/ctordynamicgreedy/CtorFooOptional.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/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/ctordynamicgreedy/CtorFooOptional.java Sat Apr 14 01:09:09 2018 @@ -12,14 +12,18 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctordynamicgreedy; + +import java.util.Optional; import javax.inject.Inject; +import javax.inject.Provider; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; 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(@Greedy @Reference Provider<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/ctordynamicgreedy/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/ctordynamicgreedy/CtorListFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/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/ctordynamicgreedy/CtorListFoo.java Sat Apr 14 01:09:09 2018 @@ -12,15 +12,18 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctordynamicgreedy; import java.util.List; import javax.inject.Inject; +import javax.inject.Provider; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; import org.osgi.service.cdi.annotations.Reference; public class CtorListFoo { @Inject - public CtorListFoo(@Reference List<Foo> foos) {} + public CtorListFoo(@Greedy @Reference Provider<List<Foo>> foos) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorCollectionFoo.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorCollectionFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorCollectionFoo.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorCollectionFoo.java Sat Apr 14 01:09:09 2018 @@ -12,15 +12,17 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctordynamicreluctant; import java.util.Collection; import javax.inject.Inject; +import javax.inject.Provider; +import org.apache.aries.cdi.container.test.beans.Foo; import org.osgi.service.cdi.annotations.Reference; public class CtorCollectionFoo { @Inject - public CtorCollectionFoo(@Reference Collection<Foo> foos) {} + public CtorCollectionFoo(@Reference Provider<Collection<Foo>> foos) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFoo.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorArrayListFoo.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFoo.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorArrayListFoo.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorArrayListFoo.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFoo.java Sat Apr 14 01:09:09 2018 @@ -12,15 +12,15 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; - -import java.util.ArrayList; +package org.apache.aries.cdi.container.test.beans.ctordynamicreluctant; import javax.inject.Inject; +import javax.inject.Provider; +import org.apache.aries.cdi.container.test.beans.Foo; import org.osgi.service.cdi.annotations.Reference; -public class CtorArrayListFoo { +public class CtorFoo { @Inject - public CtorArrayListFoo(@Reference ArrayList<Foo> foos) {} + public CtorFoo(@Reference Provider<Foo> foo) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFooBar.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFooBar.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFooBar.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFooBar.java Sat Apr 14 01:09:09 2018 @@ -12,13 +12,16 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctordynamicreluctant; import javax.inject.Inject; +import javax.inject.Provider; +import org.apache.aries.cdi.container.test.beans.Bar; +import org.apache.aries.cdi.container.test.beans.Foo; import org.osgi.service.cdi.annotations.Reference; public class CtorFooBar { @Inject - public CtorFooBar(@Reference Foo foo, @Reference Bar bar) {} + public CtorFooBar(@Reference Provider<Foo> foo, @Reference Provider<Bar> bar) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFooFoo.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFooFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFooFoo.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFooFoo.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.ctordynamicreluctant; import javax.inject.Inject; +import javax.inject.Provider; +import org.apache.aries.cdi.container.test.beans.Foo; import org.osgi.service.cdi.annotations.Reference; public class CtorFooFoo { @Inject - public CtorFooFoo(@Reference Foo foo_a, @Reference Foo foo_b) {} + public CtorFooFoo(@Reference Provider<Foo> foo_a, @Reference Provider<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/ctordynamicreluctant/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/ctordynamicreluctant/CtorFooFooNamed.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/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/ctordynamicreluctant/CtorFooFooNamed.java Sat Apr 14 01:09:09 2018 @@ -12,13 +12,18 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctordynamicreluctant; import javax.inject.Inject; +import javax.inject.Named; +import javax.inject.Provider; +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") Provider<Foo> foo_a, + @Reference @Named("foo_b") Provider<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/ctordynamicreluctant/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/ctordynamicreluctant/CtorFooNamed.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/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/ctordynamicreluctant/CtorFooNamed.java Sat Apr 14 01:09:09 2018 @@ -12,13 +12,16 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctordynamicreluctant; import javax.inject.Inject; +import javax.inject.Named; +import javax.inject.Provider; +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_") Provider<Foo> foo) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/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/ctordynamicreluctant/CtorFooOptional.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/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/ctordynamicreluctant/CtorFooOptional.java Sat Apr 14 01:09:09 2018 @@ -12,14 +12,17 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctordynamicreluctant; + +import java.util.Optional; import javax.inject.Inject; +import javax.inject.Provider; +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 Provider<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/ctordynamicreluctant/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/ctordynamicreluctant/CtorListFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/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/ctordynamicreluctant/CtorListFoo.java Sat Apr 14 01:09:09 2018 @@ -12,15 +12,17 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctordynamicreluctant; import java.util.List; import javax.inject.Inject; +import javax.inject.Provider; +import org.apache.aries.cdi.container.test.beans.Foo; import org.osgi.service.cdi.annotations.Reference; public class CtorListFoo { @Inject - public CtorListFoo(@Reference List<Foo> foos) {} + public CtorListFoo(@Reference Provider<List<Foo>> foos) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorCollectionFoo.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorCollectionFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorCollectionFoo.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorCollectionFoo.java Sat Apr 14 01:09:09 2018 @@ -12,15 +12,17 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctorstaticgreedy; import java.util.Collection; import javax.inject.Inject; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; import org.osgi.service.cdi.annotations.Reference; public class CtorCollectionFoo { @Inject - public CtorCollectionFoo(@Reference Collection<Foo> foos) {} + public CtorCollectionFoo(@Greedy @Reference Collection<Foo> foos) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFoo.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFoo.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFoo.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.ctorstaticgreedy; import javax.inject.Inject; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; import org.osgi.service.cdi.annotations.Reference; public class CtorFoo { @Inject - public CtorFoo(@Reference Foo foo) {} + public CtorFoo(@Greedy @Reference Foo foo) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFooBar.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFooBar.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFooBar.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFooBar.java Sat Apr 14 01:09:09 2018 @@ -12,13 +12,16 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctorstaticgreedy; import javax.inject.Inject; +import org.apache.aries.cdi.container.test.beans.Bar; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; import org.osgi.service.cdi.annotations.Reference; public class CtorFooBar { @Inject - public CtorFooBar(@Reference Foo foo, @Reference Bar bar) {} + public CtorFooBar(@Greedy @Reference Foo foo, @Greedy @Reference Bar bar) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFooFoo.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFooFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFooFoo.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFooFoo.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.ctorstaticgreedy; import javax.inject.Inject; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; import org.osgi.service.cdi.annotations.Reference; public class CtorFooFoo { @Inject - public CtorFooFoo(@Reference Foo foo_a, @Reference Foo foo_b) {} + public CtorFooFoo(@Greedy @Reference Foo foo_a, @Greedy @Reference 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/ctorstaticgreedy/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/ctorstaticgreedy/CtorFooFooNamed.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/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/ctorstaticgreedy/CtorFooFooNamed.java Sat Apr 14 01:09:09 2018 @@ -12,13 +12,16 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctorstaticgreedy; import javax.inject.Inject; +import javax.inject.Named; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; 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(@Greedy @Reference @Named("foo_a") Foo foo_a, @Greedy @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/ctorstaticgreedy/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/ctorstaticgreedy/CtorFooNamed.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/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/ctorstaticgreedy/CtorFooNamed.java Sat Apr 14 01:09:09 2018 @@ -12,13 +12,16 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctorstaticgreedy; import javax.inject.Inject; +import javax.inject.Named; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; import org.osgi.service.cdi.annotations.Reference; public class CtorFooNamed { @Inject - public CtorFooNamed(@Reference(name = "_foo_") Foo foo) {} + public CtorFooNamed(@Greedy @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/ctorstaticgreedy/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/ctorstaticgreedy/CtorFooOptional.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/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/ctorstaticgreedy/CtorFooOptional.java Sat Apr 14 01:09:09 2018 @@ -12,14 +12,17 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctorstaticgreedy; + +import java.util.Optional; import javax.inject.Inject; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; 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(@Greedy @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/ctorstaticgreedy/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/ctorstaticgreedy/CtorListFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/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/ctorstaticgreedy/CtorListFoo.java Sat Apr 14 01:09:09 2018 @@ -12,15 +12,17 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.test.beans; +package org.apache.aries.cdi.container.test.beans.ctorstaticgreedy; import java.util.List; import javax.inject.Inject; +import org.apache.aries.cdi.container.test.beans.Foo; +import org.osgi.service.cdi.annotations.Greedy; import org.osgi.service.cdi.annotations.Reference; public class CtorListFoo { @Inject - public CtorListFoo(@Reference List<Foo> foos) {} + public CtorListFoo(@Greedy @Reference List<Foo> foos) {} } \ No newline at end of file Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorCollectionFoo.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorCollectionFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorCollectionFoo.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorCollectionFoo.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.Collection; import javax.inject.Inject; +import org.apache.aries.cdi.container.test.beans.Foo; import org.osgi.service.cdi.annotations.Reference; public class CtorCollectionFoo { Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFoo.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFoo.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFoo.java Sat Apr 14 01:09:09 2018 @@ -12,10 +12,11 @@ * 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 org.apache.aries.cdi.container.test.beans.Foo; import org.osgi.service.cdi.annotations.Reference; public class CtorFoo { Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooBar.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooBar.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooBar.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooBar.java Sat Apr 14 01:09:09 2018 @@ -12,10 +12,12 @@ * 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 org.apache.aries.cdi.container.test.beans.Bar; +import org.apache.aries.cdi.container.test.beans.Foo; import org.osgi.service.cdi.annotations.Reference; public class CtorFooBar { Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooFoo.java (from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooFoo.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooFoo.java Sat Apr 14 01:09:09 2018 @@ -12,10 +12,11 @@ * 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 org.apache.aries.cdi.container.test.beans.Foo; import org.osgi.service.cdi.annotations.Reference; public class CtorFooFoo {