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 2019/12/04 03:49:05 UTC
[aries-cdi] branch master updated: fix buggy jndi test
This is an automated email from the ASF dual-hosted git repository.
rotty3000 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/aries-cdi.git
The following commit(s) were added to refs/heads/master by this push:
new 83bcab0 fix buggy jndi test
new d945cd8 Merge pull request #15 from rotty3000/jndi.test
83bcab0 is described below
commit 83bcab0c0928a300174a349a7f421c772aaffd1a
Author: Raymond Augé <ro...@apache.org>
AuthorDate: Tue Dec 3 22:45:08 2019 -0500
fix buggy jndi test
Signed-off-by: Raymond Augé <ro...@apache.org>
---
cdi-extension-jndi/pom.xml | 8 -------
.../aries/cdi/extension/jndi/JndiActivator.java | 9 +-------
.../aries/cdi/extension/jndi/JndiContext.java | 26 +++++-----------------
.../aries/cdi/extension/jndi/JndiExtension.java | 15 +++++--------
.../cdi/extension/jndi/JndiExtensionFactory.java | 10 +--------
5 files changed, 13 insertions(+), 55 deletions(-)
diff --git a/cdi-extension-jndi/pom.xml b/cdi-extension-jndi/pom.xml
index 9db1b4d..8ab8773 100644
--- a/cdi-extension-jndi/pom.xml
+++ b/cdi-extension-jndi/pom.xml
@@ -82,14 +82,6 @@
</dependency>
<dependency>
<groupId>org.osgi</groupId>
- <artifactId>org.osgi.service.log</artifactId>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.util.promise</artifactId>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
<artifactId>osgi.annotation</artifactId>
</dependency>
<dependency>
diff --git a/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiActivator.java b/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiActivator.java
index ae03781..7f3c695 100644
--- a/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiActivator.java
+++ b/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiActivator.java
@@ -30,8 +30,6 @@ import org.osgi.annotation.bundle.Header;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.log.LoggerFactory;
-import org.osgi.util.tracker.ServiceTracker;
@Header(
name = BUNDLE_ACTIVATOR,
@@ -41,9 +39,6 @@ public class JndiActivator implements BundleActivator {
@Override
public void start(BundleContext context) throws Exception {
- _lft = new ServiceTracker<>(context, LoggerFactory.class, null);
- _lft.open();
-
Dictionary<String, Object> properties = new Hashtable<>();
properties.put(CDI_EXTENSION_PROPERTY, "aries.cdi.jndi");
properties.put(JNDI_URLSCHEME, "java");
@@ -52,16 +47,14 @@ public class JndiActivator implements BundleActivator {
_serviceRegistration = context.registerService(
new String[] {Extension.class.getName(), ObjectFactory.class.getName()},
- new JndiExtensionFactory(_lft.getService()), properties);
+ new JndiExtensionFactory(), properties);
}
@Override
public void stop(BundleContext context) throws Exception {
_serviceRegistration.unregister();
- _lft.close();
}
- private volatile ServiceTracker<LoggerFactory, LoggerFactory> _lft;
private ServiceRegistration<?> _serviceRegistration;
}
diff --git a/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiContext.java b/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiContext.java
index fcc3aee..b50c7c8 100644
--- a/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiContext.java
+++ b/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiContext.java
@@ -14,8 +14,8 @@
package org.apache.aries.cdi.extension.jndi;
-import java.lang.reflect.InvocationTargetException;
import java.util.Hashtable;
+import java.util.concurrent.atomic.AtomicReference;
import javax.enterprise.inject.spi.BeanManager;
import javax.naming.Binding;
@@ -27,18 +27,10 @@ import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.OperationNotSupportedException;
-import org.osgi.service.log.Logger;
-import org.osgi.util.promise.Promise;
-
public class JndiContext implements Context {
- public JndiContext(Logger log) {
- _log = log;
- }
-
- public JndiContext setBeanManager(Promise<BeanManager> beanManager) {
+ public JndiContext(AtomicReference<BeanManager> beanManager) {
_beanManager = beanManager;
- return this;
}
@Override
@@ -48,16 +40,11 @@ public class JndiContext implements Context {
@Override
public Object lookup(String name) throws NamingException {
- if (name.length() == 0) {
- return new JndiContext(_log).setBeanManager(_beanManager);
+ if (name.isEmpty()) {
+ return this;
}
if (name.equals("java:comp/BeanManager")) {
- try {
- return _beanManager.timeout(5000).getValue();
- }
- catch (InvocationTargetException | InterruptedException e) {
- _log.error(l -> l.error(e.getMessage(), e));
- }
+ return _beanManager.get();
}
throw new NamingException("Could not find " + name);
}
@@ -197,7 +184,6 @@ public class JndiContext implements Context {
throw new OperationNotSupportedException();
}
- private final Logger _log;
- private volatile Promise<BeanManager> _beanManager;
+ private final AtomicReference<BeanManager> _beanManager;
}
\ No newline at end of file
diff --git a/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiExtension.java b/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiExtension.java
index cd126c5..68ce71c 100644
--- a/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiExtension.java
+++ b/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiExtension.java
@@ -17,6 +17,7 @@ package org.apache.aries.cdi.extension.jndi;
import static javax.interceptor.Interceptor.Priority.LIBRARY_AFTER;
import java.util.Hashtable;
+import java.util.concurrent.atomic.AtomicReference;
import javax.annotation.Priority;
import javax.enterprise.event.Observes;
@@ -26,14 +27,10 @@ import javax.enterprise.inject.spi.Extension;
import javax.naming.Name;
import javax.naming.spi.ObjectFactory;
-import org.osgi.service.log.Logger;
-import org.osgi.util.promise.Deferred;
-
public class JndiExtension implements Extension, ObjectFactory {
- public JndiExtension(Logger log) {
- _beanManager = new Deferred<>();
- _jndiContext = new JndiContext(log).setBeanManager(_beanManager.getPromise());
+ public JndiExtension() {
+ _jndiContext = new JndiContext(_beanManager);
}
@Override
@@ -52,12 +49,10 @@ public class JndiExtension implements Extension, ObjectFactory {
@Observes @Priority(LIBRARY_AFTER + 800)
AfterDeploymentValidation adv, BeanManager beanManager) {
- _beanManager.resolve(beanManager);
- _jndiContext.setBeanManager(_beanManager.getPromise());
- _beanManager = new Deferred<>();
+ _beanManager.set(beanManager);
}
- private volatile Deferred<BeanManager> _beanManager;
+ private final AtomicReference<BeanManager> _beanManager = new AtomicReference<>();
private final JndiContext _jndiContext;
}
diff --git a/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiExtensionFactory.java b/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiExtensionFactory.java
index 81d6af1..4f513ee 100644
--- a/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiExtensionFactory.java
+++ b/cdi-extension-jndi/src/main/java/org/apache/aries/cdi/extension/jndi/JndiExtensionFactory.java
@@ -17,18 +17,12 @@ package org.apache.aries.cdi.extension.jndi;
import org.osgi.framework.Bundle;
import org.osgi.framework.PrototypeServiceFactory;
import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.log.Logger;
-import org.osgi.service.log.LoggerFactory;
public class JndiExtensionFactory implements PrototypeServiceFactory<Object> {
- public JndiExtensionFactory(LoggerFactory loggerFactory) {
- _loggerFactory = loggerFactory;
- }
-
@Override
public Object getService(Bundle bundle, ServiceRegistration<Object> registration) {
- return new JndiExtension(_loggerFactory.getLogger(bundle, JndiContext.class.getName(), Logger.class));
+ return new JndiExtension();
}
@Override
@@ -36,6 +30,4 @@ public class JndiExtensionFactory implements PrototypeServiceFactory<Object> {
Bundle bundle, ServiceRegistration<Object> registration, Object extension) {
}
- private final LoggerFactory _loggerFactory;
-
}