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/05/07 21:19:59 UTC

[11/25] git commit: various fixes

various fixes


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

Branch: refs/heads/trunk
Commit: baff7ce4f777463b24b0d8f6c4336826ec14b95b
Parents: 69563ff
Author: Raphaël P. Barazzutti <ra...@gmail.com>
Authored: Mon Apr 29 00:24:13 2013 +0200
Committer: jvermillard <jv...@apache.org>
Committed: Tue May 7 21:10:23 2013 +0200

----------------------------------------------------------------------
 .../mina/codec/delimited/ByteBufferEncoder.java    |    3 +-
 .../apache/mina/codec/delimited/ints/VarInt.java   |    5 +-
 .../apache/mina/codec/delimited/ProtobufTest.java  |   38 ++++++++++++--
 .../mina/codec/delimited/ints/IntEncodingTest.java |   22 ++++----
 .../delimited/serialization/ProtobufTest.java      |   36 +++++++-------
 5 files changed, 65 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/baff7ce4/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 441ae61..8549434 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
@@ -65,8 +65,9 @@ public abstract class ByteBufferEncoder<OUTPUT> implements StatelessProtocolEnco
      */
     public ByteBuffer encode(OUTPUT message) {
         ByteBuffer buffer = ByteBuffer.allocate(getEncodedSize(message));
+        int oldPos=buffer.position();
         writeTo(message, buffer);
-        buffer.position(0);
+        buffer.position(oldPos);
         return buffer;
     }
 

http://git-wip-us.apache.org/repos/asf/mina/blob/baff7ce4/codec/src/main/java/org/apache/mina/codec/delimited/ints/VarInt.java
----------------------------------------------------------------------
diff --git a/codec/src/main/java/org/apache/mina/codec/delimited/ints/VarInt.java b/codec/src/main/java/org/apache/mina/codec/delimited/ints/VarInt.java
index 469b8da..5261c37 100644
--- a/codec/src/main/java/org/apache/mina/codec/delimited/ints/VarInt.java
+++ b/codec/src/main/java/org/apache/mina/codec/delimited/ints/VarInt.java
@@ -137,13 +137,12 @@ public class VarInt {
                 value >>= 7;
             }
 
