Protobuf module fixes

Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/1c856929
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/1c856929
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/1c856929

Branch: refs/heads/trunk
Commit: 1c856929ea26a63b979e3097d733c5723c12fda8
Parents: e564180
Author: Raphaël P. Barazzutti <[email protected]>
Authored: Thu Jul 4 00:04:40 2013 +0200
Committer: Raphaël P. Barazzutti <[email protected]>
Committed: Thu Jul 4 00:41:04 2013 +0200

----------------------------------------------------------------------
 .../serialization/GenericSerializerTest.java    |  2 +-
 .../mina/codec/delimited/ProtobufDecoder.java   | 28 +++++-----
 .../codec/delimited/ProtobufDynamicDecoder.java |  2 +-
 .../mina/codec/delimited/ProtobufEncoder.java   |  2 +-
 .../ProtobufDynamicMessageDecoder.java          | 17 +++---
 .../serialization/ProtobufMessageDecoder.java   | 11 ++--
 .../delimited/serialization/ProtobufTest.java   | 54 +++++++++++---------
 7 files changed, 61 insertions(+), 55 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/1c856929/codec/src/test/java/org/apache/mina/codec/delimited/serialization/GenericSerializerTest.java
----------------------------------------------------------------------
diff --git 
a/codec/src/test/java/org/apache/mina/codec/delimited/serialization/GenericSerializerTest.java
 
b/codec/src/test/java/org/apache/mina/codec/delimited/serialization/GenericSerializerTest.java
index 487c9bd..e0ce0cb 100644
--- 
a/codec/src/test/java/org/apache/mina/codec/delimited/serialization/GenericSerializerTest.java
+++ 
b/codec/src/test/java/org/apache/mina/codec/delimited/serialization/GenericSerializerTest.java
@@ -60,7 +60,7 @@ public abstract class GenericSerializerTest<T> {
             ByteBuffer out = ByteBuffer.allocate(size);
             encoder.writeTo(object, out);            
             assertEquals(size, out.position());
-            out.position(0);
+            out.rewind();
             assertEquals(object, decoder.decode(IoBuffer.wrap(out)));
         }
     }

http://git-wip-us.apache.org/repos/asf/mina/blob/1c856929/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 dfdf889..d2ef265 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
@@ -30,18 +30,22 @@ import com.google.protobuf.GeneratedMessage;
  * 
  * @author <a href="http://mina.apache.org";>Apache MINA Project</a>
  */
-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);
-    }
+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);
+       }
 
-    public static <L extends GeneratedMessage> ProtobufDecoder<L> 
newInstance(Class<L> clazz)
-            throws NoSuchMethodException {
-        return newInstance(clazz, ExtensionRegistryLite.getEmptyRegistry());
-    }
+       public static <L extends GeneratedMessage> ProtobufDecoder<L> 
newInstance(
+                       Class<L> clazz) throws NoSuchMethodException {
+               return newInstance(clazz, 
ExtensionRegistryLite.getEmptyRegistry());
+       }
 
-    public ProtobufDecoder(Class<OUTPUT> clazz, ExtensionRegistryLite 
registry) throws NoSuchMethodException {
-        super(new VarInt.Decoder(), ProtobufMessageDecoder.newInstance(clazz, 
registry));
-    }
+       public ProtobufDecoder(Class<OUTPUT> clazz, ExtensionRegistryLite 
registry)
+                       throws NoSuchMethodException {
+               super(new VarInt().getDecoder(), 
ProtobufMessageDecoder.newInstance(
+                               clazz, registry));
+       }
 }

http://git-wip-us.apache.org/repos/asf/mina/blob/1c856929/protobuf/src/main/java/org/apache/mina/codec/delimited/ProtobufDynamicDecoder.java
----------------------------------------------------------------------
diff --git 
a/protobuf/src/main/java/org/apache/mina/codec/delimited/ProtobufDynamicDecoder.java
 
b/protobuf/src/main/java/org/apache/mina/codec/delimited/ProtobufDynamicDecoder.java
index 001fc92..9cf8cda 100644
--- 
a/protobuf/src/main/java/org/apache/mina/codec/delimited/ProtobufDynamicDecoder.java
+++ 
b/protobuf/src/main/java/org/apache/mina/codec/delimited/ProtobufDynamicDecoder.java
@@ -34,6 +34,6 @@ public class ProtobufDynamicDecoder extends
     }
 
     public ProtobufDynamicDecoder() throws NoSuchMethodException {
-        super(new VarInt.Decoder(), 
ProtobufDynamicMessageDecoder.newInstance());
+        super(new VarInt().getDecoder(), 
ProtobufDynamicMessageDecoder.newInstance());
     }
 }

http://git-wip-us.apache.org/repos/asf/mina/blob/1c856929/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 836212f..e474877 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
@@ -38,6 +38,6 @@ public class ProtobufEncoder<INPUT extends GeneratedMessage> 
extends SizePrefixe
     }
 
     public ProtobufEncoder(Class<INPUT> clazz) {
-        super(new VarInt.Encoder(), ProtobufMessageEncoder.newInstance(clazz));
+        super(new VarInt().getEncoder(), 
ProtobufMessageEncoder.newInstance(clazz));
     }
 }

