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