package org.apache.ode.bpel.obj.migrate; import java.io.InputStream; import org.apache.ode.bpel.o.Serializer; import org.apache.ode.bpel.obj.OProcess; import org.apache.ode.bpel.obj.serde.OmDeserializer; import org.apache.ode.bpel.obj.serde.SerializaionRtException; /** * Adaptor for legacy Omodel serializer. Used to deserialize and migrate * old format compiled bpels. * @see Serializer */ public class LegacySerializerAdapter implements OmDeserializer { private Serializer serializer; public LegacySerializerAdapter(InputStream in) { serializer = new Serializer(); serializer._inputStream = in; } /** * Read the old OModel and migrate it to new omodel. */ @Override public OProcess deserialize() throws SerializaionRtException { org.apache.ode.bpel.o.OProcess old; try { old = serializer.readOProcess(); } catch (Exception e) { throw new SerializaionRtException( "Error when deserializing old OModle classes"); } //migrate to new OModel OmOld2new mig = new OmOld2new(); ObjectTraverser mtraverse = new ObjectTraverser(); mtraverse.accept(mig); OProcess migrated = (OProcess) mtraverse.traverseObject(old); return migrated; } }