Author: rotty3000 Date: Thu Sep 7 19:22:23 2017 New Revision: 1807639 URL: http://svn.apache.org/viewvc?rev=1807639&view=rev Log: [CDI] update to weld 3.0/CDI 2.0
Signed-off-by: Raymond Augé <[email protected]> Modified: aries/trunk/cdi/cdi-extender/pom.xml aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentRuntimeExtension.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationBean.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerBootstrap.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerState.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ObserverMethodAnnotated.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Publish.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/reference/ReferenceBean.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/model/EventsTest.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainer.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockInjectionPoint.java aries/trunk/cdi/cdi-extension-http/pom.xml aries/trunk/cdi/cdi-extension-http/src/main/java/org/apache/aries/cdi/extension/http/HttpExtension.java aries/trunk/cdi/cdi-itests/cdi-executable.bndrun aries/trunk/cdi/cdi-itests/itest.bndrun aries/trunk/cdi/javax.cdi-api/bnd.bnd aries/trunk/cdi/javax.cdi-api/pom.xml aries/trunk/cdi/javax.el-api/pom.xml aries/trunk/cdi/javax.inject-api/pom.xml aries/trunk/cdi/javax.interceptor-api/pom.xml Modified: aries/trunk/cdi/cdi-extender/pom.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/pom.xml?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/pom.xml (original) +++ aries/trunk/cdi/cdi-extender/pom.xml Thu Sep 7 19:22:23 2017 @@ -85,7 +85,7 @@ <dependency> <groupId>org.jboss.weld</groupId> <artifactId>weld-osgi-bundle</artifactId> - <version>2.4.3.Final</version> + <version>3.0.1.Final</version> <exclusions> <exclusion> <groupId>javax.enterprise</groupId> @@ -100,6 +100,10 @@ <artifactId>jboss-annotations-api_1.2_spec</artifactId> </exclusion> <exclusion> + <groupId>org.jboss.spec.javax.ejb</groupId> + <artifactId>jboss-ejb-api_3.2_spec</artifactId> + </exclusion> + <exclusion> <groupId>org.jboss.spec.javax.el</groupId> <artifactId>jboss-el-api_3.0_spec</artifactId> </exclusion> Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentRuntimeExtension.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentRuntimeExtension.java?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentRuntimeExtension.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentRuntimeExtension.java Thu Sep 7 19:22:23 2017 @@ -16,15 +16,16 @@ package org.apache.aries.cdi.container.i import java.lang.annotation.Annotation; import java.lang.reflect.Type; -import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicInteger; import javax.enterprise.context.Dependent; import javax.enterprise.event.Observes; +import javax.enterprise.inject.spi.AfterBeanDiscovery; import javax.enterprise.inject.spi.Annotated; import javax.enterprise.inject.spi.AnnotatedConstructor; import javax.enterprise.inject.spi.AnnotatedField; @@ -52,13 +53,10 @@ import org.apache.aries.cdi.container.in import org.apache.aries.cdi.container.internal.service.ServiceDeclaration; import org.apache.aries.cdi.container.internal.util.Sets; import org.apache.aries.cdi.container.internal.util.Types; -import org.jboss.weld.bean.builtin.BeanManagerProxy; -import org.jboss.weld.manager.BeanManagerImpl; import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Configuration; import org.osgi.service.cdi.annotations.Reference; import org.osgi.service.cdi.annotations.ReferencePolicy; -import org.osgi.service.cdi.annotations.ReferenceScope; import org.osgi.service.cdi.annotations.ServiceEvent; import org.osgi.service.cdi.annotations.ServiceScope; import org.slf4j.Logger; @@ -70,6 +68,10 @@ public class ComponentRuntimeExtension i _containerState = containerState; } + void afterBeanDiscovery(@Observes AfterBeanDiscovery abd) { + _beans.stream().forEach(bean -> abd.addBean(bean)); + } + ConfigurationModel matchConfiguration(ComponentModel componentModel, ProcessInjectionPoint<?, ?> pip) { InjectionPoint injectionPoint = pip.getInjectionPoint(); @@ -316,12 +318,7 @@ public class ComponentRuntimeExtension i _containerState, componentModel, bean, beanManager.createCreationalContext(bean))); } - /* - * - */ void processInjectionPoint(@Observes ProcessInjectionPoint<?, ?> pip, BeanManager beanManager) { - BeanManagerImpl beanManagerImpl = ((BeanManagerProxy)beanManager).delegate(); - InjectionPoint injectionPoint = pip.getInjectionPoint(); Bean<?> bean = injectionPoint.getBean(); @@ -345,11 +342,10 @@ public class ComponentRuntimeExtension i _containerState, matchingReference, componentModel, - pip.getInjectionPoint().getAnnotated(), - pip.getInjectionPoint().getQualifiers(), - beanManagerImpl); + pip.getInjectionPoint(), + beanManager); - beanManagerImpl.addBean(referenceBean); + _beans.add(referenceBean); return; } @@ -358,9 +354,13 @@ public class ComponentRuntimeExtension i if (matchingConfiguration != null) { ConfigurationBean configurationBean = new ConfigurationBean( - _containerState, matchingConfiguration, componentModel, pip.getInjectionPoint(), beanManagerImpl); + _containerState, + matchingConfiguration, + componentModel, + pip.getInjectionPoint(), + beanManager); - beanManagerImpl.addBean(configurationBean); + _beans.add(configurationBean); } } @@ -395,5 +395,6 @@ public class ComponentRuntimeExtension i private final AtomicInteger _mark = new AtomicInteger(); private final ContainerState _containerState; + private final List<Bean<?>> _beans = new CopyOnWriteArrayList<>(); } Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationBean.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationBean.java?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationBean.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationBean.java Thu Sep 7 19:22:23 2017 @@ -27,6 +27,7 @@ import java.util.Set; import javax.enterprise.context.Dependent; import javax.enterprise.context.spi.CreationalContext; import javax.enterprise.inject.spi.Bean; +import javax.enterprise.inject.spi.BeanManager; import javax.enterprise.inject.spi.Decorator; import javax.enterprise.inject.spi.InjectionPoint; @@ -34,10 +35,6 @@ import org.apache.aries.cdi.container.in import org.apache.aries.cdi.container.internal.component.ComponentProperties; import org.apache.aries.cdi.container.internal.container.ContainerState; import org.apache.aries.cdi.container.internal.util.Conversions; -import org.jboss.weld.injection.CurrentInjectionPoint; -import org.jboss.weld.injection.EmptyInjectionPoint; -import org.jboss.weld.manager.BeanManagerImpl; -import org.jboss.weld.util.Decorators; public class ConfigurationBean implements Bean<Object> { @@ -46,13 +43,13 @@ public class ConfigurationBean implement ConfigurationModel configurationModel, ComponentModel componentModel, InjectionPoint injectionPoint, - BeanManagerImpl beanManagerImpl) { + BeanManager beanManager) { _containerState = containerState; _configurationModel = configurationModel; _componentModel = componentModel; _injectionPoint = injectionPoint; - _beanManagerImpl = beanManagerImpl; + _beanManager = beanManager; Type type = _injectionPoint.getType(); @@ -68,13 +65,14 @@ public class ConfigurationBean implement @Override public Object create(CreationalContext<Object> creationalContext) { Object instance = _getInjectedInstance(); - InjectionPoint ip = _getInjectionPoint(); - List<Decorator<?>> decorators = _getDecorators(ip); + List<Decorator<?>> decorators = _getDecorators(_injectionPoint); if (decorators.isEmpty()) { return instance; } - return Decorators.getOuterDelegate( - this, instance, creationalContext, cast(_beanClass), ip, _beanManagerImpl, decorators); + return instance; + // TODO +// return Decorators.getOuterDelegate( +// this, instance, creationalContext, cast(_beanClass), _injectionPoint, _beanManager, decorators); } @Override @@ -136,7 +134,9 @@ public class ConfigurationBean implement } private List<Decorator<?>> _getDecorators(InjectionPoint ip) { - return _beanManagerImpl.resolveDecorators(Collections.singleton(ip.getType()), getQualifiers()); + return _beanManager.resolveDecorators( + Collections.singleton(ip.getType()), + _injectionPoint.getQualifiers().toArray(new Annotation[0])); } private Object _getInjectedInstance() { @@ -153,14 +153,8 @@ public class ConfigurationBean implement return Conversions.convert(dictionary).to(_injectionPoint.getType()); } - private InjectionPoint _getInjectionPoint() { - CurrentInjectionPoint currentInjectionPoint = _beanManagerImpl.getServices().get(CurrentInjectionPoint.class); - InjectionPoint ip = currentInjectionPoint.peek(); - return EmptyInjectionPoint.INSTANCE.equals(ip) ? null : ip; - } - private final Class<?> _beanClass; - private final BeanManagerImpl _beanManagerImpl; + private final BeanManager _beanManager; private final ComponentModel _componentModel; private final ConfigurationModel _configurationModel; private final ContainerState _containerState; Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerBootstrap.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerBootstrap.java?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerBootstrap.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerBootstrap.java Thu Sep 7 19:22:23 2017 @@ -18,6 +18,7 @@ import java.util.Collection; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; +import javax.enterprise.inject.spi.BeanManager; import javax.enterprise.inject.spi.Extension; import org.apache.aries.cdi.container.internal.component.ComponentRuntimeExtension; @@ -75,15 +76,15 @@ public class ContainerBootstrap { _bootstrap.startExtensions(extensions); _bootstrap.startContainer(_containerState.id(), new ContainerEnvironment(), deployment); - _beanManagerImpl = _bootstrap.getManager(beanDeploymentArchive); - _containerState.setBeanManager(_beanManagerImpl); + _beanManager = _bootstrap.getManager(beanDeploymentArchive); + _containerState.setBeanManager(_beanManager); _bootstrap.startInitialization(); _bootstrap.deployBeans(); } - public BeanManagerImpl getBeanManagerImpl() { - return _beanManagerImpl; + public BeanManager getBeanManager() { + return _beanManager; } public WeldBootstrap getBootstrap() { @@ -94,7 +95,7 @@ public class ContainerBootstrap { _bootstrap.shutdown(); } - private final BeanManagerImpl _beanManagerImpl; + private final BeanManager _beanManager; private final WeldBootstrap _bootstrap; private final ContainerState _containerState; private final Collection<Metadata<Extension>> _externalExtensions; Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerState.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerState.java?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerState.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerState.java Thu Sep 7 19:22:23 2017 @@ -37,7 +37,6 @@ import org.apache.aries.cdi.container.in import org.apache.aries.cdi.container.internal.model.Tracker; import org.apache.aries.cdi.container.internal.reference.ReferenceCallback; import org.apache.aries.cdi.container.internal.service.ServiceDeclaration; -import org.jboss.weld.manager.BeanManagerImpl; import org.jboss.weld.resources.spi.ResourceLoader; import org.jboss.weld.serialization.spi.ProxyServices; import org.osgi.framework.Bundle; @@ -219,8 +218,8 @@ public class ContainerState implements C updateState(event); - if (_beanManagerImpl != null) { - _beanManagerImpl.fireEvent(event); + if (_beanManager != null) { + _beanManager.fireEvent(event); } } @@ -237,8 +236,8 @@ public class ContainerState implements C } @Override - public BeanManagerImpl getBeanManager() { - return _beanManagerImpl; + public BeanManager getBeanManager() { + return _beanManager; } public String id() { @@ -274,8 +273,8 @@ public class ContainerState implements C return _serviceRegistrator; } - public void setBeanManager(BeanManagerImpl beanManagerImpl) { - _beanManagerImpl = beanManagerImpl; + public void setBeanManager(BeanManager beanManager) { + _beanManager = beanManager; } public void setBeansModel(BeansModel beansModel) { @@ -318,7 +317,7 @@ public class ContainerState implements C private static final Logger _log = LoggerFactory.getLogger(ContainerState.class); - private volatile BeanManagerImpl _beanManagerImpl; + private volatile BeanManager _beanManager; private BeansModel _beansModel; private final Registrator<BeanManager> _bmRegistrator; private final Optional<Bundle> _bundle; Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ObserverMethodAnnotated.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ObserverMethodAnnotated.java?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ObserverMethodAnnotated.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ObserverMethodAnnotated.java Thu Sep 7 19:22:23 2017 @@ -2,6 +2,7 @@ package org.apache.aries.cdi.container.i import java.lang.annotation.Annotation; import java.lang.reflect.Type; +import java.util.HashSet; import java.util.Set; import javax.enterprise.inject.spi.Annotated; @@ -43,6 +44,20 @@ public class ObserverMethodAnnotated imp } @Override + @SuppressWarnings("unchecked") + public <T extends Annotation> Set<T> getAnnotations(Class<T> annotationType) { + Set<T> annotations = new HashSet<>(); + + for (Annotation annotation : _qualifiers) { + if (annotationType.isInstance(annotation)) { + annotations.add((T)annotation); + } + } + return annotations; + } + + @Override + @SuppressWarnings("unchecked") public <T extends Annotation> T getAnnotation(Class<T> annotationType) { for (Annotation annotation : _qualifiers) { if (annotationType.isInstance(annotation)) { Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Publish.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Publish.java?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Publish.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Publish.java Thu Sep 7 19:22:23 2017 @@ -22,7 +22,6 @@ import org.apache.aries.cdi.container.in import org.apache.aries.cdi.container.internal.container.ContainerState; import org.jboss.weld.bootstrap.WeldBootstrap; import org.jboss.weld.bootstrap.spi.Metadata; -import org.jboss.weld.manager.BeanManagerImpl; import org.osgi.service.cdi.CdiEvent; import org.osgi.service.cdi.annotations.ServiceScope; import org.slf4j.Logger; @@ -53,7 +52,6 @@ public class Phase_Publish implements Ph try { _cb = new ContainerBootstrap(_containerState, _extensions); - BeanManagerImpl beanManagerImpl = _cb.getBeanManagerImpl(); WeldBootstrap bootstrap = _cb.getBootstrap(); bootstrap.validateBeans(); @@ -65,9 +63,9 @@ public class Phase_Publish implements Ph callback -> callback.flush() ); - processServices(beanManagerImpl); + processServices(); - _containerState.beanManagerRegistrator().registerService(beanManagerImpl); + _containerState.beanManagerRegistrator().registerService(_cb.getBeanManager()); _containerState.fire(CdiEvent.Type.CREATED); } @@ -76,7 +74,7 @@ public class Phase_Publish implements Ph } } - private void processServices(BeanManagerImpl beanManagerImpl) { + private void processServices() { _containerState.serviceComponents().values().stream().filter( serviceDeclaration -> serviceDeclaration.getScope() == ServiceScope.BUNDLE || Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/reference/ReferenceBean.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/reference/ReferenceBean.java?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/reference/ReferenceBean.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/reference/ReferenceBean.java Thu Sep 7 19:22:23 2017 @@ -14,8 +14,6 @@ package org.apache.aries.cdi.container.internal.reference; -import static org.apache.aries.cdi.container.internal.util.Reflection.cast; - import java.lang.annotation.Annotation; import java.lang.reflect.Type; import java.util.Collections; @@ -25,18 +23,14 @@ import java.util.Set; import javax.enterprise.context.Dependent; import javax.enterprise.context.spi.CreationalContext; -import javax.enterprise.inject.spi.Annotated; import javax.enterprise.inject.spi.Bean; +import javax.enterprise.inject.spi.BeanManager; import javax.enterprise.inject.spi.Decorator; import javax.enterprise.inject.spi.InjectionPoint; import javax.inject.Named; import org.apache.aries.cdi.container.internal.component.ComponentModel; import org.apache.aries.cdi.container.internal.container.ContainerState; -import org.jboss.weld.injection.CurrentInjectionPoint; -import org.jboss.weld.injection.EmptyInjectionPoint; -import org.jboss.weld.manager.BeanManagerImpl; -import org.jboss.weld.util.Decorators; import org.osgi.service.cdi.annotations.ReferenceCardinality; public class ReferenceBean implements Bean<Object> { @@ -45,17 +39,16 @@ public class ReferenceBean implements Be ContainerState containerState, ReferenceModel referenceModel, ComponentModel componentModel, - Annotated annotated, - Set<Annotation> qualifiers, - BeanManagerImpl beanManagerImpl) { + InjectionPoint injectionPoint, + BeanManager beanManager) { _containerState = containerState; _referenceModel = referenceModel; _componentModel = componentModel; - _qualifiers = qualifiers; - _beanManagerImpl = beanManagerImpl; + _injectionPoint = injectionPoint; + _beanManager = beanManager; - Named named = annotated.getAnnotation(Named.class); + Named named = _injectionPoint.getAnnotated().getAnnotation(Named.class); _name = named != null ? named.value() : null; } @@ -63,16 +56,14 @@ public class ReferenceBean implements Be @Override public Object create(CreationalContext<Object> creationalContext) { Object instance = _getInjectedInstance(); - InjectionPoint ip = _getInjectionPoint(); - if (ip == null) { - return instance; - } - List<Decorator<?>> decorators = _getDecorators(ip); + List<Decorator<?>> decorators = _getDecorators(_injectionPoint); if (decorators.isEmpty()) { return instance; } - return Decorators.getOuterDelegate( - cast(this), instance, creationalContext, cast(getBeanClass()), ip, _beanManagerImpl, decorators); + return instance; + // TODO +// return Decorators.getOuterDelegate( +// cast(this), instance, creationalContext, cast(getBeanClass()), _injectionPoint, _beanManager, decorators); } @Override @@ -91,12 +82,12 @@ public class ReferenceBean implements Be @Override public String getName() { - return _name; //_referenceModel.getName(); + return _name; } @Override public Set<Annotation> getQualifiers() { - return _qualifiers; + return _injectionPoint.getQualifiers(); } @Override @@ -130,7 +121,9 @@ public class ReferenceBean implements Be } private List<Decorator<?>> _getDecorators(InjectionPoint ip) { - return _beanManagerImpl.resolveDecorators(Collections.singleton(ip.getType()), getQualifiers()); + return _beanManager.resolveDecorators( + Collections.singleton(ip.getType()), + _injectionPoint.getQualifiers().toArray(new Annotation[0])); } private Object _getInjectedInstance() { @@ -140,8 +133,6 @@ public class ReferenceBean implements Be ReferenceCallback referenceCallback = map.get(_referenceModel.getName()); - Type injectionPointType = _referenceModel.getInjectionPointType(); - switch (_referenceModel.getCollectionType()) { case PROPERTIES: instance = referenceCallback.tracked().values().iterator().next(); @@ -163,17 +154,11 @@ public class ReferenceBean implements Be return instance; } - private InjectionPoint _getInjectionPoint() { - CurrentInjectionPoint currentInjectionPoint = _beanManagerImpl.getServices().get(CurrentInjectionPoint.class); - InjectionPoint ip = currentInjectionPoint.peek(); - return EmptyInjectionPoint.INSTANCE.equals(ip) ? null : ip; - } - - private final BeanManagerImpl _beanManagerImpl; + private final BeanManager _beanManager; private final ComponentModel _componentModel; private final ContainerState _containerState; + private final InjectionPoint _injectionPoint; private final String _name; - private final Set<Annotation> _qualifiers; private final ReferenceModel _referenceModel; } \ No newline at end of file Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel.java?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel.java Thu Sep 7 19:22:23 2017 @@ -33,6 +33,7 @@ import java.lang.reflect.Type; import java.lang.reflect.WildcardType; import java.util.Collection; import java.util.Collections; +import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; @@ -843,6 +844,11 @@ public class ReferenceModel { } @Override + public <T extends Annotation> Set<T> getAnnotations(Class<T> annotationType) { + return null; + } + + @Override public Type getBaseType() { return _service; } Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/model/EventsTest.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/model/EventsTest.java?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/model/EventsTest.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/model/EventsTest.java Thu Sep 7 19:22:23 2017 @@ -23,8 +23,8 @@ import java.util.Map; import java.util.Set; import javax.enterprise.inject.spi.Bean; +import javax.enterprise.inject.spi.BeanManager; -import org.jboss.weld.manager.BeanManagerImpl; import org.apache.aries.cdi.container.internal.component.ComponentModel; import org.apache.aries.cdi.container.internal.container.ContainerState; import org.apache.aries.cdi.container.internal.literal.AnyLiteral; @@ -35,9 +35,7 @@ import org.apache.aries.cdi.container.te import org.apache.aries.cdi.container.test.beans.Foo; import org.apache.aries.cdi.container.test.beans.ObserverFoo; import org.junit.Test; -import org.osgi.framework.Bundle; import org.osgi.framework.Constants; -import org.osgi.framework.ServiceReference; import org.osgi.service.cdi.CdiEvent; public class EventsTest { @@ -57,7 +55,7 @@ public class EventsTest { assertEquals(CdiEvent.Type.CREATED, containerState.lastState()); - BeanManagerImpl beanManager = containerState.getBeanManager(); + BeanManager beanManager = containerState.getBeanManager(); Set<Bean<?>> beans = beanManager.getBeans(ObserverFoo.class, AnyLiteral.INSTANCE); @SuppressWarnings("rawtypes") Bean bean = beanManager.resolve(beans); Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainer.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainer.java?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainer.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockCdiContainer.java Thu Sep 7 19:22:23 2017 @@ -19,6 +19,7 @@ import java.util.List; import java.util.Set; import javax.enterprise.inject.spi.Bean; +import javax.enterprise.inject.spi.BeanManager; import javax.enterprise.inject.spi.Extension; import org.apache.aries.cdi.container.internal.container.ContainerDeployment; @@ -28,7 +29,6 @@ import org.jboss.weld.bootstrap.WeldBoot 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 { @@ -60,7 +60,7 @@ public class MockCdiContainer implements } public Bean<?> getBean(Class<?> clazz) { - final BeanManagerImpl managerImpl = getBeanManager(); + final BeanManager managerImpl = getBeanManager(); Set<javax.enterprise.inject.spi.Bean<?>> beans = managerImpl.getBeans(clazz, AnyLiteral.INSTANCE); @@ -70,12 +70,12 @@ public class MockCdiContainer implements return managerImpl.resolve(beans); } - public BeanManagerImpl getBeanManager() { - if (_beanManagerImpl != null) { - return _beanManagerImpl; + public BeanManager getBeanManager() { + if (_beanManager != null) { + return _beanManager; } - return _beanManagerImpl = _bootstrap.getManager(_bda); + return _beanManager = _bootstrap.getManager(_bda); } public WeldBootstrap getBootstrap() { @@ -83,7 +83,7 @@ public class MockCdiContainer implements } private final BeanDeploymentArchive _bda; - private BeanManagerImpl _beanManagerImpl; + private BeanManager _beanManager; private final WeldBootstrap _bootstrap; } \ No newline at end of file Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockInjectionPoint.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockInjectionPoint.java?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockInjectionPoint.java (original) +++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockInjectionPoint.java Thu Sep 7 19:22:23 2017 @@ -24,13 +24,13 @@ import javax.enterprise.inject.spi.Annot import javax.enterprise.inject.spi.Bean; import javax.enterprise.inject.spi.InjectionPoint; -import org.jboss.weld.annotated.slim.unbacked.UnbackedAnnotated; +import org.apache.aries.cdi.container.internal.util.Sets; public class MockInjectionPoint implements InjectionPoint { public MockInjectionPoint(Type type) { _type = type; - _annotated = new UnbackedAnnotated(_type, Collections.emptySet(), Collections.emptySet()); + _annotated = new MockAnnotated(_type); } @Override @@ -76,4 +76,44 @@ public class MockInjectionPoint implemen private final Type _type; private final Annotated _annotated; + private static class MockAnnotated implements Annotated { + + public MockAnnotated(Type service) { + _service = service; + } + + @Override + public <T extends Annotation> T getAnnotation(Class<T> annotationType) { + return null; + } + + @Override + public Set<Annotation> getAnnotations() { + return Collections.emptySet(); + } + + @Override + public <T extends Annotation> Set<T> getAnnotations(Class<T> annotationType) { + return null; + } + + @Override + public Type getBaseType() { + return _service; + } + + @Override + public Set<Type> getTypeClosure() { + return Sets.hashSet(_service); + } + + @Override + public boolean isAnnotationPresent(Class<? extends Annotation> annotationType) { + return false; + } + + private final Type _service; + + } + } Modified: aries/trunk/cdi/cdi-extension-http/pom.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extension-http/pom.xml?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extension-http/pom.xml (original) +++ aries/trunk/cdi/cdi-extension-http/pom.xml Thu Sep 7 19:22:23 2017 @@ -58,7 +58,7 @@ <dependency> <groupId>org.jboss.weld</groupId> <artifactId>weld-osgi-bundle</artifactId> - <version>2.4.2.Final</version> + <version>3.0.1.Final</version> <exclusions> <exclusion> <groupId>javax.enterprise</groupId> 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=1807639&r1=1807638&r2=1807639&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 Thu Sep 7 19:22:23 2017 @@ -25,16 +25,17 @@ import java.util.Map; import javax.enterprise.event.Observes; import javax.enterprise.inject.spi.AfterDeploymentValidation; +import javax.enterprise.inject.spi.AnnotatedType; +import javax.enterprise.inject.spi.Bean; import javax.enterprise.inject.spi.BeanManager; import javax.enterprise.inject.spi.BeforeShutdown; import javax.enterprise.inject.spi.Extension; +import javax.enterprise.inject.spi.InjectionTargetFactory; import javax.servlet.ServletContextListener; import javax.servlet.ServletRequestListener; import javax.servlet.http.HttpSessionListener; -import org.jboss.weld.bean.builtin.BeanManagerProxy; -import org.jboss.weld.manager.BeanManagerImpl; -import org.jboss.weld.servlet.WeldInitialListener; +import org.jboss.weld.module.web.servlet.WeldInitialListener; import org.osgi.framework.Bundle; import org.osgi.framework.Constants; import org.osgi.framework.ServiceRegistration; @@ -51,8 +52,6 @@ public class HttpExtension implements Ex } void afterDeploymentValidation(@Observes AfterDeploymentValidation adv, BeanManager beanManager) { - BeanManagerImpl beanManagerImpl = ((BeanManagerProxy)beanManager).delegate(); - Dictionary<String, Object> properties = new Hashtable<>(); properties.put( @@ -60,8 +59,14 @@ public class HttpExtension implements Ex properties.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_LISTENER, Boolean.TRUE.toString()); properties.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE - 100); + AnnotatedType<WeldInitialListener> annotatedType = beanManager.createAnnotatedType(WeldInitialListener.class); + InjectionTargetFactory<WeldInitialListener> injectionTargetFactory = beanManager.getInjectionTargetFactory(annotatedType); + Bean<WeldInitialListener> bean = beanManager.createBean(beanManager.createBeanAttributes(annotatedType), WeldInitialListener.class, injectionTargetFactory); + + WeldInitialListener initialListener = bean.create(beanManager.createCreationalContext(bean)); + _listenerRegistration = _bundle.getBundleContext().registerService( - LISTENER_CLASSES, new WeldInitialListener(beanManagerImpl), properties); + LISTENER_CLASSES, initialListener, properties); } void beforeShutdown(@Observes BeforeShutdown bs) { Modified: aries/trunk/cdi/cdi-itests/cdi-executable.bndrun URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/cdi-executable.bndrun?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/cdi-executable.bndrun (original) +++ aries/trunk/cdi/cdi-itests/cdi-executable.bndrun Thu Sep 7 19:22:23 2017 @@ -16,6 +16,7 @@ -runbundles: \ ch.qos.logback.classic;version='[1.2.3,1.2.4)',\ ch.qos.logback.core;version='[1.2.3,1.2.4)',\ + javax.annotation-api;version='[1.3.0,1.3.1)',\ jboss-classfilewriter;version='[1.1.2,1.1.3)',\ org.apache.aries.cdi.extender;version='[0.0.1,0.0.2)',\ org.apache.aries.cdi.extension.http;version='[0.0.1,0.0.2)',\ @@ -33,10 +34,9 @@ org.apache.felix.gogo.runtime;version='[1.0.2,1.0.3)',\ org.apache.felix.http.jetty;version='[3.4.2,3.4.3)',\ org.apache.felix.http.servlet-api;version='[1.1.2,1.1.3)',\ - org.apache.geronimo.specs.geronimo-annotation_1.2_spec;version='[1.0.0,1.0.1)',\ org.apache.logging.log4j.api;version='[2.7.0,2.7.1)',\ org.jboss.logging.jboss-logging;version='[3.2.1,3.2.2)',\ - org.jboss.weld.osgi-bundle;version='[2.4.3,2.4.4)',\ + org.jboss.weld.osgi-bundle;version='[3.0.1,3.0.2)',\ org.jline;version='[3.0.0,3.0.1)',\ org.osgi.service.cdi;version='[1.0.0,1.0.1)',\ org.osgi.service.event;version='[1.3.1,1.3.2)',\ @@ -44,6 +44,7 @@ -resolve.effective: resolve, active -runee: JavaSE-1.8 +-runsystemcapabilities.dflt: ${native_capability} -runfw: org.eclipse.osgi;version='[3.10.0,4.0.0)' -runproperties: \ logback.configurationFile=file:${.}/logback.xml,\ @@ -51,4 +52,4 @@ org.osgi.service.http.port=8080,\ osgi.console.enable.builtin=false, \ osgi.console= --runsystemcapabilities.dflt: ${native_capability} +-runsystempackages: javax.ejb;version=3.2.0 \ No newline at end of file Modified: aries/trunk/cdi/cdi-itests/itest.bndrun URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/itest.bndrun?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/itest.bndrun (original) +++ aries/trunk/cdi/cdi-itests/itest.bndrun Thu Sep 7 19:22:23 2017 @@ -14,6 +14,7 @@ -runbundles: \ ch.qos.logback.classic;version='[1.2.3,1.2.4)',\ ch.qos.logback.core;version='[1.2.3,1.2.4)',\ + javax.annotation-api;version='[1.3.0,1.3.1)',\ jboss-classfilewriter;version='[1.1.2,1.1.3)',\ org.apache.aries.cdi.extender;version='[0.0.1,0.0.2)',\ org.apache.aries.cdi.extension.http;version='[0.0.1,0.0.2)',\ @@ -34,12 +35,11 @@ org.apache.felix.http.jetty;version='[3.4.2,3.4.3)',\ org.apache.felix.http.servlet-api;version='[1.1.2,1.1.3)',\ org.apache.felix.scr;version='[2.0.8,2.0.9)',\ - org.apache.geronimo.specs.geronimo-annotation_1.2_spec;version='[1.0.0,1.0.1)',\ org.apache.httpcomponents.httpclient;version='[4.5.3,4.5.4)',\ org.apache.httpcomponents.httpcore;version='[4.4.6,4.4.7)',\ org.apache.logging.log4j.api;version='[2.7.0,2.7.1)',\ org.jboss.logging.jboss-logging;version='[3.2.1,3.2.2)',\ - org.jboss.weld.osgi-bundle;version='[2.4.3,2.4.4)',\ + org.jboss.weld.osgi-bundle;version='[3.0.1,3.0.2)',\ org.osgi.service.cdi;version='[1.0.0,1.0.1)',\ org.osgi.service.event;version='[1.3.1,1.3.2)',\ osgi.enroute.hamcrest.wrapper;version='[1.3.0,1.3.1)',\ @@ -56,3 +56,4 @@ org.osgi.service.http.port=8080,\ osgi.console.enable.builtin=false, \ osgi.console= +-runsystempackages: javax.ejb;version=3.2.0 \ No newline at end of file Modified: aries/trunk/cdi/javax.cdi-api/bnd.bnd URL: http://svn.apache.org/viewvc/aries/trunk/cdi/javax.cdi-api/bnd.bnd?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/javax.cdi-api/bnd.bnd (original) +++ aries/trunk/cdi/javax.cdi-api/bnd.bnd Thu Sep 7 19:22:23 2017 @@ -6,6 +6,6 @@ Provide-Capability: \ osgi.contract; \ osgi.contract=JavaCDI; \ uses:="javax.decorator,javax.enterprise.context,javax.enterprise.context.spi,javax.enterprise.event,javax.enterprise.inject,javax.enterprise.inject.spi,javax.enterprise.util"; \ - version:List<Version>='1.0,1.1,1.2' + version:List<Version>='1.0,1.1,1.2,2.0' -contract: JavaEL, JavaInject, JavaInterceptor --includeresource: META-INF/=LICENSE, META-INF/=NOTICE \ No newline at end of file +-includeresource: META-INF/=LICENSE, META-INF/=NOTICE Modified: aries/trunk/cdi/javax.cdi-api/pom.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/javax.cdi-api/pom.xml?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/javax.cdi-api/pom.xml (original) +++ aries/trunk/cdi/javax.cdi-api/pom.xml Thu Sep 7 19:22:23 2017 @@ -30,7 +30,6 @@ </parent> <artifactId>org.apache.aries.javax.cdi-api</artifactId> - <version>0.0.1-SNAPSHOT</version> <name>Javax CDI API Bundle</name> <description>Javax CDI API Bundle</description> @@ -42,7 +41,6 @@ </plugin> <plugin> <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.4</version> <executions> <execution> <id>javadoc-jar</id> @@ -67,7 +65,7 @@ <dependency> <groupId>javax.enterprise</groupId> <artifactId>cdi-api</artifactId> - <version>1.2</version> + <version>2.0</version> <scope>provided</scope> <exclusions> <exclusion> Modified: aries/trunk/cdi/javax.el-api/pom.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/javax.el-api/pom.xml?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/javax.el-api/pom.xml (original) +++ aries/trunk/cdi/javax.el-api/pom.xml Thu Sep 7 19:22:23 2017 @@ -30,7 +30,6 @@ </parent> <artifactId>org.apache.aries.javax.el-api</artifactId> - <version>0.0.1-SNAPSHOT</version> <name>Javax EL API Bundle</name> <description>Javax EL API Bundle</description> @@ -42,7 +41,6 @@ </plugin> <plugin> <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.4</version> <executions> <execution> <id>javadoc-jar</id> @@ -67,7 +65,7 @@ <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-el-api</artifactId> - <version>8.0.41</version> + <version>8.0.46</version> <scope>provided</scope> </dependency> </dependencies> Modified: aries/trunk/cdi/javax.inject-api/pom.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/javax.inject-api/pom.xml?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/javax.inject-api/pom.xml (original) +++ aries/trunk/cdi/javax.inject-api/pom.xml Thu Sep 7 19:22:23 2017 @@ -30,7 +30,6 @@ </parent> <artifactId>org.apache.aries.javax.inject-api</artifactId> - <version>0.0.1-SNAPSHOT</version> <name>Javax Inject API Bundle</name> <description>Javax Inject API Bundle</description> @@ -42,7 +41,6 @@ </plugin> <plugin> <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.4</version> <executions> <execution> <id>javadoc-jar</id> Modified: aries/trunk/cdi/javax.interceptor-api/pom.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/javax.interceptor-api/pom.xml?rev=1807639&r1=1807638&r2=1807639&view=diff ============================================================================== --- aries/trunk/cdi/javax.interceptor-api/pom.xml (original) +++ aries/trunk/cdi/javax.interceptor-api/pom.xml Thu Sep 7 19:22:23 2017 @@ -30,7 +30,6 @@ </parent> <artifactId>org.apache.aries.javax.interceptor-api</artifactId> - <version>0.0.1-SNAPSHOT</version> <name>Javax Interceptor API Bundle</name> <description>Javax Interceptor API Bundle</description> @@ -42,7 +41,6 @@ </plugin> <plugin> <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.4</version> <executions> <execution> <id>javadoc-jar</id>
