Added: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainer.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainer.java?rev=1807424&view=auto
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainer.java
 (added)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainer.java
 Tue Sep  5 22:01:11 2017
@@ -0,0 +1,89 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.aries.cdi.container.test;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.Extension;
+
+import org.apache.aries.cdi.container.internal.container.ContainerDeployment;
+import org.apache.aries.cdi.container.internal.container.ContainerEnvironment;
+import org.apache.aries.cdi.container.internal.literal.AnyLiteral;
+import org.jboss.weld.bootstrap.WeldBootstrap;
+import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
+import org.jboss.weld.bootstrap.spi.Deployment;
+import org.jboss.weld.bootstrap.spi.Metadata;
+import org.jboss.weld.manager.BeanManagerImpl;
+import org.junit.Assert;
+
+public class MockCdiContainer implements AutoCloseable {
+
+       public MockCdiContainer(String name, String... beanClasses) {
+               this(name, Collections.emptyList(), beanClasses);
+       }
+
+       public MockCdiContainer(String name, List<Metadata<Extension>> 
extensions, String... beanClasses) {
+               _bda = new MockBeanDeploymentArchive(name, beanClasses);
+
+               Deployment deployment = new ContainerDeployment(extensions, 
_bda);
+
+               WeldBootstrap bootstrap = new WeldBootstrap();
+
+               bootstrap.startExtensions(extensions);
+               bootstrap.startContainer(new ContainerEnvironment(), 
deployment);
+               bootstrap.startInitialization();
+               bootstrap.deployBeans();
+               bootstrap.validateBeans();
+               bootstrap.endInitialization();
+
+               _bootstrap = bootstrap;
+       }
+
+       @Override
+       public void close() {
+               _bootstrap.shutdown();
+       }
+
+       public Bean<?> getBean(Class<?> clazz) {
+               final BeanManagerImpl managerImpl = getBeanManager();
+
+               Set<javax.enterprise.inject.spi.Bean<?>> beans =
+                       managerImpl.getBeans(clazz, AnyLiteral.INSTANCE);
+
+               Assert.assertFalse(beans.isEmpty());
+
+               return managerImpl.resolve(beans);
+       }
+
+       public BeanManagerImpl getBeanManager() {
+               if (_beanManagerImpl != null) {
+                       return _beanManagerImpl;
+               }
+
+               return _beanManagerImpl = _bootstrap.getManager(_bda);
+       }
+
+       public WeldBootstrap getBootstrap() {
+               return _bootstrap;
+       }
+
+       private final BeanDeploymentArchive _bda;
+       private BeanManagerImpl _beanManagerImpl;
+       private final WeldBootstrap _bootstrap;
+
+}
\ No newline at end of file

Added: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainerAndComponents.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainerAndComponents.java?rev=1807424&view=auto
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainerAndComponents.java
 (added)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainerAndComponents.java
 Tue Sep  5 22:01:11 2017
