You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2010/07/16 18:26:21 UTC

svn commit: r964849 - in /myfaces/extensions/cdi/trunk/core: api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/tools/annotate/ impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/

Author: gpetracek
Date: Fri Jul 16 16:26:20 2010
New Revision: 964849

URL: http://svn.apache.org/viewvc?rev=964849&view=rev
Log:
EXTCDI-1, EXTCDI-2 and EXTCDI-3 workaround for weld

Modified:
    myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/tools/annotate/DefaultAnnotation.java
    myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/AbstractConversationContextAdapter.java

Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/tools/annotate/DefaultAnnotation.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/tools/annotate/DefaultAnnotation.java?rev=964849&r1=964848&r2=964849&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/tools/annotate/DefaultAnnotation.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/tools/annotate/DefaultAnnotation.java Fri Jul 16 16:26:20 2010
@@ -105,6 +105,8 @@ public class DefaultAnnotation implement
         return method.getDefaultValue();
     }
 
+    //don't change these methods!
+
     @Override
     public boolean equals(Object o)
     {

Modified: myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/AbstractConversationContextAdapter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/AbstractConversationContextAdapter.java?rev=964849&r1=964848&r2=964849&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/AbstractConversationContextAdapter.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/scope/conversation/AbstractConversationContextAdapter.java Fri Jul 16 16:26:20 2010
@@ -37,9 +37,26 @@ public abstract class AbstractConversati
 {
     protected BeanManager beanManager;
 
+    private static RuntimeException runtimeException = new RuntimeException();
+
+    //workaround for weld
+    private final boolean useFallback;
+
     public AbstractConversationContextAdapter(BeanManager beanManager)
     {
         this.beanManager = beanManager;
+
+        boolean useFallback = true;
+        for(StackTraceElement element : runtimeException.getStackTrace())
+        {
+            if(element.toString().contains("org.apache.webbeans."))
+            {
+                useFallback = false;
+                break;
+            }
+        }
+
+        this.useFallback = useFallback;
     }
 
     /**
@@ -59,6 +76,18 @@ public abstract class AbstractConversati
     {
         if (component instanceof Bean)
         {
+            //workaround for weld - start
+            if(useFallback)
+            {
+                T scopedBean = get(component);
+
+                if(scopedBean != null)
+                {
+                    return scopedBean;
+                }
+            }
+            //workaround for weld - end
+
             WindowContextManager conversationManager = resolveWindowContextManager();
 
             Bean<T> bean = ((Bean<T>) component);