Added: 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/v2/component/FactoryComponent.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/v2/component/FactoryComponent.java?rev=1829114&view=auto
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/v2/component/FactoryComponent.java
 (added)
+++ 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/v2/component/FactoryComponent.java
 Sat Apr 14 01:09:09 2018
@@ -0,0 +1,56 @@
+package org.apache.aries.cdi.container.internal.v2.component;
+
+import java.util.concurrent.CopyOnWriteArrayList;
+
+import org.osgi.service.cdi.runtime.dto.ComponentDTO;
+import org.osgi.service.cdi.runtime.dto.template.ComponentTemplateDTO;
+import org.osgi.service.cdi.runtime.dto.template.ConfigurationPolicy;
+import org.osgi.service.cdi.runtime.dto.template.ConfigurationTemplateDTO;
+import org.osgi.service.cdi.runtime.dto.template.MaximumCardinality;
+import org.osgi.service.cdi.runtime.dto.template.ReferenceTemplateDTO;
+
+public class FactoryComponent implements Component {
+
+       public FactoryComponent(String name) {
+               _snapshot = new ComponentDTO();
+               _snapshot.template = new ComponentTemplateDTO();
+               _snapshot.template.activations = new CopyOnWriteArrayList<>();
+               _snapshot.template.configurations = new 
CopyOnWriteArrayList<>();
+
+               ConfigurationTemplateDTO factoryConfig = new 
ConfigurationTemplateDTO();
+               factoryConfig.componentConfiguration = true;
+               factoryConfig.maximumCardinality = MaximumCardinality.MANY;
+               factoryConfig.pid = name;
+               factoryConfig.policy = ConfigurationPolicy.REQUIRED;
+
+               _snapshot.template.configurations.add(factoryConfig);
+               _snapshot.template.name = name;
+               _snapshot.template.references = new CopyOnWriteArrayList<>();
+               _snapshot.template.type = ComponentTemplateDTO.Type.FACTORY;
+       }
+
+       @Override
+       public void addConfiguration(ConfigurationTemplateDTO dto) {
+               if (dto == null) return;
+               _snapshot.template.configurations.add(dto);
+       }
+
+       @Override
+       public void addReference(ReferenceTemplateDTO dto) {
+               if (dto == null) return;
+               _snapshot.template.references.add(dto);
+       }
+
+       @Override
+       public ComponentDTO getSnapshot() {
+               return _snapshot; // TODO make safe copy using converter
+       }
+
+       @Override
+       public ComponentTemplateDTO getTemplate() {
+               return _snapshot.template; // TODO make safe copy using 
converter
+       }
+
+       private final ComponentDTO _snapshot;
+
+}

Added: 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/v2/component/SingleComponent.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/v2/component/SingleComponent.java?rev=1829114&view=auto
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/v2/component/SingleComponent.java
 (added)
+++ 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/v2/component/SingleComponent.java
 Sat Apr 14 01:09:09 2018
@@ -0,0 +1,56 @@
+package org.apache.aries.cdi.container.internal.v2.component;
+
+import java.util.concurrent.CopyOnWriteArrayList;
+
+import org.osgi.service.cdi.runtime.dto.ComponentDTO;
+import org.osgi.service.cdi.runtime.dto.template.ComponentTemplateDTO;
+import org.osgi.service.cdi.runtime.dto.template.ConfigurationPolicy;
+import org.osgi.service.cdi.runtime.dto.template.ConfigurationTemplateDTO;
+import org.osgi.service.cdi.runtime.dto.template.MaximumCardinality;
+import org.osgi.service.cdi.runtime.dto.template.ReferenceTemplateDTO;
+
+public class SingleComponent implements Component {
+
+       public SingleComponent(String name) {
+               _snapshot = new ComponentDTO();
+               _snapshot.template = new ComponentTemplateDTO();
+               _snapshot.template.activations = new CopyOnWriteArrayList<>();
+               _snapshot.template.configurations = new 
CopyOnWriteArrayList<>();
+
+               ConfigurationTemplateDTO factoryConfig = new 
ConfigurationTemplateDTO();
+               factoryConfig.componentConfiguration = true;
+               factoryConfig.maximumCardinality = MaximumCardinality.ONE;
+               factoryConfig.pid = name;
+               factoryConfig.policy = ConfigurationPolicy.OPTIONAL;
+
+               _snapshot.template.configurations.add(factoryConfig);
+               _snapshot.template.name = name;
+               _snapshot.template.references = new CopyOnWriteArrayList<>();
+               _snapshot.template.type = ComponentTemplateDTO.Type.SINGLE;
+       }
+
+       @Override
+       public void addConfiguration(ConfigurationTemplateDTO dto) {
+               if (dto == null) return;
+               _snapshot.template.configurations.add(dto);
+       }
+
+       @Override
+       public void addReference(ReferenceTemplateDTO dto) {
+               if (dto == null) return;
+               _snapshot.template.references.add(dto);
+       }
+
+       @Override
+       public ComponentDTO getSnapshot() {
+               return _snapshot; // TODO make safe copy using converter
+       }
+
+       @Override
+       public ComponentTemplateDTO getTemplate() {
+               return _snapshot.template; // TODO make safe copy using 
converter
+       }
+
+       private final ComponentDTO _snapshot;
+
+}

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=1829114&r1=1829113&r2=1829114&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:09:09 2018
@@ -15,7 +15,6 @@
 package org.apache.aries.cdi.provider;
 
 import java.lang.annotation.Annotation;
