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