Author: trustin
Date: Tue Nov 13 21:27:14 2007
New Revision: 594773
URL: http://svn.apache.org/viewvc?rev=594773&view=rev
Log:
* Added WriteRequest.getOriginalRequest
* Renamed WriteRequestWrapper.getWriteRequest() to getParentRequest()
* Simplified WriteException
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteRequest.java
mina/trunk/core/src/main/java/org/apache/mina/common/WriteException.java
mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequest.java
mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequestWrapper.java
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/util/WriteRequestFilter.java
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteRequest.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteRequest.java?rev=594773&r1=594772&r2=594773&view=diff
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteRequest.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultWriteRequest.java
Tue Nov 13 21:27:14 2007
@@ -96,9 +96,7 @@
};
private final Object message;
-
private final WriteFuture future;
-
private final SocketAddress destination;
/**
@@ -140,25 +138,18 @@
this.destination = destination;
}
- /**
- * Returns [EMAIL PROTECTED] WriteFuture} that is associated with this
write request.
- */
public WriteFuture getFuture() {
return future;
}
- /**
- * Returns a message object to be written.
- */
public Object getMessage() {
return message;
}
- /**
- * Returne the destination of this write request.
- *
- * @return <tt>null</tt> for the default destination
- */
+ public WriteRequest getOriginalRequest() {
+ return this;
+ }
+
public SocketAddress getDestination() {
return destination;
}
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/WriteException.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/WriteException.java?rev=594773&r1=594772&r2=594773&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/WriteException.java
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/WriteException.java
Tue Nov 13 21:27:14 2007
@@ -23,7 +23,11 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Set;
+
+import org.apache.mina.util.MapBackedSet;
/**
* An exception which is thrown when one or more write operations were failed.
@@ -125,11 +129,13 @@
throw new IllegalArgumentException("requests is empty.");
}
- List<WriteRequest> newRequests = new
ArrayList<WriteRequest>(requests.size());
+ // Create a list of requests removing duplicates.
+ Set<WriteRequest> newRequests = new MapBackedSet<WriteRequest>(new
LinkedHashMap<WriteRequest, Boolean>());
for (WriteRequest r: requests) {
- newRequests.add(unwrapRequest(r));
+ newRequests.add(r.getOriginalRequest());
}
- return Collections.unmodifiableList(newRequests);
+
+ return Collections.unmodifiableList(new
ArrayList<WriteRequest>(newRequests));
}
private static List<WriteRequest> asRequestList(WriteRequest request) {
@@ -138,14 +144,7 @@
}
List<WriteRequest> requests = new ArrayList<WriteRequest>(1);
- requests.add(unwrapRequest(request));
+ requests.add(request.getOriginalRequest());
return Collections.unmodifiableList(requests);
- }
-
- private static WriteRequest unwrapRequest(WriteRequest request) {
- while (request instanceof WriteRequestWrapper) {
- request = ((WriteRequestWrapper) request).getWriteRequest();
- }
- return request;
}
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequest.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequest.java?rev=594773&r1=594772&r2=594773&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequest.java
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequest.java Tue
Nov 13 21:27:14 2007
@@ -29,10 +29,16 @@
*/
public interface WriteRequest {
/**
+ * Returns the [EMAIL PROTECTED] WriteRequest} which was requested
originally,
+ * which is not transformed by any [EMAIL PROTECTED] IoFilter}.
+ */
+ WriteRequest getOriginalRequest();
+
+ /**
* Returns [EMAIL PROTECTED] WriteFuture} that is associated with this
write request.
*/
WriteFuture getFuture();
-
+
/**
* Returns a message object to be written.
*/
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequestWrapper.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequestWrapper.java?rev=594773&r1=594772&r2=594773&view=diff
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequestWrapper.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/common/WriteRequestWrapper.java
Tue Nov 13 21:27:14 2007
@@ -29,35 +29,39 @@
*/
public class WriteRequestWrapper implements WriteRequest {
- private final WriteRequest writeRequest;
+ private final WriteRequest parentRequest;
/**
* Creates a new instance that wraps the specified request.
*/
- public WriteRequestWrapper(WriteRequest writeRequest) {
- if (writeRequest == null) {
- throw new NullPointerException("writeRequest");
+ public WriteRequestWrapper(WriteRequest parentRequest) {
+ if (parentRequest == null) {
+ throw new NullPointerException("parentRequest");
}
- this.writeRequest = writeRequest;
+ this.parentRequest = parentRequest;
}
public SocketAddress getDestination() {
- return writeRequest.getDestination();
+ return parentRequest.getDestination();
}
public WriteFuture getFuture() {
- return writeRequest.getFuture();
+ return parentRequest.getFuture();
}
public Object getMessage() {
- return writeRequest.getMessage();
+ return parentRequest.getMessage();
+ }
+
+ public WriteRequest getOriginalRequest() {
+ return parentRequest.getOriginalRequest();
}
/**
* Returns the wrapped request object.
*/
- public WriteRequest getWriteRequest() {
- return writeRequest;
+ public WriteRequest getParentRequest() {
+ return parentRequest;
}
@Override
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=594773&r1=594772&r2=594773&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
Tue Nov 13 21:27:14 2007
@@ -206,7 +206,7 @@
}
MessageWriteRequest wrappedRequest = (MessageWriteRequest)
writeRequest;
- nextFilter.messageSent(session, wrappedRequest.getWriteRequest());
+ nextFilter.messageSent(session, wrappedRequest.getParentRequest());
}
@Override
Modified:
mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java?rev=594773&r1=594772&r2=594773&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java Tue
Nov 13 21:27:14 2007
@@ -444,7 +444,7 @@
WriteRequest writeRequest) {
if (writeRequest instanceof EncryptedWriteRequest) {
EncryptedWriteRequest wrappedRequest = (EncryptedWriteRequest)
writeRequest;
- nextFilter.messageSent(session, wrappedRequest.getWriteRequest());
+ nextFilter.messageSent(session, wrappedRequest.getParentRequest());
} else {
// ignore extra buffers used for handshaking
}
Modified:
mina/trunk/core/src/main/java/org/apache/mina/filter/util/WriteRequestFilter.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/util/WriteRequestFilter.java?rev=594773&r1=594772&r2=594773&view=diff
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/filter/util/WriteRequestFilter.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/filter/util/WriteRequestFilter.java
Tue Nov 13 21:27:14 2007
@@ -61,7 +61,7 @@
if (writeRequest instanceof FilteredWriteRequest) {
FilteredWriteRequest req = (FilteredWriteRequest) writeRequest;
if (req.getParent() == this) {
- nextFilter.messageSent(session, req.getWriteRequest());
+ nextFilter.messageSent(session, req.getParentRequest());
return;
}
}