You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2009/05/13 16:14:59 UTC

svn commit: r774377 - in /incubator/openwebbeans/trunk/webbeans-impl/src: main/java/org/apache/webbeans/component/ main/java/org/apache/webbeans/context/ main/java/org/apache/webbeans/conversation/ main/java/org/apache/webbeans/intercept/ main/java/org...

Author: gerdogdu
Date: Wed May 13 14:14:59 2009
New Revision: 774377

URL: http://svn.apache.org/viewvc?rev=774377&view=rev
Log:
Update for M2 after testing. Correction of some bugs in the context tests.

Modified:
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractComponent.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractObservesComponent.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ContextFactory.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/conversation/ConversationManager.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/WebBeansLifeCycle.java
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/intercept/InterceptedComponent.java

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractComponent.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractComponent.java?rev=774377&r1=774376&r2=774377&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractComponent.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractComponent.java Wed May 13 14:14:59 2009
@@ -209,12 +209,12 @@
                 dependentContext = true;
             }
             
-            //Destroy instance
-            destroyInstance(instance);
-            
             //Destory dependent instances
             destroyDependents();
             
+            //Destroy instance, call @PreDestroy
+            destroyInstance(instance);
+                        
             //Clear Decorator and Interceptor Stack
             this.decoratorStack.clear();
             this.interceptorStack.clear();
@@ -229,6 +229,7 @@
             {
                 ContextFactory.passivateDependentContext();
             }            
+            
         }
 
     }

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractObservesComponent.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractObservesComponent.java?rev=774377&r1=774376&r2=774377&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractObservesComponent.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractObservesComponent.java Wed May 13 14:14:59 2009
@@ -72,24 +72,31 @@
     }
     
     protected void afterConstructor(T instance,CreationalContext<T> creationalContext)
-    {
+    {   
+        //Inject fields
         injectFields(instance,creationalContext);
+        
+        //Inject methods
         injectMethods(instance,creationalContext);
-
+        
+        //Interceptor and decorator stack
         if (getWebBeansType().equals(WebBeansType.SIMPLE))
         {
             DefinitionUtil.defineSimpleWebBeanInterceptorStack(this);
             DefinitionUtil.defineWebBeanDecoratorStack(this, instance);
-        }
+        }        
 
+        //Call Post Construct
         if (WebBeansUtil.isContainsInterceptorMethod(getInterceptorStack(), InterceptorType.POST_CONSTRUCT))
         {
             InvocationContextImpl impl = new InvocationContextImpl(null,instance, null, null, WebBeansUtil.getInterceptorMethods(getInterceptorStack(), InterceptorType.POST_CONSTRUCT), InterceptorType.POST_CONSTRUCT);
+            
             try
             {
                 impl.proceed();
 
             }
+            
             catch (Exception e)
             {
                 throw new WebBeansException(e);

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java?rev=774377&r1=774376&r2=774377&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java Wed May 13 14:14:59 2009
@@ -173,10 +173,11 @@
             T instance = (T) componentInstanceMap.get(component);
 
             destroyInstance((Bean<T>) component, instance);
-            
-            it.remove();
 
         }
+        
+        //Clear cache
+        componentInstanceMap.clear();
     }
 
     protected <T> void removeInstance(Contextual<T> component)

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ContextFactory.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ContextFactory.java?rev=774377&r1=774376&r2=774377&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ContextFactory.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ContextFactory.java Wed May 13 14:14:59 2009
@@ -235,10 +235,18 @@
     {
         if (context == null)
         {
-            ConversationContext newContext = new ConversationContext();
-            newContext.setActive(true);
+            if(conversationContext.get() == null)
+            {
+                ConversationContext newContext = new ConversationContext();
+                newContext.setActive(true);
+                
+                conversationContext.set(newContext);                
+            }
+            else
+            {
+                conversationContext.get().setActive(true);
+            }
             
-            conversationContext.set(newContext);
         }
         else
         {

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/conversation/ConversationManager.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/conversation/ConversationManager.java?rev=774377&r1=774376&r2=774377&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/conversation/ConversationManager.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/conversation/ConversationManager.java Wed May 13 14:14:59 2009
@@ -147,7 +147,6 @@
         if (conversations != null)
         {
             conversations.clear();
-            conversations = null;
         }
     }
 }

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java?rev=774377&r1=774376&r2=774377&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java Wed May 13 14:14:59 2009
@@ -16,6 +16,7 @@
 import java.io.Serializable;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
@@ -68,17 +69,24 @@
 
             // Run around invoke chain
             List<InterceptorData> stack = component.getInterceptorStack();
+            
+            List<InterceptorData> temp = new ArrayList<InterceptorData>();
+            
+            for(InterceptorData data : stack)
+            {
+                temp.add(data);
+            }
 
             //EJB specific interceptor stack
-            filterEJBInterceptorStackList(stack, method);
+            filterEJBInterceptorStackList(temp, method);
             
             //WebBeans specific interceptor stack
-            filterWebBeansInterceptorStackList(stack, method);
+            filterWebBeansInterceptorStackList(temp, method);
 
             //Call Around Invokes
-            if (WebBeansUtil.isContainsInterceptorMethod(stack, InterceptorType.AROUND_INVOKE))
+            if (WebBeansUtil.isContainsInterceptorMethod(temp, InterceptorType.AROUND_INVOKE))
             {
-                callAroundInvokes(method, arguments, WebBeansUtil.getInterceptorMethods(stack, InterceptorType.AROUND_INVOKE));
+                return callAroundInvokes(method, arguments, WebBeansUtil.getInterceptorMethods(stack, InterceptorType.AROUND_INVOKE));
             }
 
             //Gets component decorator stack
@@ -183,15 +191,15 @@
         }
     }
 
