serialize/de api more reasonable
Project: http://git-wip-us.apache.org/repos/asf/ode/repo Commit: http://git-wip-us.apache.org/repos/asf/ode/commit/2215b11c Tree: http://git-wip-us.apache.org/repos/asf/ode/tree/2215b11c Diff: http://git-wip-us.apache.org/repos/asf/ode/diff/2215b11c Branch: refs/heads/master Commit: 2215b11cc5216a0b601894ecf0d47b824836bb9e Parents: a04b2e9 Author: fangzhen <[email protected]> Authored: Wed Jul 30 23:13:23 2014 +0800 Committer: fangzhen <[email protected]> Committed: Wed Jul 30 23:13:23 2014 +0800 ---------------------------------------------------------------------- Rakefile | 9 +-- .../org/apache/ode/bpel/compiler/BpelC.java | 9 ++- .../ode/bpel/compiler_2_0/GoodCompileTest.java | 4 +- .../apache/ode/bpel/obj/OProcessWrapper.java | 11 ++- .../apache/ode/bpel/obj/serde/DeSerializer.java | 84 ++++++++++++++++++++ .../bpel/obj/serde/JavaSerOmDeserializer.java | 30 ++----- .../ode/bpel/obj/serde/JavaSerOmSerializer.java | 22 +++-- .../ode/bpel/obj/serde/JsonOmDeserializer.java | 28 +++---- .../ode/bpel/obj/serde/JsonOmSerializer.java | 39 ++++----- .../ode/bpel/obj/serde/OmDeserializer.java | 10 +-- .../ode/bpel/obj/serde/OmSerdeFactory.java | 38 ++++++--- .../apache/ode/bpel/obj/serde/OmSerializer.java | 2 +- .../ode/bpel/obj/serde/SmileOmSerializer.java | 6 +- .../ode/bpel/obj/serde/SerializerTest.java | 9 ++- .../org/apache/ode/bpel/engine/BpelProcess.java | 3 +- .../org/apache/ode/store/DeploymentUnitDir.java | 8 +- .../java/org/apache/ode/jbi/OdeContext.java | 3 +- 17 files changed, 196 insertions(+), 119 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/Rakefile ---------------------------------------------------------------------- diff --git a/Rakefile b/Rakefile index 59743e2..21a07bc 100644 --- a/Rakefile +++ b/Rakefile @@ -28,14 +28,7 @@ require File.join(File.dirname(__FILE__), 'dependencies.rb') Buildr.settings.build['jmock'] = "1.2.0" Buildr.settings.build['junit'] = "4.11" -module Buildr - class << JUnit - alias_method :olddeps, :dependencies - def dependencies - ["org.hamcrest:hamcrest-core:jar:1.3"] + olddeps - end - end -end +Buildr::JUnit.instance_eval { @dependencies = ["junit:junit:jar:#{version}", "org.hamcrest:hamcrest-core:jar:1.3"] + Buildr::JMock.dependencies} Buildr::Hibernate::REQUIRES[:xdoclet] = Buildr.group("xdoclet", "xdoclet-xdoclet-module", "xdoclet-hibernate-module", :under=>"xdoclet", :version=>"1.2.3") + ["xdoclet:xjavadoc:jar:1.1-j5"] http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelC.java ---------------------------------------------------------------------- diff --git a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelC.java b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelC.java index c3ce971..8a09a51 100644 --- a/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelC.java +++ b/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelC.java @@ -40,6 +40,7 @@ import org.apache.ode.bpel.compiler.bom.BpelObjectFactory; import org.apache.ode.bpel.compiler.bom.Process; import org.apache.ode.bpel.obj.OProcess; import org.apache.ode.bpel.obj.OProcessWrapper; +import org.apache.ode.bpel.obj.serde.DeSerializer; import org.apache.ode.bpel.obj.serde.OmSerdeFactory; import org.apache.ode.bpel.obj.serde.OmSerializer; import org.apache.ode.utils.StreamUtils; @@ -285,8 +286,8 @@ public class BpelC { } try { - OmSerializer serializer = new OmSerdeFactory().createOmSerializer(_outputStream, oprocess); - serializer.serialize(); + DeSerializer serializer = new DeSerializer(); + serializer.serialize(_outputStream, oprocess); } finally { // close & mark myself invalid this.invalidate(); @@ -438,8 +439,8 @@ public class BpelC { } try { - OmSerializer serializer = new OmSerdeFactory().createOmSerializer(_outputStream, oprocess); - serializer.serialize(); + DeSerializer serializer = new DeSerializer(); + serializer.serialize(_outputStream, oprocess); } finally { // close & mark myself invalid this.invalidate(); http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/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 9f44e55..98a1088 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 @@ -31,6 +31,7 @@ import org.apache.ode.bpel.obj.OProcess; import org.apache.ode.bpel.obj.migrate.EqualityVisitor; import org.apache.ode.bpel.obj.migrate.ExtensibeImplEqualityComp; import org.apache.ode.bpel.obj.migrate.ObjectTraverser; +import org.apache.ode.bpel.obj.serde.DeSerializer; import org.apache.ode.bpel.obj.serde.OmDeserializer; import org.apache.ode.bpel.obj.serde.OmSerdeFactory; import org.junit.Assert; @@ -52,8 +53,7 @@ public class GoodCompileTest extends AbstractCompileTestCase implements + ".cbp"; _compiler.serializeOProcess(origi, cbpPath); - OmDeserializer deserializer = new OmSerdeFactory() - .createOmDeserializer(new FileInputStream(cbpPath)); + DeSerializer deserializer = new DeSerializer(new FileInputStream(cbpPath)); OProcess desered = deserializer.deserialize(); ObjectTraverser traverse = new ObjectTraverser(); http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/OProcessWrapper.java ---------------------------------------------------------------------- diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/OProcessWrapper.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/OProcessWrapper.java index 365575e..f319d94 100644 --- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/OProcessWrapper.java +++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/OProcessWrapper.java @@ -40,6 +40,7 @@ public class OProcessWrapper extends ExtensibleImpl implements Serializable{ private static final String GUID = "guid"; private static final String PROCESS = "process"; private static final String OTHER_HEADERS = "otherHeaders"; + private static final String TYPE = "type"; public OProcessWrapper() { super(new LinkedHashMap<String, Object>()); @@ -65,9 +66,14 @@ public class OProcessWrapper extends ExtensibleImpl implements Serializable{ //Accessors @JsonIgnore public QName getType(){ - return new QName(getProcess().getTargetNamespace(), getProcess().getProcessName()); + return (QName)fieldContainer.get(TYPE); + } + public void setType(QName qname){ + fieldContainer.put(TYPE, qname); + } + private void setType(String namespace, String local){ + fieldContainer.put(TYPE, new QName(namespace, local)); } - @JsonIgnore public byte[] getMagic() { return (byte[])fieldContainer.get(MAGIC_NUMBER); @@ -121,6 +127,7 @@ public class OProcessWrapper extends ExtensibleImpl implements Serializable{ } public void setProcess(OProcess process) { setGuid(process.getGuid()); + setType(process.getTargetNamespace(), process.getProcessName()); fieldContainer.put(OProcessWrapper.PROCESS, process); } } http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/DeSerializer.java ---------------------------------------------------------------------- diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/DeSerializer.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/DeSerializer.java new file mode 100644 index 0000000..db623fb --- /dev/null +++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/DeSerializer.java @@ -0,0 +1,84 @@ +package org.apache.ode.bpel.obj.serde; + +import java.io.IOException; +import java.io.InputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.OutputStream; +import java.util.Map; + +import javax.xml.namespace.QName; + +import org.apache.ode.bpel.obj.OProcess; +import org.apache.ode.bpel.obj.OProcessWrapper; +import org.apache.ode.bpel.obj.serde.OmSerdeFactory.SerializeFormat; + +public class DeSerializer { + private OProcessWrapper wrapper = new OProcessWrapper(); + private InputStream is; + public DeSerializer(InputStream is){ + this.is = is; + deserializeHeader(); + } + + public DeSerializer() { + } + + public void serialize(OutputStream out, OProcess process){ + serialize(out, process, OmSerdeFactory.FORMAT_SERIALIZED_DEFAULT); + } + public void serialize(OutputStream out, OProcess process, SerializeFormat format){ + wrapper.setCompileTime(System.currentTimeMillis()); + wrapper.setProcess(process); + wrapper.setFormat(format); + try { + ObjectOutputStream oos = new ObjectOutputStream(out); + oos.writeObject(wrapper.getMagic()); + oos.writeObject(wrapper.getFormat()); + oos.writeLong(wrapper.getCompileTime()); + oos.writeObject(wrapper.getGuid()); + oos.writeObject(wrapper.getType()); + oos.writeObject(wrapper.getOtherHeaders()); + } catch (IOException e1) { + SerializaionRtException e = new SerializaionRtException("Error when serialize Headers."); + e.initCause(e1); + throw e; + } + OmSerdeFactory factory = new OmSerdeFactory(); + factory.setFormat(format); + OmSerializer serializer = factory.createOmSerializer(out, wrapper.getProcess()); + serializer.serialize(); + } + + private void deserializeHeader(){ + try { + ObjectInputStream ois = new ObjectInputStream(is); + wrapper = new OProcessWrapper(); + wrapper.setMagic((byte[])ois.readObject()); + wrapper.setFormat((SerializeFormat)ois.readObject()); + wrapper.setCompileTime(ois.readLong()); + wrapper.setGuid((String)ois.readObject()); + wrapper.setType((QName)ois.readObject()); + wrapper.setOtherHeaders((Map<String, Object>) (ois.readObject())); + wrapper.checkValid(); + } catch (Exception e1) { + SerializaionRtException e = new SerializaionRtException("Error when reading Headers during deseriazation"); + e.initCause(e1); + throw e; + } + } + public OProcess deserialize(){ + OmSerdeFactory factory = new OmSerdeFactory(); + factory.setFormat(wrapper.getFormat()); + OmDeserializer de = factory.createOmDeserializer(is); + return de.deserialize(); + } + + public OProcessWrapper getWrapper() { + return wrapper; + } + public void setWrapper(OProcessWrapper wrapper) { + this.wrapper = wrapper; + } + +} http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JavaSerOmDeserializer.java ---------------------------------------------------------------------- diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JavaSerOmDeserializer.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JavaSerOmDeserializer.java index 1d47bdf..ce6a6e1 100644 --- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JavaSerOmDeserializer.java +++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JavaSerOmDeserializer.java @@ -1,43 +1,29 @@ package org.apache.ode.bpel.obj.serde; -import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStream; -import javax.xml.namespace.QName; - import org.apache.ode.bpel.obj.OProcess; -import org.apache.ode.bpel.obj.OProcessWrapper; public class JavaSerOmDeserializer implements OmDeserializer { private InputStream is; - OProcessWrapper wrapper; public JavaSerOmDeserializer(InputStream is) { this.is = is; } - - @Override - public QName getType(){ - return wrapper.getType(); - } - @Override - public String getGuid(){ - return wrapper.getGuid(); - } + @Override - public OProcess deserialize() throws IOException, - SerializaionRtException { - ObjectInputStream ois = new ObjectInputStream(is); - OProcessWrapper wrapper = null; + public OProcess deserialize() throws SerializaionRtException { + ObjectInputStream ois; try { - wrapper = (OProcessWrapper)ois.readObject(); - } catch (ClassNotFoundException e) { + ois = new ObjectInputStream(is); + OProcess process; + process = (OProcess)ois.readObject(); + return process; + } catch (Exception e) { SerializaionRtException se = new SerializaionRtException("error when deserializing process"); se.initCause(e); throw se; } - this.wrapper = wrapper; - return wrapper.getProcess(); } } http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JavaSerOmSerializer.java ---------------------------------------------------------------------- diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JavaSerOmSerializer.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JavaSerOmSerializer.java index 7394e87..5357a26 100644 --- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JavaSerOmSerializer.java +++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JavaSerOmSerializer.java @@ -1,23 +1,29 @@ package org.apache.ode.bpel.obj.serde; -import java.io.IOException; import java.io.ObjectOutputStream; import java.io.OutputStream; -import org.apache.ode.bpel.obj.OProcessWrapper; +import org.apache.ode.bpel.obj.OProcess; public class JavaSerOmSerializer implements OmSerializer { private OutputStream out; - private OProcessWrapper wrapper; - public JavaSerOmSerializer(OutputStream out, OProcessWrapper wrapper) { - this.wrapper = wrapper; + OProcess process; + public JavaSerOmSerializer(OutputStream out, OProcess process) { + this.process = process; this.out = out; } @Override - public void serialize() throws SerializaionRtException, IOException { - ObjectOutputStream oos = new ObjectOutputStream(out); - oos.writeObject(wrapper); + public void serialize() throws SerializaionRtException { + ObjectOutputStream oos; + try { + oos = new ObjectOutputStream(out); + oos.writeObject(process); + } catch (Exception e) { + SerializaionRtException se = new SerializaionRtException("error when serialize process"); + se.initCause(e); + throw se; + } } } http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmDeserializer.java ---------------------------------------------------------------------- diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmDeserializer.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmDeserializer.java index ced94fb..a170ca5 100644 --- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmDeserializer.java +++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmDeserializer.java @@ -2,12 +2,10 @@ package org.apache.ode.bpel.obj.serde; import java.io.IOException; import java.io.InputStream; -import java.net.URI; import java.util.HashMap; import java.util.Map; import javax.wsdl.OperationType; -import javax.xml.namespace.QName; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -35,7 +33,7 @@ public class JsonOmDeserializer implements OmDeserializer { protected static final Log __log = LogFactory .getLog(JsonOmDeserializer.class); - private OProcessWrapper wrapper; + private OProcess process; private InputStream is; protected JsonFactory factory; @@ -58,13 +56,12 @@ public class JsonOmDeserializer implements OmDeserializer { this(); this.is = is; this.factory = factory; - wrapper = new OProcessWrapper(); + process = new OProcess(); } @Override @SuppressWarnings({ "unchecked", "rawtypes" }) - public OProcess deserialize() throws IOException, - SerializaionRtException { + public OProcess deserialize() throws SerializaionRtException { mapper = new ObjectMapper(factory); mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); mapper.setSerializerFactory(TypeBeanSerializerFactory.instance); @@ -78,8 +75,14 @@ public class JsonOmDeserializer implements OmDeserializer { simpleModule.addKeyDeserializer(String.class, new KeyAsJsonDeserializer()); mapper.registerModule(simpleModule); - wrapper = mapper.readValue(is, OProcessWrapper.class); - return wrapper.getProcess(); + try { + process = mapper.readValue(is, OProcess.class); + } catch (Exception e1) { + SerializaionRtException e = new SerializaionRtException("Error when deseriaze process during deseriazation"); + e.initCause(e1); + throw e; + } + return process; } public void addCustomDeserializer(Class<?> c, JsonDeserializer<?> sd) { @@ -187,13 +190,4 @@ public class JsonOmDeserializer implements OmDeserializer { } - @Override - public String getGuid() { - return wrapper.getGuid(); - } - - @Override - public QName getType() { - return wrapper.getType(); - } } http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmSerializer.java ---------------------------------------------------------------------- diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmSerializer.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmSerializer.java index c5503fc..87d4355 100644 --- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmSerializer.java +++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/JsonOmSerializer.java @@ -3,16 +3,14 @@ package org.apache.ode.bpel.obj.serde; import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.Type; -import java.net.URI; import java.util.HashMap; import java.util.Map; import javax.wsdl.OperationType; -import javax.xml.namespace.QName; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.ode.bpel.elang.xpath10.obj.OXPath10Expression; +import org.apache.ode.bpel.obj.OProcess; import org.apache.ode.bpel.obj.OProcessWrapper; import org.apache.ode.bpel.obj.serde.jacksonhack.TypeBeanSerializerFactory; import org.apache.ode.utils.NSContext; @@ -21,6 +19,7 @@ import org.w3c.dom.Element; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerationException; import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.ObjectMapper; @@ -37,7 +36,7 @@ public class JsonOmSerializer implements OmSerializer { .getLog(JsonOmSerializer.class); private OutputStream os; - private OProcessWrapper wrapper; + private OProcess process; private ObjectMapper mapper; protected JsonFactory factory; @@ -50,21 +49,21 @@ public class JsonOmSerializer implements OmSerializer { addCustomSerializer(NSContext.class, new NSContextSerializer(NSContext.class)); } - public JsonOmSerializer(OutputStream os, OProcessWrapper wrapper) { - this(os, wrapper, new JsonFactory()); + public JsonOmSerializer(OutputStream os, OProcess process){ + this(os, process, new JsonFactory()); } - protected JsonOmSerializer(OutputStream os, OProcessWrapper wrapper, + protected JsonOmSerializer(OutputStream os, OProcess process, JsonFactory factory) { this(); this.os = os; - this.wrapper = wrapper; + this.process = process; this.factory = factory; } @Override @SuppressWarnings({ "unchecked", "rawtypes" }) - public void serialize() throws SerializaionRtException, IOException { + public void serialize(){ mapper = new ObjectMapper(factory); mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); mapper.setSerializerFactory(TypeBeanSerializerFactory.instance); @@ -73,15 +72,19 @@ public class JsonOmSerializer implements OmSerializer { simpleModule.addSerializer((Class) ss, (JsonSerializer) serializers.get(ss)); } -// simpleModule.addKeySerializer(QName.class, new KeyAsJsonSerializer()); -// simpleModule.addKeySerializer(URI.class, new KeyAsJsonSerializer()); -// simpleModule.addKeySerializer(OXPath10Expression.SigGetVariableData.class, new KeyAsJsonSerializer()); + simpleModule.addKeySerializer(Object.class, new KeyAsJsonSerializer()); mapper.registerModule(simpleModule); mapper.enable(SerializationFeature.INDENT_OUTPUT); - mapper.writeValue(os, wrapper); - os.flush(); + try { + mapper.writeValue(os, process); + os.flush(); + } catch (Exception e) { + SerializaionRtException se = new SerializaionRtException("error when serialize process"); + se.initCause(e); + throw se; + } } public void addCustomSerializer(Class<?> c, JsonSerializer<?> ss) { @@ -104,14 +107,6 @@ public class JsonOmSerializer implements OmSerializer { this.os = os; } - public OProcessWrapper getWrapper() { - return wrapper; - } - - public void setWrapper(OProcessWrapper wrapper) { - this.wrapper = wrapper; - } - public static class OperationTypeSerializer extends StdScalarSerializer<OperationType> { http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/OmDeserializer.java ---------------------------------------------------------------------- diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/OmDeserializer.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/OmDeserializer.java index 6fece8e..c3f9745 100644 --- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/OmDeserializer.java +++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/OmDeserializer.java @@ -1,15 +1,7 @@ package org.apache.ode.bpel.obj.serde; -import java.io.IOException; - -import javax.xml.namespace.QName; - import org.apache.ode.bpel.obj.OProcess; -import org.apache.ode.bpel.obj.OProcessWrapper; public interface OmDeserializer { - public OProcess deserialize() throws IOException, SerializaionRtException; - - String getGuid(); - QName getType(); + public OProcess deserialize() throws SerializaionRtException; } http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/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 444382f..5c006fd 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 @@ -4,7 +4,6 @@ import java.io.InputStream; import java.io.OutputStream; import org.apache.ode.bpel.obj.OProcess; -import org.apache.ode.bpel.obj.OProcessWrapper; public class OmSerdeFactory { public static final SerializeFormat FORMAT_SERIALIZED_DEFAULT = SerializeFormat.FORMAT_SERIALIZED_JAVA; @@ -13,18 +12,16 @@ public class OmSerdeFactory { public OmSerializer createOmSerializer(OutputStream out, OProcess process){ - OProcessWrapper wrapper = new OProcessWrapper(System.currentTimeMillis()); - wrapper.setProcess(process); OmSerializer serializer; switch (format) { case FORMAT_SERIALIZED_JSON: - serializer = new JsonOmSerializer(out, wrapper); + serializer = new JsonOmSerializer(out, process); break; case FORMAT_SERIALIZED_SMILE: - serializer = new SmileOmSerializer(out, wrapper); + serializer = new SmileOmSerializer(out, process); break; case FORMAT_SERIALIZED_JAVA: - serializer = new JavaSerOmSerializer(out, wrapper); + serializer = new JavaSerOmSerializer(out, process); break; default: throw new SerializaionRtException("Unsupported format"); @@ -57,9 +54,30 @@ public class OmSerdeFactory { } public static enum SerializeFormat{ - FORMAT_UNINITIALIZED, - FORMAT_SERIALIZED_JSON, - FORMAT_SERIALIZED_SMILE, - FORMAT_SERIALIZED_JAVA; + FORMAT_UNINITIALIZED(0x00), + FORMAT_SERIALIZED_JSON(0x10), + FORMAT_SERIALIZED_SMILE(0x11), + FORMAT_SERIALIZED_JAVA(0x20); + + private int code; + private SerializeFormat(int code){ + this.code = code; + } + + public int encode(){ + return code; + } + public SerializeFormat decode(int c){ + switch (c) { + case 0x10: + return FORMAT_SERIALIZED_JSON; + case 0x11: + return FORMAT_SERIALIZED_SMILE; + case 0x20: + return FORMAT_SERIALIZED_JAVA; + default: + return FORMAT_UNINITIALIZED; + } + } } } http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/OmSerializer.java ---------------------------------------------------------------------- diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/OmSerializer.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/OmSerializer.java index c4e6bf8..27efdba 100644 --- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/OmSerializer.java +++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/OmSerializer.java @@ -3,5 +3,5 @@ package org.apache.ode.bpel.obj.serde; import java.io.IOException; public interface OmSerializer { - public void serialize() throws SerializaionRtException, IOException; + public void serialize() throws SerializaionRtException; } http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/SmileOmSerializer.java ---------------------------------------------------------------------- diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/SmileOmSerializer.java b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/SmileOmSerializer.java index dd1c174..3ec5916 100644 --- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/SmileOmSerializer.java +++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/serde/SmileOmSerializer.java @@ -2,7 +2,7 @@ package org.apache.ode.bpel.obj.serde; import java.io.OutputStream; -import org.apache.ode.bpel.obj.OProcessWrapper; +import org.apache.ode.bpel.obj.OProcess; import com.fasterxml.jackson.dataformat.smile.SmileFactory; @@ -11,7 +11,7 @@ public class SmileOmSerializer extends JsonOmSerializer{ super(); factory = new SmileFactory(); } - public SmileOmSerializer(OutputStream out, OProcessWrapper wrapper) { - super(out, wrapper, new SmileFactory()); + public SmileOmSerializer(OutputStream out, OProcess process) { + super(out, process, new SmileFactory()); } } http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/bpel-nobj/src/test/java/org/apache/ode/bpel/obj/serde/SerializerTest.java ---------------------------------------------------------------------- diff --git a/bpel-nobj/src/test/java/org/apache/ode/bpel/obj/serde/SerializerTest.java b/bpel-nobj/src/test/java/org/apache/ode/bpel/obj/serde/SerializerTest.java index e6aefe9..f0d7627 100644 --- a/bpel-nobj/src/test/java/org/apache/ode/bpel/obj/serde/SerializerTest.java +++ b/bpel-nobj/src/test/java/org/apache/ode/bpel/obj/serde/SerializerTest.java @@ -18,13 +18,14 @@ public class SerializerTest { OmSerdeFactory serdeFactory = new OmSerdeFactory(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); OProcess original = new OProcess("0"); - OmSerializer omSerializer = serdeFactory.createOmSerializer(baos, original); - omSerializer.serialize(); + original.setProcessName("process1"); + DeSerializer serializer = new DeSerializer(); + serializer.serialize(baos, original); InputStream is = new BufferedInputStream(new ByteArrayInputStream(baos .toByteArray())); - OmDeserializer omDeserializer = serdeFactory.createOmDeserializer(is); - OProcess desered = omDeserializer.deserialize(); + DeSerializer deSerializer = new DeSerializer(is); + OProcess desered = deSerializer.deserialize(); assertEquals(original.getFieldContainer(), desered.getFieldContainer()); } } http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java ---------------------------------------------------------------------- diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java index 84ccd35..77ed24e 100644 --- a/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java +++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java @@ -66,6 +66,7 @@ import org.apache.ode.bpel.obj.OMessageVarType; import org.apache.ode.bpel.obj.OPartnerLink; import org.apache.ode.bpel.obj.OProcess; import org.apache.ode.bpel.obj.OProcessWrapper; +import org.apache.ode.bpel.obj.serde.DeSerializer; import org.apache.ode.bpel.obj.serde.OmDeserializer; import org.apache.ode.bpel.obj.serde.OmSerdeFactory; import org.apache.ode.bpel.runtime.BpelRuntimeContext; @@ -564,7 +565,7 @@ public class BpelProcess { */ private OProcess deserializeCompiledProcess(InputStream is) throws Exception { OProcess compiledProcess; - OmDeserializer deserializer = new OmSerdeFactory().createOmDeserializer(is); + DeSerializer deserializer = new DeSerializer(is); compiledProcess = deserializer.deserialize(); return compiledProcess; } http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java ---------------------------------------------------------------------- diff --git a/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java b/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java index 9fdbc2b..213c7de 100644 --- a/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java +++ b/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java @@ -51,6 +51,7 @@ import org.apache.ode.bpel.dd.TDeployment; import org.apache.ode.bpel.dd.TDeployment.Process; import org.apache.ode.bpel.iapi.ContextException; import org.apache.ode.bpel.obj.OProcess; +import org.apache.ode.bpel.obj.serde.DeSerializer; import org.apache.ode.bpel.obj.serde.OmDeserializer; import org.apache.ode.bpel.obj.serde.OmSerdeFactory; import org.apache.ode.utils.InternPool; @@ -218,11 +219,8 @@ class DeploymentUnitDir { InputStream is = null; try { is = new FileInputStream(f); - OmDeserializer deserializer = new OmSerdeFactory().createOmDeserializer(is); - OProcess process = deserializer.deserialize(); - CBPInfo info = new CBPInfo(deserializer.getType(),deserializer.getGuid(), f); -// Serializer ofh = new Serializer(is); -// CBPInfo info = new CBPInfo(ofh.getType(), ofh.getGuid(), f); + DeSerializer deserializer = new DeSerializer(is); + CBPInfo info = new CBPInfo(deserializer.getWrapper().getType(),deserializer.getWrapper().getGuid(), f); return info; } catch (Exception e) { throw new ContextException("Couldn't read compiled BPEL process " + f.getAbsolutePath(), e); http://git-wip-us.apache.org/repos/asf/ode/blob/2215b11c/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java ---------------------------------------------------------------------- diff --git a/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java b/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java index 77fce97..f633a43 100644 --- a/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java +++ b/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java @@ -49,6 +49,7 @@ import org.apache.ode.bpel.iapi.ProcessConf; import org.apache.ode.bpel.obj.OPartnerLink; import org.apache.ode.bpel.obj.OProcess; import org.apache.ode.bpel.obj.OProcessWrapper; +import org.apache.ode.bpel.obj.serde.DeSerializer; import org.apache.ode.bpel.obj.serde.OmDeserializer; import org.apache.ode.bpel.obj.serde.OmSerdeFactory; import org.apache.ode.bpel.pmapi.InstanceManagement; @@ -200,7 +201,7 @@ final public class OdeContext { InputStream is = pc.getCBPInputStream(); OProcess compiledProcess = null; try { - OmDeserializer deserializer = new OmSerdeFactory().createOmDeserializer(is); + DeSerializer deserializer = new DeSerializer(is); compiledProcess = deserializer.deserialize(); } finally { is.close();
