[jboss-cvs] JBoss Messaging SVN: r3485 - trunk/src/main/org/jboss/messaging/core/remoting/integration.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Dec 12 09:58:49 EST 2007
Author: jmesnil
Date: 2007-12-12 09:58:48 -0500 (Wed, 12 Dec 2007)
New Revision: 3485
Modified:
trunk/src/main/org/jboss/messaging/core/remoting/integration/FilterChainSupport.java
trunk/src/main/org/jboss/messaging/core/remoting/integration/MinaConnector.java
trunk/src/main/org/jboss/messaging/core/remoting/integration/MinaService.java
Log:
* refactored MINA filter chain creation in FilterChainSupport to merge code common to
both MinaConnector (client-side) and MinaService (server-side)
Modified: trunk/src/main/org/jboss/messaging/core/remoting/integration/FilterChainSupport.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/integration/FilterChainSupport.java 2007-12-12 14:13:09 UTC (rev 3484)
+++ trunk/src/main/org/jboss/messaging/core/remoting/integration/FilterChainSupport.java 2007-12-12 14:58:48 UTC (rev 3485)
@@ -9,14 +9,20 @@
import static org.apache.mina.filter.logging.LogLevel.TRACE;
import static org.apache.mina.filter.logging.LogLevel.WARN;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+
import org.apache.mina.common.DefaultIoFilterChainBuilder;
+import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.logging.LoggingFilter;
+import org.apache.mina.filter.logging.MdcInjectionFilter;
+import org.apache.mina.filter.reqres.RequestResponseFilter;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
+ *
* @version <tt>$Revision$</tt>
- *
+ *
*/
public class FilterChainSupport
{
@@ -30,24 +36,57 @@
// Public --------------------------------------------------------
+ // Package protected ---------------------------------------------
+
+ static void addCodecFilter(DefaultIoFilterChainBuilder filterChain)
+ throws Exception
+ {
+ assert filterChain != null;
+
+ filterChain.addLast("codec", new ProtocolCodecFilter(
+ new PacketCodecFactory()));
+ }
+
+ static void addMDCFilter(DefaultIoFilterChainBuilder filterChain)
+ throws Exception
+ {
+ assert filterChain != null;
+
+ MdcInjectionFilter mdcInjectionFilter = new MdcInjectionFilter();
+ filterChain.addLast("mdc", mdcInjectionFilter);
+ }
+
static void addLoggingFilter(DefaultIoFilterChainBuilder filterChain)
{
+ assert filterChain != null;
+
LoggingFilter filter = new LoggingFilter();
filter.setSessionCreatedLogLevel(TRACE);
filter.setSessionOpenedLogLevel(TRACE);
filter.setSessionIdleLogLevel(TRACE);
filter.setSessionClosedLogLevel(TRACE);
-
+
filter.setMessageReceivedLogLevel(TRACE);
filter.setMessageSentLogLevel(TRACE);
-
+
filter.setExceptionCaughtLogLevel(WARN);
-
+
filterChain.addLast("logger", filter);
}
+
+ static ScheduledExecutorService addBlockingRequestResponseFilter(
+ DefaultIoFilterChainBuilder filterChain)
+ {
+ assert filterChain != null;
- // Package protected ---------------------------------------------
+ ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
+ RequestResponseFilter filter = new RequestResponseFilter(
+ new MinaInspector(), executorService);
+ filterChain.addLast("reqres", filter);
+
+ return executorService;
+ }
// Protected -----------------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/core/remoting/integration/MinaConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/integration/MinaConnector.java 2007-12-12 14:13:09 UTC (rev 3484)
+++ trunk/src/main/org/jboss/messaging/core/remoting/integration/MinaConnector.java 2007-12-12 14:58:48 UTC (rev 3485)
@@ -6,13 +6,15 @@
*/
package org.jboss.messaging.core.remoting.integration;
+import static org.jboss.messaging.core.remoting.integration.FilterChainSupport.addBlockingRequestResponseFilter;
+import static org.jboss.messaging.core.remoting.integration.FilterChainSupport.addCodecFilter;
import static org.jboss.messaging.core.remoting.integration.FilterChainSupport.addLoggingFilter;
+import static org.jboss.messaging.core.remoting.integration.FilterChainSupport.addMDCFilter;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.HashMap;
import java.util.Map;
-import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import org.apache.mina.common.CloseFuture;
@@ -22,9 +24,6 @@
import org.apache.mina.common.IoService;
import org.apache.mina.common.IoServiceListener;
import org.apache.mina.common.IoSession;
-import org.apache.mina.filter.codec.ProtocolCodecFilter;
-import org.apache.mina.filter.logging.MdcInjectionFilter;
-import org.apache.mina.filter.reqres.RequestResponseFilter;
import org.apache.mina.transport.socket.nio.NioSocketConnector;
import org.jboss.jms.client.remoting.ConsolidatedRemotingConnectionListener;
import org.jboss.logging.Logger;
@@ -64,22 +63,22 @@
public MinaConnector() throws Exception
{
this.connector = new NioSocketConnector();
+ DefaultIoFilterChainBuilder filterChain = connector.getFilterChain();
- MdcInjectionFilter mdcInjectionFilter = new MdcInjectionFilter();
- connector.getFilterChain().addLast("mdc", mdcInjectionFilter);
+ addMDCFilter(filterChain);
- connector.getFilterChain().addLast("codec",
- new ProtocolCodecFilter(new PacketCodecFactory()));
+ addCodecFilter(filterChain);
- addBlockingRequestResponseFilter(connector.getFilterChain());
+ blockingScheduler = addBlockingRequestResponseFilter(filterChain);
- addLoggingFilter(connector.getFilterChain());
+ addLoggingFilter(filterChain);
connector.setHandler(new MinaHandler(PacketDispatcher.client));
connector.getSessionConfig().setKeepAlive(true);
connector.getSessionConfig().setReuseAddress(true);
}
+
// NIOConnector implementation -----------------------------------
public NIOSession connect(String host, int port, TransportType transport) throws IOException {
@@ -167,15 +166,6 @@
// Private -------------------------------------------------------
- private void addBlockingRequestResponseFilter(
- DefaultIoFilterChainBuilder chain)
- {
- blockingScheduler = Executors.newScheduledThreadPool(1);
- RequestResponseFilter filter = new RequestResponseFilter(
- new MinaInspector(), blockingScheduler);
- chain.addLast("reqres", filter);
- }
-
// Inner classes -------------------------------------------------
private final class IoServiceListenerAdapter implements IoServiceListener
Modified: trunk/src/main/org/jboss/messaging/core/remoting/integration/MinaService.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/integration/MinaService.java 2007-12-12 14:13:09 UTC (rev 3484)
+++ trunk/src/main/org/jboss/messaging/core/remoting/integration/MinaService.java 2007-12-12 14:58:48 UTC (rev 3485)
@@ -6,12 +6,13 @@
*/
package org.jboss.messaging.core.remoting.integration;
+import static org.jboss.messaging.core.remoting.integration.FilterChainSupport.addCodecFilter;
import static org.jboss.messaging.core.remoting.integration.FilterChainSupport.addLoggingFilter;
+import static org.jboss.messaging.core.remoting.integration.FilterChainSupport.addMDCFilter;
import java.net.InetSocketAddress;
-import org.apache.mina.filter.codec.ProtocolCodecFilter;
-import org.apache.mina.filter.logging.MdcInjectionFilter;
+import org.apache.mina.common.DefaultIoFilterChainBuilder;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import org.jboss.logging.Logger;
import org.jboss.messaging.core.remoting.PacketDispatcher;
@@ -67,13 +68,10 @@
if (acceptor == null)
{
acceptor = new NioSocketAcceptor();
-
- // Prepare the configuration
- MdcInjectionFilter mdcInjectionFilter = new MdcInjectionFilter();
- acceptor.getFilterChain().addLast("mdc", mdcInjectionFilter);
- acceptor.getFilterChain().addLast("codec",
- new ProtocolCodecFilter(new PacketCodecFactory()));
-
+ DefaultIoFilterChainBuilder filterChain = acceptor.getFilterChain();
+
+ addMDCFilter(filterChain);
+ addCodecFilter(filterChain);
addLoggingFilter(acceptor.getFilterChain());
// Bind
More information about the jboss-cvs-commits
mailing list