migration from 1.3.x omodel to new omodel, tests passed; added interface in new 
OModel for future evolution


Project: http://git-wip-us.apache.org/repos/asf/ode/repo
Commit: http://git-wip-us.apache.org/repos/asf/ode/commit/ec02cf6f
Tree: http://git-wip-us.apache.org/repos/asf/ode/tree/ec02cf6f
Diff: http://git-wip-us.apache.org/repos/asf/ode/diff/ec02cf6f

Branch: refs/heads/master
Commit: ec02cf6f485226b48406ff5c34d07abef08c34d2
Parents: e31d0a0
Author: fangzhen <[email protected]>
Authored: Thu Jul 31 22:44:44 2014 +0800
Committer: fangzhen <[email protected]>
Committed: Thu Jul 31 22:44:44 2014 +0800

----------------------------------------------------------------------
 .../ode/bpel/compiler_2_0/MigrationTest.java    | 18 +++++++++--
 .../java/org/apache/ode/bpel/obj/DebugInfo.java | 17 ++++++++++
 .../org/apache/ode/bpel/obj/Extensible.java     |  6 ++++
 .../org/apache/ode/bpel/obj/ExtensibleImpl.java | 19 ++++++++---
 .../java/org/apache/ode/bpel/obj/OProcess.java  | 34 +++++++++++++++++---
 .../java/org/apache/ode/bpel/obj/OScope.java    | 10 +++++-
 .../obj/migrate/ExtensibeImplEqualityComp.java  | 19 +++++++----
 .../apache/ode/bpel/obj/migrate/OmOld2new.java  |  1 +
 8 files changed, 105 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ode/blob/ec02cf6f/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/MigrationTest.java
----------------------------------------------------------------------
diff --git 
a/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/MigrationTest.java
 
b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/MigrationTest.java
index e8cbc95..7fc9cf1 100644
--- 
a/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/MigrationTest.java
+++ 
b/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/MigrationTest.java
@@ -13,9 +13,10 @@ import org.apache.ode.bpel.o.Serializer;
 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.OmOld2new;
 import org.apache.ode.bpel.obj.migrate.ObjectTraverser;
+import org.apache.ode.bpel.obj.migrate.OmOld2new;
 import org.junit.Assert;
+import org.junit.Test;
 
 public class MigrationTest extends GoodCompileTest{
     private static final Log __log = LogFactory.getLog(MigrationTest.class);
@@ -48,10 +49,23 @@ public class MigrationTest extends GoodCompileTest{
                visitor.addCustomComparator(new 
ExtensibeImplEqualityComp(visitor));
                traverse.accept(visitor);
                boolean res = (Boolean)traverse.traverseObject(migrated);
-                       assertEquals(Boolean.TRUE, res);                
+                       assertEquals(Boolean.TRUE, res);
      } catch (Exception ex) {
             ex.printStackTrace();
             Assert.fail("Compilation or migration did not succeed.");
         }
     }
+    
+    
+       @Test
+       public void testCompensation1() throws Exception {
+       //skip this test for no corresponding cbp from 1.3.x
+//             runTest("/2.0/good/compensation/comp1-2.0.bpel");
+       }
+  
+    @Test
+       public void testMultipleEmbeddedSchemas() throws Exception {
+       //skip this test for no corresponding cbp from 1.3.x
+//             
runTest("/org/apache/ode/bpel/compiler/MultipleEmbeddedSchemas.bpel");
+       }
 }

