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;
-
 }