summaryrefslogtreecommitdiff
path: root/java-plan3/test
diff options
context:
space:
mode:
Diffstat (limited to 'java-plan3/test')
-rw-r--r--java-plan3/test/Generate.java38
-rw-r--r--java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MediaContent.java173
-rw-r--r--java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MediaContent.mpacs21
-rw-r--r--java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackDynamicSerializer.java68
-rw-r--r--java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackGenericSerializer.java70
-rw-r--r--java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackIndirectSerializer.java67
-rw-r--r--java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackSpecificSerializer.java66
7 files changed, 503 insertions, 0 deletions
diff --git a/java-plan3/test/Generate.java b/java-plan3/test/Generate.java
new file mode 100644
index 0000000..1b72e90
--- /dev/null
+++ b/java-plan3/test/Generate.java
@@ -0,0 +1,38 @@
+import java.io.*;
+import java.util.*;
+import org.msgpack.*;
+import org.msgpack.schema.*;
+
+public class Generate {
+ public static void main(String[] args) throws IOException
+ {
+ String source =
+ "(class MediaContent"+
+ " (package serializers.msgpack)"+
+ " (field image (array (class Image"+
+ " (field uri string)"+
+ " (field title string)"+
+ " (field width int)"+
+ " (field height int)"+
+ " (field size int))))"+
+ " (field media (class Media"+
+ " (field uri string)"+
+ " (field title string)"+
+ " (field width int)"+
+ " (field height int)"+
+ " (field format string)"+
+ " (field duration long)"+
+ " (field size long)"+
+ " (field bitrate int)"+
+ " (field person (array string))"+
+ " (field player int)"+
+ " (field copyright string)))"+
+ " )";
+
+ Schema schema = Schema.parse(source);
+
+ Writer output = new OutputStreamWriter(System.out);
+ ClassGenerator.write(schema, output);
+ }
+}
+
diff --git a/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MediaContent.java b/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MediaContent.java
new file mode 100644
index 0000000..5dfbc8d
--- /dev/null
+++ b/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MediaContent.java
@@ -0,0 +1,173 @@
+package serializers.msgpack;
+
+import java.util.*;
+import java.io.*;
+import org.msgpack.*;
+import org.msgpack.schema.ClassSchema;
+import org.msgpack.schema.FieldSchema;
+
+public final class MediaContent implements MessagePackable, MessageMergeable
+{
+ private static final ClassSchema _SCHEMA = (ClassSchema)Schema.load("(class MediaContent (package serializers.msgpack) (field image (array (class Image (package serializers.msgpack) (field uri string) (field title string) (field width int) (field height int) (field size int)))) (field media (class Media (package serializers.msgpack) (field uri string) (field title string) (field width int) (field height int) (field format string) (field duration long) (field size long) (field bitrate int) (field person (array string)) (field player int) (field copyright string))))");
+ public static ClassSchema getSchema() { return _SCHEMA; }
+
+ public List<Image> image;
+ public Media media;
+
+ public MediaContent() { }
+
+ @Override
+ public void messagePack(Packer _pk) throws IOException
+ {
+ _pk.packArray(2);
+ FieldSchema[] _fields = _SCHEMA.getFields();
+ _fields[0].getSchema().pack(_pk, image);
+ _fields[1].getSchema().pack(_pk, media);
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public void messageMerge(Object obj) throws MessageTypeException
+ {
+ Object[] _source = ((List)obj).toArray();
+ FieldSchema[] _fields = _SCHEMA.getFields();
+ if(_source.length <= 0) { return; } this.image = (List<Image>)_fields[0].getSchema().convert(_source[0]);
+ if(_source.length <= 1) { return; } this.media = (Media)_fields[1].getSchema().convert(_source[1]);
+ }
+
+ @SuppressWarnings("unchecked")
+ public static MediaContent createFromMessage(Object[] _message)
+ {
+ MediaContent _self = new MediaContent();
+ if(_message.length <= 0) { return _self; } _self.image = (List<Image>)_message[0];
+ if(_message.length <= 1) { return _self; } _self.media = (Media)_message[1];
+ return _self;
+ }
+}
+
+final class Image implements MessagePackable, MessageMergeable
+{
+ private static final ClassSchema _SCHEMA = (ClassSchema)Schema.load("(class Image (package serializers.msgpack) (field uri string) (field title string) (field width int) (field height int) (field size int))");
+ public static ClassSchema getSchema() { return _SCHEMA; }
+
+ public String uri;
+ public String title;
+ public Integer width;
+ public Integer height;
+ public Integer size;
+
+ public Image() { }
+
+ @Override
+ public void messagePack(Packer _pk) throws IOException
+ {
+ _pk.packArray(5);
+ FieldSchema[] _fields = _SCHEMA.getFields();
+ _fields[0].getSchema().pack(_pk, uri);
+ _fields[1].getSchema().pack(_pk, title);
+ _fields[2].getSchema().pack(_pk, width);
+ _fields[3].getSchema().pack(_pk, height);
+ _fields[4].getSchema().pack(_pk, size);
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public void messageMerge(Object obj) throws MessageTypeException
+ {
+ Object[] _source = ((List)obj).toArray();
+ FieldSchema[] _fields = _SCHEMA.getFields();
+ if(_source.length <= 0) { return; } this.uri = (String)_fields[0].getSchema().convert(_source[0]);
+ if(_source.length <= 1) { return; } this.title = (String)_fields[1].getSchema().convert(_source[1]);
+ if(_source.length <= 2) { return; } this.width = (Integer)_fields[2].getSchema().convert(_source[2]);
+ if(_source.length <= 3) { return; } this.height = (Integer)_fields[3].getSchema().convert(_source[3]);
+ if(_source.length <= 4) { return; } this.size = (Integer)_fields[4].getSchema().convert(_source[4]);
+ }
+
+ @SuppressWarnings("unchecked")
+ public static Image createFromMessage(Object[] _message)
+ {
+ Image _self = new Image();
+ if(_message.length <= 0) { return _self; } _self.uri = (String)_message[0];
+ if(_message.length <= 1) { return _self; } _self.title = (String)_message[1];
+ if(_message.length <= 2) { return _self; } _self.width = (Integer)_message[2];
+ if(_message.length <= 3) { return _self; } _self.height = (Integer)_message[3];
+ if(_message.length <= 4) { return _self; } _self.size = (Integer)_message[4];
+ return _self;
+ }
+}
+
+final class Media implements MessagePackable, MessageMergeable
+{
+ private static final ClassSchema _SCHEMA = (ClassSchema)Schema.load("(class Media (package serializers.msgpack) (field uri string) (field title string) (field width int) (field height int) (field format string) (field duration long) (field size long) (field bitrate int) (field person (array string)) (field player int) (field copyright string))");
+ public static ClassSchema getSchema() { return _SCHEMA; }
+
+ public String uri;
+ public String title;
+ public Integer width;
+ public Integer height;
+ public String format;
+ public Long duration;
+ public Long size;
+ public Integer bitrate;
+ public List<String> person;
+ public Integer player;
+ public String copyright;
+
+ public Media() { }
+
+ @Override
+ public void messagePack(Packer _pk) throws IOException
+ {
+ _pk.packArray(11);
+ FieldSchema[] _fields = _SCHEMA.getFields();
+ _fields[0].getSchema().pack(_pk, uri);
+ _fields[1].getSchema().pack(_pk, title);
+ _fields[2].getSchema().pack(_pk, width);
+ _fields[3].getSchema().pack(_pk, height);
+ _fields[4].getSchema().pack(_pk, format);
+ _fields[5].getSchema().pack(_pk, duration);
+ _fields[6].getSchema().pack(_pk, size);
+ _fields[7].getSchema().pack(_pk, bitrate);
+ _fields[8].getSchema().pack(_pk, person);
+ _fields[9].getSchema().pack(_pk, player);
+ _fields[10].getSchema().pack(_pk, copyright);
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public void messageMerge(Object obj) throws MessageTypeException
+ {
+ Object[] _source = ((List)obj).toArray();
+ FieldSchema[] _fields = _SCHEMA.getFields();
+ if(_source.length <= 0) { return; } this.uri = (String)_fields[0].getSchema().convert(_source[0]);
+ if(_source.length <= 1) { return; } this.title = (String)_fields[1].getSchema().convert(_source[1]);
+ if(_source.length <= 2) { return; } this.width = (Integer)_fields[2].getSchema().convert(_source[2]);
+ if(_source.length <= 3) { return; } this.height = (Integer)_fields[3].getSchema().convert(_source[3]);
+ if(_source.length <= 4) { return; } this.format = (String)_fields[4].getSchema().convert(_source[4]);
+ if(_source.length <= 5) { return; } this.duration = (Long)_fields[5].getSchema().convert(_source[5]);
+ if(_source.length <= 6) { return; } this.size = (Long)_fields[6].getSchema().convert(_source[6]);
+ if(_source.length <= 7) { return; } this.bitrate = (Integer)_fields[7].getSchema().convert(_source[7]);
+ if(_source.length <= 8) { return; } this.person = (List<String>)_fields[8].getSchema().convert(_source[8]);
+ if(_source.length <= 9) { return; } this.player = (Integer)_fields[9].getSchema().convert(_source[9]);
+ if(_source.length <= 10) { return; } this.copyright = (String)_fields[10].getSchema().convert(_source[10]);
+ }
+
+ @SuppressWarnings("unchecked")
+ public static Media createFromMessage(Object[] _message)
+ {
+ Media _self = new Media();
+ if(_message.length <= 0) { return _self; } _self.uri = (String)_message[0];
+ if(_message.length <= 1) { return _self; } _self.title = (String)_message[1];
+ if(_message.length <= 2) { return _self; } _self.width = (Integer)_message[2];
+ if(_message.length <= 3) { return _self; } _self.height = (Integer)_message[3];
+ if(_message.length <= 4) { return _self; } _self.format = (String)_message[4];
+ if(_message.length <= 5) { return _self; } _self.duration = (Long)_message[5];
+ if(_message.length <= 6) { return _self; } _self.size = (Long)_message[6];
+ if(_message.length <= 7) { return _self; } _self.bitrate = (Integer)_message[7];
+ if(_message.length <= 8) { return _self; } _self.person = (List<String>)_message[8];
+ if(_message.length <= 9) { return _self; } _self.player = (Integer)_message[9];
+ if(_message.length <= 10) { return _self; } _self.copyright = (String)_message[10];
+ return _self;
+ }
+}
+
diff --git a/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MediaContent.mpacs b/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MediaContent.mpacs
new file mode 100644
index 0000000..547ba48
--- /dev/null
+++ b/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MediaContent.mpacs
@@ -0,0 +1,21 @@
+(class MediaContent
+ (package serializers.msgpack)
+ (field image (array (class Image
+ (field uri string)
+ (field title string)
+ (field width int)
+ (field height int)
+ (field size int))))
+ (field media (class Media
+ (field uri string)
+ (field title string)
+ (field width int)
+ (field height int)
+ (field format string)
+ (field duration long)
+ (field size long)
+ (field bitrate int)
+ (field person (array string))
+ (field player int)
+ (field copyright string)))
+ )
diff --git a/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackDynamicSerializer.java b/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackDynamicSerializer.java
new file mode 100644
index 0000000..c8a88ac
--- /dev/null
+++ b/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackDynamicSerializer.java
@@ -0,0 +1,68 @@
+package serializers.msgpack;
+
+import java.io.*;
+import java.util.*;
+import org.msgpack.*;
+import serializers.ObjectSerializer;
+
+public class MessagePackDynamicSerializer implements ObjectSerializer<Object>
+{
+ public String getName() {
+ return "msgpack-dynamic";
+ }
+
+ public Object create() throws Exception {
+ ArrayList media = new ArrayList(11);
+ media.add("http://javaone.com/keynote.mpg");
+ media.add("video/mpg4");
+ media.add("Javaone Keynote");
+ media.add(1234567L);
+ media.add(0);
+ ArrayList<String> person = new ArrayList<String>(2);
+ person.add("Bill Gates");
+ person.add("Steve Jobs");
+ media.add(person);
+ media.add(0);
+ media.add(0);
+ media.add(0);
+ media.add(123L);
+ media.add("");
+
+ ArrayList image1 = new ArrayList(5);
+ image1.add("http://javaone.com/keynote_large.jpg");
+ image1.add(0);
+ image1.add(0);
+ image1.add(2);
+ image1.add("Javaone Keynote");
+
+ ArrayList image2 = new ArrayList(5);
+ image2.add("http://javaone.com/keynote_thumbnail.jpg");
+ image2.add(0);
+ image2.add(0);
+ image2.add(1);
+ image2.add("Javaone Keynote");
+
+ ArrayList content = new ArrayList(2);
+ content.add(media);
+ ArrayList<Object> images = new ArrayList<Object>(2);
+ images.add(image1);
+ images.add(image2);
+ content.add(images);
+
+ return content;
+ }
+
+ public byte[] serialize(Object content) throws Exception {
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ Packer pk = new Packer(os);
+ pk.pack(content);
+ return os.toByteArray();
+ }
+
+ public Object deserialize(byte[] array) throws Exception {
+ UnbufferedUnpacker pac = new UnbufferedUnpacker();
+ pac.execute(array);
+ return (Object)pac.getData();
+ }
+}
+
diff --git a/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackGenericSerializer.java b/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackGenericSerializer.java
new file mode 100644
index 0000000..4935899
--- /dev/null
+++ b/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackGenericSerializer.java
@@ -0,0 +1,70 @@
+package serializers.msgpack;
+
+import java.io.*;
+import java.util.*;
+import org.msgpack.*;
+import serializers.ObjectSerializer;
+
+public class MessagePackGenericSerializer implements ObjectSerializer<Object>
+{
+ private static final Schema MEDIA_CONTENT_SCHEMA = Schema.parse("(class MediaContent (package serializers.msgpack) (field image (array (class Image (package serializers.msgpack) (field uri string) (field title string) (field width int) (field height int) (field size int)))) (field media (class Media (package serializers.msgpack) (field uri string) (field title string) (field width int) (field height int) (field format string) (field duration long) (field size long) (field bitrate int) (field person (array string)) (field player int) (field copyright string))))");
+
+ public String getName() {
+ return "msgpack-generic";
+ }
+
+ public Object create() throws Exception {
+ HashMap<String,Object> media = new HashMap<String, Object>(11);
+ media.put("uri", "http://javaone.com/keynote.mpg");
+ media.put("format", "video/mpg4");
+ media.put("title", "Javaone Keynote");
+ media.put("duration", 1234567L);
+ media.put("bitrate", 0);
+ ArrayList<String> person = new ArrayList<String>(2);
+ person.add("Bill Gates");
+ person.add("Steve Jobs");
+ media.put("person", person);
+ media.put("player", 0);
+ media.put("height", 0);
+ media.put("width", 0);
+ media.put("size", 123L);
+ media.put("copyright", "");
+
+ HashMap<String,Object> image1 = new HashMap<String,Object>(5);
+ image1.put("uri", "http://javaone.com/keynote_large.jpg");
+ image1.put("width", 0);
+ image1.put("height", 0);
+ image1.put("size", 2);
+ image1.put("title", "Javaone Keynote");
+
+ HashMap<String,Object> image2 = new HashMap<String,Object>(5);
+ image2.put("uri", "http://javaone.com/keynote_thumbnail.jpg");
+ image2.put("width", 0);
+ image2.put("height", 0);
+ image2.put("size", 1);
+ image2.put("title", "Javaone Keynote");
+
+ HashMap<String,Object> content = new HashMap<String,Object>(2);
+ content.put("media", media);
+ ArrayList<Object> images = new ArrayList<Object>(2);
+ images.add(image1);
+ images.add(image2);
+ content.put("image", images);
+
+ return content;
+ }
+
+ public byte[] serialize(Object content) throws Exception {
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ Packer pk = new Packer(os);
+ pk.packWithSchema(content, MEDIA_CONTENT_SCHEMA);
+ return os.toByteArray();
+ }
+
+ public Object deserialize(byte[] array) throws Exception {
+ UnbufferedUnpacker pac = new UnbufferedUnpacker().useSchema(MEDIA_CONTENT_SCHEMA);
+ pac.execute(array);
+ return (Object)pac.getData();
+ }
+}
+
diff --git a/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackIndirectSerializer.java b/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackIndirectSerializer.java
new file mode 100644
index 0000000..2767474
--- /dev/null
+++ b/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackIndirectSerializer.java
@@ -0,0 +1,67 @@
+package serializers.msgpack;
+
+import java.io.*;
+import java.util.*;
+import org.msgpack.*;
+import serializers.ObjectSerializer;
+
+public class MessagePackIndirectSerializer implements ObjectSerializer<MediaContent>
+{
+ public String getName() {
+ return "msgpack-indirect";
+ }
+
+ public MediaContent create() throws Exception {
+ Media media = new Media();
+ media.uri = "http://javaone.com/keynote.mpg";
+ media.format = "video/mpg4";
+ media.title = "Javaone Keynote";
+ media.duration = 1234567L;
+ media.bitrate = 0;
+ media.person = new ArrayList<String>(2);
+ media.person.add("Bill Gates");
+ media.person.add("Steve Jobs");
+ media.player = 0;
+ media.height = 0;
+ media.width = 0;
+ media.size = 123L;
+ media.copyright = "";
+
+ Image image1 = new Image();
+ image1.uri = "http://javaone.com/keynote_large.jpg";
+ image1.width = 0;
+ image1.height = 0;
+ image1.size = 2;
+ image1.title = "Javaone Keynote";
+
+ Image image2 = new Image();
+ image2.uri = "http://javaone.com/keynote_thumbnail.jpg";
+ image2.width = 0;
+ image2.height = 0;
+ image2.size = 1;
+ image2.title = "Javaone Keynote";
+
+ MediaContent content = new MediaContent();
+ content.media = media;
+ content.image = new ArrayList<Image>(2);
+ content.image.add(image1);
+ content.image.add(image2);
+
+ return content;
+ }
+
+ public byte[] serialize(MediaContent content) throws Exception {
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ Packer pk = new Packer(os);
+ pk.pack(content);
+ return os.toByteArray();
+ }
+
+ public MediaContent deserialize(byte[] array) throws Exception {
+ UnbufferedUnpacker pac = new UnbufferedUnpacker();
+ pac.execute(array);
+ Object obj = pac.getData();
+ return (MediaContent)MediaContent.getSchema().convert(obj);
+ }
+}
+
diff --git a/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackSpecificSerializer.java b/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackSpecificSerializer.java
new file mode 100644
index 0000000..91ded5c
--- /dev/null
+++ b/java-plan3/test/thrift-protobuf-compare/tpc/src/serializers/msgpack/MessagePackSpecificSerializer.java
@@ -0,0 +1,66 @@
+package serializers.msgpack;
+
+import java.io.*;
+import java.util.*;
+import org.msgpack.*;
+import serializers.ObjectSerializer;
+
+public class MessagePackSpecificSerializer implements ObjectSerializer<MediaContent>
+{
+ public String getName() {
+ return "msgpack-specific";
+ }
+
+ public MediaContent create() throws Exception {
+ Media media = new Media();
+ media.uri = "http://javaone.com/keynote.mpg";
+ media.format = "video/mpg4";
+ media.title = "Javaone Keynote";
+ media.duration = 1234567L;
+ media.bitrate = 0;
+ media.person = new ArrayList<String>(2);
+ media.person.add("Bill Gates");
+ media.person.add("Steve Jobs");
+ media.player = 0;
+ media.height = 0;
+ media.width = 0;
+ media.size = 123L;
+ media.copyright = "";
+
+ Image image1 = new Image();
+ image1.uri = "http://javaone.com/keynote_large.jpg";
+ image1.width = 0;
+ image1.height = 0;
+ image1.size = 2;
+ image1.title = "Javaone Keynote";
+
+ Image image2 = new Image();
+ image2.uri = "http://javaone.com/keynote_thumbnail.jpg";
+ image2.width = 0;
+ image2.height = 0;
+ image2.size = 1;
+ image2.title = "Javaone Keynote";
+
+ MediaContent content = new MediaContent();
+ content.media = media;
+ content.image = new ArrayList<Image>(2);
+ content.image.add(image1);
+ content.image.add(image2);
+
+ return content;
+ }
+
+ public byte[] serialize(MediaContent content) throws Exception {
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ Packer pk = new Packer(os);
+ pk.pack(content);
+ return os.toByteArray();
+ }
+
+ public MediaContent deserialize(byte[] array) throws Exception {
+ UnbufferedUnpacker pac = new UnbufferedUnpacker().useSchema(MediaContent.getSchema());
+ pac.execute(array);
+ return (MediaContent)pac.getData();
+ }
+}
+