[
http://jira.jboss.com/jira/browse/JBREM-692?page=comments#action_12352282 ]
Ron Sigal commented on JBREM-692:
---------------------------------
Two new interfaces, org.jboss.remoting.marshal.PreferredStreamMarshaller and
org.jboss.remoting.marshal.PreferredStreamUnMarshaller, have been introduced:
public interface PreferredStreamMarshaller extends SerialMarshaller
{
OutputStream getMarshallingStream(OutputStream outputStream) throws IOException;
Stream getMarshallingStream(OutputStream outputStream, Map config) throws
IOException;
}
and
public interface PreferredStreamUnMarshaller extends SerialUnMarshaller
{
InputStream getMarshallingStream(InputStream inputStream) throws IOException;
InputStream getMarshallingStream(InputStream inputStream, Map config) throws
IOException;
}
A marshaller that implements PreferredStreamMarshaller will return, when supplied with a
basic OutputStream such as SocketOutputStream, will return the OutputStream it prefers to
use and which may be cached by the transport layer. For example,
org.jboss.remoting.marshal.serializable.SerializableMarshaller will return an
ObjectOutputStream wrapped around a BufferedOutputStream. Similarly, an unmarshaller that
implements preferredStreamUnMarshaller will return, when supplied with a basic InputStream
such as SocketIntputStream, will return the IntputStream it prefers to use. For example,
org.jboss.remoting.marshal.serializable.SerializableUnMarshaller will return an
ObjectInputStream wrapped around a BufferedInputStream.
Currently the socket transport and its descendants (sslsocket, bisocket, and sslbisocket)
recognize PreferredStreamMarshallers and PreferredStreamUnMarshallers.
Let marshallers/unmarshallers construct their preferred streams.
----------------------------------------------------------------
Key: JBREM-692
URL:
http://jira.jboss.com/jira/browse/JBREM-692
Project: JBoss Remoting
Issue Type: Feature Request
Security Level: Public(Everyone can see)
Affects Versions: 2.2.0.Beta1 (Bluto)
Reporter: Ron Sigal
Assigned To: Ron Sigal
Fix For: 2.2.0.Beta1 (Bluto)
In response to JBREM-597 the socket transport was changed to provide raw socket streams
to the marshaller layer. This leads to several issues:
1. JBREM-623
2. JBREM-631
3. The result of JBREM-597 is that (un)marshallers like Serializable(Un)Marshaller that
use object streams need to recreate object streams with each invocation, which is time
consuming.
A solution, suggested by Tom Elrod, is to allow the marshaller layer to construct the
streams it prefers to work with, which can then be cached at the transport layer.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira