You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ro...@apache.org on 2018/08/24 16:35:04 UTC
svn commit: r1838899 - in /aries/trunk/cdi: cdi-extender/
cdi-extender/src/main/java/org/apache/aries/cdi/container/
cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/
cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/...
Author: rotty3000
Date: Fri Aug 24 16:35:04 2018
New Revision: 1838899
URL: http://svn.apache.org/viewvc?rev=1838899&view=rev
Log:
[CDI] update to latest changes
Signed-off-by: Raymond Auge <ro...@apache.org>
Added:
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/provider/
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/provider/CDIProvider.java
- copied, changed from r1838707, aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/CDIProvider.java
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/provider/SeContainerInitializer.java
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/package-info.java
- copied, changed from r1838707, aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/package-info.java
aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/services/javax.enterprise.inject.se.SeContainerInitializer
aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/services/javax.enterprise.inject.spi.CDIProvider
Removed:
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/CDIProvider.java
aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/package-info.java
Modified:
aries/trunk/cdi/cdi-extender/bnd.bnd
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/CCR.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/BeansModelBuilder.java
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/CDIBundlePhaseTest.java
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ContainerBootstrapTest.java
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ContainerReferencesTest.java
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ExtensionPhaseTest.java
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/TemplatesTests.java
aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/BaseCDIBundleTest.java
aries/trunk/cdi/cdi-extension-http/bnd.bnd
aries/trunk/cdi/cdi-extension-http/pom.xml
aries/trunk/cdi/cdi-extension-http/src/main/java/org/apache/aries/cdi/extension/http/HttpActivator.java
aries/trunk/cdi/cdi-extension-jndi/bnd.bnd
aries/trunk/cdi/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiActivator.java
aries/trunk/cdi/cdi-extra/src/main/java/org/apache/aries/cdi/extra/propertytypes/JSONRequired.java
aries/trunk/cdi/cdi-itests/bnd/basic-beans.bnd
aries/trunk/cdi/cdi-itests/bnd/tb1.bnd
aries/trunk/cdi/cdi-itests/bnd/tb10.bnd
aries/trunk/cdi/cdi-itests/bnd/tb11.bnd
aries/trunk/cdi/cdi-itests/bnd/tb2.bnd
aries/trunk/cdi/cdi-itests/bnd/tb3.bnd
aries/trunk/cdi/cdi-itests/bnd/tb4.bnd
aries/trunk/cdi/cdi-itests/bnd/tb5.bnd
aries/trunk/cdi/cdi-itests/bnd/tb6.bnd
aries/trunk/cdi/cdi-itests/bnd/tb7.bnd
aries/trunk/cdi/cdi-itests/bnd/tb8.bnd
aries/trunk/cdi/cdi-itests/bnd/tb9.bnd
aries/trunk/cdi/cdi-itests/cdi-executable.bndrun
aries/trunk/cdi/cdi-itests/itest.bndrun
aries/trunk/cdi/cdi-itests/pom.xml
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/CdiContainerTests.java
Modified: aries/trunk/cdi/cdi-extender/bnd.bnd
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/bnd.bnd?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/bnd.bnd (original)
+++ aries/trunk/cdi/cdi-extender/bnd.bnd Fri Aug 24 16:35:04 2018
@@ -10,8 +10,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-Conditional-Package: \
+-conditionalpackage: \
org.apache.felix.utils.extender,\
org.osgi.util.converter
--contract: JavaAnnotation, JavaCDI, JavaEL, JavaInject, JavaInterceptor
\ No newline at end of file
+-contract: *
Modified: aries/trunk/cdi/cdi-extender/pom.xml
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/pom.xml?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/pom.xml (original)
+++ aries/trunk/cdi/cdi-extender/pom.xml Fri Aug 24 16:35:04 2018
@@ -92,10 +92,6 @@
<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>
- <exclusion>
<groupId>org.jboss.spec.javax.interceptor</groupId>
<artifactId>jboss-interceptors-api_1.2_spec</artifactId>
</exclusion>
@@ -129,6 +125,12 @@
<version>1.0.0</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.namespace.service</artifactId>
+ <version>1.0.0</version>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.cdi</artifactId>
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=1838899&r1=1838898&r2=1838899&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 Fri Aug 24 16:35:04 2018
@@ -26,8 +26,6 @@ import java.util.Observer;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Executors;
-import javax.enterprise.inject.spi.CDI;
-
import org.apache.aries.cdi.container.internal.command.CDICommand;
import org.apache.aries.cdi.container.internal.container.CDIBundle;
import org.apache.aries.cdi.container.internal.container.ConfigurationListener;
@@ -41,16 +39,15 @@ import org.apache.aries.cdi.container.in
import org.apache.aries.cdi.container.internal.model.SingleActivator;
import org.apache.aries.cdi.container.internal.model.SingleComponent;
import org.apache.aries.cdi.container.internal.util.Logs;
-import org.apache.aries.cdi.provider.CDIProvider;
import org.apache.felix.utils.extender.AbstractExtender;
import org.apache.felix.utils.extender.Extension;
import org.osgi.annotation.bundle.Header;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
+import org.osgi.framework.FrameworkUtil;
import org.osgi.framework.ServiceFactory;
import org.osgi.framework.ServiceRegistration;
-import org.osgi.framework.wiring.BundleRequirement;
import org.osgi.framework.wiring.BundleWire;
import org.osgi.framework.wiring.BundleWiring;
import org.osgi.service.cdi.runtime.CDIComponentRuntime;
@@ -68,9 +65,10 @@ import org.osgi.util.tracker.ServiceTrac
@RequireConfigurationAdmin
public class Activator extends AbstractExtender {
- static {
- CDI.setCDIProvider(new CDIProvider());
- }
+ private static final Logs _logs = new Logs.Builder(FrameworkUtil.getBundle(Activator.class).getBundleContext()).build();
+ private static final Logger _log = _logs.getLogger(Activator.class);
+ private static final PromiseFactory _promiseFactory = new PromiseFactory(Executors.newFixedThreadPool(1));
+ public static final CCR ccr = new CCR(_promiseFactory, _logs);
public Activator() {
setSynchronous(true);
@@ -78,15 +76,11 @@ public class Activator extends AbstractE
@Override
public void start(BundleContext bundleContext) throws Exception {
- _logs = new Logs.Builder(bundleContext).build();
- _log = _logs.getLogger(getClass());
-
if (_log.isDebugEnabled()) {
_log.debug("CCR starting {}", bundleContext.getBundle());
}
- _ccr = new CCR(_promiseFactory, _logs);
- _command = new CDICommand(_ccr);
+ _command = new CDICommand(ccr);
_bundleContext = bundleContext;
@@ -158,7 +152,7 @@ public class Activator extends AbstractE
bundle, _bundleContext.getBundle(), _ccrChangeCount, _promiseFactory, caTracker, _logs);
// the CDI bundle
- return new CDIBundle(_ccr, containerState,
+ return new CDIBundle(ccr, containerState,
// handle extensions
new ExtensionPhase(containerState,
// listen for configurations of the container component
@@ -187,10 +181,16 @@ public class Activator extends AbstractE
@Override
protected void debug(Bundle bundle, String msg) {
+ if (_log.isDebugEnabled()) {
+ _log.debug(msg, bundle);
+ }
}
@Override
protected void warn(Bundle bundle, String msg, Throwable t) {
+ if (_log.isWarnEnabled()) {
+ _log.warn(msg, bundle, t);
+ }
}
@Override
@@ -213,15 +213,7 @@ public class Activator extends AbstractE
Bundle providerWiringBundle = bundleWire.getProviderWiring().getBundle();
if (providerWiringBundle.equals(_bundleContext.getBundle())) {
- BundleRequirement requirement = bundleWire.getRequirement();
- Map<String, Object> requirementAttributes = requirement.getAttributes();
-
- @SuppressWarnings("unchecked")
- List<String> beans = (List<String>)requirementAttributes.get(REQUIREMENT_OSGI_BEANS_ATTRIBUTE);
-
- if (beans != null && !beans.isEmpty()) {
- return true;
- }
+ return true;
}
}
}
@@ -229,16 +221,11 @@ public class Activator extends AbstractE
return false;
}
-
private BundleContext _bundleContext;
- private volatile CCR _ccr;
private final ChangeCount _ccrChangeCount = new ChangeCount();
private ServiceRegistration<CDIComponentRuntime> _ccrRegistration;
private volatile CDICommand _command;
private ServiceRegistration<?> _commandRegistration;
- private volatile Logs _logs;
- private volatile Logger _log;
- private final PromiseFactory _promiseFactory = new PromiseFactory(Executors.newFixedThreadPool(1));
private class ChangeObserverFactory implements Observer, ServiceFactory<CDIComponentRuntime> {
@@ -249,7 +236,7 @@ public class Activator extends AbstractE
_registrations.add(registration);
- return _ccr;
+ return ccr;
}
@Override
Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/CCR.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/CCR.java?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/CCR.java (original)
+++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/CCR.java Fri Aug 24 16:35:04 2018
@@ -73,6 +73,10 @@ public class CCR implements CDIComponent
);
}
+ public ContainerState getContainerState(Bundle bundle) {
+ return _states.get(bundle);
+ }
+
public void remove(Bundle bundle) {
_states.remove(bundle);
}
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=1838899&r1=1838898&r2=1838899&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 Fri Aug 24 16:35:04 2018
@@ -47,12 +47,14 @@ import org.jboss.weld.resources.spi.Reso
import org.jboss.weld.serialization.spi.ProxyServices;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
import org.osgi.framework.dto.BundleDTO;
import org.osgi.framework.namespace.PackageNamespace;
import org.osgi.framework.wiring.BundleCapability;
import org.osgi.framework.wiring.BundleRequirement;
import org.osgi.framework.wiring.BundleWire;
import org.osgi.framework.wiring.BundleWiring;
+import org.osgi.resource.Namespace;
import org.osgi.service.cdi.ComponentType;
import org.osgi.service.cdi.ConfigurationPolicy;
import org.osgi.service.cdi.MaximumCardinality;
@@ -73,7 +75,6 @@ public class ContainerState {
private static final long serialVersionUID = 1L;
};
- @SuppressWarnings("unchecked")
public ContainerState(
Bundle bundle,
Bundle extenderBundle,
@@ -112,6 +113,28 @@ public class ContainerState {
}
}
+ wires = bundleWiring.getRequiredWires(CDI_EXTENSION_PROPERTY);
+
+ List<String> extensionRequirements = new ArrayList<>();
+
+ for (BundleWire wire : wires) {
+ String filter = wire.getRequirement().getDirectives().get(
+ Namespace.REQUIREMENT_FILTER_DIRECTIVE);
+ Bundle extensionProvider = wire.getProvider().getBundle();
+
+ StringBuilder sb = new StringBuilder();
+
+ sb.append("(&");
+ sb.append(filter);
+ sb.append("(");
+ sb.append(Constants.SERVICE_BUNDLEID);
+ sb.append("=");
+ sb.append(extensionProvider.getBundleId());
+ sb.append("))");
+
+ extensionRequirements.add(sb.toString());
+ }
+
_containerDTO = new ContainerDTO();
_containerDTO.bundle = _bundle.adapt(BundleDTO.class);
_containerDTO.changeCount = _changeCount.get();
@@ -127,24 +150,20 @@ public class ContainerState {
_bundle.getSymbolicName()
);
- Optional.ofNullable(
- (List<String>)cdiAttributes.get(REQUIREMENT_EXTENSIONS_ATTRIBUTE)
- ).ifPresent(
- list -> list.stream().forEach(
- extensionFilter -> {
- ExtendedExtensionTemplateDTO extensionTemplateDTO = new ExtendedExtensionTemplateDTO();
-
- try {
- extensionTemplateDTO.filter = asFilter(extensionFilter);
- extensionTemplateDTO.serviceFilter = extensionFilter;
+ extensionRequirements.forEach(
+ extensionFilter -> {
+ ExtendedExtensionTemplateDTO extensionTemplateDTO = new ExtendedExtensionTemplateDTO();
+
+ try {
+ extensionTemplateDTO.filter = asFilter(extensionFilter);
+ extensionTemplateDTO.serviceFilter = extensionFilter;
- _containerDTO.template.extensions.add(extensionTemplateDTO);
- }
- catch (Exception e) {
- _containerDTO.errors.add(Throw.asString(e));
- }
+ _containerDTO.template.extensions.add(extensionTemplateDTO);
+ }
+ catch (Exception e) {
+ _containerDTO.errors.add(Throw.asString(e));
}
- )
+ }
);
_containerComponentTemplateDTO = new ComponentTemplateDTO();
@@ -185,6 +204,8 @@ public class ContainerState {
_containerDTO.errors.add(Throw.asString(e));
}
+
+ _beanManagerDeferred = _promiseFactory.deferred();
}
public <T, R> Promise<R> addCallback(CheckedCallback<T, R> checkedCallback) {
@@ -194,11 +215,18 @@ public class ContainerState {
}
public BeanManager beanManager() {
- return _beanManager;
+ try {
+ return _beanManagerDeferred.getPromise().timeout(5000).getValue();
+ } catch (InvocationTargetException | InterruptedException e) {
+ return Throw.exception(e);
+ }
}
public void beanManager(BeanManager beanManager) {
- _beanManager = beanManager;
+ if (_beanManagerDeferred.getPromise().isDone()) {
+ _beanManagerDeferred = _promiseFactory.deferred();
+ }
+ _beanManagerDeferred.resolve(beanManager);
}
public BeansModel beansModel() {
@@ -371,7 +399,7 @@ public class ContainerState {
}
private final ClassLoader _aggregateClassLoader;
- private volatile BeanManager _beanManager;
+ private volatile Deferred<BeanManager> _beanManagerDeferred;
private final BeansModel _beansModel;
private final Bundle _bundle;
private final ClassLoader _bundleClassLoader;
Modified: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/BeansModelBuilder.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/BeansModelBuilder.java?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/BeansModelBuilder.java (original)
+++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/BeansModelBuilder.java Fri Aug 24 16:35:04 2018
@@ -50,7 +50,7 @@ public class BeansModelBuilder {
List<URL> beanDescriptorURLs = new ArrayList<URL>();
Map<String, Object> attributes = getAttributes();
- List<String> beanDescriptorPaths = cast(attributes.get(REQUIREMENT_BEANS_ATTRIBUTE));
+ List<String> beanDescriptorPaths = cast(attributes.get(REQUIREMENT_DESCRIPTOR_ATTRIBUTE));
if (beanDescriptorPaths != null) {
for (String descriptorPath : beanDescriptorPaths) {
@@ -64,7 +64,7 @@ public class BeansModelBuilder {
@SuppressWarnings("unchecked")
List<String> beanClassNames = Optional.ofNullable(
- _attributes.get(REQUIREMENT_OSGI_BEANS_ATTRIBUTE)
+ _attributes.get(REQUIREMENT_BEANS_ATTRIBUTE)
).map(v -> (List<String>)v).orElse(Collections.emptyList());
Map<String, OSGiBean> beans = new HashMap<>();
Copied: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/provider/CDIProvider.java (from r1838707, aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/CDIProvider.java)
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/provider/CDIProvider.java?p2=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/provider/CDIProvider.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/CDIProvider.java&r1=1838707&r2=1838899&rev=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/CDIProvider.java (original)
+++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/provider/CDIProvider.java Fri Aug 24 16:35:04 2018
@@ -12,23 +12,21 @@
* limitations under the License.
*/
-package org.apache.aries.cdi.provider;
+package org.apache.aries.cdi.container.internal.provider;
import java.lang.annotation.Annotation;
+import java.util.Collections;
import java.util.Iterator;
+import java.util.Optional;
import javax.enterprise.inject.Instance;
import javax.enterprise.inject.spi.BeanManager;
import javax.enterprise.inject.spi.CDI;
import javax.enterprise.util.TypeLiteral;
-import org.apache.aries.cdi.container.internal.util.Filters;
-import org.jboss.weld.exceptions.IllegalStateException;
+import org.apache.aries.cdi.container.internal.Activator;
import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleReference;
-import org.osgi.framework.Filter;
-import org.osgi.util.tracker.ServiceTracker;
public class CDIProvider implements javax.enterprise.inject.spi.CDIProvider {
@@ -36,12 +34,12 @@ public class CDIProvider implements java
@Override
public void destroy(Object instance) {
- throw new UnsupportedOperationException();
+ // NOOP
}
@Override
public Object get() {
- throw new UnsupportedOperationException();
+ return this;
}
@Override
@@ -52,57 +50,46 @@ public class CDIProvider implements java
BundleReference br = (BundleReference)contextClassLoader;
Bundle bundle = br.getBundle();
- BundleContext bundleContext = bundle.getBundleContext();
- Filter filter = Filters.asFilter(
- "(&(objectClass=%s)(service.bundleid=%d))",
- BeanManager.class.getName(), bundle.getBundleId());
-
- ServiceTracker<BeanManager, BeanManager> bmt = new ServiceTracker<>(
- bundleContext, filter, null);
-
- bmt.open();
-
- try {
- return bmt.waitForService(1000);
- }
- catch (InterruptedException e) {
- return null;
- }
+ return Optional.ofNullable(
+ Activator.ccr.getContainerState(bundle)
+ ).map(
+ cs -> cs.beanManager()
+ ).orElse(null);
}
throw new IllegalStateException(
- "This method can only be used when the Thread context classloader has been set to a bundle's classloader.");
+ "This method can only be used when the Thread context class loader has been set to a Bundle's classloader.");
}
@Override
public boolean isAmbiguous() {
- throw new UnsupportedOperationException();
+ return false;
}
@Override
public boolean isUnsatisfied() {
- throw new UnsupportedOperationException();
+ return false;
}
@Override
public Iterator<Object> iterator() {
- throw new UnsupportedOperationException();
+ return Collections.singleton((Object)this).iterator();
}
@Override
public Instance<Object> select(Annotation... qualifiers) {
- throw new UnsupportedOperationException();
+ return getBeanManager().createInstance().select(qualifiers);
}
@Override
public <U> Instance<U> select(Class<U> subtype, Annotation... qualifiers) {
- throw new UnsupportedOperationException();
+ return getBeanManager().createInstance().select(subtype, qualifiers);
}
@Override
public <U> Instance<U> select(TypeLiteral<U> subtype, Annotation... qualifiers) {
- throw new UnsupportedOperationException();
+ return getBeanManager().createInstance().select(subtype, qualifiers);
}
}
Added: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/provider/SeContainerInitializer.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/provider/SeContainerInitializer.java?rev=1838899&view=auto
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/provider/SeContainerInitializer.java (added)
+++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/provider/SeContainerInitializer.java Fri Aug 24 16:35:04 2018
@@ -0,0 +1,111 @@
+/**
+ * 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.provider;
+
+import java.lang.annotation.Annotation;
+import java.util.Map;
+
+import javax.enterprise.inject.se.SeContainer;
+import javax.enterprise.inject.spi.Extension;
+
+public class SeContainerInitializer extends javax.enterprise.inject.se.SeContainerInitializer {
+
+ @Override
+ public javax.enterprise.inject.se.SeContainerInitializer addBeanClasses(Class<?>... classes) {
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+ @Override
+ public javax.enterprise.inject.se.SeContainerInitializer addPackages(Class<?>... packageClasses) {
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+ @Override
+ public javax.enterprise.inject.se.SeContainerInitializer addPackages(
+ boolean scanRecursively, Class<?>... packageClasses) {
+
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+ @Override
+ public javax.enterprise.inject.se.SeContainerInitializer addPackages(Package... packages) {
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+ @Override
+ public javax.enterprise.inject.se.SeContainerInitializer addPackages(boolean scanRecursively, Package... packages) {
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+ @Override
+ public javax.enterprise.inject.se.SeContainerInitializer addExtensions(Extension... extensions) {
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public javax.enterprise.inject.se.SeContainerInitializer addExtensions(Class<? extends Extension>... extensions) {
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+ @Override
+ public javax.enterprise.inject.se.SeContainerInitializer enableInterceptors(Class<?>... interceptorClasses) {
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+ @Override
+ public javax.enterprise.inject.se.SeContainerInitializer enableDecorators(Class<?>... decoratorClasses) {
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+ @Override
+ public javax.enterprise.inject.se.SeContainerInitializer selectAlternatives(Class<?>... alternativeClasses) {
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public javax.enterprise.inject.se.SeContainerInitializer selectAlternativeStereotypes(
+ Class<? extends Annotation>... alternativeStereotypeClasses) {
+
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+ @Override
+ public javax.enterprise.inject.se.SeContainerInitializer addProperty(String key, Object value) {
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+ @Override
+ public javax.enterprise.inject.se.SeContainerInitializer setProperties(Map<String, Object> properties) {
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+ @Override
+ public javax.enterprise.inject.se.SeContainerInitializer disableDiscovery() {
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+ @Override
+ public javax.enterprise.inject.se.SeContainerInitializer setClassLoader(ClassLoader classLoader) {
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+ @Override
+ public SeContainer initialize() {
+ throw new UnsupportedOperationException("This API is not supported in OSGi");
+ }
+
+}
Copied: aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/package-info.java (from r1838707, aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/package-info.java)
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/package-info.java?p2=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/package-info.java&p1=aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/package-info.java&r1=1838707&r2=1838899&rev=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/provider/package-info.java (original)
+++ aries/trunk/cdi/cdi-extender/src/main/java/org/apache/aries/cdi/container/package-info.java Fri Aug 24 16:35:04 2018
@@ -38,13 +38,54 @@
},
version = CDIConstants.CDI_SPECIFICATION_VERSION
)
-@Export
-@Version("1.0.0")
-package org.apache.aries.cdi.provider;
+@Capability(
+ namespace = ServiceNamespace.SERVICE_NAMESPACE,
+ attribute = "objectClass:List<String>=javax.enterprise.inject.spi.BeanManager",
+ uses = {
+ javax.el.Expression.class,
+ javax.enterprise.context.ApplicationScoped.class,
+ javax.enterprise.context.spi.Context.class,
+ javax.enterprise.event.Event.class,
+ javax.enterprise.inject.Any.class,
+ javax.enterprise.inject.spi.Annotated.class,
+ javax.enterprise.util.TypeLiteral.class
+ }
+)
+@Capability(
+ namespace = ServiceNamespace.SERVICE_NAMESPACE,
+ attribute = "objectClass:List<String>=org.osgi.service.cdi.runtime.CDIComponentRuntime",
+ uses = {
+ org.osgi.service.cdi.runtime.CDIComponentRuntime.class,
+ org.osgi.service.cdi.runtime.dto.ContainerDTO.class,
+ org.osgi.service.cdi.runtime.dto.template.ContainerTemplateDTO.class
+ }
+)
+@Capability(
+ namespace = "osgi.serviceloader",
+ name = "javax.enterprise.inject.se.SeContainerInitializer",
+ uses = {
+ javax.enterprise.inject.se.SeContainerInitializer.class,
+ javax.enterprise.inject.spi.CDI.class
+ }
+)
+@Capability(
+ namespace = "osgi.serviceloader",
+ name = "javax.enterprise.inject.spi.CDIProvider",
+ uses = {
+ javax.enterprise.inject.Any.class,
+ javax.enterprise.inject.spi.Annotated.class,
+ javax.enterprise.util.TypeLiteral.class
+ }
+)
+@Requirement(
+ namespace = ExtenderNamespace.EXTENDER_NAMESPACE,
+ name = "osgi.serviceloader.registrar"
+)
+package org.apache.aries.cdi.container;
import org.osgi.annotation.bundle.Capability;
-import org.osgi.annotation.bundle.Export;
-import org.osgi.annotation.versioning.Version;
+import org.osgi.annotation.bundle.Requirement;
import org.osgi.namespace.extender.ExtenderNamespace;
import org.osgi.namespace.implementation.ImplementationNamespace;
+import org.osgi.namespace.service.ServiceNamespace;
import org.osgi.service.cdi.CDIConstants;
Added: aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/services/javax.enterprise.inject.se.SeContainerInitializer
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/services/javax.enterprise.inject.se.SeContainerInitializer?rev=1838899&view=auto
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/services/javax.enterprise.inject.se.SeContainerInitializer (added)
+++ aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/services/javax.enterprise.inject.se.SeContainerInitializer Fri Aug 24 16:35:04 2018
@@ -0,0 +1,13 @@
+# 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.
+
+org.apache.aries.cdi.container.internal.provider.SeContainerInitializer
\ No newline at end of file
Added: aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/services/javax.enterprise.inject.spi.CDIProvider
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/services/javax.enterprise.inject.spi.CDIProvider?rev=1838899&view=auto
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/services/javax.enterprise.inject.spi.CDIProvider (added)
+++ aries/trunk/cdi/cdi-extender/src/main/resources/META-INF/services/javax.enterprise.inject.spi.CDIProvider Fri Aug 24 16:35:04 2018
@@ -0,0 +1,13 @@
+# 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.
+
+org.apache.aries.cdi.container.internal.provider.CDIProvider
\ No newline at end of file
Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/CDIBundlePhaseTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/CDIBundlePhaseTest.java?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/CDIBundlePhaseTest.java (original)
+++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/CDIBundlePhaseTest.java Fri Aug 24 16:35:04 2018
@@ -18,6 +18,7 @@ import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -27,8 +28,12 @@ import org.apache.aries.cdi.container.in
import org.apache.aries.cdi.container.test.BaseCDIBundleTest;
import org.junit.Test;
import org.osgi.framework.Bundle;
+import org.osgi.framework.wiring.BundleRequirement;
+import org.osgi.framework.wiring.BundleRevision;
+import org.osgi.framework.wiring.BundleWire;
import org.osgi.framework.wiring.BundleWiring;
import org.osgi.namespace.extender.ExtenderNamespace;
+import org.osgi.resource.Namespace;
import org.osgi.service.cdi.CDIConstants;
import org.osgi.service.cdi.runtime.dto.ContainerDTO;
@@ -70,8 +75,7 @@ public class CDIBundlePhaseTest extends
public void extensions_simple() throws Exception {
Map<String, Object> attributes = new HashMap<>();
- attributes.put(CDIConstants.REQUIREMENT_EXTENSIONS_ATTRIBUTE, Arrays.asList("(foo=name)", "(fum=bar)"));
- attributes.put(CDIConstants.REQUIREMENT_OSGI_BEANS_ATTRIBUTE,
+ attributes.put(CDIConstants.REQUIREMENT_BEANS_ATTRIBUTE,
Arrays.asList(
"org.apache.aries.cdi.container.test.beans.BarAnnotated",
"org.apache.aries.cdi.container.test.beans.FooAnnotated",
@@ -86,6 +90,44 @@ public class CDIBundlePhaseTest extends
0).getRequirement().getAttributes()
).thenReturn(attributes);
+ BundleWire wire0 = mock(BundleWire.class);
+ BundleRequirement req0 = mock(BundleRequirement.class);
+ BundleRevision rev0 = mock(BundleRevision.class);
+ BundleWire wire1 = mock(BundleWire.class);
+ BundleRequirement req1 = mock(BundleRequirement.class);
+ BundleRevision rev1 = mock(BundleRevision.class);
+
+ when(
+ bundle.adapt(
+ BundleWiring.class).getRequiredWires(CDIConstants.CDI_EXTENSION_PROPERTY)
+ ).thenReturn(Arrays.asList(wire0, wire1));
+
+ when(
+ wire0.getRequirement()
+ ).thenReturn(req0);
+ when(
+ wire0.getProvider()
+ ).thenReturn(rev0);
+ when(
+ rev0.getBundle()
+ ).thenReturn(bundle);
+ when(
+ req0.getDirectives()
+ ).thenReturn(Collections.singletonMap(Namespace.REQUIREMENT_FILTER_DIRECTIVE, "(foo=name)"));
+
+ when(
+ wire1.getRequirement()
+ ).thenReturn(req1);
+ when(
+ wire1.getProvider()
+ ).thenReturn(rev1);
+ when(
+ rev1.getBundle()
+ ).thenReturn(bundle);
+ when(
+ req1.getDirectives()
+ ).thenReturn(Collections.singletonMap(Namespace.REQUIREMENT_FILTER_DIRECTIVE, "(fum=bar)"));
+
ContainerState containerState = new ContainerState(bundle, ccrBundle, ccrChangeCount, promiseFactory, null, new Logs.Builder(bundle.getBundleContext()).build());
CDIBundle cdiBundle = new CDIBundle(ccr, containerState, null);
@@ -111,8 +153,8 @@ public class CDIBundlePhaseTest extends
assertNotNull(containerDTO.template);
assertEquals(2, containerDTO.template.components.size());
assertEquals(2, containerDTO.template.extensions.size());
- assertEquals("(foo=name)", containerDTO.template.extensions.get(0).serviceFilter);
- assertEquals("(fum=bar)", containerDTO.template.extensions.get(1).serviceFilter);
+ assertEquals("(&(foo=name)(service.bundleid=1))", containerDTO.template.extensions.get(0).serviceFilter);
+ assertEquals("(&(fum=bar)(service.bundleid=1))", containerDTO.template.extensions.get(1).serviceFilter);
assertEquals("foo", containerDTO.template.id);
cdiBundle.destroy();
@@ -122,8 +164,6 @@ public class CDIBundlePhaseTest extends
public void extensions_invalidsyntax() throws Exception {
Map<String, Object> attributes = new HashMap<>();
- attributes.put(CDIConstants.REQUIREMENT_EXTENSIONS_ATTRIBUTE, Arrays.asList("(foo=name)", "fum=bar)"));
-
when(
bundle.adapt(
BundleWiring.class).getRequiredWires(
@@ -131,6 +171,44 @@ public class CDIBundlePhaseTest extends
0).getRequirement().getAttributes()
).thenReturn(attributes);
+ BundleWire wire0 = mock(BundleWire.class);
+ BundleRequirement req0 = mock(BundleRequirement.class);
+ BundleRevision rev0 = mock(BundleRevision.class);
+ BundleWire wire1 = mock(BundleWire.class);
+ BundleRequirement req1 = mock(BundleRequirement.class);
+ BundleRevision rev1 = mock(BundleRevision.class);
+
+ when(
+ bundle.adapt(
+ BundleWiring.class).getRequiredWires(CDIConstants.CDI_EXTENSION_PROPERTY)
+ ).thenReturn(Arrays.asList(wire0, wire1));
+
+ when(
+ wire0.getRequirement()
+ ).thenReturn(req0);
+ when(
+ wire0.getProvider()
+ ).thenReturn(rev0);
+ when(
+ rev0.getBundle()
+ ).thenReturn(bundle);
+ when(
+ req0.getDirectives()
+ ).thenReturn(Collections.singletonMap(Namespace.REQUIREMENT_FILTER_DIRECTIVE, "(foo=name)"));
+
+ when(
+ wire1.getRequirement()
+ ).thenReturn(req1);
+ when(
+ wire1.getProvider()
+ ).thenReturn(rev1);
+ when(
+ rev1.getBundle()
+ ).thenReturn(bundle);
+ when(
+ req1.getDirectives()
+ ).thenReturn(Collections.singletonMap(Namespace.REQUIREMENT_FILTER_DIRECTIVE, "fum=bar)"));
+
ContainerState containerState = new ContainerState(bundle, ccrBundle, ccrChangeCount, promiseFactory, null, new Logs.Builder(bundle.getBundleContext()).build());
CDIBundle cdiBundle = new CDIBundle(ccr, containerState, null);
@@ -153,7 +231,7 @@ public class CDIBundlePhaseTest extends
assertFalse(containerDTO.errors + "", containerDTO.errors.isEmpty());
assertEquals(1, containerDTO.errors.size());
assertFalse(containerDTO.template.extensions.isEmpty());
- assertEquals("(foo=name)", containerDTO.template.extensions.get(0).serviceFilter);
+ assertEquals("(&(foo=name)(service.bundleid=1))", containerDTO.template.extensions.get(0).serviceFilter);
cdiBundle.destroy();
}
Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ContainerBootstrapTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ContainerBootstrapTest.java?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ContainerBootstrapTest.java (original)
+++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ContainerBootstrapTest.java Fri Aug 24 16:35:04 2018
@@ -52,7 +52,7 @@ public class ContainerBootstrapTest exte
Map<String, Object> attributes = new HashMap<>();
attributes.put(
- CDIConstants.REQUIREMENT_OSGI_BEANS_ATTRIBUTE,
+ CDIConstants.REQUIREMENT_BEANS_ATTRIBUTE,
Arrays.asList(
FooService.class.getName()
)
Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ContainerReferencesTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ContainerReferencesTest.java?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ContainerReferencesTest.java (original)
+++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ContainerReferencesTest.java Fri Aug 24 16:35:04 2018
@@ -249,7 +249,7 @@ public class ContainerReferencesTest ext
Map<String, Object> attributes = new HashMap<>();
attributes.put(
- CDIConstants.REQUIREMENT_OSGI_BEANS_ATTRIBUTE,
+ CDIConstants.REQUIREMENT_BEANS_ATTRIBUTE,
Arrays.asList(
"org.apache.aries.cdi.container.test.beans.Reference_S_R_M_U_Service"
)
@@ -391,7 +391,7 @@ public class ContainerReferencesTest ext
Map<String, Object> attributes = new HashMap<>();
attributes.put(
- CDIConstants.REQUIREMENT_OSGI_BEANS_ATTRIBUTE,
+ CDIConstants.REQUIREMENT_BEANS_ATTRIBUTE,
Arrays.asList(
"org.apache.aries.cdi.container.test.beans.Reference_D_R_M_U_Service"
)
Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ExtensionPhaseTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ExtensionPhaseTest.java?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ExtensionPhaseTest.java (original)
+++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/ExtensionPhaseTest.java Fri Aug 24 16:35:04 2018
@@ -20,8 +20,7 @@ import static org.mockito.Mockito.*;
import java.util.Arrays;
import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.Collections;
import javax.enterprise.inject.spi.Extension;
@@ -38,8 +37,11 @@ import org.osgi.framework.Bundle;
import org.osgi.framework.Constants;
import org.osgi.framework.ServiceEvent;
import org.osgi.framework.ServiceListener;
+import org.osgi.framework.wiring.BundleRequirement;
+import org.osgi.framework.wiring.BundleRevision;
+import org.osgi.framework.wiring.BundleWire;
import org.osgi.framework.wiring.BundleWiring;
-import org.osgi.namespace.extender.ExtenderNamespace;
+import org.osgi.resource.Namespace;
import org.osgi.service.cdi.CDIConstants;
import org.osgi.service.cdi.runtime.dto.ContainerDTO;
import org.osgi.service.cdi.runtime.dto.ExtensionDTO;
@@ -49,15 +51,26 @@ public class ExtensionPhaseTest extends
@Test
public void extensions_tracking() throws Exception {
- Map<String, Object> attributes = new HashMap<>();
- attributes.put(CDIConstants.REQUIREMENT_EXTENSIONS_ATTRIBUTE, Arrays.asList("(foo=name)"));
+ BundleWire wire0 = mock(BundleWire.class);
+ BundleRequirement req0 = mock(BundleRequirement.class);
+ BundleRevision rev0 = mock(BundleRevision.class);
when(
bundle.adapt(
- BundleWiring.class).getRequiredWires(
- ExtenderNamespace.EXTENDER_NAMESPACE).get(
- 0).getRequirement().getAttributes()
- ).thenReturn(attributes);
+ BundleWiring.class).getRequiredWires(CDIConstants.CDI_EXTENSION_PROPERTY)
+ ).thenReturn(Arrays.asList(wire0));
+ when(
+ wire0.getRequirement()
+ ).thenReturn(req0);
+ when(
+ wire0.getProvider()
+ ).thenReturn(rev0);
+ when(
+ rev0.getBundle()
+ ).thenReturn(bundle);
+ when(
+ req0.getDirectives()
+ ).thenReturn(Collections.singletonMap(Namespace.REQUIREMENT_FILTER_DIRECTIVE, "(foo=name)"));
ContainerState containerState = new ContainerState(bundle, ccrBundle, ccrChangeCount, promiseFactory, null, new Logs.Builder(bundle.getBundleContext()).build());
@@ -86,7 +99,7 @@ public class ExtensionPhaseTest extends
assertNotNull(containerDTO.template);
assertEquals(1, containerDTO.template.extensions.size());
- assertEquals("(foo=name)", containerDTO.template.extensions.get(0).serviceFilter);
+ assertEquals("(&(foo=name)(service.bundleid=1))", containerDTO.template.extensions.get(0).serviceFilter);
final MockServiceRegistration<Extension> regA = cast(bundle.getBundleContext().registerService(
Extension.class, new Extension(){}, Maps.dict("foo", "name")));
@@ -97,7 +110,7 @@ public class ExtensionPhaseTest extends
TestUtil.serviceListeners.stream().filter(
en -> en.getValue().matches(
Maps.of(Constants.OBJECTCLASS, Extension.class.getName(),
- "foo", "name"))
+ "foo", "name", Constants.SERVICE_BUNDLEID, bundle.getBundleId()))
).map(
en -> en.getKey()
).findFirst().ifPresent(
@@ -105,9 +118,9 @@ public class ExtensionPhaseTest extends
);
Thread.sleep(10);
- } while(!slD.getPromise().isDone());
+ } while(!slD.getPromise().timeout(500).isDone());
- slD.getPromise().thenAccept(
+ slD.getPromise().timeout(500).thenAccept(
sl -> {
assertEquals(2, containerState.containerDTO().changeCount);
assertEquals(1, containerState.containerDTO().extensions.size());
Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/TemplatesTests.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/TemplatesTests.java?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/TemplatesTests.java (original)
+++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/internal/phase/TemplatesTests.java Fri Aug 24 16:35:04 2018
@@ -107,7 +107,7 @@ public class TemplatesTests extends Base
Map<String, Object> attributes = new HashMap<>();
attributes.put(
- CDIConstants.REQUIREMENT_OSGI_BEANS_ATTRIBUTE,
+ CDIConstants.REQUIREMENT_BEANS_ATTRIBUTE,
Arrays.asList(
"org.apache.aries.cdi.container.test.beans.BarAnnotated",
"org.apache.aries.cdi.container.test.beans.BarProducer",
@@ -192,7 +192,7 @@ public class TemplatesTests extends Base
Map<String, Object> attributes = new HashMap<>();
attributes.put(
- CDIConstants.REQUIREMENT_OSGI_BEANS_ATTRIBUTE,
+ CDIConstants.REQUIREMENT_BEANS_ATTRIBUTE,
Arrays.asList(
"org.apache.aries.cdi.container.test.beans.BarAnnotated",
"org.apache.aries.cdi.container.test.beans.BarProducer",
@@ -411,7 +411,7 @@ public class TemplatesTests extends Base
Map<String, Object> attributes = new HashMap<>();
attributes.put(
- CDIConstants.REQUIREMENT_OSGI_BEANS_ATTRIBUTE,
+ CDIConstants.REQUIREMENT_BEANS_ATTRIBUTE,
Arrays.asList(
"org.apache.aries.cdi.container.test.beans.BarAnnotated",
"org.apache.aries.cdi.container.test.beans.FooAnnotated",
Modified: aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/BaseCDIBundleTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/BaseCDIBundleTest.java?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/BaseCDIBundleTest.java (original)
+++ aries/trunk/cdi/cdi-extender/src/test/java/org/apache/aries/cdi/container/test/BaseCDIBundleTest.java Fri Aug 24 16:35:04 2018
@@ -93,7 +93,7 @@ public class BaseCDIBundleTest {
when(extenderWire.getRequirement()).thenReturn(extenderRequirement);
when(extenderRequirement.getAttributes()).thenReturn(
Maps.of(
- "osgi.beans",
+ CDIConstants.REQUIREMENT_BEANS_ATTRIBUTE,
Arrays.asList(
"org.apache.aries.cdi.container.test.beans.BarAnnotated",
"org.apache.aries.cdi.container.test.beans.FooAnnotated",
Modified: aries/trunk/cdi/cdi-extension-http/bnd.bnd
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extension-http/bnd.bnd?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extension-http/bnd.bnd (original)
+++ aries/trunk/cdi/cdi-extension-http/bnd.bnd Fri Aug 24 16:35:04 2018
@@ -10,4 +10,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
--contract: JavaAnnotation, JavaCDI, JavaServlet
\ No newline at end of file
+-contract: *
\ No newline at end of file
Modified: aries/trunk/cdi/cdi-extension-http/pom.xml
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extension-http/pom.xml?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extension-http/pom.xml (original)
+++ aries/trunk/cdi/cdi-extension-http/pom.xml Fri Aug 24 16:35:04 2018
@@ -96,7 +96,7 @@
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.http.whiteboard</artifactId>
- <version>1.0.0</version>
+ <version>1.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
Modified: aries/trunk/cdi/cdi-extension-http/src/main/java/org/apache/aries/cdi/extension/http/HttpActivator.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extension-http/src/main/java/org/apache/aries/cdi/extension/http/HttpActivator.java?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extension-http/src/main/java/org/apache/aries/cdi/extension/http/HttpActivator.java (original)
+++ aries/trunk/cdi/cdi-extension-http/src/main/java/org/apache/aries/cdi/extension/http/HttpActivator.java Fri Aug 24 16:35:04 2018
@@ -28,17 +28,47 @@ import org.osgi.framework.Constants;
import org.osgi.framework.ServiceRegistration;
import org.osgi.namespace.implementation.ImplementationNamespace;
import org.osgi.namespace.service.ServiceNamespace;
+import org.osgi.service.cdi.CDIConstants;
import org.osgi.service.cdi.annotations.RequireCDIImplementation;
@Capability(
- attribute = {
- "objectClass:List<String>=javax.enterprise.inject.spi.Extension",
- "osgi.cdi.extension=aries.cdi.http"},
- namespace = ServiceNamespace.SERVICE_NAMESPACE
+ attribute = "objectClass:List<String>=javax.enterprise.inject.spi.Extension",
+ namespace = ServiceNamespace.SERVICE_NAMESPACE,
+ uses= {
+ javax.annotation.Priority.class,
+ javax.enterprise.context.Initialized.class,
+ javax.enterprise.event.Observes.class,
+ javax.enterprise.inject.spi.Extension.class,
+ javax.naming.Context.class,
+ javax.naming.spi.ObjectFactory.class,
+ javax.servlet.ServletContextListener.class,
+ javax.servlet.http.HttpSessionListener.class,
+ org.jboss.weld.module.web.servlet.WeldInitialListener.class,
+ org.osgi.service.cdi.CDIConstants.class,
+ org.osgi.service.http.whiteboard.HttpWhiteboardConstants.class,
+ }
+)
+@Capability(
+ name = "aries.cdi.http",
+ namespace = CDIConstants.CDI_EXTENSION_PROPERTY,
+ uses= {
+ javax.annotation.Priority.class,
+ javax.enterprise.context.Initialized.class,
+ javax.enterprise.event.Observes.class,
+ javax.enterprise.inject.spi.Extension.class,
+ javax.naming.Context.class,
+ javax.naming.spi.ObjectFactory.class,
+ javax.servlet.ServletContextListener.class,
+ javax.servlet.http.HttpSessionListener.class,
+ org.jboss.weld.module.web.servlet.WeldInitialListener.class,
+ org.osgi.service.cdi.CDIConstants.class,
+ org.osgi.service.http.whiteboard.HttpWhiteboardConstants.class,
+ },
+ version = "0.0.2"
)
@Header(
name = Constants.BUNDLE_ACTIVATOR,
- value = "org.apache.aries.cdi.extension.http.HttpActivator"
+ value = "${@class}"
)
@Requirement(
name = "osgi.http",
@@ -51,7 +81,7 @@ public class HttpActivator implements Bu
@Override
public void start(BundleContext context) throws Exception {
Dictionary<String, Object> properties = new Hashtable<>();
- properties.put("osgi.cdi.extension", "aries.cdi.http");
+ properties.put(CDIConstants.CDI_EXTENSION_PROPERTY, "aries.cdi.http");
_serviceRegistration = context.registerService(
Extension.class, new HttpExtensionFactory(), properties);
}
Modified: aries/trunk/cdi/cdi-extension-jndi/bnd.bnd
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extension-jndi/bnd.bnd?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extension-jndi/bnd.bnd (original)
+++ aries/trunk/cdi/cdi-extension-jndi/bnd.bnd Fri Aug 24 16:35:04 2018
@@ -10,4 +10,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
--contract: JavaCDI
\ No newline at end of file
+-contract: *
\ No newline at end of file
Modified: aries/trunk/cdi/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiActivator.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiActivator.java?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiActivator.java (original)
+++ aries/trunk/cdi/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiActivator.java Fri Aug 24 16:35:04 2018
@@ -34,14 +34,39 @@ import org.osgi.service.log.LoggerFactor
import org.osgi.util.tracker.ServiceTracker;
@Capability(
- attribute = {
- "objectClass:List<String>=javax.enterprise.inject.spi.Extension",
- "osgi.cdi.extension=aries.cdi.jndi"},
- namespace = ServiceNamespace.SERVICE_NAMESPACE
+ attribute = "objectClass:List<String>=javax.enterprise.inject.spi.Extension",
+ namespace = ServiceNamespace.SERVICE_NAMESPACE,
+ uses= {
+ javax.enterprise.context.Initialized.class,
+ javax.enterprise.event.Observes.class,
+ javax.enterprise.inject.spi.Extension.class,
+ javax.naming.Context.class,
+ javax.naming.spi.ObjectFactory.class,
+ org.osgi.service.cdi.CDIConstants.class,
+ org.osgi.service.jndi.JNDIConstants.class,
+ org.osgi.service.log.LoggerFactory.class,
+ org.osgi.util.promise.Promise.class
+ }
+)
+@Capability(
+ namespace = CDIConstants.CDI_EXTENSION_PROPERTY,
+ name = "aries.cdi.jndi",
+ uses= {
+ javax.enterprise.context.Initialized.class,
+ javax.enterprise.event.Observes.class,
+ javax.enterprise.inject.spi.Extension.class,
+ javax.naming.Context.class,
+ javax.naming.spi.ObjectFactory.class,
+ org.osgi.service.cdi.CDIConstants.class,
+ org.osgi.service.jndi.JNDIConstants.class,
+ org.osgi.service.log.LoggerFactory.class,
+ org.osgi.util.promise.Promise.class
+ },
+ version = "0.0.2"
)
@Header(
name = Constants.BUNDLE_ACTIVATOR,
- value = "org.apache.aries.cdi.extension.jndi.JndiActivator"
+ value = "${@class}"
)
@RequireCDIImplementation
public class JndiActivator implements BundleActivator {
@@ -63,6 +88,7 @@ public class JndiActivator implements Bu
@Override
public void stop(BundleContext context) throws Exception {
_serviceRegistration.unregister();
+ _lft.close();
}
private volatile ServiceTracker<LoggerFactory, LoggerFactory> _lft;
Modified: aries/trunk/cdi/cdi-extra/src/main/java/org/apache/aries/cdi/extra/propertytypes/JSONRequired.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-extra/src/main/java/org/apache/aries/cdi/extra/propertytypes/JSONRequired.java?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-extra/src/main/java/org/apache/aries/cdi/extra/propertytypes/JSONRequired.java (original)
+++ aries/trunk/cdi/cdi-extra/src/main/java/org/apache/aries/cdi/extra/propertytypes/JSONRequired.java Fri Aug 24 16:35:04 2018
@@ -19,7 +19,6 @@ package org.apache.aries.cdi.extra.prope
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;
import static javax.ws.rs.core.MediaType.*;
-import static org.osgi.annotation.bundle.Requirement.Resolution.*;
import static org.osgi.namespace.service.ServiceNamespace.*;
import static org.osgi.resource.Namespace.*;
@@ -45,7 +44,7 @@ import org.osgi.service.jaxrs.whiteboard
@Requirement(
namespace = SERVICE_NAMESPACE, //
filter = JSONRequired.FILTER, //
- resolution = OPTIONAL, //
+ // resolution = OPTIONAL, // this changed diverges from the original
effective = EFFECTIVE_ACTIVE
)
@Retention(RUNTIME)
Modified: aries/trunk/cdi/cdi-itests/bnd/basic-beans.bnd
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/basic-beans.bnd?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/bnd/basic-beans.bnd (original)
+++ aries/trunk/cdi/cdi-itests/bnd/basic-beans.bnd Fri Aug 24 16:35:04 2018
@@ -14,5 +14,5 @@ Export-Package: ${p}.beans.*;-split-pack
Require-Capability:\
osgi.extender;\
filter:='(&(osgi.extender=osgi.cdi)(version>=1.0.0)(!(version>=2.0.0)))';\
- extensions:List<String>='(osgi.cdi.extension=aries.cdi.jndi)';\
- osgi.beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.beans.*}'
\ No newline at end of file
+ beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.beans.*}',\
+ osgi.cdi.extension;filter:="(osgi.cdi.extension=aries.cdi.jndi)"
\ No newline at end of file
Modified: aries/trunk/cdi/cdi-itests/bnd/tb1.bnd
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb1.bnd?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/bnd/tb1.bnd (original)
+++ aries/trunk/cdi/cdi-itests/bnd/tb1.bnd Fri Aug 24 16:35:04 2018
@@ -14,4 +14,4 @@ Export-Package: ${p}.tb1.*;-split-packag
Require-Capability:\
osgi.extender;\
filter:='(&(osgi.extender=osgi.cdi)(version>=1.0.0)(!(version>=2.0.0)))';\
- osgi.beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb1.*}'
\ No newline at end of file
+ beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb1.*}'
\ No newline at end of file
Modified: aries/trunk/cdi/cdi-itests/bnd/tb10.bnd
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb10.bnd?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/bnd/tb10.bnd (original)
+++ aries/trunk/cdi/cdi-itests/bnd/tb10.bnd Fri Aug 24 16:35:04 2018
@@ -14,4 +14,4 @@ Export-Package: ${p}.tb10.*;-split-packa
Require-Capability:\
osgi.extender;\
filter:='(&(osgi.extender=osgi.cdi)(version>=1.0.0)(!(version>=2.0.0)))';\
- osgi.beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb10.*}'
+ beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb10.*}'
Modified: aries/trunk/cdi/cdi-itests/bnd/tb11.bnd
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb11.bnd?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/bnd/tb11.bnd (original)
+++ aries/trunk/cdi/cdi-itests/bnd/tb11.bnd Fri Aug 24 16:35:04 2018
@@ -14,4 +14,4 @@ Export-Package: ${p}.tb11.*;-split-packa
Require-Capability:\
osgi.extender;\
filter:='(&(osgi.extender=osgi.cdi)(version>=1.0.0)(!(version>=2.0.0)))';\
- osgi.beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb11.*}'
+ beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb11.*}'
Modified: aries/trunk/cdi/cdi-itests/bnd/tb2.bnd
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb2.bnd?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/bnd/tb2.bnd (original)
+++ aries/trunk/cdi/cdi-itests/bnd/tb2.bnd Fri Aug 24 16:35:04 2018
@@ -14,4 +14,4 @@ Export-Package: ${p}.tb2.*;-split-packag
Require-Capability:\
osgi.extender;\
filter:='(&(osgi.extender=osgi.cdi)(version>=1.0.0)(!(version>=2.0.0)))';\
- osgi.beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb2.*}'
\ No newline at end of file
+ beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb2.*}'
\ No newline at end of file
Modified: aries/trunk/cdi/cdi-itests/bnd/tb3.bnd
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb3.bnd?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/bnd/tb3.bnd (original)
+++ aries/trunk/cdi/cdi-itests/bnd/tb3.bnd Fri Aug 24 16:35:04 2018
@@ -14,4 +14,4 @@ Export-Package: ${p}.tb3.*;-split-packag
Require-Capability:\
osgi.extender;\
filter:='(&(osgi.extender=osgi.cdi)(version>=1.0.0)(!(version>=2.0.0)))';\
- osgi.beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb3.*}'
\ No newline at end of file
+ beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb3.*}'
\ No newline at end of file
Modified: aries/trunk/cdi/cdi-itests/bnd/tb4.bnd
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb4.bnd?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/bnd/tb4.bnd (original)
+++ aries/trunk/cdi/cdi-itests/bnd/tb4.bnd Fri Aug 24 16:35:04 2018
@@ -14,4 +14,4 @@ Export-Package: ${p}.tb4.*;-split-packag
Require-Capability:\
osgi.extender;\
filter:='(&(osgi.extender=osgi.cdi)(version>=1.0.0)(!(version>=2.0.0)))';\
- osgi.beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb4.*}'
\ No newline at end of file
+ beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb4.*}'
\ No newline at end of file
Modified: aries/trunk/cdi/cdi-itests/bnd/tb5.bnd
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb5.bnd?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/bnd/tb5.bnd (original)
+++ aries/trunk/cdi/cdi-itests/bnd/tb5.bnd Fri Aug 24 16:35:04 2018
@@ -14,4 +14,4 @@ Export-Package: ${p}.tb5.*;-split-packag
Require-Capability:\
osgi.extender;\
filter:='(&(osgi.extender=osgi.cdi)(version>=1.0.0)(!(version>=2.0.0)))';\
- osgi.beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb5.*}'
\ No newline at end of file
+ beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb5.*}'
\ No newline at end of file
Modified: aries/trunk/cdi/cdi-itests/bnd/tb6.bnd
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb6.bnd?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/bnd/tb6.bnd (original)
+++ aries/trunk/cdi/cdi-itests/bnd/tb6.bnd Fri Aug 24 16:35:04 2018
@@ -14,5 +14,5 @@ Export-Package: ${p}.tb6.*;-split-packag
Require-Capability:\
osgi.extender;\
filter:='(&(osgi.extender=osgi.cdi)(version>=1.0.0)(!(version>=2.0.0)))';\
- extensions:List<String>='(osgi.cdi.extension=aries.cdi.http)';\
- osgi.beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb6.*}'
+ beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb6.*}',\
+ osgi.cdi.extension;filter:="(osgi.cdi.extension=aries.cdi.http)"
Modified: aries/trunk/cdi/cdi-itests/bnd/tb7.bnd
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb7.bnd?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/bnd/tb7.bnd (original)
+++ aries/trunk/cdi/cdi-itests/bnd/tb7.bnd Fri Aug 24 16:35:04 2018
@@ -14,4 +14,4 @@ Export-Package: ${p}.tb7.*;-split-packag
Require-Capability:\
osgi.extender;\
filter:='(&(osgi.extender=osgi.cdi)(version>=1.0.0)(!(version>=2.0.0)))';\
- osgi.beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb7.*}'
+ beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb7.*}'
Modified: aries/trunk/cdi/cdi-itests/bnd/tb8.bnd
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb8.bnd?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/bnd/tb8.bnd (original)
+++ aries/trunk/cdi/cdi-itests/bnd/tb8.bnd Fri Aug 24 16:35:04 2018
@@ -14,4 +14,4 @@ Export-Package: ${p}.tb8.*;-split-packag
Require-Capability:\
osgi.extender;\
filter:='(&(osgi.extender=osgi.cdi)(version>=1.0.0)(!(version>=2.0.0)))';\
- osgi.beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb8.*}'
+ beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb8.*}'
Modified: aries/trunk/cdi/cdi-itests/bnd/tb9.bnd
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb9.bnd?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/bnd/tb9.bnd (original)
+++ aries/trunk/cdi/cdi-itests/bnd/tb9.bnd Fri Aug 24 16:35:04 2018
@@ -14,4 +14,4 @@ Export-Package: ${p}.tb9.*;-split-packag
Require-Capability:\
osgi.extender;\
filter:='(&(osgi.extender=osgi.cdi)(version>=1.0.0)(!(version>=2.0.0)))';\
- osgi.beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb9.*}'
+ beans:List<String>='${classes;PUBLIC;CONCRETE;NAMED;${p}.tb9.*}'
Modified: aries/trunk/cdi/cdi-itests/cdi-executable.bndrun
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/cdi-executable.bndrun?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/cdi-executable.bndrun (original)
+++ aries/trunk/cdi/cdi-itests/cdi-executable.bndrun Fri Aug 24 16:35:04 2018
@@ -41,6 +41,7 @@
org.apache.aries.javax.cdi-api;version='[0.0.2,0.0.3)',\
org.apache.aries.javax.el-api;version='[0.0.2,0.0.3)',\
org.apache.aries.javax.interceptor-api;version='[0.0.2,0.0.3)',\
+ org.apache.aries.spifly.dynamic.framework.extension;version='[1.0.14,1.0.15)',\
org.apache.felix.configadmin;version='[1.9.0,1.9.1)',\
org.apache.felix.gogo.command;version='[1.0.2,1.0.3)',\
org.apache.felix.gogo.jline;version='[1.0.2,1.0.3)',\
Modified: aries/trunk/cdi/cdi-itests/itest.bndrun
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/itest.bndrun?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/itest.bndrun (original)
+++ aries/trunk/cdi/cdi-itests/itest.bndrun Fri Aug 24 16:35:04 2018
@@ -16,12 +16,8 @@
-standalone: true
-runrequires: \
- osgi.identity;filter:='(osgi.identity=org.apache.aries.cdi.extender)',\
- osgi.identity;filter:='(osgi.identity=org.apache.aries.cdi.extension.http)',\
- osgi.identity;filter:='(osgi.identity=org.apache.aries.cdi.extension.jndi)',\
osgi.identity;filter:='(osgi.identity=org.apache.aries.cdi.itests)',\
osgi.identity;filter:='(osgi.identity=org.apache.aries.jndi.core)',\
- osgi.identity;filter:='(osgi.identity=org.apache.felix.fileinstall)',\
osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\
osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)'
@@ -50,10 +46,10 @@
org.apache.aries.javax.interceptor-api;version='[0.0.2,0.0.3)',\
org.apache.aries.jndi.api;version='[1.1.0,1.1.1)',\
org.apache.aries.jndi.core;version='[1.0.2,1.0.3)',\
+ org.apache.aries.spifly.dynamic.framework.extension;version='[1.0.14,1.0.15)',\
org.apache.aries.util;version='[1.0.0,1.0.1)',\
org.apache.commons.logging;version='[1.2.0,1.2.1)',\
org.apache.felix.configadmin;version='[1.9.0,1.9.1)',\
- org.apache.felix.fileinstall;version='[3.6.0,3.6.1)',\
org.apache.felix.gogo.command;version='[1.0.2,1.0.3)',\
org.apache.felix.gogo.runtime;version='[1.0.2,1.0.3)',\
org.apache.felix.gogo.shell;version='[1.0.0,1.0.1)',\
@@ -76,7 +72,7 @@
-resolve.effective: resolve, active
-runee: JavaSE-1.8
-runsystemcapabilities: ${native_capability}
--runfw: org.eclipse.osgi;version='[3.13.0,4.0.0)'
+-runfw: org.eclipse.osgi;version=3.13.0
-runproperties: \
eclipse.log.enabled=false,\
logback.configurationFile=file:${.}/logback.xml,\
Modified: aries/trunk/cdi/cdi-itests/pom.xml
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/pom.xml?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/pom.xml (original)
+++ aries/trunk/cdi/cdi-itests/pom.xml Fri Aug 24 16:35:04 2018
@@ -38,74 +38,6 @@
<build>
<plugins>
<plugin>
- <groupId>com.googlecode.maven-download-plugin</groupId>
- <artifactId>download-maven-plugin</artifactId>
- <version>1.4.0</version>
- <executions>
- <execution>
- <id>get-equinox-3.13.0</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>wget</goal>
- </goals>
- <configuration>
- <url>http://download.eclipse.org/eclipse/updates/4.8milestones/S-4.8RC2-201805240900/plugins/org.eclipse.osgi_3.13.0.v20180409-1500.jar</url>
- <outputDirectory>${project.build.directory}/equinox</outputDirectory>
- </configuration>
- </execution>
- <execution>
- <id>get-equinox-3.13.0-sources</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>wget</goal>
- </goals>
- <configuration>
- <url>http://download.eclipse.org/eclipse/updates/4.8milestones/S-4.8RC2-201805240900/plugins/org.eclipse.osgi.source_3.13.0.v20180409-1500.jar</url>
- <outputDirectory>${project.build.directory}/equinox</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-install-plugin</artifactId>
- <version>2.5.2</version>
- <executions>
- <execution>
- <id>install-equinox</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>install-file</goal>
- </goals>
- <configuration>
- <repositoryLayout>default</repositoryLayout>
- <groupId>org.eclipse.platform</groupId>
- <artifactId>org.eclipse.osgi</artifactId>
- <version>3.13.0.v20180409-1500</version>
- <file>${project.build.directory}/equinox/org.eclipse.osgi_3.13.0.v20180409-1500.jar</file>
- <packaging>jar</packaging>
- <generatePom>true</generatePom>
- </configuration>
- </execution>
- <execution>
- <id>install-equinox-sources</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>install-file</goal>
- </goals>
- <configuration>
- <repositoryLayout>default</repositoryLayout>
- <groupId>org.eclipse.platform</groupId>
- <artifactId>org.eclipse.osgi</artifactId>
- <version>3.13.0.v20180409-1500</version>
- <file>${project.build.directory}/equinox/org.eclipse.osgi.source_3.13.0.v20180409-1500.jar</file>
- <packaging>jar</packaging>
- <classifier>sources</classifier>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
<groupId>biz.aQute.bnd</groupId>
<artifactId>bnd-maven-plugin</artifactId>
</plugin>
@@ -206,9 +138,9 @@
<scope>runtime</scope>
</dependency>
<dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.fileinstall</artifactId>
- <version>3.6.0</version>
+ <groupId>org.apache.aries.spifly</groupId>
+ <artifactId>org.apache.aries.spifly.dynamic.framework.extension</artifactId>
+ <version>1.0.14</version>
<scope>runtime</scope>
</dependency>
<dependency>
@@ -265,7 +197,7 @@
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.logback</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <version>1.0.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
@@ -293,7 +225,7 @@
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.osgi</artifactId>
- <version>3.13.0.v20180409-1500</version>
+ <version>3.13.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java (original)
+++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java Fri Aug 24 16:35:04 2018
@@ -24,6 +24,7 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
+import java.util.function.Supplier;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.Any;
@@ -58,6 +59,14 @@ import org.osgi.util.tracker.ServiceTrac
filter = "(objectClass=org.osgi.service.cm.ConfigurationAdmin)",
namespace = ServiceNamespace.SERVICE_NAMESPACE
)
+@Requirement(
+ namespace = CDIConstants.CDI_EXTENSION_PROPERTY,
+ name = "aries.cdi.http"
+)
+@Requirement(
+ namespace = CDIConstants.CDI_EXTENSION_PROPERTY,
+ name = "aries.cdi.jndi"
+)
public class AbstractTestCase {
@Rule public TestName testName = new TestName();
@@ -222,6 +231,18 @@ public class AbstractTestCase {
).longValue();
}
+ <T> T with(ClassLoader classLoader, Supplier<T> supplier) {
+ Thread currentThread = Thread.currentThread();
+ ClassLoader original = currentThread.getContextClassLoader();
+ try {
+ currentThread.setContextClassLoader(classLoader);
+ return supplier.get();
+ }
+ finally {
+ currentThread.setContextClassLoader(original);
+ }
+ }
+
static final Bundle bundle = FrameworkUtil.getBundle(CdiBeanTests.class);
static final BundleContext bundleContext = bundle.getBundleContext();
static final long timeout = 5000;
Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiContainerTests.java
URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiContainerTests.java?rev=1838899&r1=1838898&r2=1838899&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiContainerTests.java (original)
+++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiContainerTests.java Fri Aug 24 16:35:04 2018
@@ -20,6 +20,7 @@ import javax.enterprise.inject.spi.BeanM
import javax.enterprise.inject.spi.CDI;
import org.apache.aries.cdi.test.interfaces.Pojo;
+import org.junit.Ignore;
import org.junit.Test;
import org.osgi.framework.wiring.BundleWiring;
import org.osgi.service.cdi.ComponentType;
@@ -38,23 +39,16 @@ public class CdiContainerTests extends A
}
@Test
+ @Ignore("Due to a Service Loader Mediator incompatibility in the official CDI 2.0 API")
public void testGetBeanManagerFromCDI() throws Exception {
- Thread currentThread = Thread.currentThread();
- ClassLoader contextClassLoader = currentThread.getContextClassLoader();
+ BeanManager beanManager = with(
+ cdiBundle.adapt(BundleWiring.class).getClassLoader(),
+ () ->
+ CDI.current().getBeanManager()
+ );
- try {
- BundleWiring bundleWiring = cdiBundle.adapt(BundleWiring.class);
-
- currentThread.setContextClassLoader(bundleWiring.getClassLoader());
-
- BeanManager beanManager = CDI.current().getBeanManager();
-
- assertNotNull(beanManager);
- assertBeanExists(Pojo.class, beanManager);
- }
- finally {
- currentThread.setContextClassLoader(contextClassLoader);
- }
+ assertNotNull(beanManager);
+ assertBeanExists(Pojo.class, beanManager);
}
@Test