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

Reply via email to