http://git-wip-us.apache.org/repos/asf/mina/blob/1c856929/protobuf/src/main/java/org/apache/mina/codec/delimited/serialization/ProtobufDynamicMessageDecoder.java
----------------------------------------------------------------------
diff --git 
a/protobuf/src/main/java/org/apache/mina/codec/delimited/serialization/ProtobufDynamicMessageDecoder.java
 
b/protobuf/src/main/java/org/apache/mina/codec/delimited/serialization/ProtobufDynamicMessageDecoder.java
index 1cc3c6b..7aff03e 100644
--- 
a/protobuf/src/main/java/org/apache/mina/codec/delimited/serialization/ProtobufDynamicMessageDecoder.java
+++ 
b/protobuf/src/main/java/org/apache/mina/codec/delimited/serialization/ProtobufDynamicMessageDecoder.java
@@ -22,10 +22,9 @@ package org.apache.mina.codec.delimited.serialization;
 import java.io.InputStream;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.nio.ByteBuffer;
 
-import org.apache.mina.codec.delimited.ByteBufferDecoder;
-import org.apache.mina.util.ByteBufferInputStream;
+import org.apache.mina.codec.IoBuffer;
+import org.apache.mina.codec.delimited.IoBufferDecoder;
 
 import com.google.protobuf.ExtensionRegistryLite;
 import com.google.protobuf.GeneratedMessage;
@@ -34,27 +33,27 @@ import com.google.protobuf.GeneratedMessage;
  * An alternative decoder for protobuf which allows the use various target
  * classes with the same decoder.
  * 
- * This decoder converts incoming {@link ByteBuffer} into
+ * This decoder converts incoming {@link IoBuffer} into
  * {@link ProtobufSerializedMessage}.
  * 
  * @author <a href="http://mina.apache.org";>Apache MINA Project</a>
  */
 public class ProtobufDynamicMessageDecoder extends
