You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by ms...@apache.org on 2006/11/29 04:12:27 UTC

svn commit: r480360 - in /incubator/ode/trunk: bpel-compiler/ bpel-compiler/src/main/java/ bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ bpel-connector/ bpel-connector/src/main/java/org/apache/ode/bpel/connector/ bpel-dao/src/main/java/org/...

Author: mszefler
Date: Tue Nov 28 19:12:25 2006
New Revision: 480360

URL: http://svn.apache.org/viewvc?view=rev&rev=480360
Log:
* Simplification of process-store DAO mechanism
* Remove in-memory store, replace with in Hibernate for testing.
* Event scheme to support distributed deployment.
* Re-factor of ProcesStore / BpelServer relationship. 
* Thread safety. 
* Some tests for processStore
* Consolidate all schema generation in bpel-schemas
* Maven fixes 


Added:
    incubator/ode/trunk/bpel-compiler/src/main/java/Foo.java
    incubator/ode/trunk/dao-hibernate-db-mysql/
      - copied from r469994, incubator/ode/trunk/dao-hibernate-db-derby/
    incubator/ode/trunk/dao-hibernate-db-mysql/build.xml
      - copied, changed from r480345, incubator/ode/trunk/dao-hibernate-db-derby/build.xml
    incubator/ode/trunk/dao-hibernate-db-mysql/pom.xml
      - copied, changed from r480345, incubator/ode/trunk/dao-hibernate-db-derby/pom.xml
    incubator/ode/trunk/dao-hibernate-db-mysql/shutdown.sql
      - copied unchanged from r480345, incubator/ode/trunk/dao-hibernate-db-derby/shutdown.sql
    incubator/ode/trunk/dao-hibernate-db-mysql/src/
      - copied from r480345, incubator/ode/trunk/dao-hibernate-db-derby/src/
    incubator/ode/trunk/jacob/src/generated/
    incubator/ode/trunk/jacob/src/generated/java/
    incubator/ode/trunk/jacob/src/generated/java/org/
    incubator/ode/trunk/jacob/src/generated/java/org/apache/
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/SynchChannel.java
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/SynchChannelListener.java
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/ValChannel.java
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/ValChannelListener.java
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/cell/
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/cell/CellChannel.java
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/cell/CellChannelListener.java
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/eratosthenes/
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStreamChannel.java
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStreamChannelListener.java
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/synch/
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/synch/SynchPrintChannel.java
    incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/synch/SynchPrintChannelListener.java
Removed:
    incubator/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/DeploymentManagerImpl.java
Modified:
    incubator/ode/trunk/bpel-compiler/   (props changed)
    incubator/ode/trunk/bpel-compiler/pom.xml
    incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelC.java
    incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
    incubator/ode/trunk/bpel-connector/pom.xml
    incubator/ode/trunk/bpel-connector/src/main/java/org/apache/ode/bpel/connector/BpelServerConnector.java
    incubator/ode/trunk/bpel-connector/src/main/java/org/apache/ode/bpel/connector/ConnectionProviderImpl.java
    incubator/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java
    incubator/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/ProcessDAO.java
    incubator/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/package.html
    incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OProcess.java
    incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/Serializer.java
    incubator/ode/trunk/bpel-test/   (props changed)
    incubator/ode/trunk/bpel-test/src/test/java/org/apache/ode/test/BPELTest.java
    incubator/ode/trunk/dao-hibernate-db-derby/build.xml
    incubator/ode/trunk/dao-hibernate-db-derby/pom.xml
    incubator/ode/trunk/dao-hibernate/pom.xml
    incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
    incubator/ode/trunk/jacob/pom.xml
    incubator/ode/trunk/jbi/pom.xml
    incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java
    incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeServiceUnit.java
    incubator/ode/trunk/utils/src/main/java/org/apache/ode/utils/stl/CollectionsX.java

Propchange: incubator/ode/trunk/bpel-compiler/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Nov 28 19:12:25 2006
@@ -1,4 +1,3 @@
-target
 .classpath
 .project
 ~*

Modified: incubator/ode/trunk/bpel-compiler/pom.xml
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-compiler/pom.xml?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/bpel-compiler/pom.xml (original)
+++ incubator/ode/trunk/bpel-compiler/pom.xml Tue Nov 28 19:12:25 2006
@@ -36,15 +36,12 @@
             <groupId>org.apache.ode</groupId>
             <artifactId>ode-bpel-api</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.apache.ode</groupId>
-            <artifactId>ode-bpel-dd</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>org.apache.ode</groupId>
             <artifactId>ode-bpel-schemas</artifactId>
         </dependency>
+
 
         <dependency>
             <groupId>org.apache.ode</groupId>

Added: incubator/ode/trunk/bpel-compiler/src/main/java/Foo.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-compiler/src/main/java/Foo.java?view=auto&rev=480360
==============================================================================
--- incubator/ode/trunk/bpel-compiler/src/main/java/Foo.java (added)
+++ incubator/ode/trunk/bpel-compiler/src/main/java/Foo.java Tue Nov 28 19:12:25 2006
@@ -0,0 +1,13 @@
+import java.io.FileInputStream;
+
+import org.apache.ode.bpel.o.OProcess;
+import org.apache.ode.bpel.o.Serializer;
+
+public class Foo {
+
+    public static void main(String args[]) throws Exception {
+        Serializer s = new Serializer(new FileInputStream("/home/mszefler/dev/tomcat/processes/IDAS/IDASProcess.cbp"));
+        OProcess o = s.readOProcess();
+        System.err.println(o);
+    }
+}
\ No newline at end of file

Modified: incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelC.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelC.java?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelC.java (original)
+++ incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelC.java Tue Nov 28 19:12:25 2006
@@ -284,8 +284,7 @@
     }
 
     try {
-      Serializer fileHeader = new Serializer(System.currentTimeMillis(), 1);
-      fileHeader.write(_outputStream);
+      Serializer fileHeader = new Serializer(System.currentTimeMillis());
       fileHeader.writeOProcess(oprocess, _outputStream);
 
 //      if (_bpelFile.toString().startsWith("file:") && _outputDir != null) {

Modified: incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java (original)
+++ incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java Tue Nov 28 19:12:25 2006
@@ -99,6 +99,7 @@
 import org.apache.ode.bpel.o.OVarType;
 import org.apache.ode.bpel.o.OXsdTypeVarType;
 import org.apache.ode.bpel.o.OXslSheet;
+import org.apache.ode.utils.GUID;
 import org.apache.ode.utils.NSContext;
 import org.apache.ode.utils.fs.FileUtils;
 import org.apache.ode.utils.msg.MessageBundle;
@@ -559,6 +560,7 @@
         }
 
         _oprocess = new OProcess(bpelVersionUri);
+        _oprocess.guid = new GUID().toString();
         _oprocess.constants = makeConstants();
         _oprocess.debugInfo = createDebugInfo(process, "process");
         _oprocess.processName = _processDef.getName();
