You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by jv...@apache.org on 2011/07/04 22:09:37 UTC
svn commit: r1142792 - in /mina/branches/3.0/core/src:
main/java/org/apache/mina/IoFilter.java
main/java/org/apache/mina/IoFilterChain.java
main/java/org/apache/mina/filterchain/DefaultIoFilterChain.java
test/java/filterchain/DefaultIoFilterChainTest.java
Author: jvermillard
Date: Mon Jul 4 20:09:37 2011
New Revision: 1142792
URL: http://svn.apache.org/viewvc?rev=1142792&view=rev
Log:
fixing typos,
processing message for writing in the chain
Modified:
mina/branches/3.0/core/src/main/java/org/apache/mina/IoFilter.java
mina/branches/3.0/core/src/main/java/org/apache/mina/IoFilterChain.java
mina/branches/3.0/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterChain.java
mina/branches/3.0/core/src/test/java/filterchain/DefaultIoFilterChainTest.java
Modified: mina/branches/3.0/core/src/main/java/org/apache/mina/IoFilter.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/IoFilter.java?rev=1142792&r1=1142791&r2=1142792&view=diff
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/IoFilter.java (original)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/IoFilter.java Mon Jul 4 20:09:37 2011
@@ -78,9 +78,11 @@ public interface IoFilter {
* Invoked when a message is under writing. The filter is supposed to apply the needed transformation.
*
* @param session {@link IoSession} associated with the invocation
+ * @param message the message to process before writing
* @throws Exception Exception If an error occurs while processing
+ * @return the message after processing
*/
- void messageWritting(IoSession session, Object message) throws Exception;
+ Object messageWriting(IoSession session, Object message) throws Exception;
/**
* Invoked when an exception occurs while executing the method
Modified: mina/branches/3.0/core/src/main/java/org/apache/mina/IoFilterChain.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/IoFilterChain.java?rev=1142792&r1=1142791&r2=1142792&view=diff
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/IoFilterChain.java (original)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/IoFilterChain.java Mon Jul 4 20:09:37 2011
@@ -122,9 +122,18 @@ public interface IoFilterChain {
/**
* Call this method for processing a received message using this chain.
+ * This processing is done in reverse order.
* @param session {@link IoSession} associated with this message
- * @param messagethe received message
+ * @param message the received message
* @return the message after the processing of each filter
*/
Object processMessageReceived(IoSession session, Object message);
+
+ /**
+ * Call this method for processing a message for writing using this chain.
+ * @param session {@link IoSession} associated with this message
+ * @param message the message to write
+ * @return the message after the processing
+ */
+ Object processMessageWriting(IoSession session, Object message);
}
\ No newline at end of file
Modified: mina/branches/3.0/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterChain.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterChain.java?rev=1142792&r1=1142791&r2=1142792&view=diff
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterChain.java (original)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterChain.java Mon Jul 4 20:09:37 2011
@@ -116,11 +116,27 @@ public class DefaultIoFilterChain implem
try {
message = filter.messageReceived(session, message);
} catch (Exception e) {
- LOG.error("Exception caught during processing session created event", e);
+ LOG.error("Exception caught during processing message received event", e);
// we re-forward the catched Exception
processExceptionCaught(session, e);
}
}
return message;
}
+
+ @Override
+ public Object processMessageWriting(IoSession session, Object message) {
+ int len = chain.size();
+ for (int i = 1; i <= len; i++) {
+ try {
+ message = chain.get(len - i).messageWriting(session, message);
+ } catch (Exception e) {
+ LOG.error("Exception caught during processing message writing event", e);
+ // we re-forward the catched Exception
+ processExceptionCaught(session, e);
+ }
+ }
+ return message;
+ }
+
}
\ No newline at end of file
Modified: mina/branches/3.0/core/src/test/java/filterchain/DefaultIoFilterChainTest.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/test/java/filterchain/DefaultIoFilterChainTest.java?rev=1142792&r1=1142791&r2=1142792&view=diff
==============================================================================
--- mina/branches/3.0/core/src/test/java/filterchain/DefaultIoFilterChainTest.java (original)
+++ mina/branches/3.0/core/src/test/java/filterchain/DefaultIoFilterChainTest.java Mon Jul 4 20:09:37 2011
@@ -125,7 +125,8 @@ public class DefaultIoFilterChainTest {
}
@Override
- public void messageWritting(IoSession session, Object message) throws Exception {
+ public Object messageWriting(IoSession session, Object message) throws Exception {
+ return message;
}
@Override