You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by gi...@apache.org on 2004/11/07 15:59:24 UTC

svn commit: rev 56851 - cocoon/trunk/src/blocks/scratchpad/java/org/apache/cocoon/transformation

Author: giacomo
Date: Sun Nov  7 06:59:23 2004
New Revision: 56851

Modified:
   cocoon/trunk/src/blocks/scratchpad/java/org/apache/cocoon/transformation/IncludeTransformer.java
Log:
migrated to the RunnableManager package

Modified: cocoon/trunk/src/blocks/scratchpad/java/org/apache/cocoon/transformation/IncludeTransformer.java
==============================================================================
--- cocoon/trunk/src/blocks/scratchpad/java/org/apache/cocoon/transformation/IncludeTransformer.java	(original)
+++ cocoon/trunk/src/blocks/scratchpad/java/org/apache/cocoon/transformation/IncludeTransformer.java	Sun Nov  7 06:59:23 2004
@@ -15,6 +15,7 @@
  */
 package org.apache.cocoon.transformation;
 
+import org.apache.avalon.framework.CascadingRuntimeException;
 import org.apache.avalon.framework.configuration.Configurable;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
@@ -27,6 +28,7 @@
 import org.apache.cocoon.caching.CacheableProcessingComponent;
 import org.apache.cocoon.components.source.SourceUtil;
 import org.apache.cocoon.components.source.impl.MultiSourceValidity;
+import org.apache.cocoon.components.thread.RunnableManager;
 import org.apache.cocoon.environment.SourceResolver;
 import org.apache.cocoon.util.NetUtils;
 import org.apache.cocoon.xml.EmbeddedXMLPipe;
@@ -618,13 +620,15 @@
         public IncludeBuffer(Source source) {
             this.source = source;
 
-            // FIXME Need thread pool component. Based on EDU.oswego.cs.dl.util.concurrent.PooledExecutor.
-            //       See also org.apache.cocoon.components.cron.QuartzJobScheduler.ThreadPool
             try {
-                Thread t = new Thread(this);
-                t.setName("IncludeSource#" + source.getURI());
-                t.setDaemon(true);
-                t.start();
+                final RunnableManager runnableManager = (RunnableManager)m_manager.lookup( RunnableManager.ROLE );
+                runnableManager.execute( "daemon", this ); // XXX: GP: Do we really need daemon threads here ?
+                m_manager.release( runnableManager );
+            } catch (final ServiceException e) {
+                // In case we failed to spawn a thread
+                this.e = new SAXException(e);
+                m_resolver.release(source);
+                throw new CascadingRuntimeException( e.getMessage(), e );
             } catch (RuntimeException e) {
                 // In case we failed to spawn a thread
                 this.e = new SAXException(e);