-import java.util.Collection;
 import java.util.Iterator;
 
 import javax.enterprise.inject.Instance;
@@ -23,12 +22,6 @@ import javax.enterprise.inject.spi.BeanM
 import javax.enterprise.inject.spi.CDI;
 import javax.enterprise.util.TypeLiteral;
 
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleReference;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
-
 public class CDIProvider implements javax.enterprise.inject.spi.CDIProvider {
 
        private static class CdiExtenderCDI extends CDI<Object> {
@@ -45,36 +38,7 @@ public class CDIProvider implements java
 
                @Override
                public BeanManager getBeanManager() {
-                       ClassLoader loader = 
Thread.currentThread().getContextClassLoader();
-
-                       while (!(loader instanceof BundleReference)) {
-                               if (loader == null) {
-                                       throw new IllegalStateException("Loader 
is not an OSGi classLoader!");
-                               }
-                               loader = loader.getParent();
-                       }
-
-                       BundleReference bundleReference = 
(BundleReference)loader;
-
-                       Bundle bundle = bundleReference.getBundle();
-
-                       BundleContext bundleContext = bundle.getBundleContext();
-
-                       try {
-                               Collection<ServiceReference<BeanManager>> 
serviceReferences = bundleContext.getServiceReferences(
-                                       BeanManager.class,
-                                       "(&(objectClass=" + 
BeanManager.class.getName() + ")(service.bundleid=" + bundle.getBundleId() +
-                                               "))");
-
-                               if (serviceReferences.isEmpty()) {
-                                       throw new 
IllegalStateException("BeanManager not found for " + bundle);
-                               }
-
-                               return 
bundleContext.getService(serviceReferences.iterator().next());
-                       }
-                       catch (InvalidSyntaxException e) {
-                               throw new IllegalArgumentException(e);
-                       }
+                       throw new UnsupportedOperationException();
                }
 
                @Override

Modified: aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/cdi.xsd
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/cdi.xsd?rev=1829114&r1=1829113&r2=1829114&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/cdi.xsd (original)
+++ aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/cdi.xsd Sat Apr 14 
01:09:09 2018
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 /*
- * Copyright (c) OSGi Alliance (2017). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2017, 2018). All Rights Reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,208 +25,56 @@
 
        <annotation>
                <documentation xml:lang="en">
-                       This is the XML Schema for OSGi Bean descriptions used 
by
-                       the OSGi CDI Extender. OSGi Bean description documents
-                       may be embedded in other XML documents. The OSGi CDI 
Extender
-                       will process all XML documents listed in the osgi.beans
-                       attribute of the CDI extender requirement. CDI Beans 
named by the
-                       descriptor are described as components. XML documents 
containing
-                       OSGi Bean descriptions may contain one or more 
component elements.
-                       Use of the namespace for bean descriptions is 
mandatory. The
-                       attributes and subelements of component elements are 
always
-                       unqualified.
+                       This is the XML Schema for OSGi Bean descriptions used 
by CCR. OSGi
+                       Bean description documents may be embedded in  other 
XML documents.
+                       CCR will process all XML documents listed in the 
osgi.beans
+                       attribute of the CDI extender requirement. XML 
documents containing
+                       OSGi Bean descriptions may contain one or more bean 
elements. Use of
+                       the namespace for bean descriptions is mandatory. The 
attributes and
+                       subelements of component elements are always 
unqualified.
                </documentation>
        </annotation>
-       <element name="component" type="cdi:Tcomponent" />
-       <complexType name="Tcomponent">
+
+       <element name="bean" type="cdi:Tbean" />
+       <element name="qualifier-blacklist" type="cdi:Tqualifier-blacklist" />
+
+       <complexType name="Tbean">
                <sequence>
-                       <annotation>
-                               <documentation xml:lang="en">
-                                       Implementations of CDI Support must not 
require component
-                                       descriptions to specify the 
sub-elements of the component
-                                       element in the order as required by the 
schema. CDI Support
-                                       implementations must allow other 
orderings since
-                                       arbitrary orderings do not affect the 
meaning of the
-                                       component description. Only the 
relative ordering of
-                                       property elements have meaning.
-                               </documentation>
-                       </annotation>
-                       <element name="configuration" maxOccurs="unbounded" 
minOccurs="0" type="cdi:Tconfiguration" />
-                       <element name="property" maxOccurs="unbounded" 
minOccurs="0" type="cdi:Tproperty" />
-                       <element name="provide" maxOccurs="unbounded" 
minOccurs="0" type="cdi:Tprovide" />
-                       <element name="reference" maxOccurs="unbounded" 
minOccurs="0" type="cdi:Treference" />
                        <any namespace="##other" maxOccurs="unbounded" 
minOccurs="0" processContents="lax" />
                </sequence>
                <attribute name="class" type="token" use="required" />
-               <attribute name="name" type="token" use="optional">
-                       <annotation>
-                               <documentation xml:lang="en">
-                                       The default value of this attribute is 
the value of
-                                       the class attribute. If multiple 
component elements use the same
-                                       value for the class attribute, then 
using the default value
-                                       for this attribute will result in 
duplicate names.
-                                       In this case, this attribute must be 
specified with
-                                       a unique value.
-                               </documentation>
-                       </annotation>
-               </attribute>
-               <attribute name="service-scope" default="none" 
type="cdi:Tservice_scope" use="optional" />
                <anyAttribute processContents="lax" />
        </complexType>
 
-       <complexType name="Tconfiguration">
+       <complexType name="Tqualifier" mixed="true">
                <sequence>
-                       <any namespace="##any" processContents="lax"
-                               minOccurs="0" maxOccurs="unbounded" />
+                       <any namespace="##other" minOccurs="0" 
maxOccurs="unbounded"
+                               processContents="lax" />
                </sequence>
-               <attribute name="configuration-policy" default="optional" 
type="cdi:Tconfiguration-policy" use="optional" />
-               <attribute name="configuration-pid" use="optional">
+               <attribute name="name" use="required">
                        <annotation>
                                <documentation xml:lang="en">
-                                       The default value is the name attribute 
of the component.
+                                       <![CDATA[The name of the class or 
package to ignore.
+                                       Ant-style glob matches are supported. 
For example,
+                                       <qualifier name="com.acme.**"/> would 
ignore all qualifier
+                                       classes in subpackages of com.acme.]]>
                                </documentation>
                        </annotation>
                        <simpleType>
-                               <restriction>
-                                       <simpleType>
-                                               <list itemType="token" />
-                                       </simpleType>
-                                       <minLength value="1" />
+                               <restriction base="string">
+                                       <pattern 
value="([a-zA-Z_$][a-zA-Z\d_$]*\.)*([a-zA-Z_$][a-zA-Z\d_$]*|\*|\*\*)"/>
                                </restriction>
                        </simpleType>
                </attribute>
-               <attribute name="type" type="token" use="required" />
-               <anyAttribute processContents="lax" />
-       </complexType>
-
-       <complexType name="Tmulti-value">
-               <sequence>
-               <element name="value" minOccurs="0" maxOccurs="unbounded" 
type="cdi:Tvalue"/>
-               <any namespace="##other" minOccurs="0" maxOccurs="unbounded"
-                       processContents="lax" />
-               </sequence>
                <anyAttribute processContents="lax" />
        </complexType>
 
-       <complexType name="Tproperty" mixed="true">
-               <sequence maxOccurs="1">
-                       <choice minOccurs="0" maxOccurs="1">
-                               <element name="array" type="cdi:Tmulti-value"/>
-                               <element name="list" type="cdi:Tmulti-value"/>
-                               <element name="set" type="cdi:Tmulti-value"/>
-                       </choice>
-                       <any namespace="##other" minOccurs="0" 
maxOccurs="unbounded" processContents="lax" />
-               </sequence>
-               <attribute name="name" type="string" use="required" />
-               <attribute name="value" type="string" use="optional" />
-               <attribute name="value-type" default="String" 
type="cdi:Tvalue-types" use="optional" />
-               <anyAttribute processContents="lax" />
-       </complexType>
-
-       <complexType name="Tprovide">
-               <sequence>
-                       <any namespace="##any" processContents="lax" 
minOccurs="0" maxOccurs="unbounded" />
-               </sequence>
-               <attribute name="interface" type="token" use="required" />
-               <anyAttribute processContents="lax" />
-       </complexType>
-
-       <complexType name="Treference">
-               <sequence>
-                       <any namespace="##any" processContents="lax" 
minOccurs="0" maxOccurs="unbounded" />
-               </sequence>
-               <attribute name="cardinality" default="1..1" 
type="cdi:Tcardinality" use="optional" />
-               <attribute name="name" type="token" use="optional" />
-               <attribute name="policy" default="static" type="cdi:Tpolicy" 
use="optional" />
-               <attribute name="policy-option" default="reluctant" 
type="cdi:Tpolicy-option" use="optional" />
-               <attribute name="scope" default="bundle" 
type="cdi:Treference_scope" use="optional" />
-               <attribute name="service" type="token" use="required" />
-               <attribute name="target" type="string" use="optional" />
-               <anyAttribute processContents="lax" />
-       </complexType>
-
-       <complexType name="Tvalue" mixed="true">
+       <complexType name="Tqualifier-blacklist">
                <sequence>
-               <any namespace="##other" minOccurs="0" maxOccurs="unbounded"
-                       processContents="lax" />
+                       <element name="qualifier" maxOccurs="unbounded" 
minOccurs="0" type="cdi:Tqualifier" />
+                       <any namespace="##other" maxOccurs="unbounded" 
minOccurs="0" processContents="lax" />
                </sequence>
                <anyAttribute processContents="lax" />
        </complexType>
 
-       <simpleType name="Tcardinality">
-               <restriction base="string">
-                       <enumeration value="0..1" />
-                       <enumeration value="0..n" />
-                       <enumeration value="1..1" />
-                       <enumeration value="1..n" />
-               </restriction>
-       </simpleType>
-
-       <simpleType name="Tconfiguration-policy">
-               <restriction base="string">
-                       <enumeration value="factory" />
-                       <enumeration value="ignore" />
-                       <enumeration value="optional" />
-                       <enumeration value="require" />
-               </restriction>
-       </simpleType>
-
-       <simpleType name="Tpolicy">
-               <restriction base="string">
-                       <enumeration value="dynamic" />
-                       <enumeration value="static" />
-               </restriction>
-       </simpleType>
-
-       <simpleType name="Tpolicy-option">
-               <restriction base="string">
-                       <enumeration value="greedy" />
-                       <enumeration value="reluctant" />
-               </restriction>
-       </simpleType>
-
-       <simpleType name="Treference_scope">
-               <restriction base="string">
-                       <enumeration value="bundle" />
-                       <enumeration value="prototype" />
-                       <enumeration value="prototype_required" />
-               </restriction>
-       </simpleType>
-
-       <simpleType name="Tservice_scope">
-               <restriction base="string">
-                       <enumeration value="bundle" />
-                       <enumeration value="none" />
-                       <enumeration value="prototype" />
-                       <enumeration value="singleton" />
-               </restriction>
-       </simpleType>
-
-       <!-- Specifies the data type of a property or of the elements in a 
multi-value
-                       property. Numerical and boolean values are trimmed 
before they are processed.
-                       Simple types are automatically boxed if needed. Only 
the array data type
-                       allows for simple type values. When specifying a simple 
type on any other
-                       type of property it will automatically be boxed. -->
-       <simpleType name="Tvalue-types">
-               <restriction base="string">
-                       <enumeration value="boolean" />
-                       <enumeration value="Boolean" />
-                       <enumeration value="byte" />
-                       <enumeration value="Byte" />
-                       <enumeration value="char" />
-                       <enumeration value="Character" />
-                       <enumeration value="double" />
-                       <enumeration value="Double" />
-                       <enumeration value="float" />
-                       <enumeration value="Float" />
-                       <enumeration value="int" />
-                       <enumeration value="Integer" />
-                       <enumeration value="long" />
-                       <enumeration value="Long" />
-                       <enumeration value="short" />
-                       <enumeration value="Short" />
-                       <enumeration value="String" />
-               </restriction>
-       </simpleType>
-
 </schema>

Added: 
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/component/Discovery_Ctor_dynamic_greedy_Test2.java?rev=1829114&view=auto
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_dynamic_greedy_Test2.java
 (added)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_dynamic_greedy_Test2.java
 Sat Apr 14 01:09:09 2018
@@ -0,0 +1,334 @@
+/**
+ * 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.internal.component;
+
+import static org.apache.aries.cdi.container.test.TestUtil.sort;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+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.test.MockCdiContainerAndComponents;
+import org.apache.aries.cdi.container.test.beans.Bar;
+import org.apache.aries.cdi.container.test.beans.Foo;
+import 
org.apache.aries.cdi.container.test.beans.ctordynamicgreedy.CtorCollectionFoo;
+import org.apache.aries.cdi.container.test.beans.ctordynamicgreedy.CtorFoo;
+import org.apache.aries.cdi.container.test.beans.ctordynamicgreedy.CtorFooBar;
+import org.apache.aries.cdi.container.test.beans.ctordynamicgreedy.CtorFooFoo;
+import 
org.apache.aries.cdi.container.test.beans.ctordynamicgreedy.CtorFooFooNamed;
+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.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 {
+
+       @Test
+       public void test_CtorCollectionFoo() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorCollectionFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.MANY, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(0, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorCollectionFoo.class.getName() + 
".new0", referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooFoo() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(2, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooFoo.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+
+                       referenceTemplateDTO = template.references.get(1);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooFoo.class.getName() + ".new1", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFoo() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFoo.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorListFoo() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorListFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.MANY, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(0, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorListFoo.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooBar() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooBar.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(2, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooBar.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+
+                       referenceTemplateDTO = template.references.get(1);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooBar.class.getName() + ".new1", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Bar.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooFooNamed() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooFooNamed.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(2, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals("foo_a", referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+
+                       referenceTemplateDTO = template.references.get(1);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals("foo_b", referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooOptional() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooOptional.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(0, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooOptional.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+}
\ No newline at end of file

Added: 
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/component/Discovery_Ctor_dynamic_reluctant_Test.java?rev=1829114&view=auto
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_dynamic_reluctant_Test.java
 (added)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_dynamic_reluctant_Test.java
 Sat Apr 14 01:09:09 2018
@@ -0,0 +1,334 @@
+/**
+ * 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.internal.component;
+
+import static org.apache.aries.cdi.container.test.TestUtil.sort;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+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.test.MockCdiContainerAndComponents;
+import org.apache.aries.cdi.container.test.beans.Bar;
+import org.apache.aries.cdi.container.test.beans.Foo;
+import 
org.apache.aries.cdi.container.test.beans.ctordynamicreluctant.CtorCollectionFoo;
+import org.apache.aries.cdi.container.test.beans.ctordynamicreluctant.CtorFoo;
+import 
org.apache.aries.cdi.container.test.beans.ctordynamicreluctant.CtorFooBar;
+import 
org.apache.aries.cdi.container.test.beans.ctordynamicreluctant.CtorFooFoo;
+import 
org.apache.aries.cdi.container.test.beans.ctordynamicreluctant.CtorFooFooNamed;
+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.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 {
+
+       @Test
+       public void test_CtorCollectionFoo() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorCollectionFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.MANY, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(0, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorCollectionFoo.class.getName() + 
".new0", referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooFoo() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(2, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooFoo.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+
+                       referenceTemplateDTO = template.references.get(1);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooFoo.class.getName() + ".new1", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFoo() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFoo.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorListFoo() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorListFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.MANY, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(0, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorListFoo.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooBar() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooBar.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(2, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooBar.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+
+                       referenceTemplateDTO = template.references.get(1);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooBar.class.getName() + ".new1", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Bar.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooFooNamed() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooFooNamed.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(2, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals("foo_a", referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+
+                       referenceTemplateDTO = template.references.get(1);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals("foo_b", referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooOptional() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooOptional.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(0, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooOptional.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.DYNAMIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+}
\ No newline at end of file

Added: 
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/component/Discovery_Ctor_static_greedy_Test.java?rev=1829114&view=auto
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_static_greedy_Test.java
 (added)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_static_greedy_Test.java
 Sat Apr 14 01:09:09 2018
@@ -0,0 +1,335 @@
+/**
+ * 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.internal.component;
+
+import static org.apache.aries.cdi.container.test.TestUtil.sort;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+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.test.MockCdiContainerAndComponents;
+import org.apache.aries.cdi.container.test.beans.Bar;
+import org.apache.aries.cdi.container.test.beans.Foo;
+import 
org.apache.aries.cdi.container.test.beans.ctorstaticgreedy.CtorCollectionFoo;
+import org.apache.aries.cdi.container.test.beans.ctorstaticgreedy.CtorFoo;
+import org.apache.aries.cdi.container.test.beans.ctorstaticgreedy.CtorFooBar;
+import org.apache.aries.cdi.container.test.beans.ctorstaticgreedy.CtorFooFoo;
+import 
org.apache.aries.cdi.container.test.beans.ctorstaticgreedy.CtorFooFooNamed;
+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.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 {
+
+       @Test
+       public void test_CtorListFoo() throws Exception {
+               try (MockCdiContainerAndComponents container =
+                               new MockCdiContainerAndComponents(
+                                       "test", CtorListFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.MANY, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(0, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorListFoo.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorCollectionFoo() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorCollectionFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.MANY, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(0, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorCollectionFoo.class.getName() + 
".new0", referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooFoo() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(2, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooFoo.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+
+                       referenceTemplateDTO = template.references.get(1);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooFoo.class.getName() + ".new1", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFoo() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFoo.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooBar() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooBar.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(2, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooBar.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+
+                       referenceTemplateDTO = template.references.get(1);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooBar.class.getName() + ".new1", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Bar.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooFooNamed() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooFooNamed.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(2, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals("foo_a", referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+
+                       referenceTemplateDTO = template.references.get(1);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals("foo_b", referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooOptional() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooOptional.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(0, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooOptional.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.GREEDY, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+}
\ No newline at end of file

Added: 
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/component/Discovery_Ctor_static_reluctant_Test.java?rev=1829114&view=auto
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_static_reluctant_Test.java
 (added)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_static_reluctant_Test.java
 Sat Apr 14 01:09:09 2018
@@ -0,0 +1,335 @@
+/**
+ * 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.internal.component;
+
+import static org.apache.aries.cdi.container.test.TestUtil.sort;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+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.test.MockCdiContainerAndComponents;
+import org.apache.aries.cdi.container.test.beans.Bar;
+import org.apache.aries.cdi.container.test.beans.Foo;
+import 
org.apache.aries.cdi.container.test.beans.ctorstaticreluctant.CtorCollectionFoo;
+import org.apache.aries.cdi.container.test.beans.ctorstaticreluctant.CtorFoo;
+import 
org.apache.aries.cdi.container.test.beans.ctorstaticreluctant.CtorFooBar;
+import 
org.apache.aries.cdi.container.test.beans.ctorstaticreluctant.CtorFooFoo;
+import 
org.apache.aries.cdi.container.test.beans.ctorstaticreluctant.CtorFooFooNamed;
+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.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 {
+
+       @Test
+       public void test_CtorListFoo() throws Exception {
+               try (MockCdiContainerAndComponents container =
+                               new MockCdiContainerAndComponents(
+                                       "test", CtorListFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.MANY, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(0, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorListFoo.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorCollectionFoo() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorCollectionFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.MANY, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(0, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorCollectionFoo.class.getName() + 
".new0", referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooFoo() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(2, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooFoo.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+
+                       referenceTemplateDTO = template.references.get(1);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooFoo.class.getName() + ".new1", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFoo() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFoo.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFoo.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooBar() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooBar.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(2, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooBar.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+
+                       referenceTemplateDTO = template.references.get(1);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooBar.class.getName() + ".new1", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Bar.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooFooNamed() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooFooNamed.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(2, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals("foo_a", referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+
+                       referenceTemplateDTO = template.references.get(1);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(1, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals("foo_b", referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+       @Test
+       public void test_CtorFooOptional() throws Exception {
+               try (MockCdiContainerAndComponents container = new 
MockCdiContainerAndComponents(
+                               "test", CtorFooOptional.class.getName())) {
+
+                       BeansModel beansModel = 
container.containerState().beansModel();
+
+                       Collection<OSGiBean> beans = 
sort(beansModel.getOSGiBeans());
+
+                       assertEquals(1, beans.size());
+
+                       OSGiBean bean = beans.iterator().next();
+
+                       Component component = bean.getComponent();
+
+                       assertNotNull(component);
+
+                       ComponentTemplateDTO template = component.getTemplate();
+
+                       assertNotNull(template);
+                       assertNotNull(template.references);
+
+                       assertEquals(1, template.references.size());
+
+                       ReferenceTemplateDTO referenceTemplateDTO = 
template.references.get(0);
+
+                       assertEquals(MaximumCardinality.ONE, 
referenceTemplateDTO.maximumCardinality);
+                       assertEquals(0, 
referenceTemplateDTO.minimumCardinality);
+                       assertEquals(CtorFooOptional.class.getName() + ".new0", 
referenceTemplateDTO.name);
+                       assertEquals(ReferenceTemplateDTO.Policy.STATIC, 
referenceTemplateDTO.policy);
+                       assertEquals(
+                               ReferenceTemplateDTO.PolicyOption.RELUCTANT, 
referenceTemplateDTO.policyOption);
+                       assertEquals(Foo.class.getName(), 
referenceTemplateDTO.serviceType);
+                       assertEquals("", referenceTemplateDTO.targetFilter);
+               }
+       }
+
+}
\ No newline at end of file

Added: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/IfBeanClassIsOSGiAnnotatedTest.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/IfBeanClassIsOSGiAnnotatedTest.java?rev=1829114&view=auto
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/IfBeanClassIsOSGiAnnotatedTest.java
 (added)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/IfBeanClassIsOSGiAnnotatedTest.java
 Sat Apr 14 01:09:09 2018
@@ -0,0 +1,117 @@
+package org.apache.aries.cdi.container.internal.component;
+
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.ElementType.TYPE_USE;
+import static 
org.apache.aries.cdi.container.internal.component.DiscoveryExtension.checkIfBeanClassIsOSGiAnnotated;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.Serializable;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.junit.Test;
+import org.osgi.service.cdi.annotations.ComponentScoped;
+import org.osgi.service.cdi.annotations.Configuration;
+import org.osgi.service.cdi.annotations.FactoryComponent;
+import org.osgi.service.cdi.annotations.Reference;
+import org.osgi.service.cdi.annotations.Service;
+import org.osgi.service.cdi.annotations.SingleComponent;
+
+public class IfBeanClassIsOSGiAnnotatedTest {
+
+       class Bar {}
+
+       @Retention(RetentionPolicy.RUNTIME)
+       @Target({CONSTRUCTOR, FIELD, METHOD, PARAMETER, TYPE, TYPE_USE})
+       @interface Anno {}
+
+       @Anno
+       @SuppressWarnings("serial")
+       class Fum extends @Anno Bar implements @Anno Serializable {
+               @Anno Fum(@Anno String param) {}
+               @Anno String field;
+               @Anno String method(@Anno String param) {return param;}
+       }
+
+       @Test
+       public void testNotAnnotated() {
+               assertFalse(checkIfBeanClassIsOSGiAnnotated(Fum.class));
+       }
+
+       @Test
+       public void testFactoryComponent() throws Exception {
+               @FactoryComponent
+               class Foo {}
+
+               assertTrue(checkIfBeanClassIsOSGiAnnotated(Foo.class));
+       }
+
+       @Test
+       public void testSingleComponent() throws Exception {
+               @SingleComponent
+               class Foo {}
+
+               assertTrue(checkIfBeanClassIsOSGiAnnotated(Foo.class));
+       }
+
+       @Test
+       public void testComponentScoped() throws Exception {
+               class FooField { @ComponentScoped String field;}
+               class FooMethod { @ComponentScoped void method() {}}
+               @ComponentScoped
+               class FooType {}
+
+               assertTrue(checkIfBeanClassIsOSGiAnnotated(FooField.class));
+               assertTrue(checkIfBeanClassIsOSGiAnnotated(FooMethod.class));
+               assertTrue(checkIfBeanClassIsOSGiAnnotated(FooType.class));
+       }
+
+       @Test
+       public void testConfiguration() throws Exception {
+               class Foo { @SuppressWarnings("unused")
+               Foo(@Configuration String param) {}}
+               class FooField { @Configuration String field;}
+               class FooMethod { @SuppressWarnings("unused")
+               void method(@Configuration String param) {}}
+
+               assertTrue(checkIfBeanClassIsOSGiAnnotated(Foo.class));
+               assertTrue(checkIfBeanClassIsOSGiAnnotated(FooField.class));
+               assertTrue(checkIfBeanClassIsOSGiAnnotated(FooMethod.class));
+       }
+
+       @Test
+       public void testReference() throws Exception {
+               class Foo { @SuppressWarnings("unused")
+               Foo(@Reference String param) {}}
+               class FooField { @Reference String field;}
+               class FooMethod { @SuppressWarnings("unused")
+               void method(@Reference String param) {}}
+
+               assertTrue(checkIfBeanClassIsOSGiAnnotated(Foo.class));
+               assertTrue(checkIfBeanClassIsOSGiAnnotated(FooField.class));
+               assertTrue(checkIfBeanClassIsOSGiAnnotated(FooMethod.class));
+       }
+
+       @Test
+       public void testService() throws Exception {
+               @Service
+               class Foo {}
+               @SuppressWarnings("serial")
+               class FooImplements implements @Service Serializable {}
+               class FooExtends extends @Service Foo {}
+               class FooField { @Service String field;}
+               class FooMethod { @Service void method() {}}
+
+               assertTrue(checkIfBeanClassIsOSGiAnnotated(Foo.class));
+               
assertTrue(checkIfBeanClassIsOSGiAnnotated(FooImplements.class));
+               assertTrue(checkIfBeanClassIsOSGiAnnotated(FooExtends.class));
+               assertTrue(checkIfBeanClassIsOSGiAnnotated(FooField.class));
+               assertTrue(checkIfBeanClassIsOSGiAnnotated(FooMethod.class));
+       }
+}

Modified: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallbackTest_Ignore.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallbackTest_Ignore.java?rev=1829114&r1=1829113&r2=1829114&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallbackTest_Ignore.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallbackTest_Ignore.java
 Sat Apr 14 01:09:09 2018
@@ -14,19 +14,9 @@
 
 package org.apache.aries.cdi.container.internal.configuration;
 
-import static org.osgi.framework.Constants.SERVICE_PID;
-import static org.apache.aries.cdi.container.test.TestUtil.*;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.osgi.service.cdi.annotations.ConfigurationPolicy;
-
 public class ConfigurationCallbackTest_Ignore {
 
-       @Test
+/*     @Test
        public void test_emptyAdd() throws Exception {
                ConfigurationCallback callback = getCallback(POLICY);
 
@@ -351,5 +341,5 @@ public class ConfigurationCallbackTest_I
        }
 
        private ConfigurationPolicy POLICY = ConfigurationPolicy.IGNORE;
-
+*/
 }

Modified: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallbackTest_Optional.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallbackTest_Optional.java?rev=1829114&r1=1829113&r2=1829114&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallbackTest_Optional.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallbackTest_Optional.java
 Sat Apr 14 01:09:09 2018
@@ -14,19 +14,9 @@
 
 package org.apache.aries.cdi.container.internal.configuration;
 
-import static org.osgi.framework.Constants.SERVICE_PID;
-import static org.apache.aries.cdi.container.test.TestUtil.*;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.osgi.service.cdi.annotations.ConfigurationPolicy;
-
 public class ConfigurationCallbackTest_Optional {
 
-       @Test(expected = IllegalArgumentException.class)
+/*     @Test(expected = IllegalArgumentException.class)
        public void test_emptyAdd() throws Exception {
                ConfigurationCallback callback = getCallback(POLICY);
 
@@ -358,5 +348,5 @@ public class ConfigurationCallbackTest_O
        }
 
        private ConfigurationPolicy POLICY = ConfigurationPolicy.OPTIONAL;
-
+*/
 }

Modified: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallbackTest_Require.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallbackTest_Require.java?rev=1829114&r1=1829113&r2=1829114&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallbackTest_Require.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallbackTest_Require.java
 Sat Apr 14 01:09:09 2018
@@ -14,19 +14,9 @@
 
 package org.apache.aries.cdi.container.internal.configuration;
 
-import static org.osgi.framework.Constants.SERVICE_PID;
-import static org.apache.aries.cdi.container.test.TestUtil.*;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.osgi.service.cdi.annotations.ConfigurationPolicy;
-
 public class ConfigurationCallbackTest_Require {
 
-       @Test(expected = IllegalArgumentException.class)
+/*     @Test(expected = IllegalArgumentException.class)
        public void test_emptyAdd() throws Exception {
                ConfigurationCallback callback = getCallback(POLICY);
 
@@ -358,5 +348,5 @@ public class ConfigurationCallbackTest_R
        }
 
        private ConfigurationPolicy POLICY = ConfigurationPolicy.REQUIRE;
-
+*/
 }

Modified: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedServiceTest_Ignore.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedServiceTest_Ignore.java?rev=1829114&r1=1829113&r2=1829114&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedServiceTest_Ignore.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedServiceTest_Ignore.java
 Sat Apr 14 01:09:09 2018
@@ -14,19 +14,9 @@
 
 package org.apache.aries.cdi.container.internal.configuration;
 
-import static org.apache.aries.cdi.container.test.TestUtil.*;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.osgi.service.cdi.annotations.ConfigurationPolicy;
-import org.osgi.service.cm.ManagedService;
-
 public class ConfigurationManagedServiceTest_Ignore {
 
-       @Test
+/*     @Test
        public void test_emptyAdd() throws Exception {
                ConfigurationCallback configurationCallback = 
getCallback(POLICY);
 
@@ -265,5 +255,5 @@ public class ConfigurationManagedService
        }
 
        private ConfigurationPolicy POLICY = ConfigurationPolicy.IGNORE;
-
+*/
 }

Modified: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedServiceTest_Optional.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedServiceTest_Optional.java?rev=1829114&r1=1829113&r2=1829114&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedServiceTest_Optional.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedServiceTest_Optional.java
 Sat Apr 14 01:09:09 2018
@@ -14,20 +14,9 @@
 
 package org.apache.aries.cdi.container.internal.configuration;
 
-import static org.apache.aries.cdi.container.test.TestUtil.*;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.junit.Assert;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.osgi.service.cdi.annotations.ConfigurationPolicy;
-import org.osgi.service.cm.ManagedService;
-
 public class ConfigurationManagedServiceTest_Optional {
 
-       @Test(expected = IllegalArgumentException.class)
+/*     @Test(expected = IllegalArgumentException.class)
        public void test_emptyAdd() throws Exception {
                ConfigurationCallback configurationCallback = 
getCallback(POLICY);
 
@@ -268,5 +257,5 @@ public class ConfigurationManagedService
        }
 
        private ConfigurationPolicy POLICY = ConfigurationPolicy.OPTIONAL;
-
+*/
 }

Modified: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedServiceTest_Require.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedServiceTest_Require.java?rev=1829114&r1=1829113&r2=1829114&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedServiceTest_Require.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedServiceTest_Require.java
 Sat Apr 14 01:09:09 2018
@@ -14,20 +14,9 @@
 
 package org.apache.aries.cdi.container.internal.configuration;
 
-import static org.apache.aries.cdi.container.test.TestUtil.*;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.junit.Assert;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.osgi.service.cdi.annotations.ConfigurationPolicy;
-import org.osgi.service.cm.ManagedService;
-
 public class ConfigurationManagedServiceTest_Require {
 
-       @Test(expected = IllegalArgumentException.class)
+/*     @Test(expected = IllegalArgumentException.class)
        public void test_emptyAdd() throws Exception {
                ConfigurationCallback configurationCallback = 
getCallback(POLICY);
 
@@ -268,5 +257,5 @@ public class ConfigurationManagedService
        }
 
        private ConfigurationPolicy POLICY = ConfigurationPolicy.REQUIRE;
-
+*/
 }


Reply via email to