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 2013/06/10 22:42:45 UTC
git commit: added some javadoc
Updated Branches:
refs/heads/trunk 557b2fa5c -> 411ed0049
added some javadoc
Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/411ed004
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/411ed004
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/411ed004
Branch: refs/heads/trunk
Commit: 411ed00493488a4c3e2a511136d01f4f76cfb582
Parents: 557b2fa
Author: jvermillard <jv...@apache.org>
Authored: Mon Jun 10 22:42:12 2013 +0200
Committer: jvermillard <jv...@apache.org>
Committed: Mon Jun 10 22:42:12 2013 +0200
----------------------------------------------------------------------
.../mina/codec/delimited/ByteBufferEncoder.java | 12 +++---
.../mina/codec/delimited/ProtobufDecoder.java | 6 ++-
.../mina/codec/delimited/ProtobufEncoder.java | 8 +++-
.../serialization/ThriftMessageDecoder.java | 42 +++++++++++++++-----
.../serialization/ThriftMessageEncoder.java | 26 +++++++++---
5 files changed, 68 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina/blob/411ed004/codec/src/main/java/org/apache/mina/codec/delimited/ByteBufferEncoder.java
----------------------------------------------------------------------
diff --git a/codec/src/main/java/org/apache/mina/codec/delimited/ByteBufferEncoder.java b/codec/src/main/java/org/apache/mina/codec/delimited/ByteBufferEncoder.java
index 5dbc786..23060a9 100644
--- a/codec/src/main/java/org/apache/mina/codec/delimited/ByteBufferEncoder.java
+++ b/codec/src/main/java/org/apache/mina/codec/delimited/ByteBufferEncoder.java
@@ -35,13 +35,13 @@ import org.apache.mina.codec.StatelessProtocolEncoder;
* ByteBuffer.
* </p>
*
- * @param <OUTPUT>
+ * @param <INPUT>
* the type of the messages which will be encoded in ByteBuffers and
* decoded from ByteBuffers.
*
* @author <a href="http://mina.apache.org">Apache MINA Project</a>
*/
-public abstract class ByteBufferEncoder<OUTPUT> implements StatelessProtocolEncoder<OUTPUT, ByteBuffer> {
+public abstract class ByteBufferEncoder<INPUT> implements StatelessProtocolEncoder<INPUT, ByteBuffer> {
/**
* Being stateless, this method is left empty
@@ -62,7 +62,7 @@ public abstract class ByteBufferEncoder<OUTPUT> implements StatelessProtocolEnco
* @return the buffer containing {@link ByteBuffer} representation of the
* message
*/
- public ByteBuffer encode(OUTPUT message) {
+ public ByteBuffer encode(INPUT message) {
ByteBuffer buffer = ByteBuffer.allocate(getEncodedSize(message));
int oldPos = buffer.position();
writeTo(message, buffer);
@@ -79,7 +79,7 @@ public abstract class ByteBufferEncoder<OUTPUT> implements StatelessProtocolEnco
*/
@Override
- public final ByteBuffer encode(OUTPUT message, Void context) {
+ public final ByteBuffer encode(INPUT message, Void context) {
return encode(message);
}
@@ -91,7 +91,7 @@ public abstract class ByteBufferEncoder<OUTPUT> implements StatelessProtocolEnco
* a message to be encoded
* @return the size of the serialized form of the message
*/
- public abstract int getEncodedSize(OUTPUT message);
+ public abstract int getEncodedSize(INPUT message);
/**
* Writes a message on a {@link ByteBuffer}.
@@ -106,6 +106,6 @@ public abstract class ByteBufferEncoder<OUTPUT> implements StatelessProtocolEnco
* @param buffer
* a target {@link ByteBuffer}
*/
- public abstract void writeTo(OUTPUT message, ByteBuffer buffer);
+ public abstract void writeTo(INPUT message, ByteBuffer buffer);
}
http://git-wip-us.apache.org/repos/asf/mina/blob/411ed004/protobuf/src/main/java/org/apache/mina/codec/delimited/ProtobufDecoder.java
----------------------------------------------------------------------
diff --git a/protobuf/src/main/java/org/apache/mina/codec/delimited/ProtobufDecoder.java b/protobuf/src/main/java/org/apache/mina/codec/delimited/ProtobufDecoder.java
index 08d3c3b..dfdf889 100644
--- a/protobuf/src/main/java/org/apache/mina/codec/delimited/ProtobufDecoder.java
+++ b/protobuf/src/main/java/org/apache/mina/codec/delimited/ProtobufDecoder.java
@@ -26,9 +26,11 @@ import com.google.protobuf.ExtensionRegistryLite;
import com.google.protobuf.GeneratedMessage;
/**
+ * Decode Protocol Buffer messages of type OUTPUT
+ *
* @author <a href="http://mina.apache.org">Apache MINA Project</a>
*/
-public class ProtobufDecoder<M extends GeneratedMessage> extends SizePrefixedDecoder<M> {
+public class ProtobufDecoder<OUTPUT extends GeneratedMessage> extends SizePrefixedDecoder<OUTPUT> {
public static <L extends GeneratedMessage> ProtobufDecoder<L> newInstance(Class<L> clazz,
ExtensionRegistryLite registry) throws NoSuchMethodException {
return new ProtobufDecoder<L>(clazz, registry);
@@ -39,7 +41,7 @@ public class ProtobufDecoder<M extends GeneratedMessage> extends SizePrefixedDec
return newInstance(clazz, ExtensionRegistryLite.getEmptyRegistry());
}
- public ProtobufDecoder(Class<M> clazz, ExtensionRegistryLite registry) throws NoSuchMethodException {
+ public ProtobufDecoder(Class<OUTPUT> clazz, ExtensionRegistryLite registry) throws NoSuchMethodException {
super(new VarInt.Decoder(), ProtobufMessageDecoder.newInstance(clazz, registry));
}
}
http://git-wip-us.apache.org/repos/asf/mina/blob/411ed004/protobuf/src/main/java/org/apache/mina/codec/delimited/ProtobufEncoder.java
----------------------------------------------------------------------
diff --git a/protobuf/src/main/java/org/apache/mina/codec/delimited/ProtobufEncoder.java b/protobuf/src/main/java/org/apache/mina/codec/delimited/ProtobufEncoder.java
index 68a4afa..836212f 100644
--- a/protobuf/src/main/java/org/apache/mina/codec/delimited/ProtobufEncoder.java
+++ b/protobuf/src/main/java/org/apache/mina/codec/delimited/ProtobufEncoder.java
@@ -25,15 +25,19 @@ import org.apache.mina.codec.delimited.serialization.ProtobufMessageEncoder;
import com.google.protobuf.GeneratedMessage;
/**
+ * Encode for protocol buffer messages.
+ *
+ * @param INPUT base type for the encoded messages
+ *
* @author <a href="http://mina.apache.org">Apache MINA Project</a>
*/
-public class ProtobufEncoder<OUT extends GeneratedMessage> extends SizePrefixedEncoder<OUT> {
+public class ProtobufEncoder<INPUT extends GeneratedMessage> extends SizePrefixedEncoder<INPUT> {
public static <L extends GeneratedMessage> ProtobufEncoder<L> newInstance(Class<L> clazz) {
return new ProtobufEncoder<L>(clazz);
}
- public ProtobufEncoder(Class<OUT> clazz) {
+ public ProtobufEncoder(Class<INPUT> clazz) {
super(new VarInt.Encoder(), ProtobufMessageEncoder.newInstance(clazz));
}
}
http://git-wip-us.apache.org/repos/asf/mina/blob/411ed004/thrift/src/main/java/org/apache/mina/codec/delimited/serialization/ThriftMessageDecoder.java
----------------------------------------------------------------------
diff --git a/thrift/src/main/java/org/apache/mina/codec/delimited/serialization/ThriftMessageDecoder.java b/thrift/src/main/java/org/apache/mina/codec/delimited/serialization/ThriftMessageDecoder.java
index a25c20e..3a1cfb4 100644
--- a/thrift/src/main/java/org/apache/mina/codec/delimited/serialization/ThriftMessageDecoder.java
+++ b/thrift/src/main/java/org/apache/mina/codec/delimited/serialization/ThriftMessageDecoder.java
@@ -21,36 +21,58 @@ package org.apache.mina.codec.delimited.serialization;
import java.nio.ByteBuffer;
+import org.apache.mina.codec.ProtocolDecoderException;
import org.apache.mina.codec.delimited.ByteBufferDecoder;
import org.apache.thrift.TBase;
import org.apache.thrift.TDeserializer;
+import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
-public class ThriftMessageDecoder<IN extends TBase<?, ?>> extends ByteBufferDecoder<IN> {
+/**
+ * Decode {@link ByteBuffer} into Thrift messages.
+ *
+ * @param <OUTPUT> the base type for decoded messages.
+ *
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ */
+public class ThriftMessageDecoder<OUTPUT extends TBase<?, ?>> extends ByteBufferDecoder<OUTPUT> {
private TDeserializer deserializer = new TDeserializer(new TBinaryProtocol.Factory());
- private final Class<IN> clazz;
+ private final Class<OUTPUT> clazz;
+
+ /**
+ * Create thrift message decoder
+ *
+ * @param clazz the base class for decoded messages
+ */
+ public ThriftMessageDecoder(Class<OUTPUT> clazz) {
+ super();
+ this.clazz = clazz;
+ }
public static <L extends TBase<?, ?>> ThriftMessageDecoder<L> newInstance(Class<L> clazz) {
return new ThriftMessageDecoder<L>(clazz);
}
+ /**
+ * {@inheritDoc}
+ */
@Override
- public IN decode(ByteBuffer input) {
- IN object;
+ public OUTPUT decode(ByteBuffer input) {
+ OUTPUT object;
try {
byte array[] = new byte[input.remaining()];
input.get(array);
object = clazz.newInstance();
deserializer.deserialize(object, array);
return object;
- } catch (Exception e) {
- return null;
+ } catch (TException e) {
+ throw new ProtocolDecoderException(e);
+ } catch (InstantiationException e) {
+ throw new ProtocolDecoderException(e);
+ } catch (IllegalAccessException e) {
+ throw new ProtocolDecoderException(e);
}
}
- public ThriftMessageDecoder(Class<IN> clazz) {
- super();
- this.clazz = clazz;
- }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/mina/blob/411ed004/thrift/src/main/java/org/apache/mina/codec/delimited/serialization/ThriftMessageEncoder.java
----------------------------------------------------------------------
diff --git a/thrift/src/main/java/org/apache/mina/codec/delimited/serialization/ThriftMessageEncoder.java b/thrift/src/main/java/org/apache/mina/codec/delimited/serialization/ThriftMessageEncoder.java
index 8f204bc..4bb9539 100644
--- a/thrift/src/main/java/org/apache/mina/codec/delimited/serialization/ThriftMessageEncoder.java
+++ b/thrift/src/main/java/org/apache/mina/codec/delimited/serialization/ThriftMessageEncoder.java
@@ -21,16 +21,24 @@ package org.apache.mina.codec.delimited.serialization;
import java.nio.ByteBuffer;
+import org.apache.mina.codec.ProtocolEncoderException;
import org.apache.mina.codec.delimited.ByteBufferEncoder;
import org.apache.thrift.TBase;
import org.apache.thrift.TException;
import org.apache.thrift.TSerializer;
import org.apache.thrift.protocol.TBinaryProtocol;
-public class ThriftMessageEncoder<OUT extends TBase<?, ?>> extends ByteBufferEncoder<OUT> {
+/**
+ * Encode Thrift message into {@link ByteBuffer}
+ *
+ * @param <INPUT> the base type for message to encode
+ *
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ */
+public class ThriftMessageEncoder<INPUT extends TBase<?, ?>> extends ByteBufferEncoder<INPUT> {
private final TSerializer serializer = new TSerializer(new TBinaryProtocol.Factory());
- private OUT lastMessage;
+ private INPUT lastMessage;
private byte[] lastBuffer;
@@ -38,7 +46,7 @@ public class ThriftMessageEncoder<OUT extends TBase<?, ?>> extends ByteBufferEnc
return new ThriftMessageEncoder<L>();
}
- private byte[] prepareBuffer(OUT message) throws TException {
+ private byte[] prepareBuffer(INPUT message) throws TException {
if (message != lastMessage) {
lastBuffer = serializer.serialize(message);
this.lastMessage = message;
@@ -46,8 +54,11 @@ public class ThriftMessageEncoder<OUT extends TBase<?, ?>> extends ByteBufferEnc
return lastBuffer;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
- public int getEncodedSize(OUT message) {
+ public int getEncodedSize(INPUT message) {
try {
return prepareBuffer(message).length;
} catch (TException e) {
@@ -55,12 +66,15 @@ public class ThriftMessageEncoder<OUT extends TBase<?, ?>> extends ByteBufferEnc
}
}
+ /**
+ * {@inheritDoc}
+ */
@Override
- public void writeTo(OUT message, ByteBuffer buffer) {
+ public void writeTo(INPUT message, ByteBuffer buffer) {
try {
buffer.put(prepareBuffer(message));
} catch (TException e) {
- //
+ throw new ProtocolEncoderException(e);
}
}
}
\ No newline at end of file