http://git-wip-us.apache.org/repos/asf/ode/blob/ec02cf6f/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/DebugInfo.java
----------------------------------------------------------------------
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/DebugInfo.java 
b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/DebugInfo.java
index 29947b2..937aca7 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/DebugInfo.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/DebugInfo.java
@@ -34,6 +34,16 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
  */
 public class DebugInfo extends ExtensibleImpl  implements Serializable{
        public static final long serialVersionUID = -1L;
+       /**
+        * Change log of class version
+        * initial 1
+        * current 2
+        * 
+        * 1->2:
+        *      sourceURI attribute is more meaningful
+        *  */
+       public static final int CURRENT_CLASS_VERSION = 2;
+
        /** Source file / resource name. */
        private static final String SOURCEURI = "sourceURI";
        /** Source line number (start). */
@@ -116,6 +126,13 @@ public class DebugInfo extends ExtensibleImpl  implements 
Serializable{
                fieldContainer.put(STARTLINE, startLine);
        }
 
+       @Override
+       public boolean equals(Object obj){
+               if (!(obj instanceof DebugInfo)) return false;
+               DebugInfo other = (DebugInfo)obj;
+               return this.getStartLine() == other.getStartLine() &&
+                               this.getEndLine() == other.getEndLine();
+       }
        private void readObject(ObjectInputStream ois) throws IOException, 
ClassNotFoundException{
                ois.defaultReadObject();
                fieldContainer.remove(DESCRIPTION);

http://git-wip-us.apache.org/repos/asf/ode/blob/ec02cf6f/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/Extensible.java
----------------------------------------------------------------------
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/Extensible.java 
b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/Extensible.java
index e4afdbb..488e8cf 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/Extensible.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/Extensible.java
@@ -27,4 +27,10 @@ public interface Extensible<T> {
         * @return
         */
        public T getField(String fieldName);
+
+       /**
+        * Upgrade to newest version of this class.
+        * @return
+        */
+       public void upgrade2Newest();
 }

http://git-wip-us.apache.org/repos/asf/ode/blob/ec02cf6f/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 489d6d2..f2af58b 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
@@ -14,17 +14,18 @@ import com.fasterxml.jackson.annotation.ObjectIdGenerators;
 @JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property 
= "@id")
 public class ExtensibleImpl  implements Extensible<Object>, Serializable{
        public static final long serialVersionUID = -1L;
-       
+       protected static final int CURRENT_CLASS_VERSION = 1;
        /** The wrapper wraps fields. Fields can be deleted, added or updated */
        transient protected Map<String, Object> fieldContainer;
        /** Version of this class*/
-       private static final String CLASS_VERSION = "classVersion";
+       private static final String CLASSVERSION = "classVersion";
 
        protected ExtensibleImpl() {
-               fieldContainer = new LinkedHashMap<String, Object>();
+               this(new LinkedHashMap<String, Object>());
        }
        protected ExtensibleImpl(Map<String, Object> container) {
                fieldContainer = container;
+               setClassVersion(CURRENT_CLASS_VERSION);
        }
        
 //     @JsonAnyGetter
@@ -51,12 +52,12 @@ public class ExtensibleImpl  implements Extensible<Object>, 
Serializable{
        
        @JsonIgnore
        public int getClassVersion() {
-               Object o = fieldContainer.get(CLASS_VERSION);
+               Object o = fieldContainer.get(CLASSVERSION);
                return o == null ? 0 : (Integer)o;
        }
 
        public void setClassVersion(int version) {
-               fieldContainer.put(CLASS_VERSION, version);
+               fieldContainer.put(CLASSVERSION, version);
        }
        
        private void writeObject(ObjectOutputStream oos) throws IOException{
@@ -83,5 +84,13 @@ public class ExtensibleImpl  implements Extensible<Object>, 
Serializable{
                        Object value = ois.readObject();
                        fieldContainer.put(key, value);
                }
+               
+               //migrate to newest version
+               upgrade2Newest();
+       }
+       
+       @Override
+       public void upgrade2Newest(){
+               return;
        }
 }

http://git-wip-us.apache.org/repos/asf/ode/blob/ec02cf6f/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/OProcess.java
----------------------------------------------------------------------
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/OProcess.java 
b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/OProcess.java
index 037ebf7..2296210 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/OProcess.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/OProcess.java
@@ -18,8 +18,10 @@
  */
 package org.apache.ode.bpel.obj;
 
-import java.io.Serializable;
 import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Date;
@@ -52,6 +54,17 @@ import de.danielbechler.diff.annotation.ObjectDiffProperty;
  */
 public class OProcess extends OBase  implements Serializable{
        public static final long serialVersionUID = -1L;
+       
+       /**
+        * Change log of class version
+        * initial 1
+        * current 2
+        * 
+        * 1->2:
+        *      added namespaceContext attribute
+        *  */
+       public static final int CURRENT_CLASS_VERSION = 2;
+
        public static int instanceCount = 0;
        private static final String GUID = "guid";
        /** BPEL version. */
@@ -299,7 +312,6 @@ public class OProcess extends OBase  implements 
Serializable{
                return o == null ? null : (HashMap<URI, OXslSheet>)o;
        }
 
-       //      TODO: custom readObject
        public void setAllPartnerLinks(Set<OPartnerLink> allPartnerLinks) {
                if (getAllPartnerLinks() == null) {
                        fieldContainer.put(ALLPARTNERLINKS, allPartnerLinks);
@@ -387,6 +399,11 @@ public class OProcess extends OBase  implements 
Serializable{
                }
        }
 
+       private void readObject(ObjectInputStream ois) throws IOException, 
ClassNotFoundException{
+               ois.defaultReadObject();
+               fieldContainer.remove(NAMESPACECONTEXT);
+       }
+
        public static class OProperty extends OBase  implements Serializable{
        public static final long serialVersionUID = -1L;
 
@@ -434,7 +451,16 @@ public class OProcess extends OBase  implements 
Serializable{
        }
 
        public static class OPropertyAlias extends OBase  implements 
Serializable{
-       public static final long serialVersionUID = -1L;
+               public static final long serialVersionUID = -1L;
+               /**
+                * Change log of class version
+                * initial 1
+                * current 2
+                * 
+                * 1->2:
+                *      added header attribute
+                *  */
+               public static final int CURRENT_CLASS_VERSION = 2;
 
                private static final String VARTYPE = "varType";
 
@@ -467,7 +493,7 @@ public class OProcess extends OBase  implements 
Serializable{
                @JsonIgnore
                public String getHeader() {
                        Object o = fieldContainer.get(HEADER);
-               return o == null ? null : (String)o;
+                       return o == null ? null : (String)o;
                }
 
                @JsonIgnore

http://git-wip-us.apache.org/repos/asf/ode/blob/ec02cf6f/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/OScope.java
----------------------------------------------------------------------
diff --git a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/OScope.java 
b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/OScope.java
index 6c2f602..3527b1e 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/OScope.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/OScope.java
@@ -38,7 +38,15 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
  */
 public class OScope extends OActivity  implements Serializable{
        public static final long serialVersionUID = -1L;
-
+       /**
+        * Change log of class version
+        * initial 1
+        * current 2
+        * 
+        * 1->2:
+        *      added isolatedScope attribute
+        *  */
+       public static final int CURRENT_CLASS_VERSION = 2;
        /** Name of the scope. */
        private static final String NAME = "name";
 

http://git-wip-us.apache.org/repos/asf/ode/blob/ec02cf6f/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 1c32e62..92b3fd7 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,6 +6,8 @@ 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;
@@ -47,6 +49,15 @@ public class ExtensibeImplEqualityComp implements 
EqualityComparator{
                        //won't get here
                        return false;
                }
+               if (obj1 instanceof DebugInfo){
+                       boolean r = obj1.equals(obj2);
+                       if (!r){
+                               if(!visitor.logFalseThrough){
+                                       __log.debug("Unequal in ExtensibleImpl: 
DebugInfo unequal." + visitor.getSt());
+                               }
+                       }
+                       return r;
+               }
                Map m1 = new LinkedHashMap(esi.getFieldContainer());
                Map m2 = new LinkedHashMap(esio.getFieldContainer());
                dehydrate(m1);
@@ -55,18 +66,12 @@ public class ExtensibeImplEqualityComp implements 
EqualityComparator{
                        dehydrateOProcess(m1);
                        dehydrateOProcess(m2);
                }
-               if (obj1 instanceof DebugInfo){
-                       dehydrateDebugInfo(m1);
-                       dehydrateDebugInfo(m2);
-               }
                visitor.setOther(m2);
                return (Boolean) visitor.getTraverse().traverseObject(m1);
        }
-       private void dehydrateDebugInfo(Map m) {
-               m.remove("description");
-       }
        private void dehydrateOProcess(Map m) {
                m.remove("compileDate");
+               m.remove("namespaceContext");
        }
        @SuppressWarnings("rawtypes")
        private void dehydrate(Map map) {

http://git-wip-us.apache.org/repos/asf/ode/blob/ec02cf6f/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/OmOld2new.java
----------------------------------------------------------------------
diff --git 
a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/OmOld2new.java 
b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/OmOld2new.java
index 418c2af..0b5e284 100644
--- a/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/OmOld2new.java
+++ b/bpel-nobj/src/main/java/org/apache/ode/bpel/obj/migrate/OmOld2new.java
@@ -178,6 +178,7 @@ public class OmOld2new extends AbstractObjectVisitor{
                                throw rte;
                        }
                }
+               n.upgrade2Newest();
                return n;
        }
        

Reply via email to