You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/10/25 11:28:45 UTC
svn commit: r588178 [1/2] - in /mina/trunk:
core/src/main/java/org/apache/mina/common/
core/src/main/java/org/apache/mina/filter/codec/
core/src/main/java/org/apache/mina/filter/codec/textline/
core/src/main/java/org/apache/mina/filter/executor/ core/s...
Author: trustin
Date: Thu Oct 25 02:28:40 2007
New Revision: 588178
URL: http://svn.apache.org/viewvc?rev=588178&view=rev
Log:
* Rewrote IoSessionLogger
** IoSessionLogger now implements org.slf4j.Logger
** An IoSessionLogger instance can be retrieved by calling IoSessionLogger.getLogger()
* and related changes follow...
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoAcceptor.java
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoConnector.java
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoProcessor.java
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoService.java
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
mina/trunk/core/src/main/java/org/apache/mina/common/AttributeKey.java
mina/trunk/core/src/main/java/org/apache/mina/common/ConnectFuture.java
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultConnectFuture.java
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFuture.java
mina/trunk/core/src/main/java/org/apache/mina/common/IdleStatusChecker.java
mina/trunk/core/src/main/java/org/apache/mina/common/IoEvent.java
mina/trunk/core/src/main/java/org/apache/mina/common/IoFilterEvent.java
mina/trunk/core/src/main/java/org/apache/mina/common/IoHandlerAdapter.java
mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java
mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceListenerSupport.java
mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java
mina/trunk/core/src/main/java/org/apache/mina/common/IoSessionLogger.java
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecSession.java
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineDecoder.java
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineEncoder.java
mina/trunk/core/src/main/java/org/apache/mina/filter/executor/ExecutorFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/firewall/BlacklistFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/firewall/ConnectionThrottleFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/AbstractKeepAliveFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/ActiveKeepAliveFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/KeepAliveFilterFactory.java
mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/PassiveKeepAliveFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LoggingFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/logging/MdcInjectionFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/RequestResponseFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java
mina/trunk/core/src/main/java/org/apache/mina/filter/stream/StreamWriteFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilterBuilder.java
mina/trunk/core/src/main/java/org/apache/mina/filter/util/WriteRequestFilter.java
mina/trunk/core/src/main/java/org/apache/mina/handler/stream/StreamIoHandler.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/SocketAcceptor.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramAcceptor.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramConnector.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramSession.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketConnector.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java
mina/trunk/core/src/main/java/org/apache/mina/util/NamePreservingRunnable.java
mina/trunk/core/src/test/java/org/apache/mina/common/IoServiceListenerSupportTest.java
mina/trunk/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineDecoderTest.java
mina/trunk/core/src/test/java/org/apache/mina/filter/firewall/ConnectionThrottleFilterTest.java
mina/trunk/core/src/test/java/org/apache/mina/filter/keepalive/KeepAliveFilterTest.java
mina/trunk/core/src/test/java/org/apache/mina/filter/logging/MdcInjectionFilterTest.java
mina/trunk/core/src/test/java/org/apache/mina/filter/reqres/RequestResponseFilterTest.java
mina/trunk/core/src/test/java/org/apache/mina/filter/stream/StreamWriteFilterTest.java
mina/trunk/core/src/test/java/org/apache/mina/handler/demux/DemuxingIoHandlerTest.java
mina/trunk/core/src/test/java/org/apache/mina/transport/AbstractBindTest.java
mina/trunk/core/src/test/java/org/apache/mina/transport/AbstractTrafficControlTest.java
mina/trunk/core/src/test/java/org/apache/mina/transport/socket/nio/DatagramBindTest.java
mina/trunk/core/src/test/java/org/apache/mina/transport/socket/nio/DatagramConfigTest.java
mina/trunk/core/src/test/java/org/apache/mina/transport/socket/nio/DatagramRecyclerTest.java
mina/trunk/core/src/test/java/org/apache/mina/transport/socket/nio/SocketBindTest.java
mina/trunk/example/src/main/java/org/apache/mina/example/chat/ChatProtocolHandler.java
mina/trunk/example/src/main/java/org/apache/mina/example/httpserver/codec/ServerHandler.java
mina/trunk/example/src/main/java/org/apache/mina/example/proxy/AbstractProxyIoHandler.java
mina/trunk/example/src/main/java/org/apache/mina/example/reverser/ReverseProtocolHandler.java
mina/trunk/example/src/main/java/org/apache/mina/example/sumup/ClientSessionHandler.java
mina/trunk/example/src/main/java/org/apache/mina/example/sumup/ServerSessionHandler.java
mina/trunk/example/src/test/java/org/apache/mina/example/echoserver/AbstractTest.java
mina/trunk/example/src/test/java/org/apache/mina/example/echoserver/ConnectorTest.java
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoAcceptor.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoAcceptor.java Thu Oct 25 02:28:40 2007
@@ -121,10 +121,11 @@
}
bound = false;
}
-
+
getListeners().fireServiceDeactivated();
}
+ @Override
public boolean isActive() {
synchronized (bindLock) {
return bound;
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoConnector.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoConnector.java Thu Oct 25 02:28:40 2007
@@ -91,7 +91,7 @@
*/
protected abstract ConnectFuture doConnect(SocketAddress remoteAddress,
SocketAddress localAddress);
-
+
/**
* Adds required internal attributes and {@link IoFutureListener}s
* related with event notifications to the specified {@code session}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoProcessor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoProcessor.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoProcessor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoProcessor.java Thu Oct 25 02:28:40 2007
@@ -59,9 +59,9 @@
}
/**
- * poll those sessions for the given timeout
+ * poll those sessions for the given timeout
* @param timeout milliseconds before the call timeout if no event appear
- * @return true if at least a session is ready for read or for write
+ * @return true if at least a session is ready for read or for write
* @throws Exception if some low level IO error occurs
*/
protected abstract boolean select(int timeout) throws Exception;
@@ -73,8 +73,8 @@
protected abstract Iterator<AbstractIoSession> selectedSessions() throws Exception;
protected abstract SessionState state(IoSession session);
-
-
+
+
/**
* Is the session ready for writing
* @param session the session queried
@@ -82,7 +82,7 @@
* @throws Exception if some low level IO error occurs
*/
protected abstract boolean isWritable(IoSession session) throws Exception;
-
+
/**
* Is the session ready for reading
* @param session the session queried
@@ -91,33 +91,33 @@
*/
protected abstract boolean isReadable(IoSession session) throws Exception;
/**
- * register a session for writing
+ * register a session for writing
* @param session the session registered
* @param value true for registering, false for removing
* @throws Exception if some low level IO error occurs
*/
protected abstract void setOpWrite(IoSession session,boolean value) throws Exception;
-
+
/**
- * register a session for reading
+ * register a session for reading
* @param session the session registered
* @param value true for registering, false for removing
* @throws Exception if some low level IO error occurs
*/
protected abstract void setOpRead(IoSession session,boolean value) throws Exception;
-
+
/**
* is this session registered for reading
* @param session the session queried
- * @return true is registered for reading
+ * @return true is registered for reading
* @throws Exception if some low level IO error occurs
*/
protected abstract boolean isOpRead(IoSession session) throws Exception;
-
+
/**
* is this session registered for writing
* @param session the session queried
- * @return true is registered for writing
+ * @return true is registered for writing
* @throws Exception if some low level IO error occurs
*/
protected abstract boolean isOpWrite(IoSession session) throws Exception;
@@ -269,7 +269,7 @@
}
private void process(AbstractIoSession session) throws Exception {
-
+
if (isReadable(session) && session.getTrafficMask().isReadable()) {
read(session);
}
@@ -307,7 +307,7 @@
buf = null;
if (session.getTransportMetadata().hasFragmentation()) {
- if ((readBytes << 1) < config.getReadBufferSize()) {
+ if (readBytes << 1 < config.getReadBufferSize()) {
session.decreaseReadBufferSize();
} else if (readBytes == config.getReadBufferSize()) {
session.increaseReadBufferSize();
@@ -497,7 +497,7 @@
setOpWrite(
session,
!session.getWriteRequestQueue().isEmpty() &&
- ((mask & SelectionKey.OP_WRITE) != 0));
+ (mask & SelectionKey.OP_WRITE) != 0);
} catch (Exception e) {
session.getFilterChain().fireExceptionCaught(e);
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoService.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoService.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoService.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoService.java Thu Oct 25 02:28:40 2007
@@ -44,7 +44,7 @@
* Maintains the {@link IoServiceListener}s of this service.
*/
private final IoServiceListenerSupport listeners;
-
+
private volatile long activationTime;
private final AtomicLong readBytes = new AtomicLong();
private final AtomicLong writtenBytes = new AtomicLong();
@@ -118,7 +118,7 @@
if (handler == null) {
throw new NullPointerException("handler");
}
-
+
if (isActive()) {
throw new IllegalStateException("handler cannot be set while the service is active.");
}
@@ -133,11 +133,11 @@
public IoSessionConfig getSessionConfig() {
return sessionConfig;
}
-
+
public long getReadBytes() {
return readBytes.get();
}
-
+
protected void increaseReadBytes(long increment) {
readBytes.addAndGet(increment);
}
@@ -145,7 +145,7 @@
public long getReadMessages() {
return readMessages.get();
}
-
+
protected void increaseReadMessages() {
readMessages.incrementAndGet();
}
@@ -153,7 +153,7 @@
public long getScheduledWriteBytes() {
return scheduledWriteBytes.get();
}
-
+
protected void increaseScheduledWriteBytes(long increment) {
scheduledWriteBytes.addAndGet(increment);
}
@@ -161,7 +161,7 @@
public long getScheduledWriteMessages() {
return scheduledWriteMessages.get();
}
-
+
protected void increaseScheduledWriteMessages() {
scheduledWriteMessages.incrementAndGet();
}
@@ -169,7 +169,7 @@
public long getActivationTime() {
return activationTime;
}
-
+
protected void setActivationTime(long activationTime) {
this.activationTime = activationTime;
}
@@ -177,7 +177,7 @@
public long getWrittenBytes() {
return writtenBytes.get();
}
-
+
protected void increaseWrittenBytes(long increment) {
writtenBytes.addAndGet(increment);
scheduledWriteBytes.addAndGet(-increment);
@@ -186,7 +186,7 @@
public long getWrittenMessages() {
return writtenMessages.get();
}
-
+
protected void increaseWrittenMessages() {
writtenMessages.incrementAndGet();
scheduledWriteMessages.decrementAndGet();
@@ -196,15 +196,15 @@
public ServiceOperationFuture() {
super(null);
}
-
+
public boolean isDone() {
- return (getValue() == Boolean.TRUE);
+ return getValue() == Boolean.TRUE;
}
-
+
public void setDone() {
setValue(Boolean.TRUE);
}
-
+
public Exception getException() {
if (getValue() instanceof Exception) {
return (Exception) getValue();
@@ -212,7 +212,7 @@
return null;
}
}
-
+
public void setException(Exception cause) {
setValue(cause);
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java Thu Oct 25 02:28:40 2007
@@ -134,7 +134,7 @@
private long lastIdleTimeForRead;
private long lastIdleTimeForWrite;
-
+
private boolean deferDecreaseReadBuffer = true;
protected AbstractIoSession() {
@@ -170,7 +170,7 @@
return true;
}
}
-
+
public CloseFuture close(boolean rightNow) {
if (rightNow) {
return close();
@@ -191,7 +191,7 @@
getFilterChain().fireFilterClose();
return closeFuture;
}
-
+
public CloseFuture closeOnFlush() {
getWriteRequestQueue().offer(CLOSE_REQUEST);
getProcessor().flush(this);
@@ -206,7 +206,7 @@
if (message == null) {
throw new NullPointerException("message");
}
-
+
if (!getTransportMetadata().isConnectionless() &&
remoteAddress != null) {
throw new UnsupportedOperationException();
@@ -442,7 +442,7 @@
lastReadTime = System.currentTimeMillis();
idleCountForBoth = 0;
idleCountForRead = 0;
-
+
if (getService() instanceof AbstractIoService) {
((AbstractIoService) getService()).increaseReadBytes(increment);
}
@@ -457,7 +457,7 @@
idleCountForWrite = 0;
scheduledWriteBytes.addAndGet(-increment);
-
+
if (getService() instanceof AbstractIoService) {
((AbstractIoService) getService()).increaseWrittenBytes(increment);
}
@@ -496,7 +496,7 @@
protected Queue<WriteRequest> getWriteRequestQueue() {
return writeRequestQueue;
}
-
+
protected void increaseReadBufferSize() {
int newReadBufferSize = getConfig().getReadBufferSize() << 1;
if (newReadBufferSize <= getConfig().getMaxReadBufferSize()) {
@@ -504,16 +504,16 @@
} else {
getConfig().setReadBufferSize(getConfig().getMaxReadBufferSize());
}
-
+
deferDecreaseReadBuffer = true;
}
-
+
protected void decreaseReadBufferSize() {
if (deferDecreaseReadBuffer) {
deferDecreaseReadBuffer = false;
return;
}
-
+
if (getConfig().getReadBufferSize() > getConfig().getMinReadBufferSize()) {
getConfig().setReadBufferSize(getConfig().getReadBufferSize() >>> 1);
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AttributeKey.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AttributeKey.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AttributeKey.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AttributeKey.java Thu Oct 25 02:28:40 2007
@@ -19,6 +19,8 @@
*/
package org.apache.mina.common;
+import java.util.Map;
+
/**
* A key that makes its parent {@link Map} or session attribute to search
* fast while being debug-friendly by providing the spring representation.
@@ -28,7 +30,7 @@
*/
public final class AttributeKey {
private final String name;
-
+
/**
* Creates a new instance.
*/
@@ -36,7 +38,7 @@
this.name = source.getName() + '.' + String.valueOf(name) + '@' +
Integer.toHexString(System.identityHashCode(this));
}
-
+
@Override
public String toString() {
return name;
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/ConnectFuture.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/ConnectFuture.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/ConnectFuture.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/ConnectFuture.java Thu Oct 25 02:28:40 2007
@@ -55,7 +55,7 @@
* Returns <tt>true</tt> if the connect operation is finished successfully.
*/
boolean isConnected();
-
+
/**
* Returns {@code true} if the connect operation has been canceled by
* {@link #cancel()} method.
@@ -75,7 +75,7 @@
* internally. Please do not call this method directly.
*/
void setException(Throwable exception);
-
+
/**
* Cancels the connection attempt and notifies all threads waiting for
* this future.
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/DefaultConnectFuture.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultConnectFuture.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/DefaultConnectFuture.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/DefaultConnectFuture.java Thu Oct 25 02:28:40 2007
@@ -28,9 +28,9 @@
*/
public class DefaultConnectFuture extends DefaultIoFuture implements
ConnectFuture {
-
+
private static final Object CANCELED = new Object();
-
+
/**
* Returns a new {@link ConnectFuture} which is already marked as 'failed to connect'.
*/
@@ -74,7 +74,7 @@
public boolean isConnected() {
return getValue() instanceof IoSession;
}
-
+
public boolean isCanceled() {
return getValue() == CANCELED;
}
@@ -86,7 +86,7 @@
public void setException(Throwable exception) {
setValue(exception);
}
-
+
public void cancel() {
setValue(CANCELED);
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java Thu Oct 25 02:28:40 2007
@@ -74,7 +74,7 @@
}
return e;
}
-
+
public Entry getEntry(IoFilter filter) {
EntryImpl e = head.nextEntry;
while (e != tail) {
@@ -317,7 +317,7 @@
"Other filter is using the same name '" + name + "'");
}
}
-
+
public void fireSessionCreated() {
Entry head = this.head;
callNextSessionCreated(head, session);
@@ -454,7 +454,7 @@
entry.getFilter().exceptionCaught(entry.getNextFilter(), session,
cause);
} catch (Throwable e) {
- IoSessionLogger.warn(session,
+ IoSessionLogger.getLogger(session, getClass()).warn(
"Unexpected exception from exceptionCaught handler.", e);
}
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java Thu Oct 25 02:28:40 2007
@@ -119,7 +119,7 @@
if (e == null) {
return null;
}
-
+
return e.getFilter();
}
@@ -131,7 +131,7 @@
if (e == null) {
return null;
}
-
+
return e.getFilter();
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFuture.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFuture.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFuture.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFuture.java Thu Oct 25 02:28:40 2007
@@ -31,9 +31,9 @@
* @version $Rev$, $Date$
*/
public class DefaultIoFuture implements IoFuture {
-
+
private static final int DEAD_LOCK_CHECK_INTERVAL = 5000;
-
+
private final IoSession session;
private final Object lock;
private IoFutureListener firstListener;
@@ -159,7 +159,7 @@
}
}
}
-
+
private void checkDeadLock() {
IllegalStateException e = new IllegalStateException(
"DEAD LOCK: " + IoFuture.class.getSimpleName() +
@@ -168,7 +168,7 @@
" or configure a proper thread model alternatively.");
StackTraceElement[] stackTrace = e.getStackTrace();
-
+
// Simple and quick check.
for (StackTraceElement s: stackTrace) {
if (AbstractIoProcessor.class.getName().equals(s.getClassName())) {
@@ -176,7 +176,7 @@
}
}
- // And then more precisely.
+ // And then more precisely.
for (StackTraceElement s: stackTrace) {
try {
Class<?> cls = DefaultIoFuture.class.getClassLoader().loadClass(s.getClassName());
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IdleStatusChecker.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IdleStatusChecker.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IdleStatusChecker.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IdleStatusChecker.java Thu Oct 25 02:28:40 2007
@@ -80,11 +80,11 @@
}
}
}
-
+
/**
* Fires a {@link IoEventType#SESSION_IDLE} event to any applicable
* sessions in the specified collection.
- *
+ *
* @param currentTime the current time (i.e. {@link System#currentTimeMillis()})
*/
public static void notifyIdleSessions(Iterator<? extends IoSession> sessions, long currentTime) {
@@ -97,7 +97,7 @@
/**
* Fires a {@link IoEventType#SESSION_IDLE} event if applicable for the
* specified {@code session}.
- *
+ *
* @param currentTime the current time (i.e. {@link System#currentTimeMillis()})
*/
public static void notifyIdleSession(IoSession session, long currentTime) {
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoEvent.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoEvent.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoEvent.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoEvent.java Thu Oct 25 02:28:40 2007
@@ -57,7 +57,7 @@
public Object getParameter() {
return parameter;
}
-
+
public void fire() {
switch (getType()) {
case MESSAGE_RECEIVED:
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoFilterEvent.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoFilterEvent.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoFilterEvent.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoFilterEvent.java Thu Oct 25 02:28:40 2007
@@ -46,7 +46,7 @@
public NextFilter getNextFilter() {
return nextFilter;
}
-
+
@Override
public void fire() {
switch (getType()) {
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoHandlerAdapter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoHandlerAdapter.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoHandlerAdapter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoHandlerAdapter.java Thu Oct 25 02:28:40 2007
@@ -44,8 +44,9 @@
public void exceptionCaught(IoSession session, Throwable cause)
throws Exception {
- if (IoSessionLogger.isWarnEnabled(session)) {
- IoSessionLogger.warn(session, "EXCEPTION, please implement "
+ IoSessionLogger logger = IoSessionLogger.getLogger(session, getClass());
+ if (logger.isWarnEnabled()) {
+ logger.warn("EXCEPTION, please implement "
+ getClass().getName()
+ ".exceptionCaught() for proper handling:", cause);
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java Thu Oct 25 02:28:40 2007
@@ -101,70 +101,70 @@
* not a {@link DefaultIoFilterChainBuilder}
*/
DefaultIoFilterChainBuilder getFilterChain();
-
+
/**
* Returns a value of whether or not this service is active
- *
+ *
* @return
* whether of not the service is active.
*/
boolean isActive();
-
+
/**
* Returns the time when this service was activated. Should return
- * zero if the service has not been activated.
- *
+ * zero if the service has not been activated.
+ *
* @return
* The time by using <code>System.currentTimeMillis()</code>
*/
long getActivationTime();
-
+
/**
* Returns the number of bytes read by this service
- *
+ *
* @return
* The number of bytes this service has read
*/
long getReadBytes();
-
+
/**
* Returns the number of bytes written out by this service
- *
+ *
* @return
* The number of bytes this service has written
*/
long getWrittenBytes();
-
+
/**
* Returns the number of messages this services has read
- *
+ *
* @return
* The number of messages this services has read
*/
long getReadMessages();
-
+
/**
* Returns the number of messages this service has written
- *
+ *
* @return
* The number of messages this service has written
*/
long getWrittenMessages();
-
+
/**
* Returns the number of bytes scheduled to be written
- *
+ *
* @return
* The number of bytes scheduled to be written
*/
long getScheduledWriteBytes();
-
+
/**
* Returns the number of messages scheduled to be written
- *
+ *
* @return
* The number of messages scheduled to be written
*/
long getScheduledWriteMessages();
-
+
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceListenerSupport.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceListenerSupport.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceListenerSupport.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceListenerSupport.java Thu Oct 25 02:28:40 2007
@@ -84,7 +84,7 @@
public Set<IoSession> getManagedSessions() {
return readOnlyManagedSessions;
}
-
+
public boolean isActive() {
return activated.get();
}
@@ -97,7 +97,7 @@
if (!activated.compareAndSet(false, true)) {
return;
}
-
+
if (service instanceof AbstractIoService) {
((AbstractIoService) service).setActivationTime(System.currentTimeMillis());
}
@@ -115,7 +115,7 @@
if (!activated.compareAndSet(true, false)) {
return;
}
-
+
try {
for (IoServiceListener l : listeners) {
l.serviceDeactivated(service);
@@ -138,7 +138,7 @@
firstSession = managedSessions.isEmpty();
}
}
-
+
// If already registered, ignore.
if (!managedSessions.add(session)) {
return;
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java Thu Oct 25 02:28:40 2007
@@ -105,7 +105,7 @@
*
* @param destination <tt>null</tt> if you want the message sent to the
* default remote address
- *
+ *
* @throws UnsupportedOperationException if this operation is not supported
*/
WriteFuture write(Object message, SocketAddress destination);
@@ -116,19 +116,19 @@
* the session actually closed.
*/
CloseFuture close();
-
+
/**
* Closes this session after all queued write requests are flushed.
* This operation is asynchronous. Wait for the returned {@link CloseFuture}
* if you want to wait for the session actually closed.
*/
CloseFuture closeOnFlush();
-
+
/**
* Closes this session immediately or after all queued write requests
* are flushed. This operation is asynchronous. Wait for the returned
* {@link CloseFuture} if you want to wait for the session actually closed.
- *
+ *
* @param immediately {@code true} to close this session immediately
* (i.e. {@link #close()}).
* {@code false} to close this session after all queued
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoSessionLogger.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoSessionLogger.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoSessionLogger.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoSessionLogger.java Thu Oct 25 02:28:40 2007
@@ -21,187 +21,687 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.slf4j.Marker;
/**
- * Provides utility methods to log protocol-specific messages.
- * <p>
- * Set {@link #PREFIX} and {@link #LOGGER} session attributes
- * to override prefix string and logger or use {@link #setPrefix(IoSession, String)}
- * and {@link #setLogger(IoSession, Logger)}.
- * </p>
+ * A SLF4J {@link Logger} that prepends the prefix to all logging messages.
+ * The default prefix is the remote address of the specified {@link IoSession}.
*
* @author The Apache MINA Project (dev@mina.apache.org)
* @version $Rev$, $Date$
*
*/
-public class IoSessionLogger {
- /**
- * Session attribute key: prefix string
- */
- public static final AttributeKey PREFIX = new AttributeKey(IoSessionLogger.class, "prefix");
+public class IoSessionLogger implements Logger {
- /**
- * Session attribute key: {@link Logger}
- */
- public static final AttributeKey LOGGER = new AttributeKey(IoSessionLogger.class, "logger");
+ private static final String UNEXPECTED_EXCEPTION = "Unexpected exception.";
- private static Class<? extends IoHandler> getClass(IoSession session) {
- return session.getHandler().getClass();
+ private static final AttributeKey PREFIX = new AttributeKey(
+ IoSessionLogger.class, "prefix");
+
+ private static boolean usePrefix = true;
+
+ public static IoSessionLogger getLogger(IoSession session) {
+ return getLogger(session, session.getHandler().getClass());
+ }
+
+ public static IoSessionLogger getLogger(IoSession session, String name) {
+ if (name != null) {
+ return getLogger(session, LoggerFactory.getLogger(name));
+ } else {
+ return getLogger(session, (Logger) null);
+ }
}
- public static void trace(IoSession session, Object message) {
- trace(getLogger(session), session, message);
+ public static IoSessionLogger getLogger(IoSession session, Class<?> clazz) {
+ if (clazz != null) {
+ return getLogger(session, LoggerFactory.getLogger(clazz));
+ } else {
+ return getLogger(session, (Logger) null);
+ }
}
- public static void trace(Logger log, IoSession session, Object message) {
- if (log.isTraceEnabled()) {
- log.trace("{}{}", getPrefix(session), message);
+ public static IoSessionLogger getLogger(IoSession session, Logger logger) {
+ if (logger == null) {
+ logger = LoggerFactory.getLogger(session.getHandler().getClass());
}
+
+ IoSessionLogger decoratedLogger = (IoSessionLogger) session.getAttribute(logger);
+ if (decoratedLogger == null) {
+ decoratedLogger = new IoSessionLogger(session, logger);
+ IoSessionLogger newDecoratedLogger =
+ (IoSessionLogger) session.setAttributeIfAbsent(logger, decoratedLogger);
+ if (newDecoratedLogger != null) {
+ decoratedLogger = newDecoratedLogger;
+ }
+ }
+
+ return decoratedLogger;
+ }
+
+ public static boolean isUsePrefix() {
+ return usePrefix;
}
- public static void trace(IoSession session, String message, Throwable cause) {
- trace(getLogger(session), session, message, cause);
+ public static void setUsePrefix(boolean usePrefix) {
+ IoSessionLogger.usePrefix = usePrefix;
}
- public static void trace(Logger log, IoSession session, String message,
- Throwable cause) {
- if (log.isTraceEnabled()) {
- log.trace(getPrefix(session) + message, cause);
+ public static String getPrefix(IoSession session) {
+ String prefix = (String) session.getAttribute(PREFIX);
+ if (prefix == null) {
+ return "";
+ } else {
+ return prefix;
}
}
- public static void debug(IoSession session, Object message) {
- debug(getLogger(session), session, message);
+ public static void setPrefix(IoSession session, String prefix) {
+ if (prefix == null || !usePrefix) {
+ removePrefix(session);
+ return;
+ }
+
+ if (prefix.contains("{}")) {
+ throw new IllegalArgumentException("prefix cannot contain '{}': "
+ + prefix);
+ }
+
+ session.setAttribute(PREFIX, prefix);
}
- public static void debug(Logger log, IoSession session, Object message) {
- if (log.isDebugEnabled()) {
- log.debug("{}{}", getPrefix(session), message);
+ public static void removePrefix(IoSession session) {
+ session.removeAttribute(PREFIX);
+ }
+
+ private final IoSession session;
+
+ private final Logger logger;
+
+ private IoSessionLogger(IoSession session, Logger logger) {
+ if (session == null) {
+ throw new NullPointerException("session");
+ }
+
+ if (logger == null) {
+ throw new NullPointerException("logger");
+ }
+
+ this.session = session;
+ this.logger = logger;
+
+ // Set the default prefix if not set already.
+ if (usePrefix && session.containsAttribute(PREFIX)) {
+ session.setAttributeIfAbsent(PREFIX, "["
+ + session.getRemoteAddress() + "] ");
}
}
- public static void debug(IoSession session, String message, Throwable cause) {
- debug(getLogger(session), session, message, cause);
+ public void debug(Marker marker, String format, Object arg1, Object arg2) {
+ if (usePrefix) {
+ if (isDebugEnabled()) {
+ logger.debug(marker, getPrefix(session) + format, arg1, arg2);
+ }
+ } else {
+ logger.debug(marker, format, arg1, arg2);
+ }
}
- public static void debug(Logger log, IoSession session, String message,
- Throwable cause) {
- if (log.isDebugEnabled()) {
- log.debug(getPrefix(session) + message, cause);
+ public void debug(Marker marker, String format, Object arg) {
+ if (usePrefix) {
+ if (isDebugEnabled()) {
+ logger.debug(marker, getPrefix(session) + format, arg);
+ }
+ } else {
+ logger.debug(marker, format, arg);
}
}
- public static void info(IoSession session, Object message) {
- info(getLogger(session), session, message);
+ public void debug(Marker marker, String format, Object[] args) {
+ if (usePrefix) {
+ if (isDebugEnabled()) {
+ logger.debug(marker, getPrefix(session) + format, args);
+ }
+ } else {
+ logger.debug(marker, format, args);
+ }
}
- public static void info(Logger log, IoSession session, Object message) {
- if (log.isInfoEnabled()) {
- log.info("{}{}", getPrefix(session), message);
+ public void debug(Marker marker, String msg, Throwable t) {
+ if (usePrefix) {
+ if (isDebugEnabled()) {
+ logger.debug(marker, getPrefix(session) + msg, t);
+ }
+ } else {
+ logger.debug(marker, msg, t);
}
}
- public static void info(IoSession session, String message, Throwable cause) {
- info(getLogger(session), session, message, cause);
+ public void debug(Marker marker, String msg) {
+ if (usePrefix) {
+ if (isDebugEnabled()) {
+ logger.debug(marker, getPrefix(session) + msg);
+ }
+ } else {
+ logger.debug(marker, msg);
+ }
}
- public static void info(Logger log, IoSession session, String message,
- Throwable cause) {
- if (log.isInfoEnabled()) {
- log.info(getPrefix(session) + message, cause);
+ public void debug(String format, Object arg1, Object arg2) {
+ if (usePrefix) {
+ if (isDebugEnabled()) {
+ logger.debug(getPrefix(session) + format, arg1, arg2);
+ }
+ } else {
+ logger.debug(format, arg1, arg2);
}
}
- public static void warn(IoSession session, Object message) {
- warn(getLogger(session), session, message);
+ public void debug(String format, Object arg) {
+ if (usePrefix) {
+ if (isDebugEnabled()) {
+ logger.debug(getPrefix(session) + format, arg);
+ }
+ } else {
+ logger.debug(format, arg);
+ }
}
- public static void warn(Logger log, IoSession session, Object message) {
- if (log.isWarnEnabled()) {
- log.warn("{}{}", getPrefix(session), message);
+ public void debug(String format, Object[] args) {
+ if (usePrefix) {
+ if (isDebugEnabled()) {
+ logger.debug(getPrefix(session) + format, args);
+ }
+ } else {
+ logger.debug(format, args);
}
}
- public static void warn(IoSession session, Throwable cause) {
- warn(session, "Unexpected exception.", cause);
+ public void debug(String msg, Throwable t) {
+ if (usePrefix) {
+ if (isDebugEnabled()) {
+ logger.debug(getPrefix(session) + msg, t);
+ }
+ } else {
+ logger.debug(msg, t);
+ }
}
- public static void warn(IoSession session, String message, Throwable cause) {
- warn(getLogger(session), session, message, cause);
+ public void debug(Throwable t) {
+ debug(UNEXPECTED_EXCEPTION, t);
}
- public static void warn(Logger log, IoSession session, String message,
- Throwable cause) {
- if (log.isWarnEnabled()) {
- log.warn(getPrefix(session) + message, cause);
+ public void debug(String msg) {
+ if (usePrefix) {
+ if (isDebugEnabled()) {
+ logger.debug(getPrefix(session) + msg);
+ }
+ } else {
+ logger.debug(msg);
}
}
- public static void error(IoSession session, Object message) {
- error(getLogger(session), session, message);
+ public void error(Marker marker, String format, Object arg1, Object arg2) {
+ if (usePrefix) {
+ if (isErrorEnabled()) {
+ logger.error(marker, getPrefix(session) + format, arg1, arg2);
+ }
+ } else {
+ logger.error(marker, format, arg1, arg2);
+ }
}
- public static void error(Logger log, IoSession session, Object message) {
- if (log.isErrorEnabled()) {
- log.error("{}{}", getPrefix(session), message);
+ public void error(Marker marker, String format, Object arg) {
+ if (usePrefix) {
+ if (isErrorEnabled()) {
+ logger.error(marker, getPrefix(session) + format, arg);
+ }
+ } else {
+ logger.error(marker, format, arg);
}
}
- public static void error(IoSession session, Throwable cause) {
- error(session, "Unexpected exception.", cause);
+ public void error(Marker marker, String format, Object[] args) {
+ if (usePrefix) {
+ if (isErrorEnabled()) {
+ logger.error(marker, getPrefix(session) + format, args);
+ }
+ } else {
+ logger.error(marker, format, args);
+ }
}
- public static void error(IoSession session, String message, Throwable cause) {
- error(getLogger(session), session, message, cause);
+ public void error(Marker marker, String msg, Throwable t) {
+ if (usePrefix) {
+ if (isErrorEnabled()) {
+ logger.error(marker, getPrefix(session) + msg, t);
+ }
+ } else {
+ logger.error(marker, msg, t);
+ }
}
- public static void error(Logger log, IoSession session, String message,
- Throwable cause) {
- if (log.isErrorEnabled()) {
- log.error(getPrefix(session) + message, cause);
+ public void error(Marker marker, String msg) {
+ if (usePrefix) {
+ if (isErrorEnabled()) {
+ logger.error(marker, getPrefix(session) + msg);
+ }
+ } else {
+ logger.error(marker, msg);
}
}
- public static boolean isDebugEnabled(IoSession session) {
- return getLogger(session).isDebugEnabled();
+ public void error(String format, Object arg1, Object arg2) {
+ if (usePrefix) {
+ if (isErrorEnabled()) {
+ logger.error(getPrefix(session) + format, arg1, arg2);
+ }
+ } else {
+ logger.error(format, arg1, arg2);
+ }
}
- public static boolean isInfoEnabled(IoSession session) {
- return getLogger(session).isInfoEnabled();
+ public void error(String format, Object arg) {
+ if (usePrefix) {
+ if (isErrorEnabled()) {
+ logger.error(getPrefix(session) + format, arg);
+ }
+ } else {
+ logger.error(format, arg);
+ }
}
- public static boolean isWarnEnabled(IoSession session) {
- return getLogger(session).isWarnEnabled();
+ public void error(String format, Object[] args) {
+ if (usePrefix) {
+ if (isErrorEnabled()) {
+ logger.error(getPrefix(session) + format, args);
+ }
+ } else {
+ logger.error(format, args);
+ }
}
- public static boolean isErrorEnabled(IoSession session) {
- return getLogger(session).isErrorEnabled();
+ public void error(String msg, Throwable t) {
+ if (usePrefix) {
+ if (isErrorEnabled()) {
+ logger.error(getPrefix(session) + msg, t);
+ }
+ } else {
+ logger.error(msg, t);
+ }
}
- public static String getPrefix(IoSession session) {
- String prefix = (String) session.getAttribute(PREFIX);
- if (prefix == null) {
- prefix = "[" + session.getRemoteAddress() + "] ";
- setPrefix(session, prefix);
+ public void error(Throwable t) {
+ error(UNEXPECTED_EXCEPTION, t);
+ }
+
+ public void error(String msg) {
+ if (usePrefix) {
+ if (isErrorEnabled()) {
+ logger.error(getPrefix(session) + msg);
+ }
+ } else {
+ logger.error(msg);
}
- return prefix;
}
- public static void setPrefix(IoSession session, String prefix) {
- session.setAttribute(PREFIX, prefix);
+ public String getName() {
+ return logger.getName();
+ }
+
+ public void info(Marker marker, String format, Object arg1, Object arg2) {
+ if (usePrefix) {
+ if (isInfoEnabled()) {
+ logger.info(marker, getPrefix(session) + format, arg1, arg2);
+ }
+ } else {
+ logger.info(marker, format, arg1, arg2);
+ }
+ }
+
+ public void info(Marker marker, String format, Object arg) {
+ if (usePrefix) {
+ if (isInfoEnabled()) {
+ logger.info(marker, getPrefix(session) + format, arg);
+ }
+ } else {
+ logger.info(marker, format, arg);
+ }
+ }
+
+ public void info(Marker marker, String format, Object[] args) {
+ if (usePrefix) {
+ if (isInfoEnabled()) {
+ logger.info(marker, getPrefix(session) + format, args);
+ }
+ } else {
+ logger.info(marker, format, args);
+ }
+ }
+
+ public void info(Marker marker, String msg, Throwable t) {
+ if (usePrefix) {
+ if (isInfoEnabled()) {
+ logger.info(marker, getPrefix(session) + msg, t);
+ }
+ } else {
+ logger.info(marker, msg, t);
+ }
+ }
+
+ public void info(Marker marker, String msg) {
+ if (usePrefix) {
+ if (isInfoEnabled()) {
+ logger.info(marker, getPrefix(session) + msg);
+ }
+ } else {
+ logger.info(marker, msg);
+ }
+ }
+
+ public void info(String format, Object arg1, Object arg2) {
+ if (usePrefix) {
+ if (isInfoEnabled()) {
+ logger.info(getPrefix(session) + format, arg1, arg2);
+ }
+ } else {
+ logger.info(format, arg1, arg2);
+ }
+ }
+
+ public void info(String format, Object arg) {
+ if (usePrefix) {
+ if (isInfoEnabled()) {
+ logger.info(getPrefix(session) + format, arg);
+ }
+ } else {
+ logger.info(format, arg);
+ }
+ }
+
+ public void info(String format, Object[] args) {
+ if (usePrefix) {
+ if (isInfoEnabled()) {
+ logger.info(getPrefix(session) + format, args);
+ }
+ } else {
+ logger.info(format, args);
+ }
+ }
+
+ public void info(String msg, Throwable t) {
+ if (usePrefix) {
+ if (isInfoEnabled()) {
+ logger.info(getPrefix(session) + msg, t);
+ }
+ } else {
+ logger.info(msg, t);
+ }
+ }
+
+ public void info(Throwable t) {
+ info(UNEXPECTED_EXCEPTION, t);
+ }
+
+ public void info(String msg) {
+ if (usePrefix) {
+ if (isInfoEnabled()) {
+ logger.info(getPrefix(session) + msg);
+ }
+ } else {
+ logger.info(msg);
+ }
+ }
+
+ public boolean isDebugEnabled() {
+ return logger.isDebugEnabled();
+ }
+
+ public boolean isDebugEnabled(Marker marker) {
+ return logger.isDebugEnabled(marker);
+ }
+
+ public boolean isErrorEnabled() {
+ return logger.isErrorEnabled();
+ }
+
+ public boolean isErrorEnabled(Marker marker) {
+ return logger.isErrorEnabled(marker);
+ }
+
+ public boolean isInfoEnabled() {
+ return logger.isInfoEnabled();
+ }
+
+ public boolean isInfoEnabled(Marker marker) {
+ return logger.isInfoEnabled(marker);
+ }
+
+ public boolean isTraceEnabled() {
+ return logger.isTraceEnabled();
+ }
+
+ public boolean isTraceEnabled(Marker marker) {
+ return logger.isTraceEnabled(marker);
+ }
+
+ public boolean isWarnEnabled() {
+ return logger.isWarnEnabled();
+ }
+
+ public boolean isWarnEnabled(Marker marker) {
+ return logger.isWarnEnabled(marker);
+ }
+
+ public void trace(Marker marker, String format, Object arg1, Object arg2) {
+ if (usePrefix) {
+ if (isTraceEnabled()) {
+ logger.trace(marker, getPrefix(session) + format, arg1, arg2);
+ }
+ } else {
+ logger.trace(marker, format, arg1, arg2);
+ }
+ }
+
+ public void trace(Marker marker, String format, Object arg) {
+ if (usePrefix) {
+ if (isTraceEnabled()) {
+ logger.trace(marker, getPrefix(session) + format, arg);
+ }
+ } else {
+ logger.trace(marker, format, arg);
+ }
+ }
+
+ public void trace(Marker marker, String format, Object[] args) {
+ if (usePrefix) {
+ if (isTraceEnabled()) {
+ logger.trace(marker, getPrefix(session) + format, args);
+ }
+ } else {
+ logger.trace(marker, format, args);
+ }
+ }
+
+ public void trace(Marker marker, String msg, Throwable t) {
+ if (usePrefix) {
+ if (isTraceEnabled()) {
+ logger.trace(marker, getPrefix(session) + msg, t);
+ }
+ } else {
+ logger.trace(marker, msg, t);
+ }
+ }
+
+ public void trace(Marker marker, String msg) {
+ if (usePrefix) {
+ if (isTraceEnabled()) {
+ logger.trace(marker, getPrefix(session) + msg);
+ }
+ } else {
+ logger.trace(marker, msg);
+ }
+ }
+
+ public void trace(String format, Object arg1, Object arg2) {
+ if (usePrefix) {
+ if (isTraceEnabled()) {
+ logger.trace(getPrefix(session) + format, arg1, arg2);
+ }
+ } else {
+ logger.trace(format, arg1, arg2);
+ }
+ }
+
+ public void trace(String format, Object arg) {
+ if (usePrefix) {
+ if (isTraceEnabled()) {
+ logger.trace(getPrefix(session) + format, arg);
+ }
+ } else {
+ logger.trace(format, arg);
+ }
+ }
+
+ public void trace(String format, Object[] args) {
+ if (usePrefix) {
+ if (isTraceEnabled()) {
+ logger.trace(getPrefix(session) + format, args);
+ }
+ } else {
+ logger.trace(format, args);
+ }
+ }
+
+ public void trace(String msg, Throwable t) {
+ if (usePrefix) {
+ if (isTraceEnabled()) {
+ logger.trace(getPrefix(session) + msg, t);
+ }
+ } else {
+ logger.trace(msg, t);
+ }
+ }
+
+ public void trace(Throwable t) {
+ trace(UNEXPECTED_EXCEPTION, t);
+ }
+
+ public void trace(String msg) {
+ if (usePrefix) {
+ if (isTraceEnabled()) {
+ logger.trace(getPrefix(session) + msg);
+ }
+ } else {
+ logger.trace(msg);
+ }
+ }
+
+ public void warn(Marker marker, String format, Object arg1, Object arg2) {
+ if (usePrefix) {
+ if (isWarnEnabled()) {
+ logger.warn(marker, getPrefix(session) + format, arg1, arg2);
+ }
+ } else {
+ logger.warn(marker, format, arg1, arg2);
+ }
+ }
+
+ public void warn(Marker marker, String format, Object arg) {
+ if (usePrefix) {
+ if (isWarnEnabled()) {
+ logger.warn(marker, getPrefix(session) + format, arg);
+ }
+ } else {
+ logger.warn(marker, format, arg);
+ }
+ }
+
+ public void warn(Marker marker, String format, Object[] args) {
+ if (usePrefix) {
+ if (isWarnEnabled()) {
+ logger.warn(marker, getPrefix(session) + format, args);
+ }
+ } else {
+ logger.warn(marker, format, args);
+ }
+ }
+
+ public void warn(Marker marker, String msg, Throwable t) {
+ if (usePrefix) {
+ if (isWarnEnabled()) {
+ logger.warn(marker, getPrefix(session) + msg, t);
+ }
+ } else {
+ logger.warn(marker, msg, t);
+ }
+ }
+
+ public void warn(Marker marker, String msg) {
+ if (usePrefix) {
+ if (isWarnEnabled()) {
+ logger.warn(marker, getPrefix(session) + msg);
+ }
+ } else {
+ logger.warn(marker, msg);
+ }
+ }
+
+ public void warn(String format, Object arg1, Object arg2) {
+ if (usePrefix) {
+ if (isWarnEnabled()) {
+ logger.warn(getPrefix(session) + format, arg1, arg2);
+ }
+ } else {
+ logger.warn(format, arg1, arg2);
+ }
+ }
+
+ public void warn(String format, Object arg) {
+ if (usePrefix) {
+ if (isWarnEnabled()) {
+ logger.warn(getPrefix(session) + format, arg);
+ }
+ } else {
+ logger.warn(format, arg);
+ }
+ }
+
+ public void warn(String format, Object[] args) {
+ if (usePrefix) {
+ if (isWarnEnabled()) {
+ logger.warn(getPrefix(session) + format, args);
+ }
+ } else {
+ logger.warn(format, args);
+ }
+ }
+
+ public void warn(String msg, Throwable t) {
+ if (usePrefix) {
+ if (isWarnEnabled()) {
+ logger.warn(getPrefix(session) + msg, t);
+ }
+ } else {
+ logger.warn(msg, t);
+ }
+ }
+
+ public void warn(Throwable t) {
+ warn(UNEXPECTED_EXCEPTION, t);
}
- public static Logger getLogger(IoSession session) {
- Logger log = (Logger) session.getAttribute(LOGGER);
- if (log == null) {
- log = LoggerFactory.getLogger(getClass(session).getName() + "."
- + IoSessionLogger.class.getSimpleName());
- setLogger(session, log);
+ public void warn(String msg) {
+ if (usePrefix) {
+ if (isWarnEnabled()) {
+ logger.warn(getPrefix(session) + msg);
+ }
+ } else {
+ logger.warn(msg);
}
- return log;
}
- public static void setLogger(IoSession session, Logger log) {
- session.setAttribute(LOGGER, log);
+ @Override
+ public String toString() {
+ return logger.toString();
}
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java Thu Oct 25 02:28:40 2007
@@ -19,8 +19,8 @@
*/
package org.apache.mina.filter.codec;
-import org.apache.mina.common.IoBuffer;
import org.apache.mina.common.AttributeKey;
+import org.apache.mina.common.IoBuffer;
import org.apache.mina.common.IoSession;
/**
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java Thu Oct 25 02:28:40 2007
@@ -22,10 +22,10 @@
import java.net.SocketAddress;
import java.util.Queue;
-import org.apache.mina.common.IoBuffer;
+import org.apache.mina.common.AttributeKey;
import org.apache.mina.common.DefaultWriteFuture;
import org.apache.mina.common.DefaultWriteRequest;
-import org.apache.mina.common.AttributeKey;
+import org.apache.mina.common.IoBuffer;
import org.apache.mina.common.IoFilter;
import org.apache.mina.common.IoFilterAdapter;
import org.apache.mina.common.IoFilterChain;
@@ -120,15 +120,15 @@
}
};
}
-
+
public ProtocolEncoder getEncoder(IoSession session) {
return (ProtocolEncoder) session.getAttribute(ENCODER);
}
-
+
public ProtocolDecoder getDecoder(IoSession session) {
return (ProtocolDecoder) session.getAttribute(DECODER);
}
-
+
@Override
public void onPreAdd(IoFilterChain parent, String name,
NextFilter nextFilter) throws Exception {
@@ -175,11 +175,11 @@
pde = new ProtocolDecoderException(t);
}
pde.setHexdump(in.getHexDump());
-
+
// Fire the exceptionCaught event.
decoderOut.flush();
nextFilter.exceptionCaught(session, pde);
-
+
// Stop retrying if the buffer position didn't change
// because retrying will cause an infinite loop.
if (in.position() == oldPos) {
@@ -306,8 +306,8 @@
try {
encoder.dispose(session);
} catch (Throwable t) {
- IoSessionLogger.warn(session, "Failed to dispose: "
- + encoder.getClass().getName() + " (" + encoder + ')');
+ IoSessionLogger.getLogger(session, getClass()).warn(
+ "Failed to dispose: " + encoder.getClass().getName() + " (" + encoder + ')');
}
}
@@ -321,8 +321,8 @@
try {
decoder.dispose(session);
} catch (Throwable t) {
- IoSessionLogger.warn(session, "Falied to dispose: "
- + decoder.getClass().getName() + " (" + decoder + ')');
+ IoSessionLogger.getLogger(session, getClass()).warn(
+ "Falied to dispose: " + decoder.getClass().getName() + " (" + decoder + ')');
}
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecSession.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecSession.java Thu Oct 25 02:28:40 2007
@@ -21,9 +21,9 @@
import java.util.Queue;
-import org.apache.mina.common.IoBuffer;
import org.apache.mina.common.DefaultWriteFuture;
import org.apache.mina.common.DummySession;
+import org.apache.mina.common.IoBuffer;
import org.apache.mina.common.IoSession;
import org.apache.mina.common.WriteFuture;
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineDecoder.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineDecoder.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineDecoder.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineDecoder.java Thu Oct 25 02:28:40 2007
@@ -6,16 +6,16 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
- * under the License.
- *
+ * under the License.
+ *
*/
package org.apache.mina.filter.codec.textline;
@@ -32,7 +32,7 @@
/**
* A {@link ProtocolDecoder} which decodes a text line into a string.
- *
+ *
* @author The Apache Directory Project (mina-dev@directory.apache.org)
* @version $Rev$, $Date$,
*/
@@ -140,7 +140,7 @@
throws CharacterCodingException {
int matchCount = ctx.getMatchCount();
-
+
// Try to find a match
int oldPos = in.position();
int oldLimit = in.limit();
@@ -205,7 +205,7 @@
throws CharacterCodingException {
int matchCount = ctx.getMatchCount();
-
+
// Convert delimiter to ByteBuffer if not done yet.
if (delimBuf == null) {
IoBuffer tmp = IoBuffer.allocate(2).setAutoExpand(true);
@@ -228,7 +228,7 @@
in.position(oldPos);
ctx.append(in);
-
+
in.limit(oldLimit);
in.position(pos);
if (ctx.getOverflowPosition() == 0) {
@@ -280,11 +280,11 @@
public IoBuffer getBuffer() {
return buf;
}
-
+
public int getOverflowPosition() {
return overflowPosition;
}
-
+
public int getMatchCount() {
return matchCount;
}
@@ -292,13 +292,13 @@
public void setMatchCount(int matchCount) {
this.matchCount = matchCount;
}
-
+
public void reset() {
overflowPosition = 0;
matchCount = 0;
decoder.reset();
}
-
+
public void append(IoBuffer in) {
if (overflowPosition != 0) {
discard(in);
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineEncoder.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineEncoder.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineEncoder.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/codec/textline/TextLineEncoder.java Thu Oct 25 02:28:40 2007
@@ -22,8 +22,8 @@
import java.nio.charset.Charset;
import java.nio.charset.CharsetEncoder;
-import org.apache.mina.common.IoBuffer;
import org.apache.mina.common.AttributeKey;
+import org.apache.mina.common.IoBuffer;
import org.apache.mina.common.IoSession;
import org.apache.mina.filter.codec.ProtocolEncoder;
import org.apache.mina.filter.codec.ProtocolEncoderAdapter;
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/executor/ExecutorFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/executor/ExecutorFilter.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/executor/ExecutorFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/executor/ExecutorFilter.java Thu Oct 25 02:28:40 2007
@@ -108,7 +108,7 @@
getExecutor().execute(new ProcessEventsRunnable(buf));
}
}
-
+
private SessionBuffer getSessionBuffer(IoSession session) {
synchronized (session) {
SessionBuffer buf = (SessionBuffer) session.getAttribute(BUFFER);
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/firewall/BlacklistFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/firewall/BlacklistFilter.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/firewall/BlacklistFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/firewall/BlacklistFilter.java Thu Oct 25 02:28:40 2007
@@ -180,7 +180,7 @@
}
private void blockSession(IoSession session) {
- IoSessionLogger.info(session, "Remote address in the blacklist; closing.");
+ IoSessionLogger.getLogger(session, getClass()).warn("Remote address in the blacklist; closing.");
session.close();
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/firewall/ConnectionThrottleFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/firewall/ConnectionThrottleFilter.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/firewall/ConnectionThrottleFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/firewall/ConnectionThrottleFilter.java Thu Oct 25 02:28:40 2007
@@ -92,17 +92,17 @@
long now = System.currentTimeMillis();
if (clients.containsKey(addr.getAddress().getHostAddress())) {
-
- IoSessionLogger.info(session, "This is not a new client");
+
+ IoSessionLogger.getLogger(session, getClass()).debug("This is not a new client");
Long lastConnTime = clients.get(addr.getAddress()
.getHostAddress());
clients.put(addr.getAddress().getHostAddress(), now);
-
+
// if the interval between now and the last connection is
// less than the allowed interval, return false
if (now - lastConnTime < allowedInterval) {
- IoSessionLogger.error(session,
+ IoSessionLogger.getLogger(session, getClass()).warn(
"Session connection interval too short");
return false;
} else {
@@ -121,8 +121,8 @@
public void sessionCreated(NextFilter nextFilter, IoSession session)
throws Exception {
if (!isConnectionOk(session)) {
- IoSessionLogger
- .info(session, "Connections coming in too fast; closing.");
+ IoSessionLogger.getLogger(session, getClass()).warn(
+ "Connections coming in too fast; closing.");
session.close();
}
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/AbstractKeepAliveFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/AbstractKeepAliveFilter.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/AbstractKeepAliveFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/AbstractKeepAliveFilter.java Thu Oct 25 02:28:40 2007
@@ -5,7 +5,7 @@
/**
* Abstract superclass for KeepAliveFilters.
* Implements a few common variables and constructors.
- *
+ *
* @author The Apache MINA Project (dev@mina.apache.org)
* @version $Rev$, $Date$
*/
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/ActiveKeepAliveFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/ActiveKeepAliveFilter.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/ActiveKeepAliveFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/ActiveKeepAliveFilter.java Thu Oct 25 02:28:40 2007
@@ -12,13 +12,13 @@
* and filter keepalive responses. If no responses are received
* in a specified timeframe, the filter will close the IoSession.
* This filter has state information so it should not be shared by
- * multiple connections.
- *
+ * multiple connections.
+ *
* @author The Apache MINA Project (dev@mina.apache.org)
* @version $Rev$, $Date$
- *
+ *
* FIXME: Convert to IoFilter
- *
+ *
* @see org.apache.mina.handler.chain.ChainedIoHandler
*/
public class ActiveKeepAliveFilter extends AbstractKeepAliveFilter {
@@ -70,8 +70,9 @@
private Runnable createUpdateTask() {
return new Runnable() {
public void run() {
- if (session.isClosing())
+ if (session.isClosing()) {
return;
+ }
final long currentTime = System.currentTimeMillis();
// check whether to break connection
@@ -98,8 +99,9 @@
}
// schedule next update
- if (delayToBreak < delayToPing)
+ if (delayToBreak < delayToPing) {
delayToPing = delayToBreak;
+ }
scheduler.schedule(this, delayToPing, TimeUnit.MILLISECONDS);
}
};
@@ -112,11 +114,13 @@
public void execute(NextCommand next, IoSession session, Object message)
throws Exception {
if (pongMessage.equals(message)) {
- if (logger.isDebugEnabled())
+ if (logger.isDebugEnabled()) {
logger.debug("Received pong message from "
+ session.getRemoteAddress());
+ }
lastResponseTime = System.currentTimeMillis();
- } else
+ } else {
next.execute(session, message);
+ }
}
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/KeepAliveFilterFactory.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/KeepAliveFilterFactory.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/KeepAliveFilterFactory.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/KeepAliveFilterFactory.java Thu Oct 25 02:28:40 2007
@@ -8,10 +8,10 @@
* A factory that creates protocol level filters, that implement
* a simple keepalive routine for the connection. The factory has
* "settings" so it is not safe to be used by concurrent threads.
- *
+ *
* @author The Apache MINA Project (dev@mina.apache.org)
* @version $Rev$, $Date$
- *
+ *
* @see org.apache.mina.handler.chain.ChainedIoHandler
*/
public class KeepAliveFilterFactory {
@@ -47,19 +47,22 @@
}
public void setScheduler(ScheduledExecutorService scheduler) {
- if (scheduler != null)
+ if (scheduler != null) {
this.scheduler = scheduler;
+ }
}
public void setPingMessage(Object pingMessage) {
- if (this.pingMessage != pingMessage)
+ if (this.pingMessage != pingMessage) {
cache = null;
+ }
this.pingMessage = pingMessage;
}
public void setPongMessage(Object pongMessage) {
- if (this.pongMessage != pongMessage)
+ if (this.pongMessage != pongMessage) {
cache = null;
+ }
this.pongMessage = pongMessage;
}
@@ -75,7 +78,7 @@
* Creates a new ActiveKeepAliveFilter for the IoSession
* <code>session</code>.
* @param session Iosession of the connection.
- * @return new ActiveKeepAliveFilter for <code>session</code>.
+ * @return new ActiveKeepAliveFilter for <code>session</code>.
*/
public ActiveKeepAliveFilter createActiveKeepAliveFilter(IoSession session) {
return new ActiveKeepAliveFilter(session, scheduler, pingingInterval,
@@ -86,8 +89,9 @@
* @return a PassiveKeepAliveFilter.
*/
public PassiveKeepAliveFilter createPassiveKeepAliveFilter() {
- if (cache == null)
+ if (cache == null) {
cache = new PassiveKeepAliveFilter(pingMessage, pongMessage);
+ }
return cache;
}
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/PassiveKeepAliveFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/PassiveKeepAliveFilter.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/PassiveKeepAliveFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/keepalive/PassiveKeepAliveFilter.java Thu Oct 25 02:28:40 2007
@@ -7,8 +7,8 @@
/**
* A protocol level filter which filters keepalive messages and sends
* keepalive responses. This class is stateless and may be shared by
- * several connections.
- *
+ * several connections.
+ *
* @author The Apache MINA Project (dev@mina.apache.org)
* @version $Rev$, $Date$
*/
@@ -34,15 +34,17 @@
/**
* If <code>pingMessage</code> equals <code>message</code> ,
* reply with <code>pongMessage</code>. Otherwise forward to
- * <code>next</code>.
+ * <code>next</code>.
*/
public void execute(NextCommand next, IoSession session, Object message)
throws Exception {
if (pingMessage.equals(message)) {
- if (logger.isDebugEnabled())
+ if (logger.isDebugEnabled()) {
logger.debug("Replying PONG");
+ }
session.write(pongMessage);
- } else
+ } else {
next.execute(session, message);
+ }
}
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LoggingFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LoggingFilter.java?rev=588178&r1=588177&r2=588178&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LoggingFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LoggingFilter.java Thu Oct 25 02:28:40 2007
@@ -28,6 +28,8 @@
import org.apache.mina.common.IoSessionLogger;
import org.apache.mina.common.WriteRequest;
import org.apache.mina.util.CopyOnWriteMap;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Logs all MINA protocol events using the {@link IoSessionLogger}. Each event can be
@@ -48,11 +50,11 @@
*/
public static final LogLevel NONE = new LogLevel() {
@Override
- void log(IoSession session, String message) {
+ void log(IoSession session, Logger logger, String message) {
}
@Override
- void log(IoSession session, String message, Throwable cause) {
+ void log(IoSession session, Logger logger, String message, Throwable cause) {
}
@Override
@@ -66,13 +68,13 @@
*/
public static final LogLevel TRACE = new LogLevel() {
@Override
- void log(IoSession session, String message) {
- IoSessionLogger.trace(session, message);
+ void log(IoSession session, Logger logger, String message) {
+ IoSessionLogger.getLogger(session, logger).trace(message);
}
@Override
- void log(IoSession session, String message, Throwable cause) {
- IoSessionLogger.trace(session, message, cause);
+ void log(IoSession session, Logger logger, String message, Throwable cause) {
+ IoSessionLogger.getLogger(session, logger).trace(message, cause);
}
@Override
@@ -86,13 +88,13 @@
*/
public static final LogLevel DEBUG = new LogLevel() {
@Override
- void log(IoSession session, String message) {
- IoSessionLogger.debug(session, message);
+ void log(IoSession session, Logger logger, String message) {
+ IoSessionLogger.getLogger(session, logger).debug(message);
}
@Override
- void log(IoSession session, String message, Throwable cause) {
- IoSessionLogger.debug(session, message, cause);
+ void log(IoSession session, Logger logger, String message, Throwable cause) {
+ IoSessionLogger.getLogger(session, logger).debug(message, cause);
}
@Override
@@ -106,13 +108,13 @@
*/
public static final LogLevel INFO = new LogLevel() {
@Override
- void log(IoSession session, String message) {
- IoSessionLogger.info(session, message);
+ void log(IoSession session, Logger logger, String message) {
+ IoSessionLogger.getLogger(session, logger).info(message);
}
@Override
- void log(IoSession session, String message, Throwable cause) {
- IoSessionLogger.info(session, message, cause);
+ void log(IoSession session, Logger logger, String message, Throwable cause) {
+ IoSessionLogger.getLogger(session, logger).info(message, cause);
}
@Override
@@ -126,13 +128,13 @@
*/
public static final LogLevel WARN = new LogLevel() {
@Override
- void log(IoSession session, String message) {
- IoSessionLogger.warn(session, message);
+ void log(IoSession session, Logger logger, String message) {
+ IoSessionLogger.getLogger(session, logger).warn(message);
}
@Override
- void log(IoSession session, String message, Throwable cause) {
- IoSessionLogger.warn(session, message, cause);
+ void log(IoSession session, Logger logger, String message, Throwable cause) {
+ IoSessionLogger.getLogger(session, logger).warn(message, cause);
}
@Override
@@ -146,13 +148,13 @@
*/
public static final LogLevel ERROR = new LogLevel() {
@Override
- void log(IoSession session, String message) {
- IoSessionLogger.error(session, message);
+ void log(IoSession session, Logger logger, String message) {
+ IoSessionLogger.getLogger(session, logger).error(message);
}
@Override
- void log(IoSession session, String message, Throwable cause) {
- IoSessionLogger.error(session, message, cause);
+ void log(IoSession session, Logger logger, String message, Throwable cause) {
+ IoSessionLogger.getLogger(session, logger).error(message, cause);
}
@Override
@@ -162,11 +164,29 @@
};
private final Map<IoEventType, LogLevel> logSettings = new CopyOnWriteMap<IoEventType, LogLevel>();
+ private final String name;
+ private final Logger logger;
/**
* Default Constructor.
*/
public LoggingFilter() {
+ this((String) null);
+ }
+
+ public LoggingFilter(Class<?> clazz) {
+ this(clazz.getName());
+ }
+
+ public LoggingFilter(String name) {
+ this.name = name;
+
+ if (name != null) {
+ this.logger = LoggerFactory.getLogger(name);
+ } else {
+ this.logger = null;
+ }
+
// Exceptions will be logged to WARN as default.
setLogLevel(IoEventType.EXCEPTION_CAUGHT, WARN);
setLogLevel(IoEventType.MESSAGE_RECEIVED, INFO);
@@ -177,55 +197,59 @@
setLogLevel(IoEventType.SESSION_OPENED, INFO);
}
+ public String getName() {
+ return name;
+ }
+
@Override
public void exceptionCaught(NextFilter nextFilter, IoSession session,
Throwable cause) throws Exception {
- getLogLevel(IoEventType.EXCEPTION_CAUGHT).log(session, "EXCEPTION: ",
- cause);
+ getLogLevel(IoEventType.EXCEPTION_CAUGHT).log(
+ session, logger, "EXCEPTION: ", cause);
nextFilter.exceptionCaught(session, cause);
}
@Override
public void messageReceived(NextFilter nextFilter, IoSession session,
Object message) throws Exception {
- getLogLevel(IoEventType.MESSAGE_RECEIVED).log(session,
- "RECEIVED: " + message);
+ getLogLevel(IoEventType.MESSAGE_RECEIVED).log(
+ session, logger, "RECEIVED: " + message);
nextFilter.messageReceived(session, message);
}
@Override
public void messageSent(NextFilter nextFilter, IoSession session,
WriteRequest writeRequest) throws Exception {
- getLogLevel(IoEventType.MESSAGE_SENT).log(session,
- "SENT: " + writeRequest.getMessage());
+ getLogLevel(IoEventType.MESSAGE_SENT).log(
+ session, logger, "SENT: " + writeRequest.getMessage());
nextFilter.messageSent(session, writeRequest);
}
@Override
public void sessionClosed(NextFilter nextFilter, IoSession session)
throws Exception {
- getLogLevel(IoEventType.SESSION_CLOSED).log(session, "CLOSED");
+ getLogLevel(IoEventType.SESSION_CLOSED).log(session, logger, "CLOSED");
nextFilter.sessionClosed(session);
}
@Override
public void sessionCreated(NextFilter nextFilter, IoSession session)
throws Exception {
- getLogLevel(IoEventType.SESSION_CREATED).log(session, "CREATED");
+ getLogLevel(IoEventType.SESSION_CREATED).log(session, logger, "CREATED");
nextFilter.sessionCreated(session);
}
@Override
public void sessionIdle(NextFilter nextFilter, IoSession session,
IdleStatus status) throws Exception {
- getLogLevel(IoEventType.SESSION_IDLE).log(session, "IDLE: " + status);
+ getLogLevel(IoEventType.SESSION_IDLE).log(session, logger, "IDLE: " + status);
nextFilter.sessionIdle(session, status);
}
@Override
public void sessionOpened(NextFilter nextFilter, IoSession session)
throws Exception {
- getLogLevel(IoEventType.SESSION_OPENED).log(session, "OPENED");
+ getLogLevel(IoEventType.SESSION_OPENED).log(session, logger, "OPENED");
nextFilter.sessionOpened(session);
}
@@ -416,8 +440,8 @@
private LogLevel() {
}
- abstract void log(IoSession session, String message);
+ abstract void log(IoSession session, Logger logger, String message);
- abstract void log(IoSession session, String message, Throwable cause);
+ abstract void log(IoSession session, Logger logger, String message, Throwable cause);
}
}