-            buffer.put((byte) value);
-            buffer.flip();
+            buffer.put((byte) value);            
         }
 
         @Override
         public int getEncodedSize(Integer message) {
-            if (message == 0)
+            if (message < 1)
                 return 1;
             else {
                 int log2 = 32 - Integer.numberOfLeadingZeros(message);

http://git-wip-us.apache.org/repos/asf/mina/blob/baff7ce4/codec/src/test/java/org/apache/mina/codec/delimited/ProtobufTest.java
----------------------------------------------------------------------
diff --git a/codec/src/test/java/org/apache/mina/codec/delimited/ProtobufTest.java b/codec/src/test/java/org/apache/mina/codec/delimited/ProtobufTest.java
index f72eb39..05f66d6 100644
--- a/codec/src/test/java/org/apache/mina/codec/delimited/ProtobufTest.java
+++ b/codec/src/test/java/org/apache/mina/codec/delimited/ProtobufTest.java
@@ -1,17 +1,25 @@
 package org.apache.mina.codec.delimited;
 
+import static org.junit.Assert.assertEquals;
+
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.LinkedList;
 import java.util.List;
 
 import org.apache.mina.util.ByteBufferOutputStream;
+import org.apache.thrift.transport.TFastFramedTransport;
 import org.junit.Test;
 
 import ch.fever.code.mina.gpb.AddressBookProtos.Person;
 
 public class ProtobufTest {
+    public void t() {
+        TFastFramedTransport t;
+    }
+
     public List<Person> getObjects() {
+
         List<Person> list = new LinkedList<Person>();
 
         list.add(Person.newBuilder().setId(1).setName("Jean Dupond").setEmail("john.white@bigcorp.com").build());
@@ -20,16 +28,34 @@ public class ProtobufTest {
         return list;
     }
 
-    @Test
-    public void test() throws IOException {
+    protected ByteBuffer delimitWithProtobuf() throws IOException {
         ByteBufferOutputStream bbos = new ByteBufferOutputStream();
         bbos.setElastic(true);
         for (Person p : getObjects())
             p.writeDelimitedTo(bbos);
+        return bbos.getByteBuffer();
+    }
+
+    protected ByteBuffer delimitWithMina() {
         ProtobufEncoder<Person> pe = ProtobufEncoder.newInstance(Person.class);
-        //        pe.encode(message, context)
-//        for (Person p : getObjects())
-//            pe.encode(message, context)
-//            List<ByteBuffer> buffers = new LinkedList<ByteBuffer>();
+
+        List<ByteBuffer> buffers = new LinkedList<ByteBuffer>();
+        for (Person p : getObjects())
+            buffers.add(pe.encode(p, null));
+
+        int size = 0;
+        for (ByteBuffer b : buffers)
+            size += b.remaining();
+
+        ByteBuffer buffer = ByteBuffer.allocate(size);
+        for (ByteBuffer b : buffers)
+            buffer.put(b);
+        buffer.flip();
+        return buffer;
+    }
+
+    @Test
+    public void testDelimit() throws IOException {
+        assertEquals(delimitWithProtobuf(), delimitWithMina());
     }
 }

http://git-wip-us.apache.org/repos/asf/mina/blob/baff7ce4/codec/src/test/java/org/apache/mina/codec/delimited/ints/IntEncodingTest.java
----------------------------------------------------------------------
diff --git a/codec/src/test/java/org/apache/mina/codec/delimited/ints/IntEncodingTest.java b/codec/src/test/java/org/apache/mina/codec/delimited/ints/IntEncodingTest.java
index d01cf89..364c3b4 100644
--- a/codec/src/test/java/org/apache/mina/codec/delimited/ints/IntEncodingTest.java
+++ b/codec/src/test/java/org/apache/mina/codec/delimited/ints/IntEncodingTest.java
@@ -60,13 +60,13 @@ abstract public class IntEncodingTest {
     public void testTruncatedValues() {
         for (int value : new int[] { 0, 1, 127, 128, 65536, 198649, Integer.MAX_VALUE }) {
 
-            ByteBuffer buffer = encoder.encode(value, null);
+            ByteBuffer buffer = encoder.encode(value);
 
             for (int i = 0; i < buffer.remaining(); i++) {
                 ByteBuffer partialBuffer = buffer.slice();
                 partialBuffer.limit(partialBuffer.position() + i);
                 try {
-                    assertNull(decoder.decode(partialBuffer, null));
+                    assertNull(decoder.decode(partialBuffer));
                 } catch (ProtocolDecoderException e) {
                     fail("Should not throw exception");
                 }
@@ -77,10 +77,10 @@ abstract public class IntEncodingTest {
     @Test
     public void testSizedValues() {
         for (int value : new int[] { 0, 1, 127, 128, 65536, 198649, Integer.MAX_VALUE }) {
-            ByteBuffer buffer = encoder.encode(value, null);
+            ByteBuffer buffer = encoder.encode(value);
 
             try {
-                assertEquals(value, decoder.decode(buffer, null).intValue());
+                assertEquals(value, decoder.decode(buffer).intValue());
             } catch (ProtocolDecoderException e) {
                 fail("Should not throw exception");
             }
@@ -91,7 +91,7 @@ abstract public class IntEncodingTest {
     public void testExtendedValues() {
         for (int value : new int[] { 0, 1, 127, 128, 65536, 198649, Integer.MAX_VALUE }) {
 
-            ByteBuffer buffer = encoder.encode(value, null);
+            ByteBuffer buffer = encoder.encode(value);
 
             for (int i = 1; i < 5; i++) {
                 int size = buffer.remaining() + i;
@@ -102,7 +102,7 @@ abstract public class IntEncodingTest {
                 extendedBuffer.limit(start + size);
 
                 try {
-                    decoder.decode(extendedBuffer, null);
+                    decoder.decode(extendedBuffer);
                     assertEquals(i, extendedBuffer.remaining());
                 } catch (ProtocolDecoderException e) {
                     fail("Should not throw exception");
@@ -115,9 +115,9 @@ abstract public class IntEncodingTest {
     public void testSamples() {
         Map<Integer, ByteBuffer> samples = getEncodingSamples();
         for (Integer val : samples.keySet()) {
-            assertEquals(samples.get(val), encoder.encode(val, null));
+            assertEquals(samples.get(val), encoder.encode(val));
             try {
-                assertEquals(val, decoder.decode(samples.get(val), null));
+                assertEquals(val, decoder.decode(samples.get(val)));
             } catch (ProtocolDecoderException e) {
                 fail("Should not throw exception");
             }
@@ -129,7 +129,7 @@ abstract public class IntEncodingTest {
 
         for (ByteBuffer buffer : getIllegalBuffers())
             try {
-                decoder.decode(buffer, null);
+                decoder.decode(buffer);
                 fail("Should throw an overflow exception");
             } catch (ProtocolDecoderException e) {
                 // fine
@@ -138,8 +138,8 @@ abstract public class IntEncodingTest {
 
     @Test
     public void testNegativeValues() {
-        ByteBuffer zero = encoder.encode(0, null);
+        ByteBuffer zero = encoder.encode(0);
         for (int i : new int[] { -1, -127, Integer.MIN_VALUE })
-            assertEquals(zero, encoder.encode(i, null));
+            assertEquals(zero, encoder.encode(i));
     }
 }

http://git-wip-us.apache.org/repos/asf/mina/blob/baff7ce4/codec/src/test/java/org/apache/mina/codec/delimited/serialization/ProtobufTest.java
----------------------------------------------------------------------
diff --git a/codec/src/test/java/org/apache/mina/codec/delimited/serialization/ProtobufTest.java b/codec/src/test/java/org/apache/mina/codec/delimited/serialization/ProtobufTest.java
index f712abb..3f760e0 100644
--- a/codec/src/test/java/org/apache/mina/codec/delimited/serialization/ProtobufTest.java
+++ b/codec/src/test/java/org/apache/mina/codec/delimited/serialization/ProtobufTest.java
@@ -1,6 +1,5 @@
 package org.apache.mina.codec.delimited.serialization;
 
-
 import static org.junit.Assert.assertEquals;
 
 import java.util.LinkedList;
@@ -8,40 +7,41 @@ import java.util.List;
 
 import org.apache.mina.codec.delimited.ByteBufferDecoder;
 import org.apache.mina.codec.delimited.ByteBufferEncoder;
-import org.apache.mina.codec.delimited.serialization.ProtobufDynamicDecoder.SerializedMessage;
+import org.apache.mina.codec.delimited.serialization.ProtobufDynamicMessageDecoder.ProtobufSerializedMessage;
 import org.junit.Test;
 
-import com.google.protobuf.DescriptorProtos.DescriptorProto;
-
+import ch.fever.code.mina.gpb.AddressBookProtos.Person;
 
-public class ProtobufTest extends GenericSerializerTest<DescriptorProto, DescriptorProto> {
+public class ProtobufTest extends GenericSerializerTest<Person> {
 
     @Override
-    public List<DescriptorProto> getObjects() {
-        List<DescriptorProto> list = new LinkedList<DescriptorProto>();
-        list.add(DescriptorProto.newBuilder().setName("HELLO").build());
-        list.add(DescriptorProto.newBuilder().setName("WORLD").build());
+    public List<Person> getObjects() {
+        List<Person> list = new LinkedList<Person>();
+
+        list.add(Person.newBuilder().setId(1).setName("Jean Dupond").setEmail("john.white@bigcorp.com").build());
+        list.add(Person.newBuilder().setId(2).setName("Marie Blanc").setEmail("marie.blanc@bigcorp.com").build());
+
         return list;
     }
 
     @Override
-    public ByteBufferDecoder<DescriptorProto> getDecoder() throws Exception {
-        return ProtobufDecoder.newInstance(DescriptorProto.class);
+    public ByteBufferDecoder<Person> getDecoder() throws Exception {
+        return ProtobufMessageDecoder.newInstance(Person.class);
     }
 
     @Override
-    public ByteBufferEncoder<DescriptorProto> getEncoder() throws Exception {
-        return new ProtobufEncoder<DescriptorProto>();
+    public ByteBufferEncoder<Person> getEncoder() throws Exception {
+        return new ProtobufMessageEncoder<Person>();
     }
 
     @Test
     public void testDynamic() throws Exception {
-        ByteBufferEncoder<DescriptorProto> encoder = getEncoder();
-        ProtobufDynamicDecoder decoder = new ProtobufDynamicDecoder();
+        ByteBufferEncoder<Person> encoder = getEncoder();
+        ProtobufDynamicMessageDecoder decoder = new ProtobufDynamicMessageDecoder();
 
-        for (DescriptorProto object : getObjects()) {
-            SerializedMessage message=decoder.decode(encoder.encode(object));
-            assertEquals(object,message.get(DescriptorProto.class));
+        for (Person object : getObjects()) {
+            ProtobufSerializedMessage message = decoder.decode(encoder.encode(object));
+            assertEquals(object, message.get(Person.class));
         }
     }
 }