Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Throw.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Throw.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Throw.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Throw.java Sat Apr 14 01:10:27 2018 @@ -14,6 +14,9 @@ package org.apache.aries.cdi.container.internal.util; +import java.io.PrintWriter; +import java.io.StringWriter; + public class Throw { private Throw() { @@ -29,4 +32,10 @@ public class Throw { throw (E)throwable; } + public static String asString(Throwable t) { + StringWriter sw = new StringWriter(); + t.printStackTrace(new PrintWriter(sw)); + return sw.toString(); + } + } \ No newline at end of file
Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Types.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Types.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Types.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Types.java Sat Apr 14 01:10:27 2018 @@ -14,115 +14,122 @@ package org.apache.aries.cdi.container.internal.util; -import java.lang.reflect.GenericArrayType; -import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; + +import javax.enterprise.inject.spi.Annotated; +import javax.enterprise.inject.spi.AnnotatedField; +import javax.enterprise.inject.spi.AnnotatedMethod; +import javax.enterprise.inject.spi.AnnotatedType; -import javax.enterprise.inject.spi.InjectionPoint; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.osgi.service.cdi.annotations.Service; public class Types { - public static String getName(InjectionPoint injectionPoint) { - return getName(injectionPoint.getType()); + private Types() { + // no instances } - public static String getName(Type type) { - if (type instanceof ParameterizedType) { - ParameterizedType pt = (ParameterizedType)type; + public static List<Class<?>> collectServiceTypes(Annotated annotated) { + List<Class<?>> serviceTypes = new ArrayList<>(); - Type rawType = pt.getRawType(); + List<java.lang.reflect.AnnotatedType> ats = new ArrayList<>(); - if (rawType instanceof Class) { - Class<?> clazz = (Class<?>)rawType; + if (annotated instanceof AnnotatedType) { + Class<?> annotatedClass = ((AnnotatedType<?>)annotated).getJavaClass(); + Optional.ofNullable(annotatedClass.getAnnotatedSuperclass()).ifPresent(at -> ats.add(at)); + ats.addAll(Arrays.asList(annotatedClass.getAnnotatedInterfaces())); + + for (java.lang.reflect.AnnotatedType at : ats) { + Optional.ofNullable(at.getAnnotation(Service.class)).ifPresent( + service -> { + if (service.value().length > 0) { + throw new IllegalArgumentException( + String.format( + "@Service on type_use must not specify a value: %s", + annotatedClass)); + } + + Type type = at.getType(); + + if (!(type instanceof Class)) { + throw new IllegalArgumentException( + String.format( + "@Service on type_use must only be specified on non-generic types: %s", + annotatedClass)); + } - return clazz.getSimpleName(); - } - else { - return rawType.getTypeName(); + serviceTypes.add((Class<?>)type); + } + ); } - } - else if (type instanceof GenericArrayType) { - GenericArrayType gat = (GenericArrayType)type; - - Type genericComponentType = gat.getGenericComponentType(); - if (genericComponentType instanceof ParameterizedType) { - ParameterizedType pt = (ParameterizedType)genericComponentType; + Service service = annotated.getAnnotation(Service.class); - Type rawType = pt.getRawType(); - - if (rawType instanceof Class) { - Class<?> clazz = (Class<?>)rawType; + if (service == null) { + return serviceTypes; + } - return clazz.getSimpleName(); - } - else { - return rawType.getTypeName(); - } + if (!serviceTypes.isEmpty()) { + throw new IllegalArgumentException( + String.format( + "@Service must not be applied to type and type_use: %s", + annotated)); } - else if (genericComponentType instanceof Class) { - Class<?> clazz = (Class<?>)genericComponentType; - return clazz.getSimpleName(); + if (service.value().length > 0) { + serviceTypes.addAll(Arrays.asList(service.value())); + } + else if (annotatedClass.getInterfaces().length > 0) { + serviceTypes.addAll(Arrays.asList(annotatedClass.getInterfaces())); } else { - return genericComponentType.getTypeName(); + serviceTypes.add(annotatedClass); } } - else if (type instanceof Class) { - Class<?> clazz = (Class<?>)type; + else if (annotated instanceof AnnotatedMethod) { + Service service = annotated.getAnnotation(Service.class); - String simpleName = clazz.getSimpleName(); + if (service == null) { + return serviceTypes; + } - char lowerCase = Character.toLowerCase(simpleName.charAt(0)); + Class<?> returnType = ((AnnotatedMethod<?>)annotated).getJavaMember().getReturnType(); - return lowerCase + simpleName.substring(1, simpleName.length()); + if (service.value().length > 0) { + serviceTypes.addAll(Arrays.asList(service.value())); + } + else if (returnType.getInterfaces().length > 0) { + serviceTypes.addAll(Arrays.asList(returnType.getInterfaces())); + } + else { + serviceTypes.add(returnType); + } } + else if (annotated instanceof AnnotatedField) { + Service service = annotated.getAnnotation(Service.class); - return type.getTypeName(); - } - -/* public static Class<?>[] types( - ComponentModel componentModel, Class<?> beanClass, ClassLoader classLoader) { + if (service == null) { + return serviceTypes; + } - List<Class<?>> classes = new ArrayList<>(); + Class<?> fieldType = ((AnnotatedField<?>)annotated).getJavaMember().getType(); - if (!componentModel.isService()) { - return new Class<?>[0]; - } - else if (!componentModel.getProvides().isEmpty()) { - for (String provide : componentModel.getProvides()) { - try { - classes.add(classLoader.loadClass(provide)); - } - catch (ReflectiveOperationException roe) { - if (_log.isWarnEnabled()) { - _log.warn( - "CDIe - component {} cannot load provided type {}. Skipping!", - componentModel.getBeanClass(), provide, roe); - } - } + if (service.value().length > 0) { + serviceTypes.addAll(Arrays.asList(service.value())); } - } - else { - Class<?>[] interfaces = beanClass.getInterfaces(); - - if (interfaces.length > 0) { - for (Class<?> iface : interfaces) { - classes.add(iface); - } + else if (fieldType.getInterfaces().length > 0) { + serviceTypes.addAll(Arrays.asList(fieldType.getInterfaces())); } else { - classes.add(beanClass); + serviceTypes.add(fieldType); } } - return classes.toArray(new Class[0]); + return serviceTypes; } -*/ - public static final Logger _log = LoggerFactory.getLogger(Types.class); } \ No newline at end of file Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/CDIProvider.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/CDIProvider.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/CDIProvider.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/CDIProvider.java Sat Apr 14 01:10:27 2018 @@ -22,6 +22,14 @@ import javax.enterprise.inject.spi.BeanM import javax.enterprise.inject.spi.CDI; import javax.enterprise.util.TypeLiteral; +import org.apache.aries.cdi.container.internal.util.Filters; +import org.jboss.weld.exceptions.IllegalStateException; +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleContext; +import org.osgi.framework.BundleReference; +import org.osgi.framework.Filter; +import org.osgi.util.tracker.ServiceTracker; + public class CDIProvider implements javax.enterprise.inject.spi.CDIProvider { private static class CdiExtenderCDI extends CDI<Object> { @@ -38,7 +46,33 @@ public class CDIProvider implements java @Override public BeanManager getBeanManager() { - throw new UnsupportedOperationException(); + ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader(); + + if (contextClassLoader instanceof BundleReference) { + BundleReference br = (BundleReference)contextClassLoader; + + Bundle bundle = br.getBundle(); + BundleContext bundleContext = bundle.getBundleContext(); + + Filter filter = Filters.asFilter( + "(&(objectClass=%s)(service.bundleid=%d))", + BeanManager.class.getName(), bundle.getBundleId()); + + ServiceTracker<BeanManager, BeanManager> bmt = new ServiceTracker<>( + bundleContext, filter, null); + + bmt.open(); + + try { + return bmt.waitForService(1000); + } + catch (InterruptedException e) { + return null; + } + } + + throw new IllegalStateException( + "This method can only be used when the Thread context classloader has been set to a bundle's classloader."); } @Override Added: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/package-info.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/package-info.java?rev=1829115&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/package-info.java (added) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/package-info.java Sat Apr 14 01:10:27 2018 @@ -0,0 +1,36 @@ +@Capability( + name = CDIConstants.CDI_CAPABILITY_NAME, + namespace = ExtenderNamespace.EXTENDER_NAMESPACE, + uses = { + org.osgi.service.cdi.ServiceScope.class, + org.osgi.service.cdi.annotations.Bundle.class, + org.osgi.service.cdi.reference.ReferenceEvent.class, + org.osgi.service.cdi.runtime.CDIComponentRuntime.class, + org.osgi.service.cdi.runtime.dto.ActivationDTO.class, + org.osgi.service.cdi.runtime.dto.template.ActivationTemplateDTO.class + }, + version = CDIConstants.CDI_SPECIFICATION_VERSION +) +@Capability( + name = CDIConstants.CDI_CAPABILITY_NAME, + namespace = ImplementationNamespace.IMPLEMENTATION_NAMESPACE, + uses = { + org.osgi.service.cdi.ServiceScope.class, + org.osgi.service.cdi.annotations.Bundle.class, + org.osgi.service.cdi.reference.ReferenceEvent.class, + org.osgi.service.cdi.runtime.CDIComponentRuntime.class, + org.osgi.service.cdi.runtime.dto.ActivationDTO.class, + org.osgi.service.cdi.runtime.dto.template.ActivationTemplateDTO.class + }, + version = CDIConstants.CDI_SPECIFICATION_VERSION +) +@Export +@Version("1.0.0") +package org.apache.aries.cdi.provider; + +import org.osgi.annotation.bundle.Capability; +import org.osgi.annotation.bundle.Export; +import org.osgi.annotation.versioning.Version; +import org.osgi.namespace.extender.ExtenderNamespace; +import org.osgi.namespace.implementation.ImplementationNamespace; +import org.osgi.service.cdi.CDIConstants; Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_dynamic_greedy_Test2.java (from r1829114, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_dynamic_greedy_Test2.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_dynamic_greedy_Test2.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_dynamic_greedy_Test2.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_dynamic_greedy_Test2.java&r1=1829114&r2=1829115&rev=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_dynamic_greedy_Test2.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_dynamic_greedy_Test2.java Sat Apr 14 01:10:27 2018 @@ -12,16 +12,15 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.internal.component; +package org.apache.aries.cdi.container.internal.container; -import static org.apache.aries.cdi.container.test.TestUtil.sort; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.apache.aries.cdi.container.test.TestUtil.*; +import static org.junit.Assert.*; import java.util.Collection; import org.apache.aries.cdi.container.internal.model.BeansModel; -import org.apache.aries.cdi.container.internal.v2.component.Component; +import org.apache.aries.cdi.container.internal.model.OSGiBean; import org.apache.aries.cdi.container.test.MockCdiContainerAndComponents; import org.apache.aries.cdi.container.test.beans.Bar; import org.apache.aries.cdi.container.test.beans.Foo; @@ -33,8 +32,10 @@ import org.apache.aries.cdi.container.te import org.apache.aries.cdi.container.test.beans.ctordynamicgreedy.CtorFooOptional; import org.apache.aries.cdi.container.test.beans.ctordynamicgreedy.CtorListFoo; import org.junit.Test; +import org.osgi.service.cdi.MaximumCardinality; +import org.osgi.service.cdi.ReferencePolicy; +import org.osgi.service.cdi.ReferencePolicyOption; import org.osgi.service.cdi.runtime.dto.template.ComponentTemplateDTO; -import org.osgi.service.cdi.runtime.dto.template.MaximumCardinality; import org.osgi.service.cdi.runtime.dto.template.ReferenceTemplateDTO; public class Discovery_Ctor_dynamic_greedy_Test2 { @@ -52,11 +53,7 @@ public class Discovery_Ctor_dynamic_gree OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -68,9 +65,9 @@ public class Discovery_Ctor_dynamic_gree assertEquals(MaximumCardinality.MANY, referenceTemplateDTO.maximumCardinality); assertEquals(0, referenceTemplateDTO.minimumCardinality); assertEquals(CtorCollectionFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -89,11 +86,7 @@ public class Discovery_Ctor_dynamic_gree OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -105,9 +98,9 @@ public class Discovery_Ctor_dynamic_gree assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); @@ -116,9 +109,9 @@ public class Discovery_Ctor_dynamic_gree assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooFoo.class.getName() + ".new1", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -137,11 +130,7 @@ public class Discovery_Ctor_dynamic_gree OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -153,9 +142,9 @@ public class Discovery_Ctor_dynamic_gree assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -174,11 +163,7 @@ public class Discovery_Ctor_dynamic_gree OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -190,9 +175,9 @@ public class Discovery_Ctor_dynamic_gree assertEquals(MaximumCardinality.MANY, referenceTemplateDTO.maximumCardinality); assertEquals(0, referenceTemplateDTO.minimumCardinality); assertEquals(CtorListFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -211,11 +196,7 @@ public class Discovery_Ctor_dynamic_gree OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -227,9 +208,9 @@ public class Discovery_Ctor_dynamic_gree assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooBar.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); @@ -238,9 +219,9 @@ public class Discovery_Ctor_dynamic_gree assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooBar.class.getName() + ".new1", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Bar.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -259,11 +240,7 @@ public class Discovery_Ctor_dynamic_gree OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -275,9 +252,9 @@ public class Discovery_Ctor_dynamic_gree assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals("foo_a", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); @@ -286,9 +263,9 @@ public class Discovery_Ctor_dynamic_gree assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals("foo_b", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -307,11 +284,7 @@ public class Discovery_Ctor_dynamic_gree OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -323,9 +296,9 @@ public class Discovery_Ctor_dynamic_gree assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(0, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooOptional.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_dynamic_reluctant_Test.java (from r1829114, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_dynamic_reluctant_Test.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_dynamic_reluctant_Test.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_dynamic_reluctant_Test.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_dynamic_reluctant_Test.java&r1=1829114&r2=1829115&rev=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_dynamic_reluctant_Test.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_dynamic_reluctant_Test.java Sat Apr 14 01:10:27 2018 @@ -12,16 +12,15 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.internal.component; +package org.apache.aries.cdi.container.internal.container; -import static org.apache.aries.cdi.container.test.TestUtil.sort; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.apache.aries.cdi.container.test.TestUtil.*; +import static org.junit.Assert.*; import java.util.Collection; import org.apache.aries.cdi.container.internal.model.BeansModel; -import org.apache.aries.cdi.container.internal.v2.component.Component; +import org.apache.aries.cdi.container.internal.model.OSGiBean; import org.apache.aries.cdi.container.test.MockCdiContainerAndComponents; import org.apache.aries.cdi.container.test.beans.Bar; import org.apache.aries.cdi.container.test.beans.Foo; @@ -33,8 +32,10 @@ import org.apache.aries.cdi.container.te import org.apache.aries.cdi.container.test.beans.ctordynamicreluctant.CtorFooOptional; import org.apache.aries.cdi.container.test.beans.ctordynamicreluctant.CtorListFoo; import org.junit.Test; +import org.osgi.service.cdi.MaximumCardinality; +import org.osgi.service.cdi.ReferencePolicy; +import org.osgi.service.cdi.ReferencePolicyOption; import org.osgi.service.cdi.runtime.dto.template.ComponentTemplateDTO; -import org.osgi.service.cdi.runtime.dto.template.MaximumCardinality; import org.osgi.service.cdi.runtime.dto.template.ReferenceTemplateDTO; public class Discovery_Ctor_dynamic_reluctant_Test { @@ -52,11 +53,7 @@ public class Discovery_Ctor_dynamic_relu OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -68,9 +65,9 @@ public class Discovery_Ctor_dynamic_relu assertEquals(MaximumCardinality.MANY, referenceTemplateDTO.maximumCardinality); assertEquals(0, referenceTemplateDTO.minimumCardinality); assertEquals(CtorCollectionFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -89,11 +86,7 @@ public class Discovery_Ctor_dynamic_relu OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -105,9 +98,9 @@ public class Discovery_Ctor_dynamic_relu assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); @@ -116,9 +109,9 @@ public class Discovery_Ctor_dynamic_relu assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooFoo.class.getName() + ".new1", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -137,11 +130,7 @@ public class Discovery_Ctor_dynamic_relu OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -153,9 +142,9 @@ public class Discovery_Ctor_dynamic_relu assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -174,11 +163,7 @@ public class Discovery_Ctor_dynamic_relu OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -190,9 +175,9 @@ public class Discovery_Ctor_dynamic_relu assertEquals(MaximumCardinality.MANY, referenceTemplateDTO.maximumCardinality); assertEquals(0, referenceTemplateDTO.minimumCardinality); assertEquals(CtorListFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -211,11 +196,7 @@ public class Discovery_Ctor_dynamic_relu OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -227,9 +208,9 @@ public class Discovery_Ctor_dynamic_relu assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooBar.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); @@ -238,9 +219,9 @@ public class Discovery_Ctor_dynamic_relu assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooBar.class.getName() + ".new1", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Bar.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -259,11 +240,7 @@ public class Discovery_Ctor_dynamic_relu OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -275,9 +252,9 @@ public class Discovery_Ctor_dynamic_relu assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals("foo_a", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); @@ -286,9 +263,9 @@ public class Discovery_Ctor_dynamic_relu assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals("foo_b", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -307,11 +284,7 @@ public class Discovery_Ctor_dynamic_relu OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -323,9 +296,9 @@ public class Discovery_Ctor_dynamic_relu assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(0, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooOptional.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.DYNAMIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_static_greedy_Test.java (from r1829114, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_static_greedy_Test.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_static_greedy_Test.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_static_greedy_Test.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_static_greedy_Test.java&r1=1829114&r2=1829115&rev=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_static_greedy_Test.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_static_greedy_Test.java Sat Apr 14 01:10:27 2018 @@ -12,16 +12,15 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.internal.component; +package org.apache.aries.cdi.container.internal.container; -import static org.apache.aries.cdi.container.test.TestUtil.sort; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.apache.aries.cdi.container.test.TestUtil.*; +import static org.junit.Assert.*; import java.util.Collection; import org.apache.aries.cdi.container.internal.model.BeansModel; -import org.apache.aries.cdi.container.internal.v2.component.Component; +import org.apache.aries.cdi.container.internal.model.OSGiBean; import org.apache.aries.cdi.container.test.MockCdiContainerAndComponents; import org.apache.aries.cdi.container.test.beans.Bar; import org.apache.aries.cdi.container.test.beans.Foo; @@ -33,8 +32,10 @@ import org.apache.aries.cdi.container.te import org.apache.aries.cdi.container.test.beans.ctorstaticgreedy.CtorFooOptional; import org.apache.aries.cdi.container.test.beans.ctorstaticgreedy.CtorListFoo; import org.junit.Test; +import org.osgi.service.cdi.MaximumCardinality; +import org.osgi.service.cdi.ReferencePolicy; +import org.osgi.service.cdi.ReferencePolicyOption; import org.osgi.service.cdi.runtime.dto.template.ComponentTemplateDTO; -import org.osgi.service.cdi.runtime.dto.template.MaximumCardinality; import org.osgi.service.cdi.runtime.dto.template.ReferenceTemplateDTO; public class Discovery_Ctor_static_greedy_Test { @@ -53,11 +54,7 @@ public class Discovery_Ctor_static_greed OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -69,9 +66,9 @@ public class Discovery_Ctor_static_greed assertEquals(MaximumCardinality.MANY, referenceTemplateDTO.maximumCardinality); assertEquals(0, referenceTemplateDTO.minimumCardinality); assertEquals(CtorListFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -90,11 +87,7 @@ public class Discovery_Ctor_static_greed OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -106,9 +99,9 @@ public class Discovery_Ctor_static_greed assertEquals(MaximumCardinality.MANY, referenceTemplateDTO.maximumCardinality); assertEquals(0, referenceTemplateDTO.minimumCardinality); assertEquals(CtorCollectionFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -127,11 +120,7 @@ public class Discovery_Ctor_static_greed OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -143,9 +132,9 @@ public class Discovery_Ctor_static_greed assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); @@ -154,9 +143,9 @@ public class Discovery_Ctor_static_greed assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooFoo.class.getName() + ".new1", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -175,11 +164,7 @@ public class Discovery_Ctor_static_greed OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -191,9 +176,9 @@ public class Discovery_Ctor_static_greed assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -212,11 +197,7 @@ public class Discovery_Ctor_static_greed OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -228,9 +209,9 @@ public class Discovery_Ctor_static_greed assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooBar.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); @@ -239,9 +220,9 @@ public class Discovery_Ctor_static_greed assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooBar.class.getName() + ".new1", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Bar.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -260,11 +241,7 @@ public class Discovery_Ctor_static_greed OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -276,9 +253,9 @@ public class Discovery_Ctor_static_greed assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals("foo_a", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); @@ -287,9 +264,9 @@ public class Discovery_Ctor_static_greed assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals("foo_b", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -308,11 +285,7 @@ public class Discovery_Ctor_static_greed OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -324,9 +297,9 @@ public class Discovery_Ctor_static_greed assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(0, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooOptional.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.GREEDY, referenceTemplateDTO.policyOption); + ReferencePolicyOption.GREEDY, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } Copied: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_static_reluctant_Test.java (from r1829114, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_static_reluctant_Test.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_static_reluctant_Test.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_static_reluctant_Test.java&p1=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_static_reluctant_Test.java&r1=1829114&r2=1829115&rev=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_static_reluctant_Test.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/Discovery_Ctor_static_reluctant_Test.java Sat Apr 14 01:10:27 2018 @@ -12,16 +12,15 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.internal.component; +package org.apache.aries.cdi.container.internal.container; -import static org.apache.aries.cdi.container.test.TestUtil.sort; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.apache.aries.cdi.container.test.TestUtil.*; +import static org.junit.Assert.*; import java.util.Collection; import org.apache.aries.cdi.container.internal.model.BeansModel; -import org.apache.aries.cdi.container.internal.v2.component.Component; +import org.apache.aries.cdi.container.internal.model.OSGiBean; import org.apache.aries.cdi.container.test.MockCdiContainerAndComponents; import org.apache.aries.cdi.container.test.beans.Bar; import org.apache.aries.cdi.container.test.beans.Foo; @@ -33,8 +32,10 @@ import org.apache.aries.cdi.container.te import org.apache.aries.cdi.container.test.beans.ctorstaticreluctant.CtorFooOptional; import org.apache.aries.cdi.container.test.beans.ctorstaticreluctant.CtorListFoo; import org.junit.Test; +import org.osgi.service.cdi.MaximumCardinality; +import org.osgi.service.cdi.ReferencePolicy; +import org.osgi.service.cdi.ReferencePolicyOption; import org.osgi.service.cdi.runtime.dto.template.ComponentTemplateDTO; -import org.osgi.service.cdi.runtime.dto.template.MaximumCardinality; import org.osgi.service.cdi.runtime.dto.template.ReferenceTemplateDTO; public class Discovery_Ctor_static_reluctant_Test { @@ -53,11 +54,7 @@ public class Discovery_Ctor_static_reluc OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -69,9 +66,9 @@ public class Discovery_Ctor_static_reluc assertEquals(MaximumCardinality.MANY, referenceTemplateDTO.maximumCardinality); assertEquals(0, referenceTemplateDTO.minimumCardinality); assertEquals(CtorListFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -90,11 +87,7 @@ public class Discovery_Ctor_static_reluc OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -106,9 +99,9 @@ public class Discovery_Ctor_static_reluc assertEquals(MaximumCardinality.MANY, referenceTemplateDTO.maximumCardinality); assertEquals(0, referenceTemplateDTO.minimumCardinality); assertEquals(CtorCollectionFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -127,11 +120,7 @@ public class Discovery_Ctor_static_reluc OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -143,9 +132,9 @@ public class Discovery_Ctor_static_reluc assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); @@ -154,9 +143,9 @@ public class Discovery_Ctor_static_reluc assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooFoo.class.getName() + ".new1", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -175,11 +164,7 @@ public class Discovery_Ctor_static_reluc OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -191,9 +176,9 @@ public class Discovery_Ctor_static_reluc assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFoo.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -212,11 +197,7 @@ public class Discovery_Ctor_static_reluc OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -228,9 +209,9 @@ public class Discovery_Ctor_static_reluc assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooBar.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); @@ -239,9 +220,9 @@ public class Discovery_Ctor_static_reluc assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooBar.class.getName() + ".new1", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Bar.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -260,11 +241,7 @@ public class Discovery_Ctor_static_reluc OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -276,9 +253,9 @@ public class Discovery_Ctor_static_reluc assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals("foo_a", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); @@ -287,9 +264,9 @@ public class Discovery_Ctor_static_reluc assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(1, referenceTemplateDTO.minimumCardinality); assertEquals("foo_b", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } @@ -308,11 +285,7 @@ public class Discovery_Ctor_static_reluc OSGiBean bean = beans.iterator().next(); - Component component = bean.getComponent(); - - assertNotNull(component); - - ComponentTemplateDTO template = component.getTemplate(); + ComponentTemplateDTO template = bean.geComponentTemplateDTO(); assertNotNull(template); assertNotNull(template.references); @@ -324,9 +297,9 @@ public class Discovery_Ctor_static_reluc assertEquals(MaximumCardinality.ONE, referenceTemplateDTO.maximumCardinality); assertEquals(0, referenceTemplateDTO.minimumCardinality); assertEquals(CtorFooOptional.class.getName() + ".new0", referenceTemplateDTO.name); - assertEquals(ReferenceTemplateDTO.Policy.STATIC, referenceTemplateDTO.policy); + assertEquals(ReferencePolicy.STATIC, referenceTemplateDTO.policy); assertEquals( - ReferenceTemplateDTO.PolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); + ReferencePolicyOption.RELUCTANT, referenceTemplateDTO.policyOption); assertEquals(Foo.class.getName(), referenceTemplateDTO.serviceType); assertEquals("", referenceTemplateDTO.targetFilter); } Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/model/MapsTest.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/model/MapsTest.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/model/MapsTest.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/model/MapsTest.java Sat Apr 14 01:10:27 2018 @@ -14,248 +14,77 @@ package org.apache.aries.cdi.container.internal.model; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; import org.apache.aries.cdi.container.internal.util.Maps; +import org.junit.Assert; import org.junit.Test; +import org.osgi.service.cdi.annotations.ComponentPropertyType; +import org.osgi.service.cdi.annotations.Service; public class MapsTest { - @Test - public void testSingleRawStringConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo=bar"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals("bar", entry.getValue()); - } - - @Test - public void testSingleStringConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:String=bar"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals("bar", entry.getValue()); - } - - @Test - public void testSingleListStringConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:List<String>=bar"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals(Collections.singletonList("bar"), entry.getValue()); - } - - @Test - public void testSingleSetStringConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Set<String>=bar"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals(Collections.singleton("bar"), entry.getValue()); - } - - @Test - public void testRawStringArrayConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo=bar", "foo=baz"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertArrayEquals(new String[] {"bar", "baz"}, (String[])entry.getValue()); - } - - @Test - public void testRawStringArrayConversion2() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo=bar", "foo=baz", "foo=fee"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertArrayEquals(new String[] {"bar", "baz", "fee"}, (String[])entry.getValue()); - } - - @Test - public void testStringArrayConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:String=bar", "foo:String=baz"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertArrayEquals(new String[] {"bar", "baz"}, (String[])entry.getValue()); - } - - @Test - public void testStringArrayConversion2() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:String=bar", "foo:String=baz", "foo:String=fee"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertArrayEquals(new String[] {"bar", "baz", "fee"}, (String[])entry.getValue()); - } - - @Test - public void testListStringConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:List<String>=bar", "foo:List<String>=baz"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals(Arrays.asList("bar", "baz"), entry.getValue()); - } - - @Test - public void testListStringConversion2() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:List<String>=bar", "foo:List<String>=baz", "foo:List<String>=fee"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals(Arrays.asList("bar", "baz", "fee"), entry.getValue()); - } - - @Test - public void testSetStringConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Set<String>=bar", "foo:Set<String>=baz"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals(new HashSet<String>(Arrays.asList("bar", "baz")), entry.getValue()); - } - - @Test - public void testSetStringConversion2() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Set<String>=bar", "foo:Set<String>=baz", "foo:Set<String>=fee"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals(new HashSet<String>(Arrays.asList("bar", "baz", "fee")), entry.getValue()); - } - - @Test - public void testSingleBooleanConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Boolean=bar"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals(false, entry.getValue()); - } - - @Test - public void testSingleBooleanConversion2() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Boolean=true"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals(true, entry.getValue()); - } - - @Test - public void testSingleBooleanConversion3() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Boolean=0"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals(false, entry.getValue()); - } - - @Test - public void testArrayBooleanConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Boolean=bar", "foo:Boolean=false", "foo:Boolean=true"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertArrayEquals(new Boolean[] {false, false, true}, (Boolean[])entry.getValue()); - } - - @Test - public void testListBooleanConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:List<Boolean>=true", "foo:List<Boolean>=bar", "foo:List<Boolean>=false"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals(Arrays.asList(true, false, false), entry.getValue()); - } - - @Test - public void testSetBooleanConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Set<Boolean>=0", "foo:Set<Boolean>=true", "foo:Set<Boolean>=false"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals(new HashSet<Boolean>(Arrays.asList(false, true)), entry.getValue()); - } - - @Test - public void testSingleByteConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Byte=1"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals(new Byte("1"), entry.getValue()); - } - - @Test - public void testSingleByteConversion2() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Byte=126"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals(new Byte("126"), entry.getValue()); - } - - @Test - public void testArrayByteConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Byte=1", "foo:Byte=96"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertArrayEquals(new Byte[] {new Byte("1"), new Byte("96")}, (Byte[])entry.getValue()); - } - - @Test - public void testListByteConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:List<Byte>=126", "foo:List<Byte>=91"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals(Arrays.asList(new Byte("126"), new Byte("91")), entry.getValue()); - } - - @Test - public void testSetByteConversion() throws Exception { - Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Set<Byte>=126", "foo:Set<Byte>=91", "foo:Set<Byte>=91"}).entrySet(); - - Entry<String, Object> entry = set.iterator().next(); - assertEquals("foo", entry.getKey()); - assertEquals(new HashSet<Byte>(Arrays.asList(new Byte("126"), new Byte("91"))), entry.getValue()); - } - - @SuppressWarnings("rawtypes") - @Test - public void testMixedConversion() throws Exception { - Map<String,Object> map = Maps.map( - new String[] { - "foo:Set<Byte>=126", "foo:Set<Byte>=91", "foo:Set<Byte>=91", - "fum=blaz", "fee:List<Double>=91.8765", "fee:List<Double>=34567.8965"}); - - assertEquals(3, map.size()); - assertTrue(map.containsKey("foo")); - assertTrue(map.containsKey("fum")); - assertTrue(map.containsKey("fee")); - assertTrue(map.get("foo") instanceof Set); - assertTrue(map.get("fum") instanceof String); - assertTrue(map.get("fee") instanceof List); - assertEquals(2, ((Set)map.get("foo")).size()); - assertEquals("blaz", map.get("fum")); - assertEquals(2, ((List)map.get("fee")).size()); + @Retention(RetentionPolicy.RUNTIME) + @ComponentPropertyType + public @interface CPT1 { + String[] a(); + int[] b(); + boolean c(); + } + + @Retention(RetentionPolicy.RUNTIME) + @ComponentPropertyType + public @interface CPT2 { + String a(); + int[] b(); + } + + @Retention(RetentionPolicy.RUNTIME) + @ComponentPropertyType + public @interface CPT3 { + } + + @Retention(RetentionPolicy.RUNTIME) + @ComponentPropertyType + public @interface CPT4 { + String b(); + } + + @CPT1(a = {"foo", "bar"}, b = {1, 1, 1}, c = true) + @CPT2(a = "baz", b = {2, 2}) + @CPT3 + @Service(Integer.class) + public Integer one; + + @Test + public void checkMerge_1() throws Exception { + Map<String, ?> merged = Maps.merge( + Stream.of(getClass().getField("one").getAnnotations()).collect(Collectors.toList())); + + Assert.assertEquals( + Maps.of( + "a", Arrays.asList("foo", "bar", "baz"), + "cpt3", true, + "b", Arrays.asList(1,1,1,2,2), + "c", true), + merged); + } + + @CPT1(a = {"foo", "bar"}, b = {1, 1, 1}, c = true) + @CPT2(a = "baz", b = {2, 2}) + @CPT3 + @CPT4(b = "blah") + @Service(Integer.class) + public Integer two; + + @Test(expected = ClassCastException.class) + public void checkMerge_2() throws Exception { + Maps.merge(Stream.of(getClass().getField("two").getAnnotations()).collect(Collectors.toList())); } }