-        
ByteBufferDecoder<ProtobufDynamicMessageDecoder.ProtobufSerializedMessage> {
+        
IoBufferDecoder<ProtobufDynamicMessageDecoder.ProtobufSerializedMessage> {
 
     public static ProtobufDynamicMessageDecoder newInstance() {
         return new ProtobufDynamicMessageDecoder();
     }
 
     @Override
-    public ProtobufSerializedMessage decode(ByteBuffer input) {
+    public ProtobufSerializedMessage decode(IoBuffer input) {
         return new ProtobufSerializedMessage(input);
     }
 
     public static final class ProtobufSerializedMessage {
-        private ByteBuffer input;
+        private final IoBuffer input;
 
-        public ProtobufSerializedMessage(ByteBuffer input) {
+        public ProtobufSerializedMessage(IoBuffer input) {
             this.input = input;
         }
 
@@ -62,7 +61,7 @@ public class ProtobufDynamicMessageDecoder extends
         public <L extends GeneratedMessage> L get(Class<L> clazz, 
ExtensionRegistryLite registry)
                 throws NoSuchMethodException, IllegalAccessException, 
InvocationTargetException {
             Method parseMethod = clazz.getDeclaredMethod("parseFrom", 
InputStream.class, ExtensionRegistryLite.class);
-            return (L) parseMethod.invoke(null, new 
ByteBufferInputStream(input.duplicate()), registry);
+            return (L) parseMethod.invoke(null, input.asInputStream(), 
registry);
         }
 
         public <L extends GeneratedMessage> L get(Class<L> clazz) throws 
NoSuchMethodException, IllegalAccessException,

http://git-wip-us.apache.org/repos/asf/mina/blob/1c856929/protobuf/src/main/java/org/apache/mina/codec/delimited/serialization/ProtobufMessageDecoder.java
----------------------------------------------------------------------
diff --git 
a/protobuf/src/main/java/org/apache/mina/codec/delimited/serialization/ProtobufMessageDecoder.java
 
b/protobuf/src/main/java/org/apache/mina/codec/delimited/serialization/ProtobufMessageDecoder.java
index 62e0781..d01f579 100644
--- 
a/protobuf/src/main/java/org/apache/mina/codec/delimited/serialization/ProtobufMessageDecoder.java
+++ 
b/protobuf/src/main/java/org/apache/mina/codec/delimited/serialization/ProtobufMessageDecoder.java
@@ -21,11 +21,10 @@ package org.apache.mina.codec.delimited.serialization;
 
 import java.io.InputStream;
 import java.lang.reflect.Method;
-import java.nio.ByteBuffer;
 
+import org.apache.mina.codec.IoBuffer;
 import org.apache.mina.codec.ProtocolDecoderException;
-import org.apache.mina.codec.delimited.ByteBufferDecoder;
-import org.apache.mina.util.ByteBufferInputStream;
+import org.apache.mina.codec.delimited.IoBufferDecoder;
 
 import com.google.protobuf.ExtensionRegistryLite;
 import com.google.protobuf.GeneratedMessage;
@@ -33,7 +32,7 @@ import com.google.protobuf.GeneratedMessage;
 /**
  * @author <a href="http://mina.apache.org";>Apache MINA Project</a>
  */
-public class ProtobufMessageDecoder<IN extends GeneratedMessage> extends 
ByteBufferDecoder<IN> {
+public final class ProtobufMessageDecoder<IN extends GeneratedMessage> extends 
IoBufferDecoder<IN> {
     private final Method parseMethod;
 
     private final ExtensionRegistryLite registry;
@@ -56,9 +55,9 @@ public class ProtobufMessageDecoder<IN extends 
GeneratedMessage> extends ByteBuf
 
     @SuppressWarnings("unchecked")
     @Override
-    public IN decode(ByteBuffer input) {
+    public IN decode(IoBuffer input) {
         try {
-            return (IN) parseMethod.invoke(null, new 
ByteBufferInputStream(input), registry);
+            return (IN) parseMethod.invoke(null, input.asInputStream(), 
registry);
         } catch (Exception e) {
             throw new ProtocolDecoderException(e);
         }

http://git-wip-us.apache.org/repos/asf/mina/blob/1c856929/protobuf/src/test/java/org/apache/mina/codec/delimited/serialization/ProtobufTest.java
----------------------------------------------------------------------
diff --git 
a/protobuf/src/test/java/org/apache/mina/codec/delimited/serialization/ProtobufTest.java
 
b/protobuf/src/test/java/org/apache/mina/codec/delimited/serialization/ProtobufTest.java
index 2806c57..ed64b6b 100644
--- 
a/protobuf/src/test/java/org/apache/mina/codec/delimited/serialization/ProtobufTest.java
+++ 
b/protobuf/src/test/java/org/apache/mina/codec/delimited/serialization/ProtobufTest.java
@@ -24,8 +24,9 @@ import static org.junit.Assert.assertEquals;
 import java.util.LinkedList;
 import java.util.List;
 
-import org.apache.mina.codec.delimited.ByteBufferDecoder;
+import org.apache.mina.codec.IoBuffer;
 import org.apache.mina.codec.delimited.ByteBufferEncoder;
+import org.apache.mina.codec.delimited.IoBufferDecoder;
 import 
org.apache.mina.codec.delimited.serialization.ProtobufDynamicMessageDecoder.ProtobufSerializedMessage;
 import org.apache.mina.generated.protoc.AddressBookProtos.Person;
 import org.junit.Test;
@@ -37,34 +38,37 @@ import org.junit.Test;
  */
 public class ProtobufTest extends GenericSerializerTest<Person> {
 
-    @Override
-    public List<Person> getObjects() {
-        List<Person> list = new LinkedList<Person>();
+       @Override
+       public List<Person> getObjects() {
+               List<Person> list = new LinkedList<Person>();
 
-        list.add(Person.newBuilder().setId(1).setName("Jean 
Dupond").setEmail("[email protected]").build());
-        list.add(Person.newBuilder().setId(2).setName("Marie 
Blanc").setEmail("[email protected]").build());
+               list.add(Person.newBuilder().setId(1).setName("Jean Dupond")
+                               .setEmail("[email protected]").build());
+               list.add(Person.newBuilder().setId(2).setName("Marie Blanc")
+                               .setEmail("[email protected]").build());
 
-        return list;
-    }
+               return list;
+       }
 
-    @Override
-    public ByteBufferDecoder<Person> getDecoder() throws Exception {
-        return ProtobufMessageDecoder.newInstance(Person.class);
-    }
+       @Override
+       public IoBufferDecoder<Person> getDecoder() throws Exception {
+               return ProtobufMessageDecoder.newInstance(Person.class);
+       }
 
-    @Override
-    public ByteBufferEncoder<Person> getEncoder() throws Exception {
-        return new ProtobufMessageEncoder<Person>();
-    }
+       @Override
+       public ByteBufferEncoder<Person> getEncoder() throws Exception {
+               return new ProtobufMessageEncoder<Person>();
+       }
 
-    @Test
-    public void testDynamic() throws Exception {
-        ByteBufferEncoder<Person> encoder = getEncoder();
-        ProtobufDynamicMessageDecoder decoder = new 
ProtobufDynamicMessageDecoder();
+       @Test
+       public void testDynamic() throws Exception {
+               ByteBufferEncoder<Person> encoder = getEncoder();
+               ProtobufDynamicMessageDecoder decoder = new 
ProtobufDynamicMessageDecoder();
 
-        for (Person object : getObjects()) {
-            ProtobufSerializedMessage message = 
decoder.decode(encoder.encode(object));
-            assertEquals(object, message.get(Person.class));
-        }
-    }
+               for (Person object : getObjects()) {
+                       ProtobufSerializedMessage message = 
decoder.decode(IoBuffer
+                                       .wrap(encoder.encode(object)));
+                       assertEquals(object, message.get(Person.class));
+               }
+       }
 }

Reply via email to