You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by az...@apache.org on 2007/05/28 08:10:58 UTC

svn commit: r542125 - /webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java

Author: azeez
Date: Sun May 27 23:10:57 2007
New Revision: 542125

URL: http://svn.apache.org/viewvc?view=rev&rev=542125
Log:
Use a thread pool


Modified:
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java?view=diff&rev=542125&r1=542124&r2=542125
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java Sun May 27 23:10:57 2007
@@ -22,6 +22,7 @@
 import org.apache.axis2.clustering.context.ContextClusteringCommand;
 import org.apache.axis2.clustering.context.DefaultContextManager;
 import org.apache.axis2.clustering.control.ControlCommand;
+import org.apache.axis2.util.threadpool.ThreadPool;
 import org.apache.catalina.tribes.Member;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -32,6 +33,8 @@
 public class ChannelListener implements org.apache.catalina.tribes.ChannelListener {
     private static final Log log = LogFactory.getLog(ChannelListener.class);
 
+    private ThreadPool threadPool;
+
     private DefaultContextManager contextManager;
     private DefaultConfigurationManager configurationManager;
     private TribesControlCommandProcessor controlCommandProcessor;
@@ -42,6 +45,7 @@
         this.configurationManager = configurationManager;
         this.contextManager = contextManager;
         this.controlCommandProcessor = controlCommandProcessor;
+        this.threadPool = new ThreadPool();
     }
 
     public void setContextManager(DefaultContextManager contextManager) {
@@ -56,31 +60,40 @@
         return true;
     }
 
-    public void messageReceived(final Serializable msg, final Member sender) {
+    public void messageReceived(Serializable msg, Member sender) {
         log.debug("Message received : " + msg);
-        Thread th = new Thread() {
-            public void run() {
-                if (msg instanceof ContextClusteringCommand) {
-                    try {
-                        contextManager.notifyListener((ContextClusteringCommand) msg);
-                    } catch (ClusteringFault e) {
-                        log.error("Could not process ContextCommand", e);
-                    }
-                } else if (msg instanceof ConfigurationClusteringCommand) {
-                    try {
-                        configurationManager.notifyListener((ConfigurationClusteringCommand) msg);
-                    } catch (ClusteringFault e) {
-                        log.error("Could not process ConfigurationCommand", e);
-                    }
-                } else if (msg instanceof ControlCommand) {
-                    try {
-                        controlCommandProcessor.process((ControlCommand) msg, sender);
-                    } catch (ClusteringFault e) {
-                        log.error("Could not process ControlCommand", e);
-                    }
+        threadPool.execute(new MessageHandler(msg, sender));
+    }
+
+    private class MessageHandler implements Runnable {
+        private Serializable msg;
+        private Member sender;
+
+        public MessageHandler(Serializable msg, Member sender) {
+            this.msg = msg;
+            this.sender = sender;
+        }
+
+        public void run() {
+            if (msg instanceof ContextClusteringCommand) {
+                try {
+                    contextManager.notifyListener((ContextClusteringCommand) msg);
+                } catch (ClusteringFault e) {
+                    log.error("Could not process ContextCommand", e);
+                }
+            } else if (msg instanceof ConfigurationClusteringCommand) {
+                try {
+                    configurationManager.notifyListener((ConfigurationClusteringCommand) msg);
+                } catch (ClusteringFault e) {
+                    log.error("Could not process ConfigurationCommand", e);
+                }
+            } else if (msg instanceof ControlCommand) {
+                try {
+                    controlCommandProcessor.process((ControlCommand) msg, sender);
+                } catch (ClusteringFault e) {
+                    log.error("Could not process ControlCommand", e);
                 }
             }
-        };
-        th.start();
+        }
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org