You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pa...@apache.org on 2013/11/08 14:22:36 UTC

[3/4] git commit: Workaround for WELD-1546: try to lookup beanmanager from JNDI first

Workaround for WELD-1546: try to lookup beanmanager from JNDI first


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ac780b61
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ac780b61
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ac780b61

Branch: refs/heads/wicket-6.x
Commit: ac780b61a1bdf3ff9b540d8748e729f682929f7e
Parents: f745108
Author: Emond Papegaaij <em...@topicus.nl>
Authored: Fri Nov 8 11:55:16 2013 +0100
Committer: Emond Papegaaij <em...@topicus.nl>
Committed: Fri Nov 8 11:55:16 2013 +0100

----------------------------------------------------------------------
 .../apache/wicket/cdi/BeanManagerLookup.java    | 24 ++++++++++++++++++++
 .../org/apache/wicket/cdi/CdiConfiguration.java |  2 +-
 .../org/apache/wicket/cdi/NonContextual.java    | 14 ++++++------
 3 files changed, 32 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/ac780b61/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/BeanManagerLookup.java
----------------------------------------------------------------------
diff --git a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/BeanManagerLookup.java b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/BeanManagerLookup.java
new file mode 100644
index 0000000..cbe8013
--- /dev/null
+++ b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/BeanManagerLookup.java
@@ -0,0 +1,24 @@
+package org.apache.wicket.cdi;
+
+import javax.enterprise.inject.spi.BeanManager;
+import javax.enterprise.inject.spi.CDI;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+public final class BeanManagerLookup
+{
+	private BeanManagerLookup()
+	{
+	}
+
+	public static BeanManager lookup() {
+		try
+		{
+			return InitialContext.doLookup("java:comp/BeanManager");
+		}
+		catch (NamingException e)
+		{
+			return CDI.current().getBeanManager();
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/ac780b61/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/CdiConfiguration.java
----------------------------------------------------------------------
diff --git a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/CdiConfiguration.java b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/CdiConfiguration.java
index 4806f80..349a870 100644
--- a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/CdiConfiguration.java
+++ b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/CdiConfiguration.java
@@ -281,7 +281,7 @@ public class CdiConfiguration
 
 	public static CdiConfiguration get()
 	{
-		BeanManager beanManager = CDI.current().getBeanManager();
+		BeanManager beanManager = BeanManagerLookup.lookup();
 		Iterator<Bean<?>> iter = beanManager.getBeans(CdiConfiguration.class).iterator();
 		if (!iter.hasNext())
 		{

http://git-wip-us.apache.org/repos/asf/wicket/blob/ac780b61/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/NonContextual.java
----------------------------------------------------------------------
diff --git a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/NonContextual.java b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/NonContextual.java
index e030d32..4e53d1d 100644
--- a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/NonContextual.java
+++ b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/NonContextual.java
@@ -49,14 +49,14 @@ public class NonContextual <T>
 	 */
 	public static void undeploy()
 	{
-		if (cache.containsKey(CDI.current().getBeanManager()))
+		if (cache.containsKey(BeanManagerLookup.lookup()))
 		{
 			synchronized (lock)
 			{
 				// copy-on-write the cache
 				Map<BeanManager, ClassMetaCache<NonContextual<?>>> newCache = new WeakHashMap<BeanManager, ClassMetaCache<NonContextual<?>>>(
 					cache);
-				newCache.remove(CDI.current().getBeanManager());
+				newCache.remove(BeanManagerLookup.lookup());
 				cache = Collections.unmodifiableMap(newCache);
 			}
 		}
@@ -87,12 +87,12 @@ public class NonContextual <T>
 
 	private static ClassMetaCache<NonContextual<?>> getCache()
 	{
-		ClassMetaCache<NonContextual<?>> meta = cache.get(CDI.current().getBeanManager());
+		ClassMetaCache<NonContextual<?>> meta = cache.get(BeanManagerLookup.lookup());
 		if (meta == null)
 		{
 			synchronized (lock)
 			{
-                                BeanManager manager = CDI.current().getBeanManager(); 
+				BeanManager manager = BeanManagerLookup.lookup();
 				meta = cache.get(manager);
 				if (meta == null)
 				{
@@ -112,7 +112,7 @@ public class NonContextual <T>
 	@SuppressWarnings("unchecked")
 	private NonContextual(Class<? extends T> clazz)
 	{
-		BeanManager manager = CDI.current().getBeanManager();
+		BeanManager manager = BeanManagerLookup.lookup();
 		AnnotatedType<? extends T> type = manager.createAnnotatedType(clazz);
 		this.it = (InjectionTarget<T>)manager.createInjectionTarget(type);
 	}
@@ -124,7 +124,7 @@ public class NonContextual <T>
 	 */
 	public void postConstruct(T instance)
 	{
-		CreationalContext<T> cc = CDI.current().getBeanManager().createCreationalContext(null);
+		CreationalContext<T> cc = BeanManagerLookup.lookup().createCreationalContext(null);
 		it.inject(instance, cc);
 		it.postConstruct(instance);
 	}
@@ -136,7 +136,7 @@ public class NonContextual <T>
 	 */
 	public void inject(T instance)
 	{
-		CreationalContext<T> cc = CDI.current().getBeanManager().createCreationalContext(null);
+		CreationalContext<T> cc = BeanManagerLookup.lookup().createCreationalContext(null);
 		it.inject(instance, cc);
 	}