You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2011/03/14 19:08:55 UTC
svn commit: r1081498 - in
/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper:
mina/TCPEndpoint.java xmpp/server/DefaultServerRuntimeContext.java
Author: ngn
Date: Mon Mar 14 18:08:55 2011
New Revision: 1081498
URL: http://svn.apache.org/viewvc?rev=1081498&view=rev
Log:
Use OrderThreadPoolExecutor instead of QueueStanzaProcessor in order to maintain stanza order within a session (VYSPER-275)
Modified:
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/DefaultServerRuntimeContext.java
Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java?rev=1081498&r1=1081497&r2=1081498&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java (original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java Mon Mar 14 18:08:55 2011
@@ -21,9 +21,12 @@ package org.apache.vysper.mina;
import java.io.IOException;
import java.net.InetSocketAddress;
+import java.util.concurrent.TimeUnit;
import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
+import org.apache.mina.filter.executor.ExecutorFilter;
+import org.apache.mina.filter.executor.OrderedThreadPoolExecutor;
import org.apache.mina.transport.socket.SocketAcceptor;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import org.apache.vysper.mina.codec.XMPPProtocolCodecFactory;
@@ -51,6 +54,14 @@ public class TCPEndpoint implements Endp
public void setServerRuntimeContext(ServerRuntimeContext serverRuntimeContext) {
this.serverRuntimeContext = serverRuntimeContext;
}
+
+ public int getPort() {
+ if(port != 0) {
+ return port;
+ } else {
+ return acceptor.getLocalAddress().getPort();
+ }
+ }
public void setPort(int port) {
this.port = port;
@@ -60,9 +71,13 @@ public class TCPEndpoint implements Endp
NioSocketAcceptor acceptor = new NioSocketAcceptor();
DefaultIoFilterChainBuilder filterChainBuilder = new DefaultIoFilterChainBuilder();
- //filterChainBuilder.addLast("executorFilter", new OrderedThreadPoolExecutor());
filterChainBuilder.addLast("xmppCodec", new ProtocolCodecFilter(new XMPPProtocolCodecFactory()));
filterChainBuilder.addLast("loggingFilter", new StanzaLoggingFilter());
+
+ int coreThreadCount = 10;
+ int maxThreadCount = 20;
+ int threadTimeoutSeconds = 2 * 60;
+ filterChainBuilder.addLast("executorFilter", new ExecutorFilter(new OrderedThreadPoolExecutor(coreThreadCount, maxThreadCount, threadTimeoutSeconds, TimeUnit.SECONDS)));
acceptor.setFilterChainBuilder(filterChainBuilder);
XmppIoHandlerAdapter adapter = new XmppIoHandlerAdapter();
Modified: mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/DefaultServerRuntimeContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/DefaultServerRuntimeContext.java?rev=1081498&r1=1081497&r2=1081498&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/DefaultServerRuntimeContext.java (original)
+++ mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/DefaultServerRuntimeContext.java Mon Mar 14 18:08:55 2011
@@ -97,7 +97,7 @@ public class DefaultServerRuntimeContext
/**
* 'input stream': receives stanzas issued by client sessions to be handled by the server
*/
- private StanzaProcessor stanzaProcessor = new QueuedStanzaProcessor(new ProtocolWorker());
+ private StanzaProcessor stanzaProcessor = new ProtocolWorker();
/**
* 'output stream': receives stanzas issued by a session, which are going to other sessions/servers