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; }