@@ -615,7 +617,7 @@
             	if (process.getRootActivity() == null) {
                     throw new CompilationException(__cmsgs.errNoRootActivity());
             	}            		
-	    		_structureStack.topScope().activity = compile(process.getRootActivity());
+                _structureStack.topScope().activity = compile(process.getRootActivity());
             }
         });
 
@@ -977,83 +979,84 @@
                 oscope.atomicScope = _atomicScope = newValue;
         }
         try {
-            compile(oscope, src, new Runnable() {
-                public void run() {
+        compile(oscope, src, new Runnable() {
+            public void run() {
                     for (Variable var : src.getVariables()) {
-                        try {
-                            compile(var);
-                        } catch (CompilationException ce) {
-                            recoveredFromError(var, ce);
-                        }
+                    try {
+                        compile(var);
+                    } catch (CompilationException ce) {
+                        recoveredFromError(var, ce);
                     }
+                }
 
                     for (CorrelationSet cset : src.getCorrelationSetDecls()) {
-                        try {
-                            compile(cset);
-                        } catch (CompilationException ce) {
-                            recoveredFromError(cset, ce);
-                        }
+                    try {
+                        compile(cset);
+                    } catch (CompilationException ce) {
+                        recoveredFromError(cset, ce);
                     }
+                }
 
                     for (PartnerLink plink : src.getPartnerLinks()) {
-                        try {
-                            compile(plink);
-                        } catch (CompilationException ce) {
-                            recoveredFromError(plink, ce);
-                        }
+                    try {
+                        compile(plink);
+                    } catch (CompilationException ce) {
+                        recoveredFromError(plink, ce);
                     }
+                }
 
 
-                    if (!src.getEvents().isEmpty() || !src.getAlarms().isEmpty()) {
-                        oscope.eventHandler = new OEventHandler(_oprocess);
-                        oscope.eventHandler.debugInfo = createDebugInfo(src,"Event Handler for " + src);
-                    }
+                if (!src.getEvents().isEmpty() || !src.getAlarms().isEmpty()) {
+                    oscope.eventHandler = new OEventHandler(_oprocess);
+                    oscope.eventHandler.debugInfo = createDebugInfo(src,"Event Handler for " + src);
+                }
 
 
                     for (OnEvent onEvent : src.getEvents()) {
-                        try {
-                            compile(onEvent);
-                        } catch (CompilationException ce) {
-                            recoveredFromError(src, ce);
-                        }
+                    try {
+                        compile(onEvent);
+                    } catch (CompilationException ce) {
+                        recoveredFromError(src, ce);
                     }
+                }
 
                     for (OnAlarm onAlarm : src.getAlarms()) {
-                        try {
-                            compile(onAlarm);
-                        } catch (CompilationException ce) {
-                            recoveredFromError(src, ce);
-                        }
-
+                    try {
+                        compile(onAlarm);
+                    } catch (CompilationException ce) {
+                        recoveredFromError(src, ce);
                     }
 
-                    if (init != null)
-                        try {
-                            init.run();
-                        } catch (CompilationException ce) {
-                            recoveredFromError(src,ce);
-                        }
-
+                }
 
+                if (init != null)
                     try {
-                        compile(src.getCompensationHandler());
-                    } catch (CompilationException bce) {
-                        recoveredFromError(src.getCompensationHandler(), bce);
+                        init.run();
+                    } catch (CompilationException ce) {
+                        recoveredFromError(src,ce);
                     }
 
-                    try {
-                        compile(src.getTerminationHandler());
-                    } catch (CompilationException bce) {
-                        recoveredFromError(src.getTerminationHandler(), bce);
-                    }
 
-                    try {
-                        compile(src.getFaultHandler());
-                    } catch (CompilationException bce) {
-                        recoveredFromError(src.getFaultHandler(), bce);
-                    }
+                try {
+                    compile(src.getCompensationHandler());
+                } catch (CompilationException bce) {
+                    recoveredFromError(src.getCompensationHandler(), bce);
+                }
+
+                try {
+                    compile(src.getTerminationHandler());
+                } catch (CompilationException bce) {
+                    recoveredFromError(src.getTerminationHandler(), bce);
+                }
+
+
+                try {
+                    compile(src.getFaultHandler());
+                } catch (CompilationException bce) {
+                    recoveredFromError(src.getFaultHandler(), bce);
                 }
-            });
+            }
+        });
         } finally {
             _atomicScope = previousAtomicScope;
         }

Modified: incubator/ode/trunk/bpel-connector/pom.xml
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-connector/pom.xml?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/bpel-connector/pom.xml (original)
+++ incubator/ode/trunk/bpel-connector/pom.xml Tue Nov 28 19:12:25 2006
@@ -35,6 +35,10 @@
             <groupId>org.apache.ode</groupId>
             <artifactId>ode-bpel-api-jca</artifactId>
         </dependency>
+		<dependency>
+            <groupId>org.apache.ode</groupId>
+            <artifactId>ode-bpel-runtime</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.apache.ode</groupId>
             <artifactId>ode-jca-ra</artifactId>

Modified: incubator/ode/trunk/bpel-connector/src/main/java/org/apache/ode/bpel/connector/BpelServerConnector.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-connector/src/main/java/org/apache/ode/bpel/connector/BpelServerConnector.java?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/bpel-connector/src/main/java/org/apache/ode/bpel/connector/BpelServerConnector.java (original)
+++ incubator/ode/trunk/bpel-connector/src/main/java/org/apache/ode/bpel/connector/BpelServerConnector.java Tue Nov 28 19:12:25 2006
@@ -20,41 +20,51 @@
 package org.apache.ode.bpel.connector;
 
 import org.apache.ode.bpel.iapi.BpelServer;
+import org.apache.ode.bpel.iapi.ProcessStore;
 import org.apache.ode.jca.server.rmi.RmiTransportServerImpl;
 
 public class BpelServerConnector {
 
-  private BpelServer _server;
-  private RmiTransportServerImpl _transport;
-  
-  public BpelServerConnector() {
-    _transport = new RmiTransportServerImpl();
-    _transport.setId("ode/BpelEngine");
-  }
-  
-  public void setBpelServer(BpelServer server) {
-    _server = server;
-  }
-  
-  public void start() throws Exception {
-    if (_server == null)
-      throw new IllegalStateException("Server not set!");
-    
-    _transport.setConnectionProvider(new ConnectionProviderImpl(_server));
-    _transport.start();
-
-  }
-  
-  public void shutdown() throws Exception {
-    _transport.stop();
-  }
-
-  public void setPort(int connectorPort) {
-    _transport.setPort(connectorPort);
-  }
-
-  public void setId(String connectorName) {
-    _transport.setId(connectorName);
-  }
-  
+    private BpelServer _server;
+
+    private ProcessStore _store;
+
+    private RmiTransportServerImpl _transport;
+
+    public BpelServerConnector() {
+        _transport = new RmiTransportServerImpl();
+        _transport.setId("ode/BpelEngine");
+    }
+
+    public void setBpelServer(BpelServer server) {
+        _server = server;
+    }
+
+    public void setProcessStore(ProcessStore store) {
+        _store = store;
+    }
+
+    public void start() throws Exception {
+        if (_server == null)
+            throw new IllegalStateException("Server not set!");
+        if (_store == null)
+            throw new IllegalStateException("Store not set!");
+
+        _transport.setConnectionProvider(new ConnectionProviderImpl(_server,_store));
+        _transport.start();
+
+    }
+
+    public void shutdown() throws Exception {
+        _transport.stop();
+    }
+
+    public void setPort(int connectorPort) {
+        _transport.setPort(connectorPort);
+    }
+
+    public void setId(String connectorName) {
+        _transport.setId(connectorName);
+    }
+
 }

Modified: incubator/ode/trunk/bpel-connector/src/main/java/org/apache/ode/bpel/connector/ConnectionProviderImpl.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-connector/src/main/java/org/apache/ode/bpel/connector/ConnectionProviderImpl.java?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/bpel-connector/src/main/java/org/apache/ode/bpel/connector/ConnectionProviderImpl.java (original)
+++ incubator/ode/trunk/bpel-connector/src/main/java/org/apache/ode/bpel/connector/ConnectionProviderImpl.java Tue Nov 28 19:12:25 2006
@@ -19,7 +19,9 @@
 
 package org.apache.ode.bpel.connector;
 
+import org.apache.ode.bpel.engine.BpelManagementFacadeImpl;
 import org.apache.ode.bpel.iapi.BpelServer;
+import org.apache.ode.bpel.iapi.ProcessStore;
 import org.apache.ode.bpel.pmapi.BpelManagementFacade;
 import org.apache.ode.jca.server.ConnectionProvider;
 
@@ -31,9 +33,11 @@
 class ConnectionProviderImpl implements ConnectionProvider {
 
   private BpelServer _server;
+  private ProcessStore _store;
   
-  ConnectionProviderImpl(BpelServer server) {
+  ConnectionProviderImpl(BpelServer server, ProcessStore store) {
     _server = server;
+    _store = store;
   }
   
   public String [] getConnectionIntefaces() {
@@ -41,7 +45,7 @@
   }
 
   public Object createConnectionObject() {
-    return _server.getBpelManagementFacade();
+    return new BpelManagementFacadeImpl(_server, _store);
   }
 
   /**

Modified: incubator/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java (original)
+++ incubator/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java Tue Nov 28 19:12:25 2006
@@ -102,7 +102,7 @@
   
   Collection<ProcessInstanceDAO> instanceQuery(String expression);
 
-  ProcessDAO createProcess(QName pid, QName type);
+  ProcessDAO createProcess(QName pid, QName type, String guid);
 
 
   /**

Modified: incubator/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/ProcessDAO.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/ProcessDAO.java?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/ProcessDAO.java (original)
+++ incubator/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/ProcessDAO.java Tue Nov 28 19:12:25 2006
@@ -25,62 +25,70 @@
 import java.util.Date;
 
 /**
- * BPEL process data access objects.  Contains  references to active process
- * instances ({@link ProcessInstanceDAO}  and messages bound for instances
- * yet to be created or not yet correlated..
+ * BPEL process data access objects. Contains references to active process instances ({@link ProcessInstanceDAO} and messages bound
+ * for instances yet to be created or not yet correlated..
  */
 public interface ProcessDAO {
     /**
      * Get the unique process identifier.
+     * 
      * @return process identifier
      */
     QName getProcessId();
 
     /**
      * Get the BPEL process name.
+     * 
      * @return qualified BPEL process name.
      */
     QName getType();
 
     /**
      * Get the process version
+     * 
      * @return version
      */
     int getVersion();
 
     /**
      * Get a message correlator instance.
-     *
-     * @param correlatorId correlator identifier
+     * 
+     * @param correlatorId
+     *            correlator identifier
      * @return correlator corresponding to the given identifier
      */
     CorrelatorDAO getCorrelator(String correlatorId);
 
     /**
      * Create a new process instance object.
-     *
-     * @param instantiatingCorrelator instantiating {@link CorrelatorDAO}
+     * 
+     * @param instantiatingCorrelator
+     *            instantiating {@link CorrelatorDAO}
      * @return newly generated instance DAO
      */
     ProcessInstanceDAO createInstance(CorrelatorDAO instantiatingCorrelator);
 
     /**
      * Get a process instance (by identifier).
-     * @param iid unique instance identifier.
+     * 
+     * @param iid
+     *            unique instance identifier.
      * @return DAO corresponding to the process instance
      */
     ProcessInstanceDAO getInstance(Long iid);
 
     /**
      * Locates a process instance based on a correlation key.
-     * @param cckey correlation key
+     * 
+     * @param cckey
+     *            correlation key
      * @return collection of {@link ProcessInstanceDAO} that match correlation key, ordered by date
      */
     Collection<ProcessInstanceDAO> findInstance(CorrelationKey cckey);
 
     /**
-     * Remove the routes with the given Id for all the correlators in the
-     * process.
+     * Remove the routes with the given Id for all the correlators in the process.
+     * 
      * @todo remove this method.
      * @param routeId
      */
@@ -88,17 +96,20 @@
 
     /**
      * Callback indicating that a process instance has completed its duties.
-     * @param instance the completed {@link ProcessInstanceDAO}
+     * 
+     * @param instance
+     *            the completed {@link ProcessInstanceDAO}
      */
     void instanceCompleted(ProcessInstanceDAO instance);
 
     /**
-     * Remove the process from the database (along with any instance,
-     * variable data, etc...).
+     * Remove the process from the database (along with any instance, variable data, etc...).
      */
     void delete();
 
     void addCorrelator(String correlator);
+
+    String getGuid();
 
     int getNumInstances();
 }

Modified: incubator/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/package.html
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/package.html?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/package.html (original)
+++ incubator/ode/trunk/bpel-dao/src/main/java/org/apache/ode/bpel/dao/package.html Tue Nov 28 19:12:25 2006
@@ -18,6 +18,7 @@
   -->
 
 <html>
+	<head><title>DAO Package</title></head>
   <body>
     <p>Data-Access Object (DAO) interfaces used by the BPEL Service Provider 
     to communicate with the data store; can be used to customize the 

Modified: incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OProcess.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OProcess.java?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OProcess.java (original)
+++ incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OProcess.java Tue Nov 28 19:12:25 2006
@@ -34,6 +34,8 @@
   
     static final long serialVersionUID = -1L  ;
 
+    public String guid;
+    
     /** BPEL version. */
     public final String version;
 

Modified: incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/Serializer.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/Serializer.java?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/Serializer.java (original)
+++ incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/Serializer.java Tue Nov 28 19:12:25 2006
@@ -28,18 +28,15 @@
  */
 public class Serializer  {
 
-    public static final byte[] MAGIC_NUMBER_BARFILE_PRE20040908 =
-            new byte[] { 0x50, 0x4b, 0x03, 0x04  };
-
     public static final byte[] MAGIC_NUMBER_OFH_20040908 =
             new byte[]  { 0x55, '5', 'S', 0x00, 'O', 'F', 'H', 0x20, 0x04, 0x09, 0x08  };
 
-    public static final byte[] MAGIC_NUMBER = MAGIC_NUMBER_OFH_20040908;
-
-    public static final short FORMAT_SERIALIZED_JAVA14 = 0x01;
+    public static final byte[] MAGIC_NUMBER_OFH_20061101 =
+        new byte[]  { 0x55, '5', 'S', 0x00, 'O', 'F', 'H', 0x20, 0x06, 0x11, 0x01  };
 
+    public static final byte[] MAGIC_NUMBER = MAGIC_NUMBER_OFH_20061101;
 
-    public static final short FORMAT_OLD_BAR = 0x02;
+    public static final short FORMAT_SERIALIZED_JAVA14 = 0x01;
 
     // START PERSISTED FIELDS
     public final byte[] magic = new byte[MAGIC_NUMBER.length];
@@ -50,18 +47,24 @@
     /** Time of compilation (system local time). */
     public long compileTime;
 
-    /** Number of compiled processes in this file. */
-    public int numProcesses;
-    private InputStream _inputStream;
+    /** Deprecated, only one process per file.  */
+    public final int numProcesses = 1;
 
+    public InputStream _inputStream;
+
+    public String guid;
+
+    public OProcess _oprocess;
+
+    public QName type;
+    
 
   // END PERSISTED FIELDS
 
-    public Serializer(long compileTime, int numProcesses) {
+    public Serializer(long compileTime) {
         System.arraycopy(MAGIC_NUMBER, 0, magic, 0, MAGIC_NUMBER.length);
         this.format = FORMAT_SERIALIZED_JAVA14;
         this.compileTime  = compileTime;
-        this.numProcesses = numProcesses;
     }
 
     public Serializer() {}
@@ -76,45 +79,63 @@
         byte[] magic = new byte[MAGIC_NUMBER.length];
         oin.read(magic, 0, magic.length);
 
-        // Check old (BAR-file) encoding scheme
-        if (Arrays.equals(MAGIC_NUMBER_BARFILE_PRE20040908, magic)) {
-            this.format = FORMAT_OLD_BAR;
-            this.compileTime = 0;
-            this.numProcesses = 1;
+        if (Arrays.equals(MAGIC_NUMBER_OFH_20040908, magic)) {
+            // Old format requires us to read the OModel to get the type and guid. 
+            this.format = oin.readShort();
+            this.compileTime = oin.readLong();
+            oin.readInt();
+            ObjectInputStream ois = new CustomObjectInputStream(_inputStream);
+            try {
+                _oprocess = (OProcess) ois.readObject();
+            } catch (ClassNotFoundException e) {
+                throw new IOException("DataStream Error");
+            }
+            this.type  = new QName(_oprocess.targetNamespace, _oprocess.processName);
+            this.guid = "OLD-FORMAT-NO-GUID";
+            
             return;
         }
-
         // The current (most recent) scheme
         if (Arrays.equals(MAGIC_NUMBER, magic)) {
             this.format = oin.readShort();
             this.compileTime = oin.readLong();
-            this.numProcesses = oin.readInt();
+            this.guid = oin.readUTF();
+            String tns = oin.readUTF();
+            String name = oin.readUTF();
+            this.type = new QName(tns, name);
             return;
         }
 
         throw new IOException("Unrecognized file format (bad magic number).");
     }
-
-    public void write(OutputStream os) throws IOException {
-    
+ 
+    public void writeOProcess(OProcess process, OutputStream os) throws IOException {
         DataOutputStream out = new DataOutputStream(os);
 
         out.write(MAGIC_NUMBER);
         out.writeShort(format);
         out.writeLong(compileTime);
-        out.writeInt(numProcesses);
+        out.writeUTF(process.guid);
+        out.writeUTF(process.targetNamespace);
+        out.writeUTF(process.processName);
         out.flush();
-    }
-  
-    public void writeOProcess(OProcess process, OutputStream os) throws IOException{
         ObjectOutputStream oos = new CustomObjectOutputStream(os);
         oos.writeObject(process);
         oos.flush();
     }
 
     public OProcess readOProcess() throws IOException, ClassNotFoundException {
+        if (_oprocess != null)
+            return _oprocess;
+        
         ObjectInputStream ois = new CustomObjectInputStream(_inputStream);
-        return (OProcess) ois.readObject();
+        try {
+            _oprocess = (OProcess) ois.readObject();
+        } catch (ClassNotFoundException e) {
+            throw new IOException("DataStream Error");
+        }
+            
+        return _oprocess;
     }
   
     static class CustomObjectOutputStream extends ObjectOutputStream {

Propchange: incubator/ode/trunk/bpel-test/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Nov 28 19:12:25 2006
@@ -3,3 +3,5 @@
 .project
 ~*
 *~
+
+.project.swp

Modified: incubator/ode/trunk/bpel-test/src/test/java/org/apache/ode/test/BPELTest.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-test/src/test/java/org/apache/ode/test/BPELTest.java?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/bpel-test/src/test/java/org/apache/ode/test/BPELTest.java (original)
+++ incubator/ode/trunk/bpel-test/src/test/java/org/apache/ode/test/BPELTest.java Tue Nov 28 19:12:25 2006
@@ -51,8 +51,7 @@
         server.setScheduler(new TestScheduler());
 		server.setBindingContext(new BindingContextImpl());
 		server.setMessageExchangeContext(mexContext);
-        store = new ProcessStoreImpl(null, null, new DeploymentManagerImpl(), null);
-        server.setProcessStore(store);
+        store = new ProcessStoreImpl();
         server.init();
 		server.start();
 	}
@@ -101,7 +100,7 @@
 		try {
 			Collection<QName> procs =  store.deploy(new File(deployDir));
             for (QName procName : procs) {
-                server.load(procName, true);
+                server.register(store.getProcessConfiguration(procName));
             }
 
         } catch (BpelEngineException bpelE) {

Modified: incubator/ode/trunk/dao-hibernate-db-derby/build.xml
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate-db-derby/build.xml?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/dao-hibernate-db-derby/build.xml (original)
+++ incubator/ode/trunk/dao-hibernate-db-derby/build.xml Tue Nov 28 19:12:25 2006
@@ -25,7 +25,8 @@
     <property name="src.sql.dir" value="${basedir}/src/main/sql" />
 
     <property name="derby.target.sql" value="${target.dir}/derby.sql" />
-    <property name="mysql.target.sql" value="${target.dir}/mysql.sql" />
+    <property name="derby.target.store.sql" value="${target.dir}/store.sql" />
+    <property name="derby.target.runtime.sql" value="${target.dir}/runtime.sql" />
     <property name="sqls.target.sql" value="${target.dir}/sqlserver.sql" />
     <property name="postgres.target.sql" value="${target.dir}/postgres.sql" />
     <property name="hsql.target.sql" value="${target.dir}/hsql.sql" />
@@ -81,11 +82,10 @@
         <antcall inheritRefs="true" target="schemaexport" />
 
         <!-- Append the QUARTZ tables -->
-        <concat destfile="${derby.target.sql}" append="true">
+        <concat destfile="${derby.target.sql}" append="false">
             <fileset file="${src.sql.dir}/tables_derby.sql" />
-        </concat>
-        <concat destfile="${mysql.target.sql}" append="true">
-            <fileset file="${src.sql.dir}/tables_mysql_innodb.sql" />
+            <fileset file="${derby.target.store.sql}" />
+            <fileset file="${derby.target.runtime.sql}" />
         </concat>
         <concat destfile="${sqls.target.sql}" append="true">
             <fileset file="${src.sql.dir}/tables_sqlserver.sql" />
@@ -113,21 +113,22 @@
                       delimiter=";"
                       drop="no"
                       create="yes"
-                      output="${derby.target.sql}">
-            <fileset dir="${basedir}/../dao-hibernate/target/generated-resources/xdoclet">
+                      output="${derby.target.store.sql}">
+            <fileset dir="${basedir}/../bpel-store/target/generated-resources/xdoclet">
                 <include name="**/*.hbm.xml"/>
-            </fileset>
+            </fileset> 
         </schemaexport>
-        <schemaexport properties="${src.sql.dir}/ode.mysql.properties"
+
+        <schemaexport properties="${src.sql.dir}/ode.derby.properties"
                       quiet="yes"
                       text="yes"
                       delimiter=";"
                       drop="no"
                       create="yes"
-                      output="${mysql.target.sql}">
-            <fileset dir="${basedir}/../dao-hibernate/target/generated-resources/xdoclet">
+                      output="${derby.target.runtime.sql}">
+        <fileset dir="${basedir}/../dao-hibernate/target/generated-resources/xdoclet">  
                 <include name="**/*.hbm.xml"/>
-            </fileset>
+            </fileset> 
         </schemaexport>
         <schemaexport properties="${src.sql.dir}/ode.sqlserver.properties"
                       quiet="yes"

Modified: incubator/ode/trunk/dao-hibernate-db-derby/pom.xml
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate-db-derby/pom.xml?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/dao-hibernate-db-derby/pom.xml (original)
+++ incubator/ode/trunk/dao-hibernate-db-derby/pom.xml Tue Nov 28 19:12:25 2006
@@ -37,6 +37,10 @@
             <artifactId>ode-dao-hibernate</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.ode</groupId>
+            <artifactId>ode-bpel-store</artifactId>
+        </dependency>
+        <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derbytools</artifactId>
            <version>${derbyVersion}</version>
@@ -87,6 +91,12 @@
             <dependency>
               <groupId>org.apache.ode</groupId>
               <artifactId>ode-dao-hibernate</artifactId>
+              <version>${project.version}</version>
+            </dependency>
+
+            <dependency>
+              <groupId>org.apache.ode</groupId>
+              <artifactId>ode-bpel-store</artifactId>
               <version>${project.version}</version>
             </dependency>
     

Copied: incubator/ode/trunk/dao-hibernate-db-mysql/build.xml (from r480345, incubator/ode/trunk/dao-hibernate-db-derby/build.xml)
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate-db-mysql/build.xml?view=diff&rev=480360&p1=incubator/ode/trunk/dao-hibernate-db-derby/build.xml&r1=480345&p2=incubator/ode/trunk/dao-hibernate-db-mysql/build.xml&r2=480360
==============================================================================
--- incubator/ode/trunk/dao-hibernate-db-derby/build.xml (original)
+++ incubator/ode/trunk/dao-hibernate-db-mysql/build.xml Tue Nov 28 19:12:25 2006
@@ -26,10 +26,6 @@
 
     <property name="derby.target.sql" value="${target.dir}/derby.sql" />
     <property name="mysql.target.sql" value="${target.dir}/mysql.sql" />
-    <property name="sqls.target.sql" value="${target.dir}/sqlserver.sql" />
-    <property name="postgres.target.sql" value="${target.dir}/postgres.sql" />
-    <property name="hsql.target.sql" value="${target.dir}/hsql.sql" />
-    <property name="firebird.target.sql" value="${target.dir}/firebird.sql" />
 
     <target name="db" depends="depset, tarball" />
 
@@ -87,18 +83,6 @@
         <concat destfile="${mysql.target.sql}" append="true">
             <fileset file="${src.sql.dir}/tables_mysql_innodb.sql" />
         </concat>
-        <concat destfile="${sqls.target.sql}" append="true">
-            <fileset file="${src.sql.dir}/tables_sqlserver.sql" />
-        </concat>
-        <concat destfile="${postgres.target.sql}" append="true">
-            <fileset file="${src.sql.dir}/tables_postgres.sql" />
-        </concat>
-        <concat destfile="${hsql.target.sql}" append="true">
-            <fileset file="${src.sql.dir}/tables_hsqldb.sql" />
-        </concat>
-        <concat destfile="${firebird.target.sql}" append="true">
-            <fileset file="${src.sql.dir}/tables_firebird.sql" />
-        </concat>
     </target>
 
     <target name="schemaexport" >
@@ -114,9 +98,12 @@
                       drop="no"
                       create="yes"
                       output="${derby.target.sql}">
-            <fileset dir="${basedir}/../dao-hibernate/target/generated-resources/xdoclet">
+        <!--    <fileset dir="${basedir}/../dao-hibernate/target/generated-resources/xdoclet">
+                <include name="**/*.hbm.xml"/>
+            </fileset> -->
+            <fileset dir="${basedir}/../bpel-store/target/generated-resources/xdoclet">
                 <include name="**/*.hbm.xml"/>
-            </fileset>
+            </fileset> 
         </schemaexport>
         <schemaexport properties="${src.sql.dir}/ode.mysql.properties"
                       quiet="yes"
@@ -125,50 +112,6 @@
                       drop="no"
                       create="yes"
                       output="${mysql.target.sql}">
-            <fileset dir="${basedir}/../dao-hibernate/target/generated-resources/xdoclet">
-                <include name="**/*.hbm.xml"/>
-            </fileset>
-        </schemaexport>
-        <schemaexport properties="${src.sql.dir}/ode.sqlserver.properties"
-                      quiet="yes"
-                      text="yes"
-                      delimiter=";"
-                      drop="no"
-                      create="yes"
-                      output="${sqls.target.sql}">
-            <fileset dir="${basedir}/../dao-hibernate/target/generated-resources/xdoclet">
-                <include name="**/*.hbm.xml"/>
-            </fileset>
-        </schemaexport>
-        <schemaexport properties="${src.sql.dir}/ode.postgres.properties"
-                      quiet="yes"
-                      text="yes"
-                      delimiter=";"
-                      drop="no"
-                      create="yes"
-                      output="${postgres.target.sql}">
-            <fileset dir="${basedir}/../dao-hibernate/target/generated-resources/xdoclet">
-                <include name="**/*.hbm.xml"/>
-            </fileset>
-        </schemaexport>
-        <schemaexport properties="${src.sql.dir}/ode.hsql.properties"
-                      quiet="yes"
-                      text="yes"
-                      delimiter=";"
-                      drop="no"
-                      create="yes"
-                      output="${hsql.target.sql}">
-            <fileset dir="${basedir}/../dao-hibernate/target/generated-resources/xdoclet">
-                <include name="**/*.hbm.xml"/>
-            </fileset>
-        </schemaexport>
-        <schemaexport properties="${src.sql.dir}/ode.firebird.properties"
-                      quiet="yes"
-                      text="yes"
-                      delimiter=";"
-                      drop="no"
-                      create="yes"
-                      output="${firebird.target.sql}">
             <fileset dir="${basedir}/../dao-hibernate/target/generated-resources/xdoclet">
                 <include name="**/*.hbm.xml"/>
             </fileset>

Copied: incubator/ode/trunk/dao-hibernate-db-mysql/pom.xml (from r480345, incubator/ode/trunk/dao-hibernate-db-derby/pom.xml)
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate-db-mysql/pom.xml?view=diff&rev=480360&p1=incubator/ode/trunk/dao-hibernate-db-derby/pom.xml&r1=480345&p2=incubator/ode/trunk/dao-hibernate-db-mysql/pom.xml&r2=480360
==============================================================================
--- incubator/ode/trunk/dao-hibernate-db-derby/pom.xml (original)
+++ incubator/ode/trunk/dao-hibernate-db-mysql/pom.xml Tue Nov 28 19:12:25 2006
@@ -89,6 +89,12 @@
               <artifactId>ode-dao-hibernate</artifactId>
               <version>${project.version}</version>
             </dependency>
+
+            <dependency>
+              <groupId>org.apache.ode</groupId>
+              <artifactId>ode-bpel-store</artifactId>
+              <version>${project.version}</version>
+            </dependency>
     
           </dependencies>
         </plugin>

Modified: incubator/ode/trunk/dao-hibernate/pom.xml
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate/pom.xml?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/dao-hibernate/pom.xml (original)
+++ incubator/ode/trunk/dao-hibernate/pom.xml Tue Nov 28 19:12:25 2006
@@ -77,8 +77,8 @@
                         </goals>
                         <configuration>
                             <tasks>
-                                <hibernatedoclet destdir="${project.build.directory}/generated-resources/xdoclet" excludedtags="@version,@author,@todo" force="false" verbose="false">
-                                    <hibernate version="3.0"/>
+                                <hibernatedoclet destdir="${basedir}/target/generated-resources/xdoclet" excludedtags="@version,@author,@todo" force="false" verbose="false"> 
+                                    <hibernate version="3.0" destdir="${basedir}/target/generated-resources/xdoclet" />
                                     <fileset dir="${basedir}/src/main/java" includes="**/*.java"/>
                                 </hibernatedoclet>
                             </tasks>
@@ -90,7 +90,7 @@
 
         <resources>
           <resource>
-            <directory>target/generated-resources/xdoclet</directory>
+            <directory>${basedir}/target/generated-resources/xdoclet</directory>
           </resource>
         </resources>
 

Modified: incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java (original)
+++ incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java Tue Nov 28 19:12:25 2006
@@ -97,13 +97,13 @@
         return mex == null ? null : new MessageExchangeDaoImpl(_sm, mex);
     }
 
-    public ProcessDAO createProcess(QName pid, QName type) {
+    public ProcessDAO createProcess(QName pid, QName type, String guid) {
         HProcess process = new HProcess();
         process.setProcessId(pid.toString());
         process.setTypeName(type.getLocalPart());
         process.setTypeNamespace(type.getNamespaceURI());
         process.setDeployDate(new Date());
-        process.setGuid("noguid");
+        process.setGuid(guid);
         _session.save(process);
         return new ProcessDaoImpl(_sm, process);
     }

Modified: incubator/ode/trunk/jacob/pom.xml
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/pom.xml?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/jacob/pom.xml (original)
+++ incubator/ode/trunk/jacob/pom.xml Tue Nov 28 19:12:25 2006
@@ -36,24 +36,46 @@
             <artifactId>ode-utils</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.ode</groupId>
+            <artifactId>ode-superbia</artifactId>
+            <version>2.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
             <groupId>xstream</groupId>
             <artifactId>xstream</artifactId>
         </dependency>
     </dependencies>
     <build>
         <plugins>
+            <!-- A bit of maven2 lunacy: add an extra source directory to 
+                 the compile path; simple eh? -->
+            <plugin>
+                <groupId>org.apache.ode</groupId>
+                <artifactId>ode-superbia</artifactId>
+                <executions>
+		   <execution>
+                        <phase>generate-sources</phase> 
+                        <goals>
+                            <goal>msdp</goal>
+                        </goals> 
+                        <configuration>
+                           <sourcedir>src/generated/java</sourcedir>
+                        </configuration>
+                   </execution>
+                </executions>
+            </plugin>
+
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>xdoclet-maven-plugin</artifactId>
                 <executions>
                     <execution>
-                        <phase>generate-sources</phase>
                         <goals>
                             <goal>xdoclet</goal>
                         </goals>
                         <configuration>
                             <tasks>
-                                <doclet destDir="${project.build.directory}/generated-sources/xdoclet" verbose="false">
+                                <doclet destDir="${basedir}/src/generated/java" verbose="false">
                                     <fileset dir="${basedir}/src/main/java" includes="**/*.java"/>
                                     <template havingClassTag="jacob.kind" destinationFile="{0}ChannelListener.java" templateFile="${basedir}/src/xdt/org/apache/ode/jacob/ChannelListener.xdt"/>
 				    <template havingClassTag="jacob.kind" destinationFile="{0}Channel.java" templateFile="${basedir}/src/xdt/org/apache/ode/jacob/channel.xdt"/>

Added: incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/SynchChannel.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/SynchChannel.java?view=auto&rev=480360
==============================================================================
--- incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/SynchChannel.java (added)
+++ incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/SynchChannel.java Tue Nov 28 19:12:25 2006
@@ -0,0 +1,12 @@
+/*
+ * SOURCE FILE GENERATATED BY JACOB CHANNEL CLASS GENERATOR
+ * !!! DO NOT EDIT !!!!
+ */
+package org.apache.ode.jacob;
+
+public interface SynchChannel 
+    extends 
+    			org.apache.ode.jacob.Channel,  
+            Synch 
+{
+}

Added: incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/SynchChannelListener.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/SynchChannelListener.java?view=auto&rev=480360
==============================================================================
--- incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/SynchChannelListener.java (added)
+++ incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/SynchChannelListener.java Tue Nov 28 19:12:25 2006
@@ -0,0 +1,22 @@
+/*
+ * SOURCE FILE GENERATATED BY JACOB CHANNEL CLASS GENERATOR
+ * !!! DO NOT EDIT !!!!
+ */
+package org.apache.ode.jacob;
+
+import org.apache.commons.logging.LogFactory;
+import org.apache.commons.logging.Log;
+
+public abstract class SynchChannelListener
+    extends org.apache.ode.jacob.ChannelListener<SynchChannel>
+    implements Synch
+ {
+  private static final Log __log = LogFactory.getLog(SynchChannelListener.class);
+  protected Log log() { return __log; }
+
+  protected SynchChannelListener(
+    SynchChannel channel) {
+    super(channel);
+  }
+
+}

Added: incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/ValChannel.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/ValChannel.java?view=auto&rev=480360
==============================================================================
--- incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/ValChannel.java (added)
+++ incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/ValChannel.java Tue Nov 28 19:12:25 2006
@@ -0,0 +1,12 @@
+/*
+ * SOURCE FILE GENERATATED BY JACOB CHANNEL CLASS GENERATOR
+ * !!! DO NOT EDIT !!!!
+ */
+package org.apache.ode.jacob;
+
+public interface ValChannel 
+    extends 
+    			org.apache.ode.jacob.Channel,  
+            Val 
+{
+}

Added: incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/ValChannelListener.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/ValChannelListener.java?view=auto&rev=480360
==============================================================================
--- incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/ValChannelListener.java (added)
+++ incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/ValChannelListener.java Tue Nov 28 19:12:25 2006
@@ -0,0 +1,22 @@
+/*
+ * SOURCE FILE GENERATATED BY JACOB CHANNEL CLASS GENERATOR
+ * !!! DO NOT EDIT !!!!
+ */
+package org.apache.ode.jacob;
+
+import org.apache.commons.logging.LogFactory;
+import org.apache.commons.logging.Log;
+
+public abstract class ValChannelListener
+    extends org.apache.ode.jacob.ChannelListener<ValChannel>
+    implements Val
+ {
+  private static final Log __log = LogFactory.getLog(ValChannelListener.class);
+  protected Log log() { return __log; }
+
+  protected ValChannelListener(
+    ValChannel channel) {
+    super(channel);
+  }
+
+}

Added: incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/cell/CellChannel.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/cell/CellChannel.java?view=auto&rev=480360
==============================================================================
--- incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/cell/CellChannel.java (added)
+++ incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/cell/CellChannel.java Tue Nov 28 19:12:25 2006
@@ -0,0 +1,12 @@
+/*
+ * SOURCE FILE GENERATATED BY JACOB CHANNEL CLASS GENERATOR
+ * !!! DO NOT EDIT !!!!
+ */
+package org.apache.ode.jacob.examples.cell;
+
+public interface CellChannel 
+    extends 
+    			org.apache.ode.jacob.Channel,  
+            Cell 
+{
+}

Added: incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/cell/CellChannelListener.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/cell/CellChannelListener.java?view=auto&rev=480360
==============================================================================
--- incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/cell/CellChannelListener.java (added)
+++ incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/cell/CellChannelListener.java Tue Nov 28 19:12:25 2006
@@ -0,0 +1,22 @@
+/*
+ * SOURCE FILE GENERATATED BY JACOB CHANNEL CLASS GENERATOR
+ * !!! DO NOT EDIT !!!!
+ */
+package org.apache.ode.jacob.examples.cell;
+
+import org.apache.commons.logging.LogFactory;
+import org.apache.commons.logging.Log;
+
+public abstract class CellChannelListener
+    extends org.apache.ode.jacob.ChannelListener<CellChannel>
+    implements Cell
+ {
+  private static final Log __log = LogFactory.getLog(CellChannelListener.class);
+  protected Log log() { return __log; }
+
+  protected CellChannelListener(
+    CellChannel channel) {
+    super(channel);
+  }
+
+}

Added: incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStreamChannel.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStreamChannel.java?view=auto&rev=480360
==============================================================================
--- incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStreamChannel.java (added)
+++ incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStreamChannel.java Tue Nov 28 19:12:25 2006
@@ -0,0 +1,12 @@
+/*
+ * SOURCE FILE GENERATATED BY JACOB CHANNEL CLASS GENERATOR
+ * !!! DO NOT EDIT !!!!
+ */
+package org.apache.ode.jacob.examples.eratosthenes;
+
+public interface NaturalNumberStreamChannel 
+    extends 
+    			org.apache.ode.jacob.Channel,  
+            NaturalNumberStream 
+{
+}

Added: incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStreamChannelListener.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStreamChannelListener.java?view=auto&rev=480360
==============================================================================
--- incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStreamChannelListener.java (added)
+++ incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStreamChannelListener.java Tue Nov 28 19:12:25 2006
@@ -0,0 +1,22 @@
+/*
+ * SOURCE FILE GENERATATED BY JACOB CHANNEL CLASS GENERATOR
+ * !!! DO NOT EDIT !!!!
+ */
+package org.apache.ode.jacob.examples.eratosthenes;
+
+import org.apache.commons.logging.LogFactory;
+import org.apache.commons.logging.Log;
+
+public abstract class NaturalNumberStreamChannelListener
+    extends org.apache.ode.jacob.ChannelListener<NaturalNumberStreamChannel>
+    implements NaturalNumberStream
+ {
+  private static final Log __log = LogFactory.getLog(NaturalNumberStreamChannelListener.class);
+  protected Log log() { return __log; }
+
+  protected NaturalNumberStreamChannelListener(
+    NaturalNumberStreamChannel channel) {
+    super(channel);
+  }
+
+}

Added: incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/synch/SynchPrintChannel.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/synch/SynchPrintChannel.java?view=auto&rev=480360
==============================================================================
--- incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/synch/SynchPrintChannel.java (added)
+++ incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/synch/SynchPrintChannel.java Tue Nov 28 19:12:25 2006
@@ -0,0 +1,12 @@
+/*
+ * SOURCE FILE GENERATATED BY JACOB CHANNEL CLASS GENERATOR
+ * !!! DO NOT EDIT !!!!
+ */
+package org.apache.ode.jacob.examples.synch;
+
+public interface SynchPrintChannel 
+    extends 
+    			org.apache.ode.jacob.Channel,  
+            SynchPrint 
+{
+}

Added: incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/synch/SynchPrintChannelListener.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/synch/SynchPrintChannelListener.java?view=auto&rev=480360
==============================================================================
--- incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/synch/SynchPrintChannelListener.java (added)
+++ incubator/ode/trunk/jacob/src/generated/java/org/apache/ode/jacob/examples/synch/SynchPrintChannelListener.java Tue Nov 28 19:12:25 2006
@@ -0,0 +1,22 @@
+/*
+ * SOURCE FILE GENERATATED BY JACOB CHANNEL CLASS GENERATOR
+ * !!! DO NOT EDIT !!!!
+ */
+package org.apache.ode.jacob.examples.synch;
+
+import org.apache.commons.logging.LogFactory;
+import org.apache.commons.logging.Log;
+
+public abstract class SynchPrintChannelListener
+    extends org.apache.ode.jacob.ChannelListener<SynchPrintChannel>
+    implements SynchPrint
+ {
+  private static final Log __log = LogFactory.getLog(SynchPrintChannelListener.class);
+  protected Log log() { return __log; }
+
+  protected SynchPrintChannelListener(
+    SynchPrintChannel channel) {
+    super(channel);
+  }
+
+}

Modified: incubator/ode/trunk/jbi/pom.xml
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jbi/pom.xml?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/jbi/pom.xml (original)
+++ incubator/ode/trunk/jbi/pom.xml Tue Nov 28 19:12:25 2006
@@ -119,6 +119,13 @@
             <version>${derbyVersion}</version>
             <scope>provided</scope>
 		</dependency>
+
+           <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-jta_1.0.1B_spec</artifactId>
+                <scope>provided</scope>
+            </dependency>
+
     </dependencies>
 
 	<build>

Modified: incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java (original)
+++ incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java Tue Nov 28 19:12:25 2006
@@ -248,7 +248,8 @@
         _ode._scheduler.setDataSource(_ode._dataSource);
         _ode._scheduler.init();
 
-        _ode._store = new ProcessStoreImpl(new File("."), _ode._dataSource, _ode.getTransactionManager());
+        _ode._store = new ProcessStoreImpl(_ode._dataSource);
+
 
         _ode._server.setInMemDaoConnectionFactory(new org.apache.ode.bpel.memdao.BpelDAOConnectionFactoryImpl());        
         _ode._server.setDaoConnectionFactory(_ode._daocf);
@@ -256,7 +257,6 @@
         _ode._server.setMessageExchangeContext(_ode._mexContext);
         _ode._server.setBindingContext(new BindingContextImpl(_ode));
         _ode._server.setScheduler(_ode._scheduler);
-        _ode._server.setProcessStore(_ode._store);
 
         _ode._server.init();
 
@@ -314,6 +314,7 @@
         } else {
             _connector = new BpelServerConnector();
             _connector.setBpelServer(_ode._server);
+            _connector.setProcessStore(_ode._store);
             _connector.setPort(_ode._config.getConnectorPort());
             _connector.setId(_ode._config.getConnectorName());
             try {

Modified: incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeServiceUnit.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeServiceUnit.java?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeServiceUnit.java (original)
+++ incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeServiceUnit.java Tue Nov 28 19:12:25 2006
@@ -25,7 +25,9 @@
 import javax.jbi.management.DeploymentException;
 import javax.xml.namespace.QName;
 import java.io.File;
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 /**
  * Representation of a JBI service unit. A JBI service unit may actually consist
@@ -45,6 +47,9 @@
     /** Our JBI indentifier. */
     private String _serviceUnitID;
 
+    private Collection<QName> _registered;
+    
+    
     /** Ctor. */
     OdeServiceUnit(OdeContext ode, String serviceUnitID, String serviceUnitRootPath) {
         _ode = ode;
@@ -55,11 +60,7 @@
     public void deploy() throws DeploymentException {
 
         try {
-            Collection<QName> deployed = _ode._store.deploy(_serviceUnitRootPath);
-            for (QName pqname : deployed) {
-                _ode._server.load(pqname, true);
-            }
-
+            _ode._store.deploy(_serviceUnitRootPath);
         } catch (Exception ex) {
             String errmsg = __msgs.msgOdeProcessDeploymentFailed(_serviceUnitRootPath, _serviceUnitID);
             __log.error(errmsg, ex);
@@ -71,7 +72,7 @@
         try {
             Collection<QName> undeployed = _ode._store.undeploy(_serviceUnitRootPath);
             for (QName pqname : undeployed) {
-                _ode._server.unload(pqname, true);
+                _ode._server.unregister(pqname);
             }
 
         } catch (Exception ex) {
@@ -92,39 +93,41 @@
     }
 
     public void start() throws Exception {
-//        List<QName> activated = new ArrayList<QName>(_pids.size());
-//        Exception e = null;
-//        for (QName pid : _pids) {
-//            try {
-//                _ode._server.load(pid, false);
-//                activated.add(pid);
-//            } catch (Exception ex) {
-//                e = ex;
-//                __log.error("Unable to load " + pid, ex);
-//                break;
-//            }
-//        }
-//        if (activated.size() != _pids.size()) {
-//            for (QName pid : activated)
-//                try {
-//                    _ode._server.unload(pid, true);
-//                } catch (Exception ex) {
-//                    __log.error("Unable to unload " + pid, ex);
-//                }
-//        }
-//
-//        if (e != null)
-//            throw e;
+        List<QName> pids = _ode._store.listProcesses(_serviceUnitRootPath.getName());
+        Exception e = null;
+        for (QName pid : pids) {
+            try {
+                _ode._server.register(_ode._store.getProcessConfiguration(pid));
+                _registered.add(pid);
+            } catch (Exception ex) {
+                e = ex;
+                __log.error("Unable to load " + pid, ex);
+                break;
+            }
+        }
+        if (_registered.size() != pids.size()) {
+            for (QName pid : new ArrayList<QName>(_registered))
+                try {
+                    _ode._server.unregister(pid);
+                    _registered.remove(pid);
+                } catch (Exception ex) {
+                    __log.error("Unable to unload " + pid, ex);
+                }
+        }
+
+        if (e != null)
+            throw e;
     }
 
     public void stop() throws Exception {
-//        for (QName pid : _pids) {
-//            try {
-//                _ode._server.unload(pid, true);
-//            } catch (Exception ex) {
-//                __log.error("Unable to unload " + pid, ex);
-//            }
-//        }
+        for (QName pid : new ArrayList<QName>(_registered)) {
+            try {
+                _ode._server.unregister(pid);
+                _registered.remove(pid);
+            } catch (Exception ex) {
+                __log.error("Unable to unload " + pid, ex);
+            }
+        }
     }
 
 }

Modified: incubator/ode/trunk/utils/src/main/java/org/apache/ode/utils/stl/CollectionsX.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/utils/src/main/java/org/apache/ode/utils/stl/CollectionsX.java?view=diff&rev=480360&r1=480359&r2=480360
==============================================================================
--- incubator/ode/trunk/utils/src/main/java/org/apache/ode/utils/stl/CollectionsX.java (original)
+++ incubator/ode/trunk/utils/src/main/java/org/apache/ode/utils/stl/CollectionsX.java Tue Nov 28 19:12:25 2006
@@ -72,7 +72,7 @@
      * @return the first object in the collection (coll) which, satisfies the
      *         condition (f)
      */
-    public static <T> T find_if(Collection<T> coll, MemberOfFunction<T> f) {
+    public static <T> T find_if(Collection<T> coll, MemberOfFunction<? super T> f) {
         return find_if(coll.iterator(), f);
     }
 
@@ -90,7 +90,7 @@
      * @see #find_if(java.util.Collection,
      *      org.apache.ode.utils.stl.MemberOfFunction)
      */
-    public static <T> T find_if(Iterator<T> i, MemberOfFunction<T> f) {
+    public static <T> T find_if(Iterator<T> i, MemberOfFunction<? super T> f) {
         while (i.hasNext()) {
             T x = i.next();