You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by va...@apache.org on 2015/07/21 22:52:34 UTC
[37/50] ode git commit: smile serialization worked.
smile serialization worked.
Project: http://git-wip-us.apache.org/repos/asf/ode/repo
Commit: http://git-wip-us.apache.org/repos/asf/ode/commit/9e133873
Tree: http://git-wip-us.apache.org/repos/asf/ode/tree/9e133873
Diff: http://git-wip-us.apache.org/repos/asf/ode/diff/9e133873
Branch: refs/heads/ODE-912
Commit: 9e1338737eef8528334739f7ca50150c11294fc1
Parents: c6c985e
Author: fangzhen <fa...@gmail.com>
Authored: Sun Aug 3 00:40:58 2014 +0800
Committer: fangzhen <fa...@gmail.com>
Committed: Sun Aug 3 00:40:58 2014 +0800
----------------------------------------------------------------------
.../ode/bpel/compiler_2_0/GoodCompileTest.java | 11 +---
.../compiler_2_0/JavaSerializationTest.java | 57 ++++++++++++++++++++
.../compiler_2_0/JsonSerializationTest.java | 10 ++++
.../bpel/compiler_2_0/SerializationTest.java | 49 -----------------
.../compiler_2_0/SmileSerializationTest.java | 11 ++++
.../org/apache/ode/bpel/obj/ExtensibleImpl.java | 5 +-
.../obj/migrate/ExtensibeImplEqualityComp.java | 2 -
.../ode/bpel/obj/serde/OmSerdeFactory.java | 2 +-
.../jacksonhack/UniqueStringIdGenerator.java | 56 +++++++++++++++++++
.../bpel/obj/serde/jacksonhack/JacksonTest.java | 38 +++++++++++--
10 files changed, 172 insertions(+), 69 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ode/blob/9e133873/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/GoodCompileTest.java
----------------------------------------------------------------------
diff --git a/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/GoodCompileTest.java b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/GoodCompileTest.java
index 2602642..9a1d973 100644
--- a/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/GoodCompileTest.java
+++ b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/GoodCompileTest.java
@@ -50,18 +50,9 @@ public class GoodCompileTest extends AbstractCompileTestCase implements
String cbpPath = bpelPath.substring(0, bpelPath.lastIndexOf("."))
+ ".cbp";
_compiler.serializeOProcess(origi, cbpPath);
-
- DeSerializer deserializer = new DeSerializer(new FileInputStream(cbpPath));
- OProcess desered = deserializer.deserialize();
-
- DeepEqualityHelper de = new DeepEqualityHelper();
- de.addCustomComparator(new ExtensibeImplEqualityComp());
- de.addCustomComparator(new DomElementComparator());
- boolean res = de.deepEquals(origi, desered);
- assertEquals(Boolean.TRUE, res);
} catch (Exception ex) {
ex.printStackTrace();
- Assert.fail("Compilation or deserialization did not succeed.");
+ Assert.fail("Compilation did not succeed.");
}
}
http://git-wip-us.apache.org/repos/asf/ode/blob/9e133873/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/JavaSerializationTest.java
----------------------------------------------------------------------
diff --git a/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/JavaSerializationTest.java b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/JavaSerializationTest.java
new file mode 100644
index 0000000..a0c1126
--- /dev/null
+++ b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/JavaSerializationTest.java
@@ -0,0 +1,57 @@
+package org.apache.ode.bpel.compiler_2_0;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.net.URI;
+import java.net.URL;
+
+import org.apache.ode.bpel.obj.OProcess;
+import org.apache.ode.bpel.obj.migrate.DeepEqualityHelper;
+import org.apache.ode.bpel.obj.migrate.DomElementComparator;
+import org.apache.ode.bpel.obj.migrate.ExtensibeImplEqualityComp;
+import org.apache.ode.bpel.obj.serde.DeSerializer;
+import org.apache.ode.bpel.obj.serde.OmSerdeFactory;
+import org.apache.ode.bpel.obj.serde.OmSerdeFactory.SerializeFormat;
+import org.junit.Assert;
+
+public class JavaSerializationTest extends GoodCompileTest{
+ protected SerializeFormat format;
+ protected String pathSuffix;
+
+ public JavaSerializationTest(){
+ this.format = OmSerdeFactory.SerializeFormat.FORMAT_SERIALIZED_JAVA;
+ this.pathSuffix = "java";
+ }
+ public void runTest(String bpel) throws Exception {
+ try {
+ Class testClass = getClass();
+ URL url = testClass.getResource(bpel);
+ URI uri = url.toURI();
+ String path = uri.getPath();
+ File bpelFile = new File(path);
+ OProcess origi = _compiler.compile2OProcess(bpelFile, 0);
+ String bpelPath = bpelFile.getAbsolutePath();
+ String cbpPath = bpelPath.substring(0, bpelPath.lastIndexOf("."))
+ + "." + pathSuffix + ".cbp";
+ DeSerializer serializer = new DeSerializer();
+ serializer.serialize(new FileOutputStream(cbpPath),
+ origi, format);
+
+ DeSerializer deserializer = new DeSerializer(new FileInputStream(cbpPath));
+ OProcess desered = deserializer.deserialize();
+
+ DeepEqualityHelper de = new DeepEqualityHelper();
+ de.addCustomComparator(new ExtensibeImplEqualityComp());
+ de.addCustomComparator(new DomElementComparator());
+ boolean res = de.deepEquals(origi, desered);
+ assertEquals(Boolean.TRUE, res);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ Assert.fail("Compilation or deserialization did not succeed.");
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/ode/blob/9e133873/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/JsonSerializationTest.java
----------------------------------------------------------------------
diff --git a/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/JsonSerializationTest.java b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/JsonSerializationTest.java
new file mode 100644
index 0000000..dbdfe84
--- /dev/null
+++ b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/JsonSerializationTest.java
@@ -0,0 +1,10 @@
+package org.apache.ode.bpel.compiler_2_0;
+
+import org.apache.ode.bpel.obj.serde.OmSerdeFactory;
+
+public class JsonSerializationTest extends JavaSerializationTest{
+ public JsonSerializationTest(){
+ this.format = OmSerdeFactory.SerializeFormat.FORMAT_SERIALIZED_JSON;
+ this.pathSuffix = "json";
+ }
+}
http://git-wip-us.apache.org/repos/asf/ode/blob/9e133873/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/SerializationTest.java
----------------------------------------------------------------------
diff --git a/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/SerializationTest.java b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/SerializationTest.java
deleted file mode 100644
index 22df441..0000000
--- a/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/SerializationTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.apache.ode.bpel.compiler_2_0;
-
-import static org.junit.Assert.assertEquals;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.net.URI;
-import java.net.URL;
-
-import org.apache.ode.bpel.obj.OProcess;
-import org.apache.ode.bpel.obj.migrate.DeepEqualityHelper;
-import org.apache.ode.bpel.obj.migrate.DomElementComparator;
-import org.apache.ode.bpel.obj.migrate.ExtensibeImplEqualityComp;
-import org.apache.ode.bpel.obj.serde.DeSerializer;
-import org.apache.ode.bpel.obj.serde.OmSerdeFactory;
-import org.junit.Assert;
-
-public class SerializationTest extends GoodCompileTest{
- public void runTest(String bpel) throws Exception {
- try {
- Class testClass = getClass();
- URL url = testClass.getResource(bpel);
- URI uri = url.toURI();
- String path = uri.getPath();
- File bpelFile = new File(path);
- OProcess origi = _compiler.compile2OProcess(bpelFile, 0);
- String bpelPath = bpelFile.getAbsolutePath();
- String cbpPath = bpelPath.substring(0, bpelPath.lastIndexOf("."))
- + ".json.cbp";
- DeSerializer serializer = new DeSerializer();
- serializer.serialize(new FileOutputStream(cbpPath),
- origi, OmSerdeFactory.SerializeFormat.FORMAT_SERIALIZED_JSON);
-
- DeSerializer deserializer = new DeSerializer(new FileInputStream(cbpPath));
- OProcess desered = deserializer.deserialize();
-
- DeepEqualityHelper de = new DeepEqualityHelper();
- de.addCustomComparator(new ExtensibeImplEqualityComp());
- de.addCustomComparator(new DomElementComparator());
- boolean res = de.deepEquals(origi, desered);
- assertEquals(Boolean.TRUE, res);
- } catch (Exception ex) {
- ex.printStackTrace();
- Assert.fail("Compilation or deserialization did not succeed.");
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/ode/blob/9e133873/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/SmileSerializationTest.java
----------------------------------------------------------------------
diff --git a/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/SmileSerializationTest.java b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/SmileSerializationTest.java
new file mode 100644
index 0000000..47de594
--- /dev/null
+++ b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/SmileSerializationTest.java
@@ -0,0 +1,11 @@
+package org.apache.ode.bpel.compiler_2_0;
+
+import org.apache.ode.bpel.obj.serde.OmSerdeFactory;
+
+public class SmileSerializationTest extends JavaSerializationTest{
+ public SmileSerializationTest(){
+ this.format = OmSerdeFactory.SerializeFormat.FORMAT_SERIALIZED_SMILE;
+ this.pathSuffix = "smile";
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/ode/blob/9e133873/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/ExtensibleImpl.java
----------------------------------------------------------------------
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/ExtensibleImpl.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/ExtensibleImpl.java
index e608fcb..2979340 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/ExtensibleImpl.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/ExtensibleImpl.java
@@ -7,11 +7,12 @@ import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.Map;
+import org.apache.ode.bpel.obj.serde.jacksonhack.UniqueStringIdGenerator;
+
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.ObjectIdGenerators;
-@JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property = "@id")
+@JsonIdentityInfo(generator = UniqueStringIdGenerator.class, property = "@id")
public class ExtensibleImpl implements Extensible<Object>, Serializable{
public static final long serialVersionUID = -1L;
protected static final int CURRENT_CLASS_VERSION = 1;
http://git-wip-us.apache.org/repos/asf/ode/blob/9e133873/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/ExtensibeImplEqualityComp.java
----------------------------------------------------------------------
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/ExtensibeImplEqualityComp.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/ExtensibeImplEqualityComp.java
index 56cebc2..e0be0d1 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/ExtensibeImplEqualityComp.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/ExtensibeImplEqualityComp.java
@@ -6,8 +6,6 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-import javax.print.attribute.standard.MediaSize.Other;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.obj.DebugInfo;
http://git-wip-us.apache.org/repos/asf/ode/blob/9e133873/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/OmSerdeFactory.java
----------------------------------------------------------------------
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/OmSerdeFactory.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/OmSerdeFactory.java
index 3cdd955..869b055 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/OmSerdeFactory.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/OmSerdeFactory.java
@@ -6,7 +6,7 @@ import java.io.OutputStream;
import org.apache.ode.bpel.obj.OProcess;
public class OmSerdeFactory {
- public static final SerializeFormat FORMAT_SERIALIZED_DEFAULT = SerializeFormat.FORMAT_SERIALIZED_JAVA;
+ public static final SerializeFormat FORMAT_SERIALIZED_DEFAULT = SerializeFormat.FORMAT_SERIALIZED_SMILE;
private SerializeFormat format = FORMAT_SERIALIZED_DEFAULT;
http://git-wip-us.apache.org/repos/asf/ode/blob/9e133873/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/jacksonhack/UniqueStringIdGenerator.java
----------------------------------------------------------------------
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/jacksonhack/UniqueStringIdGenerator.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/jacksonhack/UniqueStringIdGenerator.java
new file mode 100644
index 0000000..cef3e30
--- /dev/null
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/jacksonhack/UniqueStringIdGenerator.java
@@ -0,0 +1,56 @@
+package org.apache.ode.bpel.obj.serde.jacksonhack;
+
+import java.util.UUID;
+
+import com.fasterxml.jackson.annotation.ObjectIdGenerator;
+
+/**
+ * Copied from jackson {@link com.fasterxml.jackson.annotation.ObjectIdGenerators.UUIDGenerator}
+ * and changed id type from UUID to String
+ */
+public class UniqueStringIdGenerator extends ObjectIdGenerator<String>{
+ private static final long serialVersionUID = 1L;
+ protected final Class<?> _scope;
+ public UniqueStringIdGenerator() { this(Object.class); }
+ private UniqueStringIdGenerator(Class<?> scope) {
+ _scope = scope;
+ }
+
+ /**
+ * Can just return base instance since this is essentially scopeless
+ */
+ @Override
+ public ObjectIdGenerator<String> forScope(Class<?> scope) {
+ return this;
+ }
+
+ /**
+ * Can just return base instance since this is essentially scopeless
+ */
+ @Override
+ public ObjectIdGenerator<String> newForSerialization(Object context) {
+ return this;
+ }
+
+ @Override
+ public String generateId(Object forPojo) {
+ return UUID.randomUUID().toString();
+ }
+
+ @Override
+ public IdKey key(Object key) {
+ return new IdKey(getClass(), null, key);
+ }
+
+ /**
+ * Since UUIDs are always unique, let's fully ignore scope definition
+ */
+ @Override
+ public boolean canUseFor(ObjectIdGenerator<?> gen) {
+ return (gen.getClass() == getClass());
+ }
+ @Override
+ public Class<?> getScope() {
+ return _scope;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ode/blob/9e133873/bpel-nobj/src/test/java/org/apache/ode/bpel/obj/serde/jacksonhack/JacksonTest.java
----------------------------------------------------------------------
diff --git a/bpel-nobj/src/test/java/org/apache/ode/bpel/obj/serde/jacksonhack/JacksonTest.java b/bpel-nobj/src/test/java/org/apache/ode/bpel/obj/serde/jacksonhack/JacksonTest.java
index ae92799..afa4b78 100644
--- a/bpel-nobj/src/test/java/org/apache/ode/bpel/obj/serde/jacksonhack/JacksonTest.java
+++ b/bpel-nobj/src/test/java/org/apache/ode/bpel/obj/serde/jacksonhack/JacksonTest.java
@@ -5,7 +5,9 @@ import static org.junit.Assert.assertEquals;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.LinkedHashMap;
+import java.util.List;
import java.util.Map;
import javax.xml.namespace.QName;
@@ -14,7 +16,6 @@ import org.apache.ode.bpel.obj.serde.KeyAsJsonDeserializer;
import org.apache.ode.bpel.obj.serde.KeyAsJsonSerializer;
import org.junit.Test;
-import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import com.fasterxml.jackson.core.JsonGenerationException;
@@ -24,6 +25,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.dataformat.smile.SmileFactory;
public class JacksonTest {
/**
@@ -53,14 +55,14 @@ public class JacksonTest {
A a2 = b;
map.put("i5", b);
map.put("i6", a2);
- ObjectMapper mapper = new ObjectMapper();
+ ObjectMapper mapper = new ObjectMapper(new SmileFactory());
mapper.setSerializerFactory(TypeBeanSerializerFactory.instance);
mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
mapper.enable(SerializationFeature.INDENT_OUTPUT);
ByteArrayOutputStream os = new ByteArrayOutputStream();
mapper.writeValue(os, map);
ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray());
- ObjectMapper m2 = new ObjectMapper();
+ ObjectMapper m2 = new ObjectMapper(new SmileFactory());
m2.setSerializerFactory(TypeBeanSerializerFactory.instance);
m2.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
@SuppressWarnings("rawtypes")
@@ -111,7 +113,7 @@ public class JacksonTest {
}
@Test
public void testMapTypeInfo() throws JsonParseException, JsonMappingException, IOException{
- ObjectMapper mapper = new ObjectMapper();
+ ObjectMapper mapper = new ObjectMapper(new SmileFactory());
mapper.setSerializerFactory(TypeBeanSerializerFactory.instance);
mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
mapper.enable(SerializationFeature.INDENT_OUTPUT);
@@ -123,11 +125,37 @@ public class JacksonTest {
mapper.writeValue(os, c);
ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray());
- ObjectMapper m2 = new ObjectMapper();
+ ObjectMapper m2 = new ObjectMapper(new SmileFactory());
m2.setSerializerFactory(TypeBeanSerializerFactory.instance);
m2.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
C de = m2.readValue(is, C.class);
assertEquals(c.map, de.map);
}
+
+ @JsonIdentityInfo(generator = UniqueStringIdGenerator.class, property = "@id")
+ public static class D{
+ public D next;
+ }
+ @Test
+ public void testSmileFormat() throws JsonGenerationException, JsonMappingException, IOException{
+ ObjectMapper mapper = new ObjectMapper(new SmileFactory());
+ D d = new D();
+ d.next = d;
+
+ mapper.setSerializerFactory(TypeBeanSerializerFactory.instance);
+ mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+ mapper.enable(SerializationFeature.INDENT_OUTPUT);
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ mapper.writeValue(os, d);
+
+ ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray());
+ ObjectMapper m2 = new ObjectMapper(new SmileFactory());
+ m2.setSerializerFactory(TypeBeanSerializerFactory.instance);
+ m2.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+
+ D de = m2.readValue(is, D.class);
+ assertEquals(D.class, de.next.getClass());
+
+ }
}