@@ -0,0 +1,65 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.aries.cdi.container.test;
+
+import static org.apache.aries.cdi.container.test.TestUtil.*;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.aries.cdi.container.internal.component.ComponentModel;
+import org.apache.aries.cdi.container.internal.container.ContainerDiscovery;
+import org.apache.aries.cdi.container.internal.container.ContainerState;
+import org.apache.aries.cdi.container.internal.model.BeansModel;
+import org.apache.aries.cdi.container.internal.phase.Phase;
+import org.apache.aries.cdi.container.internal.phase.Phase_Configuration;
+
+public class MockCdiContainerAndComponents implements AutoCloseable {
+
+       public MockCdiContainerAndComponents(String name, String... 
beanClasses) throws Exception {
+               Map<String, ComponentModel> components = new HashMap<>();
+
+               for (String className : beanClasses) {
+                       Class<?> clazz = Class.forName(className);
+
+                       components.put(className, new 
ComponentModel.Builder(clazz).build());
+               }
+
+               _beansModel = new BeansModel(components, 
Collections.emptyList());
+
+               _containerState = getContainerState(_beansModel);
+
+               ContainerDiscovery.discover(_containerState);
+
+               _nextPhase = new Phase_Configuration(_containerState, 
Collections.emptyList());
+
+               _nextPhase.open();
+       }
+
+       @Override
+       public void close() throws Exception {
+               _nextPhase.close();
+       }
+
+       public ContainerState containerState() {
+               return _containerState;
+       }
+
+       private final BeansModel _beansModel;
+       private ContainerState _containerState;
+       private final Phase _nextPhase;
+
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockInjectionPoint.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ReferenceInjectionPoint.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockInjectionPoint.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockInjectionPoint.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ReferenceInjectionPoint.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ReferenceInjectionPoint.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockInjectionPoint.java
 Tue Sep  5 22:01:11 2017
@@ -12,37 +12,35 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.model;
+package org.apache.aries.cdi.container.test;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Member;
 import java.lang.reflect.Type;
+import java.util.Collections;
 import java.util.Set;
 
 import javax.enterprise.inject.spi.Annotated;
 import javax.enterprise.inject.spi.Bean;
 import javax.enterprise.inject.spi.InjectionPoint;
 
-import org.apache.aries.cdi.container.internal.literal.AnyLiteral;
-import org.apache.aries.cdi.container.internal.literal.DefaultLiteral;
-import org.apache.aries.cdi.container.internal.literal.ReferenceLiteral;
-import org.apache.aries.cdi.container.internal.util.Sets;
-
-public class ReferenceInjectionPoint implements InjectionPoint {
-
-       public ReferenceInjectionPoint(Class<?> beanClass, String target) {
-               _beanClass = beanClass;
-               _qualifiers = Sets.hashSet(DefaultLiteral.INSTANCE, 
AnyLiteral.INSTANCE, ReferenceLiteral.from(target));
+import org.jboss.weld.annotated.slim.unbacked.UnbackedAnnotated;
+
+public class MockInjectionPoint implements InjectionPoint {
+
+       public MockInjectionPoint(Type type) {
+               _type = type;
+               _annotated = new UnbackedAnnotated(_type, 
Collections.emptySet(), Collections.emptySet());
        }
 
        @Override
        public Type getType() {
-               return _beanClass;
+               return _type;
        }
 
        @Override
        public Set<Annotation> getQualifiers() {
-               return _qualifiers;
+               return Collections.emptySet();
        }
 
        @Override
@@ -57,7 +55,7 @@ public class ReferenceInjectionPoint imp
 
        @Override
        public Annotated getAnnotated() {
-               return null;
+               return _annotated;
        }
 
        @Override
@@ -70,7 +68,12 @@ public class ReferenceInjectionPoint imp
                return false;
        }
 
-       private final Class<?> _beanClass;
-       private final Set<Annotation> _qualifiers;
+       @Override
+       public String toString() {
+               return getClass().getSimpleName() + "[" + _type + "]";
+       }
+
+       private final Type _type;
+       private final Annotated _annotated;
 
-}
\ No newline at end of file
+}

Added: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockServiceReference.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockServiceReference.java?rev=1807424&view=auto
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockServiceReference.java
 (added)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockServiceReference.java
 Tue Sep  5 22:01:11 2017
@@ -0,0 +1,131 @@
+package org.apache.aries.cdi.container.test;
+
+import java.util.Collections;
+import java.util.Dictionary;
+import java.util.Hashtable;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.osgi.framework.Bundle;
+import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceReference;
+
+public class MockServiceReference<S> implements ServiceReference<S> {
+
+       public MockServiceReference(S service) {
+               _service = service;
+               _properties.put(Constants.SERVICE_ID, 
_serviceIds.incrementAndGet());
+       }
+
+       @Override
+       public int compareTo(Object other) {
+               if (!(other instanceof ServiceReference)) {
+                       return -1;
+               }
+
+               ServiceReference otherReference = (ServiceReference)other;
+
+               Long id = (Long)getProperty(Constants.SERVICE_ID);
+               Long otherId = 
(Long)otherReference.getProperty(Constants.SERVICE_ID);
+
+               if (id.equals(otherId)) {
+
+                       // same service
+
+                       return 0;
+               }
+
+               Object rankingObj = getProperty(Constants.SERVICE_RANKING);
+               Object otherRankingObj = 
otherReference.getProperty(Constants.SERVICE_RANKING);
+
+               // If no rank, then spec says it defaults to zero.
+
+               if (rankingObj == null) {
+                       rankingObj = _ZERO;
+               }
+
+               if (otherRankingObj == null) {
+                       otherRankingObj = _ZERO;
+               }
+
+               // If rank is not Integer, then spec says it defaults to zero.
+
+               Integer ranking = _ZERO;
+
+               if (rankingObj instanceof Integer) {
+                       ranking = (Integer)rankingObj;
+               }
+
+               Integer otherRanking = _ZERO;
+
+               if (otherRankingObj instanceof Integer) {
+                       otherRanking = (Integer)otherRankingObj;
+               }
+
+               // Sort by rank in ascending order.
+
+               if (ranking.compareTo(otherRanking) < 0) {
+
+                       // lower rank
+
+                       return -1;
+               }
+               else if (ranking.compareTo(otherRanking) > 0) {
+
+                       // higher rank
+
+                       return 1;
+               }
+
+               // If ranks are equal, then sort by service id in descending 
order.
+
+               if (id.compareTo(otherId) < 0) {
+                       return 1;
+               }
+
+               return -1;
+       }
+
+       @Override
+       public Bundle getBundle() {
+               return null;
+       }
+
+       @Override
+       public Object getProperty(String key) {
+               return _properties.get(key);
+       }
+
+       @Override
+       public String[] getPropertyKeys() {
+               return Collections.list(_properties.keys()).toArray(new 
String[0]);
+       }
+
+       public S getService() {
+               return _service;
+       }
+
+       @Override
+       public Bundle[] getUsingBundles() {
+               return null;
+       }
+
+       @Override
+       public boolean isAssignableTo(Bundle bundle, String className) {
+               return true;
+       }
+
+       public void setProperty(String key, Object value) {
+               if (Constants.SERVICE_ID.equals(key)) {
+                       return;
+               }
+               _properties.put(key, value);
+       }
+
+       public static final AtomicInteger _serviceIds = new AtomicInteger();
+
+       private static final Integer _ZERO = new Integer(0);
+
+       private final Dictionary<String, Object> _properties = new 
Hashtable<>();
+       private final S _service;
+
+}

Added: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/TestUtil.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/TestUtil.java?rev=1807424&view=auto
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/TestUtil.java
 (added)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/TestUtil.java
 Tue Sep  5 22:01:11 2017
@@ -0,0 +1,249 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.aries.cdi.container.test;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Dictionary;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import javax.enterprise.inject.spi.BeanManager;
+
+import 
org.apache.aries.cdi.container.internal.configuration.ConfigurationCallback;
+import org.apache.aries.cdi.container.internal.container.ContainerState;
+import org.apache.aries.cdi.container.internal.model.AbstractModelBuilder;
+import org.apache.aries.cdi.container.internal.model.BeansModel;
+import org.apache.aries.cdi.container.internal.model.Context;
+import org.apache.aries.cdi.container.internal.model.Registrator;
+import org.apache.aries.cdi.container.internal.model.Tracker;
+import org.apache.aries.cdi.container.internal.reference.ReferenceCallback;
+import org.jboss.weld.resources.spi.ResourceLoader;
+import org.jboss.weld.serialization.spi.ProxyServices;
+import org.osgi.framework.ServiceObjects;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.cdi.CdiConstants;
+import org.osgi.service.cdi.annotations.ConfigurationPolicy;
+import org.osgi.service.cm.ManagedService;
+import org.osgi.util.tracker.ServiceTrackerCustomizer;
+
+public class TestUtil {
+
+       public static ConfigurationCallback getCallback(ConfigurationPolicy 
policy) {
+               return new 
ConfigurationCallback.Builder().policy(policy).build();
+       }
+
+       public static AbstractModelBuilder getModelBuilder(final String 
osgiBeansFile) {
+               return getModelBuilder(
+                       Arrays.asList(
+                               "OSGI-INF/cdi/beans-configuration.xml",
+                               "OSGI-INF/cdi/beans-only.xml",
+                               "OSGI-INF/cdi/beans-references.xml",
+                               "OSGI-INF/cdi/beans-services.xml"
+                       ),  osgiBeansFile);
+       }
+
+       public static AbstractModelBuilder getModelBuilder(
+               final List<String> defaultResources, final String 
osgiBeansFile) {
+
+               return new AbstractModelBuilder() {
+
+                       @Override
+                       public List<String> getDefaultResources() {
+                               return defaultResources;
+                       }
+
+                       @Override
+                       public URL getResource(String resource) {
+                               return getClassLoader().getResource(resource);
+                       }
+
+                       @Override
+                       public ClassLoader getClassLoader() {
+                               return getClass().getClassLoader();
+                       }
+
+                       @Override
+                       public Map<String, Object> getAttributes() {
+                               if (osgiBeansFile == null) {
+                                       return Collections.emptyMap();
+                               }
+
+                               return Collections.singletonMap(
+                                       
CdiConstants.REQUIREMENT_OSGI_BEANS_ATTRIBUTE, Arrays.asList(osgiBeansFile));
+                       }
+               };
+       }
+
+       public static <T> Collection<T> sort(Collection<T> set) {
+               return sort(set, (c1, c2) -> 
c1.getClass().getName().compareTo(c2.getClass().getName()));
+       }
+
+       public static <T> Collection<T> sort(Collection<T> set, Comparator<T> 
comparator) {
+               List<T> list = new ArrayList<>(set);
+
+               Collections.sort(list, comparator);
+
+               return list;
+       }
+
+       public static ContainerState getContainerState(BeansModel beansModel) {
+               final TContext context = new TContext();
+               final TBMRegistrator bmRegistrator = new TBMRegistrator();
+               final TMSRegistrator msRegistrator = new TMSRegistrator();
+               final TRegistrator serviceRegistrator = new TRegistrator();
+               final TTracker tracker = new TTracker();
+
+               return new ContainerState(null, null) {
+
+                       @Override
+                       public BeansModel beansModel() {
+                               return beansModel;
+                       }
+
+                       public <T extends ResourceLoader & ProxyServices> T 
loader() {
+                               return null;
+                       }
+
+                       @Override
+                       public Context context() {
+                               return context;
+                       }
+
+                       @Override
+                       public Registrator<BeanManager> 
beanManagerRegistrator() {
+                               return bmRegistrator;
+                       }
+
+                       @Override
+                       public Registrator<ManagedService> 
managedServiceRegistrator() {
+                               return msRegistrator;
+                       }
+
+                       @Override
+                       public Registrator<Object> serviceRegistrator() {
+                               return serviceRegistrator;
+                       }
+
+                       @Override
+                       public Tracker tracker() {
+                               return tracker;
+                       }
+
+               };
+       }
+
+       public static class TContext extends Context {
+
+               @Override
+               public <T> T getService(ServiceReference<T> reference) {
+                       if (reference instanceof MockServiceReference) {
+                               return 
((MockServiceReference<T>)reference).getService();
+                       }
+                       return null;
+               }
+
+               @Override
+               public <T> ServiceObjects<T> 
getServiceObjects(ServiceReference<T> reference) {
+                       return null;
+               }
+
+               @Override
+               public <T> boolean ungetService(ServiceReference<T> reference) {
+                       return false;
+               }
+
+       }
+
+       public static class TBMRegistrator extends Registrator<BeanManager> {
+
+               @Override
+               public void close() {
+                       registrations.clear();
+               }
+
+               @Override
+               public void registerService(String[] classNames, BeanManager 
service, Dictionary<String, ?> properties) {
+                       registrations.put(properties, service);
+               }
+
+               @Override
+               public int size() {
+                       return registrations.size();
+               }
+
+               public final Map<Dictionary<String, ?>, BeanManager> 
registrations = new ConcurrentHashMap<>();
+
+       }
+
+       public static class TMSRegistrator extends Registrator<ManagedService> {
+
+               @Override
+               public void close() {
+                       registrations.clear();
+               }
+
+               @Override
+               public void registerService(String[] classNames, ManagedService 
service, Dictionary<String, ?> properties) {
+                       registrations.put(properties, service);
+               }
+
+               @Override
+               public int size() {
+                       return registrations.size();
+               }
+
+               public final Map<Dictionary<String, ?>, ManagedService> 
registrations = new ConcurrentHashMap<>();
+
+       }
+
+       public static class TRegistrator extends Registrator<Object> {
+
+               @Override
+               public void close() {
+                       registrations.clear();
+               }
+
+               @Override
+               public void registerService(String[] classNames, Object 
service, Dictionary<String, ?> properties) {
+                       registrations.put(properties, service);
+               }
+
+               @Override
+               public int size() {
+                       return registrations.size();
+               }
+
+               public final Map<Dictionary<String, ?>, Object> registrations = 
new ConcurrentHashMap<>();
+
+       }
+
+       public static class TTracker extends Tracker {
+
+               @Override
+               public <T> void track(String targetFilter, ReferenceCallback 
callback) {
+                       trackers.put(targetFilter, callback);
+               }
+
+               public final Map<String, ServiceTrackerCustomizer<Object, ?>> 
trackers = new ConcurrentHashMap<>();
+
+       }
+
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ArrayListFooProducer.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ArrayListFooProducer.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ArrayListFooProducer.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ArrayListFooProducer.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,20 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import java.util.ArrayList;
 
-       public void close();
+import javax.enterprise.inject.Produces;
 
-       public void open();
+import org.osgi.service.cdi.annotations.Reference;
 
-}
+public class ArrayListFooProducer {
+       @Produces
+       @Reference
+       public ArrayList<Foo> getFoo() {
+               ArrayList<Foo> al = new ArrayList<>();
+               al.add(new Foo() {});
+               return al;
+       }
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Bar.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/BindType.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Bar.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Bar.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/BindType.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/BindType.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Bar.java
 Tue Sep  5 22:01:11 2017
@@ -12,8 +12,6 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public enum BindType {
-       SERVICE, SERVICE_PROPERTIES, SERVICE_REFERENCE
-}
\ No newline at end of file
+public interface Bar {}
\ No newline at end of file

Added: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarAnnotated.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarAnnotated.java?rev=1807424&view=auto
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarAnnotated.java
 (added)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarAnnotated.java
 Tue Sep  5 22:01:11 2017
@@ -0,0 +1,61 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.aries.cdi.container.test.beans;
+
+import java.util.Collection;
+import java.util.Map;
+
+import javax.enterprise.inject.Instance;
+import javax.inject.Inject;
+
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.cdi.annotations.Configuration;
+import org.osgi.service.cdi.annotations.Reference;
+import org.osgi.service.cdi.annotations.ReferenceCardinality;
+import org.osgi.service.cdi.annotations.ReferencePolicy;
+import org.osgi.service.cdi.annotations.ReferencePolicyOption;
+import org.osgi.service.cdi.annotations.ReferenceScope;
+
+public class BarAnnotated {
+
+       @Inject
+       @Reference(cardinality = ReferenceCardinality.OPTIONAL)
+       Foo foo;
+
+       @Inject
+       @Reference(name = "foos")
+       Instance<Foo> instanceFoos;
+
+       @Inject
+       @Reference(policy = ReferencePolicy.DYNAMIC)
+       Collection<Foo> collectionFoos;
+
+       @Inject
+       @Reference(policyOption = ReferencePolicyOption.GREEDY)
+       Collection<Map.Entry<Map<String, Object>, Foo>> tupleFoos;
+
+       @Inject
+       @Reference(scope = ReferenceScope.PROTOTYPE)
+       Collection<ServiceReference<Foo>> serviceReferencesFoos;
+
+       @Inject
+       @Reference(service = Foo.class)
+       Collection<Map<String, Object>> propertiesFoos;
+
+       @Inject
+       @Configuration("foo.config")
+       Config config;
+
+}

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarBadlyAnnotated.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarBadlyAnnotated.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarBadlyAnnotated.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarBadlyAnnotated.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,18 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.inject.Inject;
 
-       public void close();
+import org.osgi.service.cdi.annotations.Configuration;
+import org.osgi.service.cdi.annotations.Reference;
 
-       public void open();
+public class BarBadlyAnnotated {
+
+       @Inject
+       @Reference
+       @Configuration
+       Foo foo;
 
 }

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarProducer.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarProducer.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarProducer.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarProducer.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,16 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.enterprise.inject.Produces;
 
-       public void close();
+import org.osgi.service.cdi.annotations.Reference;
 
-       public void open();
-
-}
+public class BarProducer {
+       @Produces
+       @Reference
+       public Bar getBar() {
+               return new Bar() {};
+       }
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarReference.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarReference.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarReference.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarReference.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,8 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
-
-       public void close();
-
-       public void open();
+public interface BarReference {
 
 }

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarService.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarService.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarService.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarService.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,8 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
-
-       public void close();
-
-       public void open();
+public class BarService implements Bar {
 
 }

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarWithConfig.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarWithConfig.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarWithConfig.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarWithConfig.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,16 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.inject.Inject;
 
-       public void close();
+public class BarWithConfig {
 
-       public void open();
+       @Inject
+       public Bar bar;
+
+       @Inject
+       public Config config;
 
 }

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarWithReference.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarWithReference.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarWithReference.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarWithReference.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,13 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.inject.Inject;
 
-       public void close();
+public class BarWithReference {
 
-       public void open();
+       @Inject
+       public BarReference barReference;
 
 }

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CollectionFooProducer.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CollectionFooProducer.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CollectionFooProducer.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CollectionFooProducer.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,19 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import java.util.Arrays;
+import java.util.Collection;
 
-       public void close();
+import javax.enterprise.inject.Produces;
 
-       public void open();
+import org.osgi.service.cdi.annotations.Reference;
 
-}
+public class CollectionFooProducer {
+       @Produces
+       @Reference
+       public Collection<Foo> getFoo() {
+               return Arrays.asList(new Foo() {});
+       }
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Config.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Config.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Config.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Config.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,8 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
-
-       public void close();
-
-       public void open();
+public @interface Config {
 
 }

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorArrayListFoo.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorArrayListFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorArrayListFoo.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorArrayListFoo.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,15 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import java.util.ArrayList;
 
-       public void close();
+import javax.inject.Inject;
 
-       public void open();
+import org.osgi.service.cdi.annotations.Reference;
 
-}
+public class CtorArrayListFoo {
+       @Inject
+       public CtorArrayListFoo(@Reference ArrayList<Foo> foos) {}
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,15 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import java.util.Collection;
 
-       public void close();
+import javax.inject.Inject;
 
-       public void open();
+import org.osgi.service.cdi.annotations.Reference;
 
-}
+public class CtorCollectionFoo {
+       @Inject
+       public CtorCollectionFoo(@Reference Collection<Foo> foos) {}
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,13 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.inject.Inject;
 
-       public void close();
+import org.osgi.service.cdi.annotations.Reference;
 
-       public void open();
-
-}
+public class CtorFoo {
+       @Inject
+       public CtorFoo(@Reference Foo foo) {}
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,13 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.inject.Inject;
 
-       public void close();
+import org.osgi.service.cdi.annotations.Reference;
 
-       public void open();
-
-}
+public class CtorFooBar {
+       @Inject
+       public CtorFooBar(@Reference Foo foo, @Reference Bar bar) {}
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,13 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.inject.Inject;
 
-       public void close();
+import org.osgi.service.cdi.annotations.Reference;
 
-       public void open();
-
-}
+public class CtorFooFoo {
+       @Inject
+       public CtorFooFoo(@Reference Foo foo_a, @Reference Foo foo_b) {}
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFooNamed.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFooNamed.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFooNamed.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFooNamed.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,13 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.inject.Inject;
 
-       public void close();
+import org.osgi.service.cdi.annotations.Reference;
 
-       public void open();
-
-}
+public class CtorFooFooNamed {
+       @Inject
+       public CtorFooFooNamed(@Reference(name = "foo_a") Foo foo_a, 
@Reference(name = "foo_b") Foo foo_b) {}
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooNamed.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooNamed.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooNamed.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooNamed.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,13 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.inject.Inject;
 
-       public void close();
+import org.osgi.service.cdi.annotations.Reference;
 
-       public void open();
-
-}
+public class CtorFooNamed {
+       @Inject
+       public CtorFooNamed(@Reference(name = "_foo_") Foo foo) {}
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooOptional.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooOptional.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooOptional.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooOptional.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,14 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.inject.Inject;
 
-       public void close();
+import org.osgi.service.cdi.annotations.Reference;
+import org.osgi.service.cdi.annotations.ReferenceCardinality;
 
-       public void open();
-
-}
+public class CtorFooOptional {
+       @Inject
+       public CtorFooOptional(@Reference(cardinality = 
ReferenceCardinality.OPTIONAL) Foo foo) {}
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorListFoo.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorListFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorListFoo.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorListFoo.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,15 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import java.util.List;
 
-       public void close();
+import javax.inject.Inject;
 
-       public void open();
+import org.osgi.service.cdi.annotations.Reference;
 
-}
+public class CtorListFoo {
+       @Inject
+       public CtorListFoo(@Reference List<Foo> foos) {}
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Drat.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/BindType.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Drat.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Drat.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/BindType.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/BindType.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Drat.java
 Tue Sep  5 22:01:11 2017
@@ -12,8 +12,6 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public enum BindType {
-       SERVICE, SERVICE_PROPERTIES, SERVICE_REFERENCE
-}
\ No newline at end of file
+public interface Drat<T> {}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FieldFoo.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FieldFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FieldFoo.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FieldFoo.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,14 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.inject.Inject;
 
-       public void close();
+import org.osgi.service.cdi.annotations.Reference;
 
-       public void open();
-
-}
+public class FieldFoo {
+       @Inject
+       @Reference
+       Foo foo;
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FieldListFoo.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FieldListFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FieldListFoo.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FieldListFoo.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,16 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import java.util.List;
 
-       public void close();
+import javax.inject.Inject;
 
-       public void open();
+import org.osgi.service.cdi.annotations.Reference;
 
-}
+public class FieldListFoo {
+       @Inject
+       @Reference
+       List<Foo> foo;
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Foo.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Foo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Foo.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/Foo.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,8 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
-
-       public void close();
-
-       public void open();
+public interface Foo {
 
 }

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooAnnotated.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooAnnotated.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooAnnotated.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooAnnotated.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,16 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
-
-       public void close();
-
-       public void open();
+import org.osgi.service.cdi.annotations.Component;
+import org.osgi.service.cdi.annotations.ServiceScope;
 
+@Component(
+       name = "foo.annotated",
+       property = {"service.ranking:Integer=12"},
+       service = Foo.class,
+       serviceScope = ServiceScope.SINGLETON
+)
+public class FooAnnotated implements Foo, Cloneable {
 }

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooProducer.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooProducer.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooProducer.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooProducer.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,23 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import java.util.Objects;
 
-       public void close();
+import javax.enterprise.inject.Produces;
 
-       public void open();
+import org.osgi.service.cdi.annotations.Reference;
 
-}
+public class FooProducer {
+       @Produces
+       @Reference
+       public Foo getFoo() {
+               return new Foo() {
+                       @Override
+                       public String toString() {
+                               return "Foo: " + Objects.hashCode(this);
+                       }
+               };
+       }
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooReference.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooReference.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooReference.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooReference.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,8 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
-
-       public void close();
-
-       public void open();
+public interface FooReference {
 
 }

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooService.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooService.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooService.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooService.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,8 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
-
-       public void close();
-
-       public void open();
+public class FooService implements Foo, Cloneable {
 
 }

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooWithConfig.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooWithConfig.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooWithConfig.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooWithConfig.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,13 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.inject.Inject;
 
-       public void close();
+public class FooWithConfig {
 
-       public void open();
+       @Inject
+       public Config config;
 
 }

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooWithReference.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooWithReference.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooWithReference.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooWithReference.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,13 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.inject.Inject;
 
-       public void close();
+public class FooWithReference {
 
-       public void open();
+       @Inject
+       public FooReference fooReference;
 
 }

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ListFooProducer.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ListFooProducer.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ListFooProducer.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ListFooProducer.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,19 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import java.util.Arrays;
+import java.util.List;
 
-       public void close();
+import javax.enterprise.inject.Produces;
 
-       public void open();
+import org.osgi.service.cdi.annotations.Reference;
 
-}
+public class ListFooProducer {
+       @Produces
+       @Reference
+       public List<Foo> getFoo() {
+               return Arrays.asList(new Foo() {});
+       }
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodBindFoo.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodBindFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodBindFoo.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodBindFoo.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,13 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.inject.Inject;
 
-       public void close();
+import org.osgi.service.cdi.annotations.Reference;
 
-       public void open();
-
-}
+public class MethodBindFoo {
+       @Inject
+       public void bindFoo(@Reference Foo foo) {}
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodBindFooNamed.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodBindFooNamed.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodBindFooNamed.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodBindFooNamed.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,13 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.inject.Inject;
 
-       public void close();
+import org.osgi.service.cdi.annotations.Reference;
 
-       public void open();
-
-}
+public class MethodBindFooNamed {
+       @Inject
+       public void bindFoo(@Reference(name = "_foo_") Foo foo) {}
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodSetFoo.java
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodSetFoo.java?p2=aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodSetFoo.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Phase.java
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodSetFoo.java
 Tue Sep  5 22:01:11 2017
@@ -12,12 +12,13 @@
  * limitations under the License.
  */
 
-package org.apache.aries.cdi.container.internal.container;
+package org.apache.aries.cdi.container.test.beans;
 
-public interface Phase {
+import javax.inject.Inject;
 
-       public void close();
+import org.osgi.service.cdi.annotations.Reference;
 
-       public void open();
-
-}
+public class MethodSetFoo {
+       @Inject
+       public void setFoo(@Reference Foo foo) {}
+}
\ No newline at end of file

Added: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ObserverFoo.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ObserverFoo.java?rev=1807424&view=auto
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ObserverFoo.java
 (added)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ObserverFoo.java
 Tue Sep  5 22:01:11 2017
@@ -0,0 +1,59 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.aries.cdi.container.test.beans;
+
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.event.Observes;
+import javax.enterprise.inject.spi.EventMetadata;
+
+import org.osgi.service.cdi.annotations.Reference;
+import org.osgi.service.cdi.annotations.ReferenceCardinality;
+import org.osgi.service.cdi.annotations.ServiceEvent;
+
+@ApplicationScoped
+public class ObserverFoo {
+
+       public List<Foo> foos() {
+               return _foos;
+       }
+
+       void foos(
+               @Observes
+               @Reference(cardinality = ReferenceCardinality.MULTIPLE)
+               ServiceEvent<Foo> event,
+               EventMetadata eventMetadata) {
+
+               event.adding(
+                       foo -> {
+                               System.out.printf("Adding %s, %s%n", foo, 
eventMetadata);
+                               _foos.add(foo);
+                       }
+               ).modified(
+                       foo -> {
+                               System.out.printf("Modified %s, %s%n", foo, 
eventMetadata);
+                       }
+               ).removed(
+                       foo -> {
+                               System.out.printf("Removed %s, %s%n", foo, 
eventMetadata);
+                               _foos.remove(foo);
+                       }
+               );
+       }
+
+       private List<Foo> _foos = new CopyOnWriteArrayList<>();
+}
\ No newline at end of file

Added: 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ServiceEventImpl.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ServiceEventImpl.java?rev=1807424&view=auto
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ServiceEventImpl.java
 (added)
+++ 
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ServiceEventImpl.java
 Tue Sep  5 22:01:11 2017
@@ -0,0 +1,54 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.aries.cdi.container.test.beans;
+
+import org.osgi.service.cdi.annotations.ServiceEvent;
+
+public class ServiceEventImpl<T> implements ServiceEvent<T> {
+
+       enum Event { ADDING, MODIFIED, REMOVED }
+       private final T _t;
+       private final ServiceEventImpl.Event _event;
+
+       public ServiceEventImpl(T t, ServiceEventImpl.Event event) {
+               _t = t;
+               _event = event;
+       }
+
+       @Override
+       public ServiceEvent<T> adding(Consumer<T> consumer) {
+               if (_event == Event.ADDING) {
+                       consumer.accept(_t);
+               };
+               return this;
+       }
+
+       @Override
+       public ServiceEvent<T> modified(Consumer<T> consumer) {
+               if (_event == Event.MODIFIED) {
+                       consumer.accept(_t);
+               }
+               return this;
+       }
+
+       @Override
+       public ServiceEvent<T> removed(Consumer<T> consumer) {
+               if (_event == Event.REMOVED) {
+                       consumer.accept(_t);
+               }
+               return this;
+       }
+
+}
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-annotated.xml
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-annotated.xml?p2=aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-annotated.xml&p1=aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml 
(original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-annotated.xml
 Tue Sep  5 22:01:11 2017
@@ -16,6 +16,6 @@
 -->
 
 <beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0";>
-       <cdi:bean class="com.foo.FooImpl" />
-       <cdi:bean class="com.foo.BarImpl" />
+       <cdi:component 
class="org.apache.aries.cdi.container.test.beans.BarAnnotated" />
+       <cdi:component 
class="org.apache.aries.cdi.container.test.beans.FooAnnotated" />
 </beans>
\ No newline at end of file

Copied: 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml
 (from r1806482, 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml?p2=aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml&p1=aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml&r1=1806482&r2=1807424&rev=1807424&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml 
(original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml
 Tue Sep  5 22:01:11 2017
@@ -16,6 +16,5 @@
 -->
 
 <beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0";>
-       <cdi:bean class="com.foo.FooImpl" />
-       <cdi:bean class="com.foo.BarImpl" />
+       <cdi:component 
class="org.apache.aries.cdi.container.test.beans.BarBadlyAnnotated" />
 </beans>
\ No newline at end of file

Modified: 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-configuration.xml
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-configuration.xml?rev=1807424&r1=1807423&r2=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-configuration.xml
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-configuration.xml
 Tue Sep  5 22:01:11 2017
@@ -16,9 +16,11 @@
 -->
 
 <beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0";>
-       <cdi:bean class="com.foo.FooImpl" />
-       <cdi:bean class="com.foo.BarImpl" />
-       <cdi:configuration beanClass="com.foo.Config" pid="com.foo.FooImpl" />
-       <cdi:configuration beanClass="com.foo.Baz" pid="com.foo.other 
and.another" />
-       <cdi:configuration beanClass="com.foo.Fum" required="false" 
pid="an.optional.configuration" />
+       <cdi:component 
class="org.apache.aries.cdi.container.test.beans.FooWithConfig">
+               <configuration 
type="org.apache.aries.cdi.container.test.beans.Config" configuration-pid="$ 
foo.config" />
+       </cdi:component>
+       <cdi:component 
class="org.apache.aries.cdi.container.test.beans.BarWithConfig">
+               <configuration 
type="org.apache.aries.cdi.container.test.beans.Bar" />
+               <configuration 
type="org.apache.aries.cdi.container.test.beans.Config" 
configuration-policy="require" />
+       </cdi:component>
 </beans>
\ No newline at end of file

Modified: 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml?rev=1807424&r1=1807423&r2=1807424&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml 
(original)
+++ aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml 
Tue Sep  5 22:01:11 2017
@@ -16,6 +16,6 @@
 -->
 
 <beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0";>
-       <cdi:bean class="com.foo.FooImpl" />
-       <cdi:bean class="com.foo.BarImpl" />
+       <cdi:component class="org.apache.aries.cdi.container.test.beans.Bar" />
+       <cdi:component class="org.apache.aries.cdi.container.test.beans.Foo" />
 </beans>
\ No newline at end of file

Modified: 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-references.xml
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-references.xml?rev=1807424&r1=1807423&r2=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-references.xml
 (original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-references.xml
 Tue Sep  5 22:01:11 2017
@@ -16,8 +16,10 @@
 -->
 
 <beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0";>
-       <cdi:bean class="com.foo.FooImpl" />
-       <cdi:bean class="com.foo.BarImpl" />
-       <cdi:reference beanClass="java.util.concurrent.Callable" 
target="(objectClass=java.util.concurrent.Callable)" />
-       <cdi:reference beanClass="java.util.Map" 
target="(objectClass=java.util.Map)" />
+       <cdi:component 
class="org.apache.aries.cdi.container.test.beans.FooWithReference">
+               <reference 
service="org.apache.aries.cdi.container.test.beans.FooReference" />
+       </cdi:component>
+       <cdi:component 
class="org.apache.aries.cdi.container.test.beans.BarWithReference">
+               <reference 
service="org.apache.aries.cdi.container.test.beans.BarReference" />
+       </cdi:component>
 </beans>
\ No newline at end of file

Modified: 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-services.xml
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-services.xml?rev=1807424&r1=1807423&r2=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-services.xml 
(original)
+++ 
aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-services.xml 
Tue Sep  5 22:01:11 2017
@@ -16,90 +16,88 @@
 -->
 
 <beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0";>
-       <cdi:bean class="com.foo.FooImpl">
-               <service>
-                       <provide interface="com.foo.Foo" />
-                       <provide interface="java.lang.Clonable" />
-                       <property name="foo" value-type="String" value="fum" />
-                       <property name="foo1" value="baz" />
-                       <property name="foo2" value-type="Long" 
value="345987643" />
-                       <property name="foo3" value-type="Double" 
value="3459.87643" />
-                       <property name="foo4" value-type="Float" 
value="3459.87" />
-                       <property name="foo5" value-type="Integer" 
value="724559" />
-                       <property name="foo6" value-type="Byte" value="127" />
-                       <property name="foo7" value-type="Character" value="X" 
/>
-                       <property name="foo8" value-type="Boolean" value="true" 
/>
-                       <property name="foo9" value-type="Short" value="32767" 
/>
-                       <property name="foo11">
-                               <array>
-                                       <value>frog</value>
-                                       <value>drum</value>
-                               </array>
-                       </property>
-                       <property name="foo12" value-type="Long">
-                               <array>
-                                       <value>345987643</value>
-                                       <value>34</value>
-                               </array>
-                       </property>
-                       <property name="foo13" value-type="Double">
-                               <array>
-                                       <value>3459.87643</value>
-                                       <value>34.3456</value>
-                               </array>
-                       </property>
-                       <property name="foo14" value-type="Float">
-                               <array>
-                                       <value>3459.87</value>
-                                       <value>35.23</value>
-                               </array>
-                       </property>
-                       <property name="foo15" value-type="Integer">
-                               <array>
-                                       <value>724559</value>
-                                       <value>345</value>
-                               </array>
-                       </property>
-                       <property name="foo16" value-type="Byte">
-                               <array>
-                                       <value>127</value>
-                                       <value>23</value>
-                               </array>
-                       </property>
-                       <property name="foo17" value-type="Character">
-                               <array>
-                                       <value>X</value>
-                                       <value>t</value>
-                               </array>
-                       </property>
-                       <property name="foo18" value-type="Boolean">
-                               <array>
-                                       <value>true</value>
-                                       <value>false</value>
-                               </array>
-                       </property>
-                       <property name="foo19" value-type="Short">
-                               <array>
-                                       <value>32767</value>
-                                       <value>2345</value>
-                               </array>
-                       </property>
-                       <property name="foo20" value-type="String">
-                               bar
-                       </property>
-                       <property name="foo21" value-type="Short">
-                               <list>
-                                       <value>32767</value>
-                                       <value>2345</value>
-                               </list>
-                       </property>
-                       <property name="foo22" value-type="Short">
-                               <set>
-                                       <value>32767</value>
-                                       <value>2345</value>
-                               </set>
-                       </property>
-               </service>
-       </cdi:bean>
-       <cdi:bean class="com.foo.BarImpl" />
+       <cdi:component 
class="org.apache.aries.cdi.container.test.beans.FooService">
+               <provide 
interface="org.apache.aries.cdi.container.test.beans.Foo" />
+               <provide interface="java.lang.Cloneable" />
+               <property name="foo" value-type="String" value="fum" />
+               <property name="foo1" value="baz" />
+               <property name="foo2" value-type="Long" value="345987643" />
+               <property name="foo3" value-type="Double" value="3459.87643" />
+               <property name="foo4" value-type="Float" value="3459.87" />
+               <property name="foo5" value-type="Integer" value="724559" />
+               <property name="foo6" value-type="Byte" value="127" />
+               <property name="foo7" value-type="Character" value="X" />
+               <property name="foo8" value-type="Boolean" value="true" />
+               <property name="foo9" value-type="Short" value="32767" />
+               <property name="foo11">
+                       <array>
+                               <value>frog</value>
+                               <value>drum</value>
+                       </array>
+               </property>
+               <property name="foo12" value-type="Long">
+                       <array>
+                               <value>345987643</value>
+                               <value>34</value>
+                       </array>
+               </property>
+               <property name="foo13" value-type="Double">
+                       <array>
+                               <value>3459.87643</value>
+                               <value>34.3456</value>
+                       </array>
+               </property>
+               <property name="foo14" value-type="Float">
+                       <array>
+                               <value>3459.87</value>
+                               <value>35.23</value>
+                       </array>
+               </property>
+               <property name="foo15" value-type="Integer">
+                       <array>
+                               <value>724559</value>
+                               <value>345</value>
+                       </array>
+               </property>
+               <property name="foo16" value-type="Byte">
+                       <array>
+                               <value>127</value>
+                               <value>23</value>
+                       </array>
+               </property>
+               <property name="foo17" value-type="Character">
+                       <array>
+                               <value>X</value>
+                               <value>t</value>
+                       </array>
+               </property>
+               <property name="foo18" value-type="Boolean">
+                       <array>
+                               <value>true</value>
+                               <value>false</value>
+                       </array>
+               </property>
+               <property name="foo19" value-type="Short">
+                       <array>
+                               <value>32767</value>
+                               <value>2345</value>
+                       </array>
+               </property>
+               <property name="foo20" value-type="String">
+                       bar
+               </property>
+               <property name="foo21" value-type="Short">
+                       <list>
+                               <value>32767</value>
+                               <value>2345</value>
+                       </list>
+               </property>
+               <property name="foo22" value-type="Short">
+                       <set>
+                               <value>32767</value>
+                               <value>2345</value>
+                       </set>
+               </property>
+       </cdi:component>
+       <cdi:component 
class="org.apache.aries.cdi.container.test.beans.BarService" />
 </beans>
\ No newline at end of file

Added: aries/trunk/cdi/cdi-extender/src/test/resources/logback.xml
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/resources/logback.xml?rev=1807424&view=auto
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/test/resources/logback.xml (added)
+++ aries/trunk/cdi/cdi-extender/src/test/resources/logback.xml Tue Sep  5 
22:01:11 2017
@@ -0,0 +1,17 @@
+<configuration>
+       <contextListener 
class="ch.qos.logback.classic.jul.LevelChangePropagator">
+               <resetJUL>true</resetJUL>
+       </contextListener>
+
+       <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+               <encoder>
+                       <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level 
%logger{36} - %msg%n</pattern>
+               </encoder>
+       </appender>
+
+       <logger name="org.apache.aries.cdi.container" level="DEBUG"/>
+
+       <root level="info">
+               <appender-ref ref="STDOUT" />
+       </root>
+</configuration>
\ No newline at end of file

Modified: aries/trunk/cdi/cdi-extension-http/pom.xml
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extension-http/pom.xml?rev=1807424&r1=1807423&r2=1807424&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extension-http/pom.xml (original)
+++ aries/trunk/cdi/cdi-extension-http/pom.xml Tue Sep  5 22:01:11 2017
@@ -30,7 +30,10 @@
 
        <artifactId>org.apache.aries.cdi.extension.http</artifactId>
        <name>CDI Http Extender</name>
-       <description>Http support for Aries CDI Extender</description>
+       <description>
+               Provides support to CDI bundles for http servlet scopes such as 
@RequestScoped,
+               @ApplicationScoped, @SessionScoped and @ConversationScoped.
+       </description>
 
        <build>
                <plugins>
@@ -100,6 +103,7 @@
                        <groupId>org.osgi</groupId>
                        <artifactId>osgi.core</artifactId>
                        <version>6.0.0</version>
+                       <scope>provided</scope>
                </dependency>
        </dependencies>
 </project>
\ No newline at end of file

Modified: 
aries/trunk/cdi/cdi-extension-http/src/main/java/org/apache/aries/cdi/extension/http/HttpExtension.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extension-http/src/main/java/org/apache/aries/cdi/extension/http/HttpExtension.java?rev=1807424&r1=1807423&r2=1807424&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-extension-http/src/main/java/org/apache/aries/cdi/extension/http/HttpExtension.java
 (original)
+++ 
aries/trunk/cdi/cdi-extension-http/src/main/java/org/apache/aries/cdi/extension/http/HttpExtension.java
 Tue Sep  5 22:01:11 2017
@@ -22,7 +22,6 @@ import java.util.Dictionary;
 import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.CopyOnWriteArrayList;
 
 import javax.enterprise.event.Observes;
 import javax.enterprise.inject.spi.AfterDeploymentValidation;
@@ -52,8 +51,6 @@ public class HttpExtension implements Ex
        }
 
        void afterDeploymentValidation(@Observes AfterDeploymentValidation adv, 
BeanManager beanManager) {
-               processWebClasses();
-
                BeanManagerImpl beanManagerImpl = 
((BeanManagerProxy)beanManager).delegate();
 
                Dictionary<String, Object> properties = new Hashtable<>();
@@ -63,21 +60,12 @@ public class HttpExtension implements Ex
                
properties.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_LISTENER, 
Boolean.TRUE.toString());
                properties.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE - 
100);
 
-               _registrations.add(
-                       _bundle.getBundleContext().registerService(
-                               LISTENER_CLASSES, new 
WeldInitialListener(beanManagerImpl), properties));
-       }
-
-       private void processWebClasses() {
-               // TODO Auto-generated method stub
+               _listenerRegistration = 
_bundle.getBundleContext().registerService(
+                               LISTENER_CLASSES, new 
WeldInitialListener(beanManagerImpl), properties);
        }
 
        void beforeShutdown(@Observes BeforeShutdown bs) {
-               for (ServiceRegistration<?> registration : _registrations) {
-                       registration.unregister();
-               }
-
-               _registrations.clear();
+               _listenerRegistration.unregister();
        }
 
        private Map<String, Object> getAttributes() {
@@ -137,6 +125,6 @@ public class HttpExtension implements Ex
 
        private final Bundle _bundle;
        private String _contextSelect;
-       private List<ServiceRegistration<?>> _registrations = new 
CopyOnWriteArrayList<>();
+       private ServiceRegistration<?> _listenerRegistration;
 
 }

Modified: aries/trunk/cdi/cdi-extension-jndi/pom.xml
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extension-jndi/pom.xml?rev=1807424&r1=1807423&r2=1807424&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extension-jndi/pom.xml (original)
+++ aries/trunk/cdi/cdi-extension-jndi/pom.xml Tue Sep  5 22:01:11 2017
@@ -63,6 +63,7 @@
                        <groupId>org.osgi</groupId>
                        <artifactId>osgi.core</artifactId>
                        <version>6.0.0</version>
+                       <scope>provided</scope>
                </dependency>
        </dependencies>
 


Reply via email to