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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]