Author: rotty3000 Date: Sat Apr 14 01:09:09 2018 New Revision: 1829114 URL: http://svn.apache.org/viewvc?rev=1829114&view=rev Log: WIP
Added: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/DiscoveryExtension.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/OSGiBean.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/exception/ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/exception/BeanElementException.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/literal/AnyLiteral.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/exception/BlacklistQualifierException.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/literal/AnyLiteral.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ReferenceEventImpl.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Init.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Init.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/v2/ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/v2/component/ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/v2/component/Component.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/v2/component/ContainerComponent.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/v2/component/FactoryComponent.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/v2/component/SingleComponent.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_dynamic_greedy_Test2.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_dynamic_reluctant_Test.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_static_greedy_Test.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/Discovery_Ctor_static_reluctant_Test.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/IfBeanClassIsOSGiAnnotatedTest.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel_ReferenceServiceObjectsTest.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ReferenceEventImpl.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorCollectionFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFooBar.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFooFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFooFooNamed.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFooNamed.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFooNamed.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooNamed.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorFooOptional.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooOptional.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicgreedy/CtorListFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorListFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorCollectionFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorArrayListFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFooBar.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFooFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFooFooNamed.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFooNamed.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFooNamed.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooNamed.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorFooOptional.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooOptional.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctordynamicreluctant/CtorListFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorListFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorCollectionFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFooBar.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFooFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFooFooNamed.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFooNamed.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFooNamed.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooNamed.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorFooOptional.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooOptional.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticgreedy/CtorListFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorListFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorCollectionFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooBar.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooFooNamed.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFooNamed.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooNamed.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooNamed.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorFooOptional.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooOptional.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ctorstaticreluctant/CtorListFoo.java - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorListFoo.java aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.Bar.xml - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.BarAnnotated.xml - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.BarBadlyAnnotated.xml - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-annotated.xml aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.FooAnnotated.xml - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/org.apache.aries.cdi.container.test.beans.FooService.xml - copied, changed from r1828903, aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml aries/trunk/cdi/hs_err_pid14088.log Removed: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentDiscoveryExtension.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentModel.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/literal/AnyLiteral.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/literal/ComponentLiteral.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/literal/ConfigurationLiteral.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/literal/DefaultLiteral.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/literal/ReferenceLiteral.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ServiceEventImpl.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Init.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/component/ComponentExtension_Ctor_static_reluctant_Test.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel_ServiceObjectsTest.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorArrayListFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorCollectionFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooBar.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooFooNamed.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooNamed.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorFooOptional.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CtorListFoo.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ServiceEventImpl.java aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-annotated.xml aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-badly-annotated.xml aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-configuration.xml aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-only.xml aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-references.xml aries/trunk/cdi/cdi-extender/src/test/resources/OSGI-INF/cdi/beans-services.xml aries/trunk/cdi/cdi-extension-http/src/main/java/org/apache/aries/cdi/extension/http/Activator.java aries/trunk/cdi/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/Activator.java Modified: aries/trunk/cdi/cdi-extender/pom.xml aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/Activator.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/CdiBundle.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/command/CdiCommand.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentProperties.java 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/configuration/ConfigurationCallback.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedService.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationModel.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/ContainerDiscovery.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/context/BundleContextBean.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/extension/ExtensionDependency.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/BeansModel.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/Constants.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/OSGiBeansHandler.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_Configuration.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/phase/Phase_Extension.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/phase/Phase_Reference.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/ReferenceCallback.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/service/ServiceDeclaration.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/util/Types.java aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/CDIProvider.java aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/cdi.xsd aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallbackTest_Ignore.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallbackTest_Optional.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallbackTest_Require.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedServiceTest_Ignore.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedServiceTest_Optional.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedServiceTest_Require.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/container/ContainerDiscoveryTest.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/internal/model/ModelTest.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ConfigurationPhaseTest.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel_PropertiesTest.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel_ServiceReferenceTest.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel_ServiceTest.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/reference/ReferenceModel_TupleTest.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/MockCdiContainerAndComponents.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/MockInjectionPoint.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/TestUtil.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ArrayListFooProducer.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarAnnotated.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/BarProducer.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/CollectionFooProducer.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooAnnotated.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/FooProducer.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ListFooProducer.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/MethodBindFooNamed.java aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/beans/ObserverFoo.java aries/trunk/cdi/cdi-extension-http/bnd.bnd aries/trunk/cdi/cdi-extension-jndi/bnd.bnd aries/trunk/cdi/cdi-itests/logback.xml aries/trunk/cdi/cdi-itests/pom.xml aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/CdiEventObserver.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ConstructorInjectedService.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedBundleScopedImpl.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedPrototypeScopedImpl.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedService.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_Optional.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceProperties.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceReference.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/MethodInjectedService.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ServiceWithProperties.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiBeanTests.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiContainerTests.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiExtenderTests.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/ConfigurationTests.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/EventsTests.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/JndiExtensionTests.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/OSGiBeanDescriptorTests.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb3/ConfigurationBeanA.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb3/ConfigurationBeanB.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb5/ConfigurationBeanC.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BarServlet.java aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/FooServlet.java aries/trunk/cdi/javax.inject-api/README Modified: aries/trunk/cdi/cdi-extender/pom.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/pom.xml?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/pom.xml (original) +++ aries/trunk/cdi/cdi-extender/pom.xml Sat Apr 14 01:09:09 2018 @@ -84,7 +84,7 @@ <dependency> <groupId>org.jboss.weld</groupId> <artifactId>weld-osgi-bundle</artifactId> - <version>3.0.1.Final</version> + <version>3.0.2.Final</version> <exclusions> <exclusion> <groupId>javax.annotation</groupId> Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/Activator.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/Activator.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/Activator.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/Activator.java Sat Apr 14 01:09:09 2018 @@ -22,7 +22,10 @@ import java.util.Hashtable; import java.util.List; import java.util.Map; +import javax.enterprise.inject.spi.CDI; + import org.apache.aries.cdi.container.internal.command.CdiCommand; +import org.apache.aries.cdi.provider.CDIProvider; import org.apache.felix.utils.extender.AbstractExtender; import org.apache.felix.utils.extender.Extension; import org.osgi.framework.Bundle; @@ -35,6 +38,10 @@ import org.slf4j.LoggerFactory; public class Activator extends AbstractExtender { + static { + CDI.setCDIProvider(new CDIProvider()); + } + public Activator() { setSynchronous(true); } Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/CdiBundle.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/CdiBundle.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/CdiBundle.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/CdiBundle.java Sat Apr 14 01:09:09 2018 @@ -20,8 +20,8 @@ import java.util.concurrent.locks.Reentr import org.apache.aries.cdi.container.internal.command.CdiCommand; import org.apache.aries.cdi.container.internal.container.ContainerState; +import org.apache.aries.cdi.container.internal.phase.Init; import org.apache.aries.cdi.container.internal.phase.Phase; -import org.apache.aries.cdi.container.internal.phase.Phase_Init; import org.apache.felix.utils.extender.Extension; import org.osgi.framework.Bundle; import org.slf4j.Logger; @@ -60,7 +60,7 @@ public class CdiBundle implements Extens _command.add(_bundle, _containerState); try { - _nextPhase = new Phase_Init(_bundle, _containerState); + _nextPhase = new Init(_bundle, _containerState); _nextPhase.open(); } @@ -71,8 +71,6 @@ public class CdiBundle implements Extens _command.remove(_bundle); - _containerState.close(); - _containerState = null; } } @@ -105,8 +103,6 @@ public class CdiBundle implements Extens _nextPhase = null; - _containerState.close(); - _containerState = null; if (_log.isDebugEnabled()) { Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/command/CdiCommand.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/command/CdiCommand.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/command/CdiCommand.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/command/CdiCommand.java Sat Apr 14 01:09:09 2018 @@ -14,39 +14,22 @@ package org.apache.aries.cdi.container.internal.command; -import java.util.Arrays; import java.util.Collection; -import java.util.Collections; -import java.util.Dictionary; -import java.util.Formatter; -import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; -import org.apache.aries.cdi.container.internal.component.ComponentModel; -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.extension.ExtensionDependency; -import org.apache.aries.cdi.container.internal.model.BeansModel; -import org.apache.aries.cdi.container.internal.reference.ReferenceCallback; -import org.apache.aries.cdi.container.internal.reference.ReferenceModel; -import org.apache.aries.cdi.container.internal.service.ServiceDeclaration; -import org.apache.aries.cdi.container.internal.util.Conversions; import org.osgi.framework.Bundle; public class CdiCommand { - public String list() { - try (Formatter f = new Formatter()) { - for (ContainerState cdiContainerState : _states.values()) { - f.format("[%s]%n", cdiContainerState.id()); - } - return f.toString(); - } + public Collection<ContainerState> list() { + return _states.values(); } - public String info(Bundle bundle) { + public ContainerState info(Bundle bundle) { + return _states.get(bundle); + /* try (Formatter f = new Formatter()) { ContainerState containerState = _states.get(bundle); @@ -138,6 +121,7 @@ public class CdiCommand { return f.toString(); } + */ } public void add(Bundle bundle, ContainerState cdiContainerState) { @@ -150,5 +134,4 @@ public class CdiCommand { private final Map<Bundle, ContainerState> _states = new ConcurrentHashMap<>(); - } \ No newline at end of file Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentProperties.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentProperties.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentProperties.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/ComponentProperties.java Sat Apr 14 01:09:09 2018 @@ -14,23 +14,9 @@ package org.apache.aries.cdi.container.internal.component; -import java.util.Dictionary; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Map; - -import javax.enterprise.inject.spi.Bean; - -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.util.Conversions; -import org.apache.aries.cdi.container.internal.util.Maps; -import org.osgi.service.cdi.annotations.Configuration; -import org.osgi.util.converter.TypeReference; - public class ComponentProperties { - public ComponentProperties bean(Bean<?> bean) { +/* public ComponentProperties bean(Bean<?> bean) { _bean = bean; return this; } @@ -115,5 +101,5 @@ public class ComponentProperties { private ContainerState _containerState; private String[] _pid; private boolean _hidePrivate = false; - +*/ } 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=1829114&r1=1829113&r2=1829114&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 Sat Apr 14 01:09:09 2018 @@ -14,57 +14,11 @@ package org.apache.aries.cdi.container.internal.component; -import java.lang.annotation.Annotation; -import java.lang.reflect.Type; -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; -import javax.enterprise.inject.spi.AnnotatedMethod; -import javax.enterprise.inject.spi.AnnotatedType; -import javax.enterprise.inject.spi.Bean; -import javax.enterprise.inject.spi.BeanManager; import javax.enterprise.inject.spi.Extension; -import javax.enterprise.inject.spi.InjectionPoint; -import javax.enterprise.inject.spi.ObserverMethod; -import javax.enterprise.inject.spi.ProcessAnnotatedType; -import javax.enterprise.inject.spi.ProcessBean; -import javax.enterprise.inject.spi.ProcessInjectionPoint; -import javax.enterprise.inject.spi.ProcessObserverMethod; - -import org.apache.aries.cdi.container.internal.configuration.ConfigurationBean; -import org.apache.aries.cdi.container.internal.configuration.ConfigurationModel; -import org.apache.aries.cdi.container.internal.container.ContainerState; -import org.apache.aries.cdi.container.internal.literal.ComponentLiteral; -import org.apache.aries.cdi.container.internal.literal.ConfigurationLiteral; -import org.apache.aries.cdi.container.internal.literal.ReferenceLiteral; -import org.apache.aries.cdi.container.internal.model.ObserverMethodAnnotated; -import org.apache.aries.cdi.container.internal.reference.ReferenceBean; -import org.apache.aries.cdi.container.internal.reference.ReferenceModel; -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.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.ServiceEvent; -import org.osgi.service.cdi.annotations.ServiceScope; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class ComponentRuntimeExtension implements Extension { - public ComponentRuntimeExtension(ContainerState containerState) { +/* public ComponentRuntimeExtension(ContainerState containerState) { _containerState = containerState; } @@ -168,9 +122,9 @@ public class ComponentRuntimeExtension i return null; } - /* + * discover if an annotated class is a component - */ + <X> void processAnnotatedType(@Observes ProcessAnnotatedType<X> pat, BeanManager beanManager) { final AnnotatedType<X> at = pat.getAnnotatedType(); @@ -396,5 +350,5 @@ public class ComponentRuntimeExtension i private final AtomicInteger _mark = new AtomicInteger(); private final ContainerState _containerState; private final List<Bean<?>> _beans = new CopyOnWriteArrayList<>(); - +*/ } Added: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/DiscoveryExtension.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/DiscoveryExtension.java?rev=1829114&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/DiscoveryExtension.java (added) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/DiscoveryExtension.java Sat Apr 14 01:09:09 2018 @@ -0,0 +1,515 @@ +/** + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.aries.cdi.container.internal.component; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Executable; +import java.lang.reflect.Parameter; +import java.util.Arrays; +import java.util.Objects; +import java.util.Optional; +import java.util.function.Predicate; +import java.util.stream.Stream; + +import javax.enterprise.event.Observes; +import javax.enterprise.inject.spi.AfterBeanDiscovery; +import javax.enterprise.inject.spi.Annotated; +import javax.enterprise.inject.spi.AnnotatedField; +import javax.enterprise.inject.spi.AnnotatedParameter; +import javax.enterprise.inject.spi.AnnotatedType; +import javax.enterprise.inject.spi.BeanManager; +import javax.enterprise.inject.spi.Extension; +import javax.enterprise.inject.spi.InjectionPoint; +import javax.enterprise.inject.spi.ProcessAnnotatedType; +import javax.enterprise.inject.spi.ProcessBean; +import javax.enterprise.inject.spi.ProcessInjectionPoint; +import javax.enterprise.inject.spi.ProcessManagedBean; +import javax.enterprise.inject.spi.ProcessProducerField; +import javax.enterprise.inject.spi.ProcessProducerMethod; +import javax.enterprise.inject.spi.ProcessSessionBean; +import javax.enterprise.inject.spi.ProcessSyntheticBean; + +import org.apache.aries.cdi.container.internal.configuration.ConfigurationModel; +import org.apache.aries.cdi.container.internal.model.BeansModel; +import org.apache.aries.cdi.container.internal.reference.ReferenceModel; +import org.apache.aries.cdi.container.internal.v2.component.ContainerComponent; +import org.osgi.service.cdi.annotations.ComponentScoped; +import org.osgi.service.cdi.annotations.Configuration; +import org.osgi.service.cdi.annotations.FactoryComponent; +import org.osgi.service.cdi.annotations.Reference; +import org.osgi.service.cdi.annotations.Service; +import org.osgi.service.cdi.annotations.SingleComponent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class DiscoveryExtension implements Extension { + + public DiscoveryExtension(BeansModel beansModel, ContainerComponent containerComponent) { + _beansModel = beansModel; + _containerComponent = containerComponent; + } + + void afterBeanDiscovery(@Observes AfterBeanDiscovery abd) { + _beansModel.getErrors().stream().forEach(err -> + abd.addDefinitionError(err) + ); + } + + /* + * Process annotated classes to sync them up with the meta-model. + */ + <X> void processAnnotatedType(@Observes ProcessAnnotatedType<X> pat, BeanManager beanManager) { + final AnnotatedType<X> at = pat.getAnnotatedType(); + + Class<X> annotatedClass = at.getJavaClass(); + + final String className = annotatedClass.getName(); + + OSGiBean osgiBean = _beansModel.getOSGiBean(className); + + if (osgiBean == null) { + return; + } + + osgiBean.found(true); + +// if (checkIfBeanClassIsOSGiAnnotated(annotatedClass)) { +// if (_log.isDebugEnabled()) { +// _log.debug("CDIe - OSGi CDI annotations found. Clearing descriptor infos for {}", className); +// } +// } + } + + void processInjectionPoint(@Observes ProcessInjectionPoint<?, ?> pip) { + final InjectionPoint injectionPoint = pip.getInjectionPoint(); + + Annotated annotated = injectionPoint.getAnnotated(); + + Class<?> injectionPointClass = null; + + if (annotated instanceof AnnotatedParameter) { + AnnotatedParameter<?> ap = (AnnotatedParameter<?>)annotated; + + Parameter javaParameter = ap.getJavaParameter(); + + Executable declaringExecutable = javaParameter.getDeclaringExecutable(); + + injectionPointClass = declaringExecutable.getDeclaringClass(); //TODO verify + } + else { + AnnotatedField<?> af = (AnnotatedField<?>)annotated; + + injectionPointClass = af.getDeclaringType().getJavaClass(); + } + + String injectionPointClassName = injectionPointClass.getName(); + + OSGiBean osgiBean = _beansModel.getOSGiBean(injectionPointClassName); + + if (osgiBean == null) { + return; + } + + Reference reference = annotated.getAnnotation(Reference.class); + Configuration configuration = annotated.getAnnotation(Configuration.class); + + // Is it annotated with @Reference? + + if (reference != null) { + processReference(pip, osgiBean, reference, configuration); + + return; + } + + // Is it annotated with @Configuration? + + else if (configuration != null) { + processConfiguration(pip, osgiBean); + + return; + } + } + + void proc(@Observes ProcessBean<?> pb) { + Annotated annotated = null; + Class<?> annotatedClass = null; + + if (pb instanceof ProcessManagedBean) { + ProcessManagedBean<?> bean = (ProcessManagedBean<?>)pb; + + annotated = bean.getAnnotated(); + annotatedClass = bean.getAnnotatedBeanClass().getJavaClass(); + } + else if (pb instanceof ProcessSessionBean) { + ProcessSessionBean<?> bean = (ProcessSessionBean<?>)pb; + + annotated = bean.getAnnotated(); + annotatedClass = bean.getAnnotatedBeanClass().getJavaClass(); + } + else if (pb instanceof ProcessProducerMethod) { + ProcessProducerMethod<?, ?> producer = (ProcessProducerMethod<?, ?>)pb; + + annotated = producer.getAnnotated(); + annotatedClass = producer.getAnnotatedProducerMethod().getDeclaringType().getJavaClass(); + } + else if (pb instanceof ProcessProducerField) { + ProcessProducerField<?, ?> producer = (ProcessProducerField<?, ?>)pb; + + annotated = producer.getAnnotated(); + annotatedClass = producer.getAnnotatedProducerField().getDeclaringType().getJavaClass(); + } + else if (pb instanceof ProcessSyntheticBean) { + ProcessSyntheticBean<?> synthetic = (ProcessSyntheticBean<?>)pb; + + annotated = synthetic.getAnnotated(); + annotatedClass = synthetic.getBean().getBeanClass(); + } + else { + return; + } + + String className = annotatedClass.getName(); + + OSGiBean osgiBean = _beansModel.getOSGiBean(className); + + if (osgiBean == null) { + return; + } + + if (Optional.ofNullable( + annotated.getAnnotation(SingleComponent.class)).isPresent()) { + + osgiBean.setComponent(new org.apache.aries.cdi.container.internal.v2.component.SingleComponent(className)); + } + else if (Optional.ofNullable( + annotated.getAnnotation(FactoryComponent.class)).isPresent()) { + + osgiBean.setComponent(new org.apache.aries.cdi.container.internal.v2.component.FactoryComponent(className)); + } + else { + osgiBean.setComponent(_containerComponent); + } + } + + /* + void processObserverMethod(@Observes ProcessObserverMethod<ReferenceEvent<?>, ?> pom) { + ObserverMethod<ServiceEvent<?>> observerMethod = pom.getObserverMethod(); + + if (_log.isDebugEnabled()) { + _log.debug("CDIe - Processing observer method {}", observerMethod); + } + + Class<?> beanClass = observerMethod.getBeanClass(); + + final String className = beanClass.getName(); + + ComponentModel componentModel = _beansModel.getComponentModel(className); + + if (componentModel == null) { + pom.addDefinitionError( + new IllegalArgumentException( + String.format( + "The observer method {} is using the event type 'ServiceEvent' but is not defined as a bean", + observerMethod))); + + return; + } + + Reference reference = getQualifier(observerMethod, Reference.class); + Configuration configuration = getQualifier(observerMethod, Configuration.class); + + if (reference != null) { + processReference(pom, componentModel, reference, configuration); + + return; + } + } + + @SuppressWarnings("unchecked") + private <T extends Annotation> T getQualifier( + ObserverMethod<ServiceEvent<?>> observerMethod, Class<T> clazz) { + Set<Annotation> qualifiers = observerMethod.getObservedQualifiers(); + for (Annotation annotation : qualifiers) { + if (clazz.isAssignableFrom(annotation.annotationType())) { + return (T)annotation; + } + } + return null; + } +*/ + private void processConfiguration( + ProcessInjectionPoint<?, ?> pip, + OSGiBean osgiBean) { + + InjectionPoint injectionPoint = pip.getInjectionPoint(); + + ConfigurationModel configurationModel = new ConfigurationModel.Builder( + injectionPoint.getType() + ).injectionPoint( + injectionPoint + ).build(); + + osgiBean.addConfiguration(configurationModel.toDTO()); + } + + private void processReference( + ProcessInjectionPoint<?, ?> pip, + OSGiBean osgiBean, + Reference reference, + Configuration configuration) { + + InjectionPoint injectionPoint = pip.getInjectionPoint(); + + try { + if (configuration != null) { + throw new IllegalArgumentException( + String.format( + "Cannot use @Reference and @Configuration on the same injection point {}", + injectionPoint)); + } + + ReferenceModel referenceModel = new ReferenceModel.Builder( + ).injectionPoint( + injectionPoint + ).build(); + + osgiBean.addReference(referenceModel.toDTO()); + } + catch (IllegalArgumentException iae) { + _log.error("CDIe - Component definition error on {}", injectionPoint, iae); + + pip.addDefinitionError(iae); + } + } + + /* + private void processReference( + ProcessObserverMethod<ServiceEvent<?>, ?> pom, + ComponentModel componentModel, + Reference reference, + Configuration configuration) { + + ObserverMethod<ServiceEvent<?>> observerMethod = pom.getObserverMethod(); + + try { + if (configuration != null) { + throw new IllegalArgumentException( + String.format( + "Cannot use @Reference and @Configuration on the same observer method {}", + observerMethod)); + } + + ReferenceModel referenceModel = new ReferenceModel.Builder( + observerMethod.getObservedQualifiers() + ).annotated( + new ObserverMethodAnnotated(observerMethod) + ).policy( + ReferencePolicy.DYNAMIC + ).build(); + + if (componentModel.getReferences().remove(referenceModel)) { + if (_log.isDebugEnabled()) { + _log.debug("CDIe - OSGi CDI annotations found. Clearing descriptor reference for {}", observerMethod); + } + } + + referenceModel.found(true); + + componentModel.getReferences().add(referenceModel); + } + catch (IllegalArgumentException iae) { + _log.error("CDIe - Component definition error on {}", observerMethod, iae); + + pom.addDefinitionError(iae); + } + } + */ + + static boolean checkIfBeanClassIsOSGiAnnotated(Class<?> annotatedClass) { + // check for @SingleComponent + + if (Optional.ofNullable( + annotatedClass.getAnnotation(SingleComponent.class)).isPresent()) { + + return true; + } + + // check for @FactoryComponent + + if (Optional.ofNullable( + annotatedClass.getAnnotation(FactoryComponent.class)).isPresent()) { + + return true; + } + + // check for @ComponentScoped + + if (Optional.ofNullable( + annotatedClass.getAnnotation(ComponentScoped.class)).isPresent()) { + + return true; + } + + // check for @ComponentScoped on (producer) fields + + if (Arrays.stream( + annotatedClass.getDeclaredFields() + ).filter( + field -> Arrays.stream( + field.getAnnotations() + ).filter( + annotation -> ComponentScoped.class.equals(annotation.annotationType()) + ).findFirst().isPresent() + ).findAny().isPresent()) { + + return true; + } + + // check for @ComponentScoped on (producer) methods + + if (Arrays.stream( + annotatedClass.getDeclaredMethods() + ).filter( + method -> Arrays.stream( + method.getAnnotations() + ).filter( + annotation -> ComponentScoped.class.equals(annotation.annotationType()) + ).findFirst().isPresent() + ).findAny().isPresent()) { + + return true; + } + + // check for @Service + + if (Optional.ofNullable( + annotatedClass.getAnnotation(Service.class)).isPresent()) { + + return true; + } + + // check for @Service on implements + + if (Arrays.stream( + annotatedClass.getAnnotatedInterfaces() + ).filter( + annotatedType -> Objects.nonNull(annotatedType.getAnnotation(Service.class)) + ).findAny().isPresent()) { + + return true; + } + + // check for @Service on extends + + if (Stream.of( + annotatedClass.getAnnotatedSuperclass() + ).filter( + annotatedType -> Objects.nonNull(annotatedType.getAnnotation(Service.class)) + ).findAny().isPresent()) { + + return true; + } + + // check for @Service on (producer) fields + + if (Arrays.stream( + annotatedClass.getDeclaredFields() + ).filter( + field -> Arrays.stream( + field.getAnnotations() + ).filter( + annotation -> Service.class.equals(annotation.annotationType()) + ).findFirst().isPresent() + ).findAny().isPresent()) { + + return true; + } + + // check for @Service on (producer) methods + + if (Arrays.stream( + annotatedClass.getDeclaredMethods() + ).filter( + method -> Arrays.stream( + method.getAnnotations() + ).filter( + annotation -> Service.class.equals(annotation.annotationType()) + ).findFirst().isPresent() + ).findAny().isPresent()) { + + return true; + } + + Predicate<Annotation> hasAnnotations = annotation -> + Configuration.class.isInstance(annotation) || Reference.class.isInstance(annotation); + + // check for @Configuration/@Reference on constructors + + if (Arrays.stream( + annotatedClass.getDeclaredConstructors() + ).filter( + ctor -> Arrays.stream( + ctor.getParameterAnnotations() + ).flatMap( + array -> Arrays.stream(array) + ).filter( + hasAnnotations + ).findFirst().isPresent() + ).findAny().isPresent()) { + + return true; + } + + // check for @Configuration/@Reference on fields + + if (Arrays.stream( + annotatedClass.getDeclaredFields() + ).filter( + field -> Arrays.stream( + field.getAnnotations() + ).filter( + hasAnnotations + ).findFirst().isPresent() + ).findAny().isPresent()) { + + return true; + } + + // check for @Configuration/@Reference on methods + + if (Arrays.stream( + annotatedClass.getDeclaredMethods() + ).filter( + method -> Arrays.stream( + method.getParameterAnnotations() + ).flatMap( + array -> Arrays.stream(array) + ).filter( + hasAnnotations + ).findFirst().isPresent() + ).findAny().isPresent()) { + + return true; + } + + return false; + } + + private static final Logger _log = LoggerFactory.getLogger(DiscoveryExtension.class); + + private final BeansModel _beansModel; + private final ContainerComponent _containerComponent; + +} Added: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/OSGiBean.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/OSGiBean.java?rev=1829114&view=auto ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/OSGiBean.java (added) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/component/OSGiBean.java Sat Apr 14 01:09:09 2018 @@ -0,0 +1,118 @@ +/** + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.aries.cdi.container.internal.component; + +import java.util.List; +import java.util.Objects; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.atomic.AtomicBoolean; + +import org.apache.aries.cdi.container.internal.v2.component.Component; +import org.osgi.service.cdi.runtime.dto.template.ConfigurationTemplateDTO; +import org.osgi.service.cdi.runtime.dto.template.ReferenceTemplateDTO; + +public class OSGiBean implements Comparable<OSGiBean> { + + public static class Builder { + + public Builder(Class<?> beanClass) { + Objects.requireNonNull(beanClass); + _beanClass = beanClass; + } + + public OSGiBean build() { + return new OSGiBean(_beanClass); + } + + private Class<?> _beanClass; + + } + + private OSGiBean( + Class<?> beanClass) { + + _beanClass = beanClass; + } + + public void addConfiguration(ConfigurationTemplateDTO dto) { + if (_component == null) { + _configurations.add(dto); + } + else { + _component.addConfiguration(dto); + } + } + + public void addReference(ReferenceTemplateDTO dto) { + if (_component == null) { + _references.add(dto); + } + else { + _component.addReference(dto); + } + } + + @Override + public int compareTo(OSGiBean other) { + return _beanClass.getName().compareTo(other._beanClass.getName()); + } + + public boolean found() { + return _found.get(); + } + + public void found(boolean found) { + _found.set(found); + } + + public Class<?> getBeanClass() { + return _beanClass; + } + + public Component getComponent() { + return _component; + } + + public void setComponent(Component component) { + _component = component; + _configurations.removeIf( + dto -> { + _component.addConfiguration(dto); + return true; + } + ); + _references.removeIf( + dto -> { + _component.addReference(dto); + return true; + } + ); + } + + @Override + public String toString() { + if (_string == null) { + _string = String.format("OSGiBean[%s]", _beanClass.getName()); + } + return _string; + } + + private final Class<?> _beanClass; + private final List<ConfigurationTemplateDTO> _configurations = new CopyOnWriteArrayList<>(); + private final List<ReferenceTemplateDTO> _references = new CopyOnWriteArrayList<>(); + private volatile Component _component; + private final AtomicBoolean _found = new AtomicBoolean(); + private volatile String _string; +} 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=1829114&r1=1829113&r2=1829114&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 Sat Apr 14 01:09:09 2018 @@ -14,31 +14,83 @@ package org.apache.aries.cdi.container.internal.configuration; -import static org.apache.aries.cdi.container.internal.util.Reflection.cast; - import java.lang.annotation.Annotation; -import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; -import java.util.Collections; -import java.util.Dictionary; -import java.util.List; 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; -import org.apache.aries.cdi.container.internal.component.ComponentModel; -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; - public class ConfigurationBean implements Bean<Object> { - public ConfigurationBean( + @Override + public Object create(CreationalContext<Object> creationalContext) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void destroy(Object instance, CreationalContext<Object> creationalContext) { + // TODO Auto-generated method stub + + } + + @Override + public Set<Type> getTypes() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Set<Annotation> getQualifiers() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Class<? extends Annotation> getScope() { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getName() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Set<Class<? extends Annotation>> getStereotypes() { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean isAlternative() { + // TODO Auto-generated method stub + return false; + } + + @Override + public Class<?> getBeanClass() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Set<InjectionPoint> getInjectionPoints() { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean isNullable() { + // TODO Auto-generated method stub + return false; + } + +/* public ConfigurationBean( ContainerState containerState, ConfigurationModel configurationModel, ComponentModel componentModel, @@ -160,5 +212,5 @@ public class ConfigurationBean implement private final ContainerState _containerState; private final InjectionPoint _injectionPoint; private String _string; - +*/ } Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallback.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallback.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallback.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationCallback.java Sat Apr 14 01:09:09 2018 @@ -14,19 +14,11 @@ package org.apache.aries.cdi.container.internal.configuration; -import java.util.Dictionary; -import java.util.Hashtable; -import java.util.Objects; -import java.util.Optional; -import java.util.function.Consumer; - -import org.osgi.service.cdi.annotations.ConfigurationPolicy; - public class ConfigurationCallback { public static enum State {STARTED, ADDED, UPDATED, REMOVED} - public static class Builder { +/* public static class Builder { public ConfigurationCallback build() { //Objects.requireNonNull(_pid); @@ -182,5 +174,5 @@ public class ConfigurationCallback { private final Optional<Consumer<ConfigurationCallback>> _onRemove; private volatile State _state; private volatile String _string; - +*/ } Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedService.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedService.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedService.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationManagedService.java Sat Apr 14 01:09:09 2018 @@ -21,7 +21,13 @@ import org.osgi.service.cm.ManagedServic public class ConfigurationManagedService implements ManagedService { - public ConfigurationManagedService(String pid, ConfigurationCallback callback) { + @Override + public void updated(Dictionary<String, ?> properties) throws ConfigurationException { + // TODO Auto-generated method stub + + } + +/* public ConfigurationManagedService(String pid, ConfigurationCallback callback) { _pid = pid; _callback = callback; } @@ -59,5 +65,5 @@ public class ConfigurationManagedService private final String _pid; private volatile Dictionary<String, ?> _properties; private volatile String _string; - +*/ } \ No newline at end of file Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationModel.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationModel.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationModel.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/configuration/ConfigurationModel.java Sat Apr 14 01:09:09 2018 @@ -14,24 +14,18 @@ package org.apache.aries.cdi.container.internal.configuration; -import static org.apache.aries.cdi.container.internal.model.Model.*; -import static org.apache.aries.cdi.container.internal.model.Constants.CDI10_URI; -import static org.apache.aries.cdi.container.internal.model.Constants.CONFIGURATION_PID_ATTRIBUTE; -import static org.apache.aries.cdi.container.internal.model.Constants.CONFIGURATION_POLICY_ATTRIBUTE; - import java.lang.annotation.Annotation; import java.lang.reflect.Type; -import java.util.Arrays; import java.util.LinkedHashSet; import java.util.Objects; import java.util.Set; -import java.util.concurrent.atomic.AtomicBoolean; import javax.enterprise.inject.spi.InjectionPoint; -import org.osgi.service.cdi.annotations.Configuration; -import org.osgi.service.cdi.annotations.ConfigurationPolicy; -import org.xml.sax.Attributes; +import org.osgi.service.cdi.annotations.PID; +import org.osgi.service.cdi.runtime.dto.template.ConfigurationPolicy; +import org.osgi.service.cdi.runtime.dto.template.ConfigurationTemplateDTO; +import org.osgi.service.cdi.runtime.dto.template.MaximumCardinality; public class ConfigurationModel { @@ -42,59 +36,25 @@ public class ConfigurationModel { _type = type; } - public Builder attributes(Attributes attributes) { - _policy = ConfigurationPolicy.get(getValue( - CDI10_URI, CONFIGURATION_POLICY_ATTRIBUTE, attributes, ConfigurationPolicy.DEFAULT.toString())); - _pid = getValues(CDI10_URI, CONFIGURATION_PID_ATTRIBUTE, attributes, new String[] {Configuration.NAME}); - return this; - } - public ConfigurationModel build() { - _pid = ((_pid == null) || (_pid.length == 0))? new String[] {Configuration.NAME}: _pid; - - if (_policy == null) { - _policy = ConfigurationPolicy.OPTIONAL; - } - - return new ConfigurationModel(_type, _pid, _policy, _qualifiers); + return new ConfigurationModel(_type, _pid, _qualifiers); } public Builder injectionPoint(InjectionPoint injectionPoint) { _qualifiers = injectionPoint.getQualifiers(); - Configuration configuration = injectionPoint.getAnnotated().getAnnotation(Configuration.class); - if (configuration != null) { - _policy = configuration.configurationPolicy(); - _pid = configuration.value(); - } - return this; - } - - public Builder pid(String[] pid) { - _pid = pid; + _pid = injectionPoint.getAnnotated().getAnnotation(PID.class); return this; } - public Builder policy(ConfigurationPolicy policy) { - _policy = policy; - return this; - } - - public Builder qualifiers(Set<Annotation> qualifiers) { - _qualifiers = qualifiers; - return this; - } - - private String[] _pid; - private ConfigurationPolicy _policy; + private PID _pid; private Set<Annotation> _qualifiers; private Type _type; } - private ConfigurationModel(Type type, String[] pids, ConfigurationPolicy policy, Set<Annotation> qualifiers) { + private ConfigurationModel(Type type, PID pid, Set<Annotation> qualifiers) { _type = type; - _pid = pids; - _policy = policy; + _pid = pid; _qualifiers = new LinkedHashSet<>(); if (qualifiers != null) { _qualifiers.addAll(qualifiers); @@ -105,7 +65,6 @@ public class ConfigurationModel { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + ((_policy == null) ? 0 : _policy.hashCode()); result = prime * result + ((_qualifiers == null) ? 0 : _qualifiers.hashCode()); result = prime * result + ((_type == null) ? 0 : _type.hashCode()); return result; @@ -120,8 +79,6 @@ public class ConfigurationModel { if (getClass() != obj.getClass()) return false; ConfigurationModel other = (ConfigurationModel) obj; - if (_policy != other._policy) - return false; if (_qualifiers == null) { if (other._qualifiers != null) return false; @@ -135,19 +92,7 @@ public class ConfigurationModel { return true; } - public ConfigurationPolicy getConfigurationPolicy() { - return _policy; - } - - public boolean found() { - return _found.get(); - } - - public void found(boolean found) { - _found.set(found); - } - - public String[] getPid() { + public PID getPid() { return _pid; } @@ -164,19 +109,30 @@ public class ConfigurationModel { _qualifiers.addAll(qualifiers); } + public ConfigurationTemplateDTO toDTO() { + if (_pid != null) { + ConfigurationTemplateDTO dto = new ConfigurationTemplateDTO(); + + dto.componentConfiguration = false; + dto.maximumCardinality = MaximumCardinality.ONE; + dto.pid = _pid.value(); + dto.policy = (_pid.policy().toString().equals(ConfigurationPolicy.REQUIRED.toString())) + ? ConfigurationPolicy.REQUIRED : ConfigurationPolicy.OPTIONAL; + } + + return null; + } + @Override public String toString() { if (_string == null) { - _string = String.format("configuration[type='%s', policy='%s', pid='%s']", _type, _policy, Arrays.toString(_pid)); + _string = String.format("configuration[type='%s', pid='%s', policy='%s']", _type, _pid.value(), _pid.policy()); } return _string; } - private final AtomicBoolean _found = new AtomicBoolean(); - private final String[] _pid; - private final ConfigurationPolicy _policy; + private final PID _pid; private final Set<Annotation> _qualifiers; private volatile String _string; private final Type _type; - } 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=1829114&r1=1829113&r2=1829114&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 Sat Apr 14 01:09:09 2018 @@ -21,7 +21,6 @@ import java.util.concurrent.CopyOnWriteA import javax.enterprise.inject.spi.BeanManager; import javax.enterprise.inject.spi.Extension; -import org.apache.aries.cdi.container.internal.component.ComponentRuntimeExtension; import org.apache.aries.cdi.container.internal.context.BundleContextExtension; import org.apache.aries.cdi.container.internal.extension.ExtensionMetadata; import org.apache.aries.cdi.container.internal.model.BeansModel; @@ -29,7 +28,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.jboss.weld.util.ServiceLoader; public class ContainerBootstrap { @@ -50,10 +48,10 @@ public class ContainerBootstrap { new ExtensionMetadata( new BundleContextExtension(_containerState.bundleContext()), _containerState.id())); - extensions.add( - new ExtensionMetadata( - new ComponentRuntimeExtension(_containerState), - _containerState.id())); +// extensions.add( +// new ExtensionMetadata( +// new ComponentRuntimeExtension(_containerState), +// _containerState.id())); // Add extensions found from the bundle's classloader, such as those in the Bundle-ClassPath for (Metadata<Extension> meta : ServiceLoader.load(Extension.class, _containerState.classLoader())) { @@ -77,7 +75,7 @@ public class ContainerBootstrap { _bootstrap.startContainer(_containerState.id(), new ContainerEnvironment(), deployment); _beanManager = _bootstrap.getManager(beanDeploymentArchive); - _containerState.setBeanManager(_beanManager); +// _containerState.setBeanManager(_beanManager); _bootstrap.startInitialization(); _bootstrap.deployBeans(); Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerDiscovery.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerDiscovery.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerDiscovery.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ContainerDiscovery.java Sat Apr 14 01:09:09 2018 @@ -20,9 +20,10 @@ import java.util.List; import javax.enterprise.inject.spi.DefinitionException; import javax.enterprise.inject.spi.Extension; -import org.apache.aries.cdi.container.internal.component.ComponentDiscoveryExtension; +import org.apache.aries.cdi.container.internal.component.DiscoveryExtension; import org.apache.aries.cdi.container.internal.extension.ExtensionMetadata; import org.apache.aries.cdi.container.internal.model.BeansModel; +import org.apache.aries.cdi.container.internal.v2.component.ContainerComponent; import org.jboss.weld.bootstrap.WeldBootstrap; import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive; import org.jboss.weld.bootstrap.spi.Deployment; @@ -39,8 +40,10 @@ public class ContainerDiscovery { containerState.loader(), id, beansModel.getBeanClassNames(), beansModel.getBeansXml()); + ContainerComponent containerComponent = new ContainerComponent(id); + ExtensionMetadata extension = new ExtensionMetadata( - new ComponentDiscoveryExtension(beansModel), id); + new DiscoveryExtension(beansModel, containerComponent), id); List<Metadata<Extension>> extensions = Collections.singletonList(extension); @@ -49,48 +52,29 @@ public class ContainerDiscovery { WeldBootstrap _bootstrap = new WeldBootstrap(); - _bootstrap.startExtensions(extensions); - _bootstrap.startContainer(id, new ContainerEnvironment(), deployment); - _bootstrap.startInitialization(); - _bootstrap.deployBeans(); - //_bootstrap.validateBeans(); - //_bootstrap.endInitialization(); - _bootstrap.shutdown(); + try { + _bootstrap.startExtensions(extensions); + _bootstrap.startContainer(id, new ContainerEnvironment(), deployment); + _bootstrap.startInitialization(); + _bootstrap.deployBeans(); + _bootstrap.shutdown(); + } + catch (DefinitionException de) { + throw de; + } validate(containerState); } private static void validate(ContainerState containerState) { - containerState.beansModel().getComponentModels().stream().forEach( - componentModel -> { - if (!componentModel.found()) { + containerState.beansModel().getOSGiBeans().stream().forEach( + osgiBean -> { + if (!osgiBean.found()) { throw new DefinitionException( String.format( "Did not find bean for <component> description %s", - componentModel)); + osgiBean)); } - - componentModel.getReferences().stream().forEach( - referenceModel -> { - if (!referenceModel.found()) { - throw new DefinitionException( - String.format( - "Did not find injection point for <reference> description %s", - referenceModel)); - } - } - ); - - componentModel.getConfigurations().stream().forEach( - configurationModel -> { - if (!configurationModel.found()) { - throw new DefinitionException( - String.format( - "Did not find injection point for <configuration> description %s", - configurationModel)); - } - } - ); } ); } 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=1829114&r1=1829113&r2=1829114&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 Sat Apr 14 01:09:09 2018 @@ -25,7 +25,7 @@ import javax.enterprise.inject.spi.BeanM import javax.enterprise.inject.spi.ObserverMethod; import javax.enterprise.util.AnnotationLiteral; -import org.apache.aries.cdi.container.internal.component.ComponentModel; +import org.apache.aries.cdi.container.internal.component.OSGiBean; import org.apache.aries.cdi.container.internal.configuration.ConfigurationCallback; import org.apache.aries.cdi.container.internal.extension.ExtensionDependency; import org.apache.aries.cdi.container.internal.loader.BundleClassLoader; @@ -91,6 +91,7 @@ public class ContainerState { _msRegistrator = new Registrator<ManagedService>() { + @Override public void registerService(String[] classNames, ManagedService service, Dictionary<String, ?> properties) { registrations.add(bundleContext().registerService(ManagedService.class, service, properties)); } @@ -158,11 +159,7 @@ public class ContainerState { return _bundle.map(b -> _classLoader).orElse(getClass().getClassLoader()); } - public synchronized void close() { - // no op - } - - public Map<ComponentModel, Map<String, ConfigurationCallback>> configurationCallbacks() { + public Map<OSGiBean, Map<String, ConfigurationCallback>> configurationCallbacks() { return _configurationCallbacksMap; } @@ -191,15 +188,15 @@ public class ContainerState { return _msRegistrator; } - public Map<ComponentModel, Map<String, ReferenceCallback>> referenceCallbacks() { + public Map<OSGiBean, Map<String, ReferenceCallback>> referenceCallbacks() { return _referenceCallbacksMap; } - public Map<ComponentModel, Map<String, ObserverMethod<ReferenceEvent<?>>>> referenceObservers() { + public Map<OSGiBean, Map<String, ObserverMethod<ReferenceEvent<?>>>> referenceObservers() { return _referenceObserversMap; } - public Map<ComponentModel, ServiceDeclaration> serviceComponents() { + public Map<OSGiBean, ServiceDeclaration> serviceComponents() { return _serviceComponents; } @@ -225,14 +222,14 @@ public class ContainerState { private final Registrator<BeanManager> _bmRegistrator; private final Optional<Bundle> _bundle; private ClassLoader _classLoader; - private final Map<ComponentModel, Map<String, ConfigurationCallback>> _configurationCallbacksMap = new ConcurrentHashMap<>(); + private final Map<OSGiBean, Map<String, ConfigurationCallback>> _configurationCallbacksMap = new ConcurrentHashMap<>(); private final Context _context; private final Bundle _extenderBundle; private List<ExtensionDependency> _extensionDependencies; private final Registrator<ManagedService> _msRegistrator; - private final Map<ComponentModel, Map<String, ReferenceCallback>> _referenceCallbacksMap = new ConcurrentHashMap<>(); - private final Map<ComponentModel, Map<String, ObserverMethod<ReferenceEvent<?>>>> _referenceObserversMap = new ConcurrentHashMap<>(); - private final Map<ComponentModel, ServiceDeclaration> _serviceComponents = new ConcurrentHashMap<>(); + private final Map<OSGiBean, Map<String, ReferenceCallback>> _referenceCallbacksMap = new ConcurrentHashMap<>(); + private final Map<OSGiBean, Map<String, ObserverMethod<ReferenceEvent<?>>>> _referenceObserversMap = new ConcurrentHashMap<>(); + private final Map<OSGiBean, ServiceDeclaration> _serviceComponents = new ConcurrentHashMap<>(); private final Registrator<Object> _serviceRegistrator; private final Tracker _tracker; Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/context/BundleContextBean.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/context/BundleContextBean.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/context/BundleContextBean.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/context/BundleContextBean.java Sat Apr 14 01:09:09 2018 @@ -21,11 +21,11 @@ import java.util.Set; import javax.enterprise.context.Dependent; import javax.enterprise.context.spi.CreationalContext; +import javax.enterprise.inject.Any; +import javax.enterprise.inject.Default; 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.util.Sets; import org.osgi.framework.BundleContext; @@ -99,7 +99,7 @@ public class BundleContextBean implement } private static final Set<Annotation> DEFAULT_QUALIFIERS = Sets.hashSet( - DefaultLiteral.INSTANCE, AnyLiteral.INSTANCE); + Default.Literal.INSTANCE, Any.Literal.INSTANCE); private static final Set<Type> TYPES = Sets.immutableHashSet(BundleContext.class, Object.class); private final BundleContext _bundleContext; Copied: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/exception/BeanElementException.java (from r1828903, aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/literal/AnyLiteral.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/exception/BeanElementException.java?p2=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/exception/BeanElementException.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/literal/AnyLiteral.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/literal/AnyLiteral.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/exception/BeanElementException.java Sat Apr 14 01:09:09 2018 @@ -12,17 +12,14 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.internal.literal; +package org.apache.aries.cdi.container.internal.exception; -import javax.enterprise.inject.Any; -import javax.enterprise.util.AnnotationLiteral; - -public class AnyLiteral extends AnnotationLiteral<Any> implements Any { +public class BeanElementException extends IllegalArgumentException { private static final long serialVersionUID = 1L; - public static final Any INSTANCE = new AnyLiteral(); - private AnyLiteral() { + public BeanElementException(String message, Throwable cause) { + super(message, cause); } } Copied: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/exception/BlacklistQualifierException.java (from r1828903, aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/literal/AnyLiteral.java) URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/exception/BlacklistQualifierException.java?p2=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/exception/BlacklistQualifierException.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/literal/AnyLiteral.java&r1=1828903&r2=1829114&rev=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/literal/AnyLiteral.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/exception/BlacklistQualifierException.java Sat Apr 14 01:09:09 2018 @@ -12,17 +12,14 @@ * limitations under the License. */ -package org.apache.aries.cdi.container.internal.literal; +package org.apache.aries.cdi.container.internal.exception; -import javax.enterprise.inject.Any; -import javax.enterprise.util.AnnotationLiteral; - -public class AnyLiteral extends AnnotationLiteral<Any> implements Any { +public class BlacklistQualifierException extends IllegalArgumentException { private static final long serialVersionUID = 1L; - public static final Any INSTANCE = new AnyLiteral(); - private AnyLiteral() { + public BlacklistQualifierException(String message, Throwable cause) { + super(message, cause); } } Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/extension/ExtensionDependency.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/extension/ExtensionDependency.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/extension/ExtensionDependency.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/extension/ExtensionDependency.java Sat Apr 14 01:09:09 2018 @@ -20,13 +20,13 @@ import org.osgi.framework.BundleContext; import org.osgi.framework.Filter; import org.osgi.framework.InvalidSyntaxException; import org.osgi.framework.ServiceReference; -import org.osgi.service.cdi.CdiConstants; +import org.osgi.service.cdi.PortableExtensionNamespace; public class ExtensionDependency { public ExtensionDependency(BundleContext bundleContext, Long bundleId, String name) { _string = "(&(" + org.osgi.framework.Constants.SERVICE_BUNDLEID + "=" + bundleId + ")(" + - CdiConstants.CDI_EXTENSION_NAMESPACE + "=" + name + "))"; + PortableExtensionNamespace.CDI_EXTENSION_NAMESPACE + "=" + name + "))"; try { _filter = bundleContext.createFilter(_string); Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/BeansModel.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/BeansModel.java?rev=1829114&r1=1829113&r2=1829114&view=diff ============================================================================== --- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/BeansModel.java (original) +++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/BeansModel.java Sat Apr 14 01:09:09 2018 @@ -16,19 +16,24 @@ package org.apache.aries.cdi.container.i import java.net.URL; import java.util.Collection; +import java.util.List; import java.util.Map; -import org.apache.aries.cdi.container.internal.component.ComponentModel; +import org.apache.aries.cdi.container.internal.component.OSGiBean; import org.jboss.weld.bootstrap.spi.BeansXml; import org.jboss.weld.xml.BeansXmlParser; public class BeansModel { public BeansModel( - Map<String, ComponentModel> components, + Map<String, OSGiBean> beans, + List<Class<?>> qualifierBlackList, + List<Throwable> errors, Collection<URL> beanDescriptorURLs) { - _components = components; + _beans = beans; + _qualifierBlackList = qualifierBlackList; + _errors = errors; BeansXml beansXml = BeansXml.EMPTY_BEANS_XML; @@ -40,31 +45,37 @@ public class BeansModel { _beansXml = beansXml; } - public void addComponentModel(String componentClass, ComponentModel componentModel) { - _components.put(componentClass, componentModel); - } - public Collection<String> getBeanClassNames() { - return _components.keySet(); + return _beans.keySet(); } public BeansXml getBeansXml() { return _beansXml; } - public ComponentModel getComponentModel(String componentClass) { - return _components.get(componentClass); + public List<Class<?>> getQualifierBlackList() { + return _qualifierBlackList; + } + + public List<Throwable> getErrors() { + return _errors; + } + + public OSGiBean getOSGiBean(String beanClass) { + return _beans.get(beanClass); } - public Collection<ComponentModel> getComponentModels() { - return _components.values(); + public Collection<OSGiBean> getOSGiBeans() { + return _beans.values(); } - public void removeComponentModel(String beanClassName) { - _components.remove(beanClassName); + public void putOSGiBean(String beanClass, OSGiBean osgiBean) { + _beans.put(beanClass, osgiBean); } + private final Map<String, OSGiBean> _beans; private final BeansXml _beansXml; - private final Map<String, ComponentModel> _components; + private final List<Throwable> _errors; + private final List<Class<?>> _qualifierBlackList; } \ No newline at end of file