You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2006/12/22 19:31:02 UTC

svn commit: r489716 - in /cocoon/trunk/core: cocoon-blocks-fw/cocoon-blocks-fw-impl/src/main/java/org/apache/cocoon/blocks/ cocoon-core/src/main/java/org/apache/cocoon/ cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/avalon/ cocoon-co...

Author: cziegeler
Date: Fri Dec 22 10:31:02 2006
New Revision: 489716

URL: http://svn.apache.org/viewvc?view=rev&rev=489716
Log:
Use Spring's request cleanup mechanism

Removed:
    cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/ProcessingUtil.java
Modified:
    cocoon/trunk/core/cocoon-blocks-fw/cocoon-blocks-fw-impl/src/main/java/org/apache/cocoon/blocks/DispatcherServlet.java
    cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/avalon/PoolableFactoryBean.java
    cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/servlet/RequestProcessor.java
    cocoon/trunk/core/cocoon-core/src/test/java/org/apache/cocoon/SitemapTestCase.java

Modified: cocoon/trunk/core/cocoon-blocks-fw/cocoon-blocks-fw-impl/src/main/java/org/apache/cocoon/blocks/DispatcherServlet.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-blocks-fw/cocoon-blocks-fw-impl/src/main/java/org/apache/cocoon/blocks/DispatcherServlet.java?view=diff&rev=489716&r1=489715&r2=489716
==============================================================================
--- cocoon/trunk/core/cocoon-blocks-fw/cocoon-blocks-fw-impl/src/main/java/org/apache/cocoon/blocks/DispatcherServlet.java (original)
+++ cocoon/trunk/core/cocoon-blocks-fw/cocoon-blocks-fw-impl/src/main/java/org/apache/cocoon/blocks/DispatcherServlet.java Fri Dec 22 10:31:02 2006
@@ -32,7 +32,6 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.avalon.framework.logger.Logger;
-import org.apache.cocoon.ProcessingUtil;
 import org.apache.cocoon.core.container.spring.avalon.AvalonUtils;
 import org.springframework.beans.BeanWrapperImpl;
 import org.springframework.beans.factory.BeanFactoryUtils;
@@ -124,11 +123,7 @@
 	                " pathInfo=" + request.getPathInfo());
         }
         
-        try {
-            servlet.service(request, res);
-        } finally {
-            ProcessingUtil.cleanup();
-        }
+        servlet.service(request, res);
     }
     
     private void getInterfaces(Set interfaces, Class clazz) {

Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/avalon/PoolableFactoryBean.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/avalon/PoolableFactoryBean.java?view=diff&rev=489716&r1=489715&r2=489716
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/avalon/PoolableFactoryBean.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/core/container/spring/avalon/PoolableFactoryBean.java Fri Dec 22 10:31:02 2006
@@ -28,13 +28,14 @@
 import java.util.Set;
 
 import org.apache.avalon.excalibur.pool.Recyclable;
-import org.apache.cocoon.ProcessingUtil;
 import org.apache.cocoon.configuration.Settings;
 import org.apache.cocoon.configuration.impl.PropertyHelper;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.BeanFactory;
 import org.springframework.beans.factory.BeanFactoryAware;
 import org.springframework.beans.factory.FactoryBean;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
 
 /**
  * This factory bean adds simple pooling support to Spring.
@@ -324,7 +325,7 @@
         }
     }
 
-    protected static final class ProxyHandler implements InvocationHandler, ProcessingUtil.CleanupTask {
+    protected static final class ProxyHandler implements InvocationHandler, Runnable {
 
         private final ThreadLocal componentHolder = new ThreadLocal();
         private final PoolableFactoryBean handler;
@@ -343,7 +344,7 @@
             }
             if ( this.componentHolder.get() == null ) {
                 this.componentHolder.set(this.handler.getFromPool());
-                ProcessingUtil.addCleanupTask(this);
+                RequestContextHolder.getRequestAttributes().registerDestructionCallback(ProxyHandler.class.getName() + '/' + this.handler.hashCode(), this, RequestAttributes.SCOPE_REQUEST);
             }
             try {
                 return method.invoke(this.componentHolder.get(), args);
@@ -353,9 +354,9 @@
         }
 
         /**
-         * @see ProcessingUtil.CleanupTask#invoke()
+         * @see java.lang.Runnable#run()
          */
-        public void invoke() {
+        public void run() {
             try {
                 final Object o = this.componentHolder.get();
                 this.handler.putIntoPool(o);

Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/servlet/RequestProcessor.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/servlet/RequestProcessor.java?view=diff&rev=489716&r1=489715&r2=489716
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/servlet/RequestProcessor.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/servlet/RequestProcessor.java Fri Dec 22 10:31:02 2006
@@ -28,7 +28,6 @@
 import org.apache.avalon.framework.logger.Logger;
 import org.apache.cocoon.ConnectionResetException;
 import org.apache.cocoon.Constants;
-import org.apache.cocoon.ProcessingUtil;
 import org.apache.cocoon.Processor;
 import org.apache.cocoon.RequestListener;
 import org.apache.cocoon.ResourceNotFoundException;
@@ -404,13 +403,8 @@
         } finally {
             EnvironmentHelper.leaveProcessor();
             environment.finishingProcessing();
-            this.cleanup();
 
             EnvironmentHelper.checkEnvironment(environmentDepth, this.getLogger());
         }
-    }
-
-    protected void cleanup() {
-        ProcessingUtil.cleanup();
     }
 }

Modified: cocoon/trunk/core/cocoon-core/src/test/java/org/apache/cocoon/SitemapTestCase.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/test/java/org/apache/cocoon/SitemapTestCase.java?view=diff&rev=489716&r1=489715&r2=489716
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/test/java/org/apache/cocoon/SitemapTestCase.java (original)
+++ cocoon/trunk/core/cocoon-core/src/test/java/org/apache/cocoon/SitemapTestCase.java Fri Dec 22 10:31:02 2006
@@ -228,7 +228,6 @@
         } finally {
             EnvironmentHelper.leaveProcessor();
             environment.finishingProcessing();
-            ProcessingUtil.cleanup();
 
             EnvironmentHelper.checkEnvironment(environmentDepth, this.getLogger());
         }