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));
}
}
}