You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ro...@apache.org on 2017/09/05 22:01:15 UTC
svn commit: r1807424 [7/8] - in /aries/trunk/cdi: ./ cdi-extender/
cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/
cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/bean/
cdi-extender/src/main/java/org/apache/aries/...
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>