-    private <T> void callAroundInvokes(Method proceed, Object[] arguments, List<InterceptorData> stack) throws Exception
+    private <T> Object callAroundInvokes(Method proceed, Object[] arguments, List<InterceptorData> stack) throws Exception
     {
         InvocationContextImpl impl = new InvocationContextImpl(this.component, null,proceed, arguments, stack, InterceptorType.AROUND_INVOKE);
 
-        impl.proceed();
+        return impl.proceed();
 
     }
 
-    private void filterEJBInterceptorStackList(List<InterceptorData> stack, Method method)
+    private void filterEJBInterceptorStackList(final List<InterceptorData> stack, Method method)
     {
         boolean isMethodAnnotatedWithInterceptorClass = false;
         boolean isMethodAnnotatedWithExcludeInterceptorClass = false;
@@ -250,7 +258,7 @@
 
     }
 
-    private void filterWebBeansInterceptorStackList(List<InterceptorData> stack, Method method)
+    private void filterWebBeansInterceptorStackList(final List<InterceptorData> stack, Method method)
     {
         boolean isMethodAnnotatedWithInterceptorClass = false;
         boolean isMethodAnnotatedWithExcludeInterceptorClass = false;

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/WebBeansLifeCycle.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/WebBeansLifeCycle.java?rev=774377&r1=774376&r2=774377&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/WebBeansLifeCycle.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/WebBeansLifeCycle.java Wed May 13 14:14:59 2009
@@ -117,7 +117,7 @@
 
             }
 
-        }, 15000, 15000, TimeUnit.MILLISECONDS);
+        }, 150000, 150000, TimeUnit.MILLISECONDS);
 
         logger.info("Starting the WebBeans Container Configuration");
         long begin = System.currentTimeMillis();

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/intercept/InterceptedComponent.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/intercept/InterceptedComponent.java?rev=774377&r1=774376&r2=774377&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/intercept/InterceptedComponent.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/intercept/InterceptedComponent.java Wed May 13 14:14:59 2009
@@ -34,8 +34,8 @@
     public Object intercept(InvocationContext context) throws Exception
     {
         context.setParameters(new Object[] { new Integer(5) });
-
-        return null;
+        
+        return context.proceed();
     }
 
 }