[jbpm-commits] JBoss JBPM SVN: r2891 - in projects/spec/trunk/modules: api/src/main/java/org/jbpm/api/client/preview and 44 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Nov 12 06:00:18 EST 2008


Author: thomas.diesler at jboss.com
Date: 2008-11-12 06:00:17 -0500 (Wed, 12 Nov 2008)
New Revision: 2891

Added:
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Execution.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/AbstractElement.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ProcessStructure.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/WaitState.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/PropertySupport.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/BasicExecutionContext.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/BasicNodeHandler.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/ExecutionContext.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/ExecutionHandler.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/FlowHandler.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/NodeHandler.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/SignalHandler.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/TokenExecutor.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExecutionImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableExecution.java
Removed:
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ProcessDefinition.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ProcessInstance.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/internal/
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/BasicExecutionContext.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/BasicNodeHandler.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/ExecutionContext.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/ExecutionHandler.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/FlowHandler.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/NodeHandler.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/SignalHandler.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/TokenExecutor.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
Modified:
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/Deployment.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Task.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilder.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/Group.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/InputSet.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/Message.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/OutputSet.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/DialectHandler.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestCase.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ProcessCatalog.java
   projects/spec/trunk/modules/cts/pom.xml
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/endevent/EndEventMessageTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/executioncontext/ExecutionContextTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/inclusive/InclusiveGatewayMergeTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/inclusive/InclusiveGatewaySplitTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/parallel/ParallelGatewayMergeTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/parallel/ParallelGatewaySplitTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node/NodeInputSetTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node/NodeOutputSetTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node/NodePropertyTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/process/ProcessPropertyTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/startevent/StartEventSignalTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/java/JavaTaskTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/receive/ReceiveTaskTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/send/SendTaskTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/user/UserTaskCallbackTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/user/UserTaskTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/transaction/TxRequiredMarshallerTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/transaction/TxRequiredTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessBuilderTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/exclusivechoice/ExclusiveChoiceTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/multichoice/MultiChoiceTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/parallelsplit/ParallelSplitTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequencePersistenceTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/casedata/CaseDataTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/taskdata/TaskDataTest.java
   projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/DialectHandlerImpl.java
   projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java
   projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java
   projects/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jbpm/dialect/jpdl32/DialectHandlerImpl.java
   projects/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jbpm/dialect/jpdl32/ProcessDefinitionAdapter.java
   projects/spec/trunk/modules/dialects/stp/src/main/java/org/jbpm/dialect/stp/DialectHandlerImpl.java
   projects/spec/trunk/modules/dialects/stp/src/main/java/org/jbpm/dialect/stp/ProcessUnmarshaller.java
   projects/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jbpm/dialect/xpdl21/DialectHandlerImpl.java
   projects/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jbpm/dialect/xpdl21/WorkflowProcessAdapter.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ComplexGatewayImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/PropertySupportImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/AssignmentInterceptor.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingExecutionContext.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExitSignalInterceptor.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExpressionEvaluator.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/FlowHandlerInterceptor.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/PersistenceSessionInterceptor.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcess.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcessImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/SignalHandlerInterceptor.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenExecutorImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/InMemoryPersistenceServiceImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessDefinitionServiceImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java
   projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/dialect/stp/sequence/SequenceTest.java
   projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessDefinitionPersistenceTest.java
   projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java
   projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java
   projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
   projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
   projects/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
Log:
Refactor API

Added: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Execution.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Execution.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Execution.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.client;
+
+// $Id$
+
+import org.hibernate.Session;
+import org.jbpm.api.model.SequenceFlow;
+import org.jbpm.api.runtime.preview.ExecutionContext;
+
+/**
+ * A Token is a descriptive construct used to describe how the flow of a Process will proceed at runtime.
+ * 
+ * By tracking how the Token traverses the Flow Objects, gets diverted through alternative paths, and gets split into
+ * parallel paths, the normal Sequence Flow should be completely definable.
+ * 
+ * A Token will have a unique identity that can be used to separate multiple Tokens that may exist because of concurrent
+ * process instances or the splitting of the Token for parallel processing within a single process instance.
+ * 
+ * @author Thomas.Diesler at jboss.com
+ * @since 20-Apr-2007
+ */
+public interface Execution
+{
+  public enum ExecutionStatus
+  {
+    Created, Started, Stoped, Destroyed, Suspended
+  }
+
+  /**
+   * Get the unique token identity
+   */
+  String getExecutionID();
+
+  /**
+   * Get the token status
+   */
+  ExecutionStatus getExecutionStatus();
+
+  /**
+   * Get the associated {@link Process}
+   */
+  Process getProcess();
+  
+  /**
+   * Get the associated {@link ExecutionContext}
+   */
+  ExecutionContext getExecutionContext();
+
+  /**
+   * Get the current {@link SequenceFlow}
+   */
+  SequenceFlow getSequenceFlow();
+  
+  /**
+   * Get the associated persistence session
+   */
+  Session getSession();
+}
\ No newline at end of file


Property changes on: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Execution.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,80 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.client;
+
+//$Id$
+
+import javax.management.ObjectName;
+
+import org.jbpm.api.model.ProcessStructure;
+import org.jbpm.api.runtime.Attachments;
+
+/**
+ * A Process is any Activity performed within a company or organization.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface Process extends ProcessStructure
+{
+  /**
+   * Defines the status a {@link Process} can be in
+   */
+  public enum ProcessStatus
+  {
+    None, Ready, Active, Cancelled, Aborting, Aborted, Completing, Completed
+  }
+
+  /**
+   * Get the associated ProcessDefinition
+   */
+  ProcessDefinition getProcessDefinition();
+  
+  /**
+   * Get the process state
+   */
+  ProcessStatus getProcessStatus();
+
+  /**
+   * Start the process
+   */
+  ObjectName startProcessAsync();
+
+  /**
+   * Start the process, with a given execution context
+   */
+  ObjectName startProcessAsync(Attachments att);
+
+  /**
+   * All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
+   * Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends without
+   * timeout.
+   */
+  ProcessStatus waitForEnd();
+
+  /**
+   * All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
+   * Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends with a
+   * given timeout.
+   */
+  ProcessStatus waitForEnd(long timeout);
+}
\ No newline at end of file


Property changes on: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java (from rev 2889, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ProcessDefinition.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.client;
+
+//$Id$
+
+import org.jbpm.api.model.ProcessStructure;
+
+/**
+ * A ProcessDefinition defines the structure of an activity performed within a company or organization.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface ProcessDefinition extends ProcessStructure
+{
+  /**
+   * Create a new instance of this process definition
+   */
+  Process newInstance();
+
+}
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/Deployment.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/Deployment.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/Deployment.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -32,8 +32,8 @@
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.DialectHandler;
 import org.jbpm.api.service.DialectHandlerService;
 import org.jbpm.api.service.ProcessInstanceService;

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/AbstractElement.java (from rev 2888, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/internal/AbstractElement.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/AbstractElement.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/AbstractElement.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.model;
+
+//$Id$
+
+import java.io.Serializable;
+
+import javax.management.ObjectName;
+
+import org.jbpm.api.client.ProcessEngine;
+
+/**
+ * The parrent of all Elements
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface AbstractElement extends Serializable
+{
+  /**
+   * Get the ID of this element
+   */
+  ObjectName getKey();
+  
+  /**
+   * Get the associated ProcessEngine
+   */
+  ProcessEngine getProcessEngine();
+}
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,13 +25,14 @@
 
 import java.util.List;
 
-import org.jbpm.api.model.internal.AbstractElement;
-import org.jbpm.api.model.internal.PropertySupport;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.preview.Assignment;
 import org.jbpm.api.model.preview.Group;
-import org.jbpm.api.runtime.ExecutionHandler;
-import org.jbpm.api.runtime.FlowHandler;
-import org.jbpm.api.runtime.SignalHandler;
+import org.jbpm.api.model.preview.PropertySupport;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
+import org.jbpm.api.runtime.preview.FlowHandler;
+import org.jbpm.api.runtime.preview.SignalHandler;
 
 /**
  * A Node is an abstract element with a name and an associated process
@@ -49,7 +50,7 @@
   /**
    * Get the associated process 
    */
-  ProcessInstance getProcess();
+  Process getProcess();
 
   /** 
    * Get the unique name. 

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ProcessDefinition.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ProcessDefinition.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ProcessDefinition.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -1,41 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.model;
-
-//$Id$
-
-import org.jbpm.api.model.internal.ProcessStructure;
-
-/**
- * A ProcessDefinition defines the structure of an activity performed within a company or organization.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface ProcessDefinition extends ProcessStructure
-{
-  /**
-   * Create a new instance of this process definition
-   */
-  ProcessInstance newInstance();
-
-}
\ No newline at end of file

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ProcessInstance.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ProcessInstance.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ProcessInstance.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -1,80 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.model;
-
-//$Id$
-
-import javax.management.ObjectName;
-
-import org.jbpm.api.model.internal.ProcessStructure;
-import org.jbpm.api.runtime.Attachments;
-
-/**
- * A Process is any Activity performed within a company or organization.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface ProcessInstance extends ProcessStructure
-{
-  /**
-   * Defines the status a {@link ProcessInstance} can be in
-   */
-  public enum ProcessStatus
-  {
-    None, Ready, Active, Cancelled, Aborting, Aborted, Completing, Completed
-  }
-
-  /**
-   * Get the associated ProcessDefinition
-   */
-  ProcessDefinition getProcessDefinition();
-  
-  /**
-   * Get the process state
-   */
-  ProcessStatus getProcessStatus();
-
-  /**
-   * Start the process
-   */
-  ObjectName startProcess();
-
-  /**
-   * Start the process, with a given execution context
-   */
-  ObjectName startProcess(Attachments att);
-
-  /**
-   * All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
-   * Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends without
-   * timeout.
-   */
-  ProcessStatus waitForEnd();
-
-  /**
-   * All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
-   * Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends with a
-   * given timeout.
-   */
-  ProcessStatus waitForEnd(long timeout);
-}
\ No newline at end of file

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ProcessStructure.java (from rev 2889, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/internal/ProcessStructure.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ProcessStructure.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ProcessStructure.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,96 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.model;
+
+//$Id$
+
+import java.util.List;
+
+import org.jbpm.api.model.preview.Assignment;
+import org.jbpm.api.model.preview.Group;
+import org.jbpm.api.model.preview.Message;
+import org.jbpm.api.model.preview.PropertySupport;
+
+/**
+ * A ProcessStructure defines the structure of a Process 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface ProcessStructure extends AbstractElement, PropertySupport
+{
+  /**
+   * Get the unique name.
+   */
+  String getName();
+
+  /**
+   * Get the list of nodes
+   */
+  List<Node> getNodes();
+
+  /**
+   * Get a list of nodes of a given type.
+   */
+  <T extends Node> List<T> getNodes(Class<T> clazz);
+
+  /**
+   * Get a node of a given type and name
+   */
+  <T extends Node> T getNode(Class<T> clazz, String name);
+
+  /**
+   * Get a node by name.
+   * @return null if not found
+   */
+  Node getNode(String name);
+
+  /**
+   * One or more assignment expressions MAY be made for the object. The Assignment SHALL be performed as defined by the
+   * AssignTime attribute.
+   */
+  List<Assignment> getAssignments();
+
+  /**
+   * Get the list of associated {@link Message} objects.
+   * @return An empty list if there are none
+   */
+  List<Message> getMessages();
+
+  /**
+   * Get an associated {@link Message} by name.
+   * @return null if not found
+   */
+  Message getMessage(String msgName);
+  
+  /**
+   * Get the list of associated {@link Group} objects.
+   * @return An empty list if there are none
+   */
+  List<Group> getGroups();
+
+  /**
+   * Get an associated {@link Group} by name.
+   * @return null if not found
+   */
+  Group getGroup(String grpName);
+}
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Task.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Task.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Task.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -45,7 +45,7 @@
    */
   public enum TaskType
   {
-    Service, Receive, Send, User, Script, Manual, Reference, None
+    Service, Receive, Send, User, Script, Manual, Reference, None, Wait
   }
 
   /**

Added: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/WaitState.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/WaitState.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/WaitState.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.model;
+
+//$Id$
+
+
+
+/**
+ * A WaitState is a Task that returns control to Thread that signalled the Execution
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 12-Nov-2008
+ */
+public interface WaitState extends Task
+{
+}
\ No newline at end of file


Property changes on: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/WaitState.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilder.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilder.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilder.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -23,9 +23,9 @@
 
 //$Id$
 
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.Gateway.GatewayType;
@@ -38,12 +38,12 @@
 import org.jbpm.api.model.preview.Property;
 import org.jbpm.api.model.preview.Assignment.AssignTime;
 import org.jbpm.api.model.preview.Group.GroupType;
-import org.jbpm.api.runtime.ExecutionHandler;
-import org.jbpm.api.runtime.FlowHandler;
-import org.jbpm.api.runtime.SignalHandler;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
+import org.jbpm.api.runtime.preview.FlowHandler;
+import org.jbpm.api.runtime.preview.SignalHandler;
 
 /**
- * The ProcessBuilder can be used to build a {@link ProcessInstance} dynamically.
+ * The ProcessBuilder can be used to build a {@link Process} dynamically.
  * 
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
@@ -51,7 +51,7 @@
 public interface ProcessBuilder
 {
   /**
-   * Add a {@link ProcessInstance} with a given name
+   * Add a {@link Process} with a given name
    */
   ProcessBuilder addProcess(String name);
 

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/Group.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/Group.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/Group.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,7 +25,6 @@
 
 import java.io.Serializable;
 
-import org.jbpm.api.model.internal.PropertySupport;
 
 /**
  * The Group object is an Artifact that provides a visual mechanism to group elements of a diagram informally. The

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/InputSet.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/InputSet.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/InputSet.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -21,7 +21,6 @@
  */
 package org.jbpm.api.model.preview;
 
-import org.jbpm.api.model.internal.PropertySupport;
 
 
 //$Id$

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/Message.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/Message.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/Message.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -23,7 +23,6 @@
 
 import java.io.Serializable;
 
-import org.jbpm.api.model.internal.PropertySupport;
 
 
 

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/OutputSet.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/OutputSet.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/OutputSet.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -21,7 +21,6 @@
  */
 package org.jbpm.api.model.preview;
 
-import org.jbpm.api.model.internal.PropertySupport;
 
 
 //$Id$

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/PropertySupport.java (from rev 2889, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/internal/PropertySupport.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/PropertySupport.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/preview/PropertySupport.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,67 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.model.preview;
+
+//$Id$
+
+import java.io.Serializable;
+import java.util.Set;
+
+
+/**
+ * Property support
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 21-Jul-2008
+ */
+public interface PropertySupport extends Serializable
+{
+  /**
+   * Get a Property with a given name. 
+   */
+  Property getProperty(String name);
+
+  /**
+   * Get the set of properties
+   */
+  Set<Property> getProperties();
+  
+  /**
+   * Get the set of property names
+   */
+  Set<String> getPropertyNames();
+  
+  /**
+   * Add a property 
+   */
+  void addProperty(Property prop);
+
+  /**
+   * Add a property 
+   */
+  void addProperty(String name, Object value);
+  
+  /**
+   * Remove a property 
+   */
+  Property removeProperty(String name);
+}
\ No newline at end of file

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/BasicExecutionContext.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/BasicExecutionContext.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/BasicExecutionContext.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -1,42 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.runtime;
-
-//$Id$
-
-/**
- * A basic ExecutionContext.
- * 
- * @author Thomas.Diesler at jboss.com
- * @since 15-Aug-2008
- */
-public class BasicExecutionContext extends BasicAttachments implements ExecutionContext
-{
-  public BasicExecutionContext()
-  {
-  }
-  
-  public BasicExecutionContext(Attachments att)
-  {
-    super(att);
-  }
-}
\ No newline at end of file

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/BasicNodeHandler.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/BasicNodeHandler.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/BasicNodeHandler.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -1,49 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.runtime;
-
-import org.jbpm.api.model.Node;
-
-/**
- * A handler that is associated with a node
- * 
- * @author thomas.diesler at jboss.com
- * @since 30-Sep-2008
- */
-public abstract class BasicNodeHandler implements NodeHandler
-{
-  private static final long serialVersionUID = 1L;
-  
-  private Node node;
-
-  @Override
-  public Node getNode()
-  {
-    return node;
-  }
-
-  @Override
-  public void setNode(Node node)
-  {
-    this.node = node;
-  }
-}
\ No newline at end of file

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/ExecutionContext.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/ExecutionContext.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/ExecutionContext.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -1,35 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.runtime;
-
-// $Id$
-
-
-/**
- * An execution context that can take attachments.
- * 
- * @author Thomas.Diesler at jboss.com
- * @since 20-Apr-2007
- */
-public interface ExecutionContext extends Attachments
-{
-}
\ No newline at end of file

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/ExecutionHandler.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/ExecutionHandler.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/ExecutionHandler.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -1,42 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.runtime;
-
-//$Id$
-
-import org.jbpm.api.model.Node;
-
-/**
- * The ProcessEngine invokes the ExecutionHandler on a 
- * {@link Node} to execute user provided business logic.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface ExecutionHandler extends NodeHandler
-{
-  /**
-   * Execute the associated business logic.
-   */
-  void execute(Token token);
-
-}
\ No newline at end of file

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/FlowHandler.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/FlowHandler.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/FlowHandler.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -1,46 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.runtime;
-
-// $Id$
-
-import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.model.Node;
-
-/**
- * The {@link ProcessEngine} invokes the FlowHandler on a {@link Node} 
- * to move the {@link Token} to the next {@link Node}.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface FlowHandler extends NodeHandler
-{
-  /**
-   * Execute the FlowHandler.
-   * <p/>
-   * The FlowHandler typically invoves one of the {@link TokenExecutor} 
-   * methods to move the {@link Token} to the next {@link Node}.    
-   */
-  void execute(TokenExecutor tokenExecutor, Token token);
-
-}
\ No newline at end of file

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/NodeHandler.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/NodeHandler.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/NodeHandler.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -1,47 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.runtime;
-
-import java.io.Serializable;
-
-//$Id$
-
-import org.jbpm.api.model.Node;
-
-/**
- * A handler that is associated with a node 
- * 
- * @author thomas.diesler at jboss.com
- * @since 30-Sep-2008
- */
-public interface NodeHandler extends Serializable
-{
-  /**
-   * Get the associated node.
-   */
-  Node getNode();
-  
-  /**
-   * Set the associated node.
-   */
-  void setNode(Node node);
-}
\ No newline at end of file

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/SignalHandler.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/SignalHandler.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/SignalHandler.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -1,48 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.runtime;
-
-// $Id$
-
-import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.model.Node;
-import org.jbpm.api.model.preview.Signal;
-
-/**
- * The {@link ProcessEngine} invokes the SignalHandler on a {@link Node} 
- * to send {@link Signal}s.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface SignalHandler extends NodeHandler
-{
-  /** 
-   * Get signal for enter 
-   */
-  void throwEnterSignal(Token token);
-
-  /** 
-   * Get signal for exit 
-   */
-  void throwExitSignal(Token token);
-}
\ No newline at end of file

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -1,78 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.runtime;
-
-// $Id$
-
-import org.hibernate.Session;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.SequenceFlow;
-
-/**
- * A Token is a descriptive construct used to describe how the flow of a Process will proceed at runtime.
- * 
- * By tracking how the Token traverses the Flow Objects, gets diverted through alternative paths, and gets split into
- * parallel paths, the normal Sequence Flow should be completely definable.
- * 
- * A Token will have a unique identity that can be used to separate multiple Tokens that may exist because of concurrent
- * process instances or the splitting of the Token for parallel processing within a single process instance.
- * 
- * @author Thomas.Diesler at jboss.com
- * @since 20-Apr-2007
- */
-public interface Token
-{
-  public enum TokenStatus
-  {
-    Created, Started, Stoped, Destroyed, Suspended
-  }
-
-  /**
-   * Get the unique token identity
-   */
-  String getTokenID();
-
-  /**
-   * Get the token status
-   */
-  TokenStatus getTokenStatus();
-
-  /**
-   * Get the associated {@link ProcessInstance}
-   */
-  ProcessInstance getProcess();
-  
-  /**
-   * Get the associated {@link ExecutionContext}
-   */
-  ExecutionContext getExecutionContext();
-
-  /**
-   * Get the current {@link SequenceFlow}
-   */
-  SequenceFlow getSequenceFlow();
-  
-  /**
-   * Get the associated persistence session
-   */
-  Session getSession();
-}
\ No newline at end of file

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/TokenExecutor.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/TokenExecutor.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/TokenExecutor.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -1,83 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.api.runtime;
-
-//$Id$
-
-import java.util.Set;
-
-import org.jbpm.api.model.SequenceFlow;
-
-/**
- * The {@link FlowHandler} invokes the TokenExecutor to move {@link Token}s
- * along the {@link SequenceFlow}s in the {@link Process}.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface TokenExecutor
-{
-  /**
-   * Get the set of active tokens
-   */
-  Set<Token> getRunnableTokens();
-  
-  /**
-   * True if there are active tokens
-   */
-  boolean hasRunnableTokens();
-  
-  /**
-   * Create a {@link Token} with an initial flow
-   */
-  void create(Token token, SequenceFlow flow);
-  
-  /**
-   * Start a {@link Token}
-   */
-  void start(Token token);
-  
-  /**
-   * Stop a {@link Token}
-   */
-  void stop(Token token);
-  
-  /**
-   * Destroy a {@link Token}
-   */
-  void destroy(Token token);
-  
-  /**
-   * Suspend a {@link Token}
-   */
-  String suspend(Token token);
-  
-  /**
-   * Activate a {@link Token}
-   */
-  Token activate(String tokenID);
-  
-  /**
-   * Move a given {@link Token} along a given flow.
-   */
-  void move(Token token, SequenceFlow flow);
-}

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/BasicExecutionContext.java (from rev 2888, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/BasicExecutionContext.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/BasicExecutionContext.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/BasicExecutionContext.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.runtime.preview;
+
+import org.jbpm.api.runtime.Attachments;
+import org.jbpm.api.runtime.BasicAttachments;
+
+//$Id$
+
+/**
+ * A basic ExecutionContext.
+ * 
+ * @author Thomas.Diesler at jboss.com
+ * @since 15-Aug-2008
+ */
+public class BasicExecutionContext extends BasicAttachments implements ExecutionContext
+{
+  public BasicExecutionContext()
+  {
+  }
+  
+  public BasicExecutionContext(Attachments att)
+  {
+    super(att);
+  }
+}
\ No newline at end of file

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/BasicNodeHandler.java (from rev 2888, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/BasicNodeHandler.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/BasicNodeHandler.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/BasicNodeHandler.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.runtime.preview;
+
+import org.jbpm.api.model.Node;
+
+/**
+ * A handler that is associated with a node
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 30-Sep-2008
+ */
+public abstract class BasicNodeHandler implements NodeHandler
+{
+  private static final long serialVersionUID = 1L;
+  
+  private Node node;
+
+  @Override
+  public Node getNode()
+  {
+    return node;
+  }
+
+  @Override
+  public void setNode(Node node)
+  {
+    this.node = node;
+  }
+}
\ No newline at end of file

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/ExecutionContext.java (from rev 2888, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/ExecutionContext.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/ExecutionContext.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/ExecutionContext.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.runtime.preview;
+
+import org.jbpm.api.runtime.Attachments;
+
+// $Id$
+
+
+/**
+ * An execution context that can take attachments.
+ * 
+ * @author Thomas.Diesler at jboss.com
+ * @since 20-Apr-2007
+ */
+public interface ExecutionContext extends Attachments
+{
+}
\ No newline at end of file

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/ExecutionHandler.java (from rev 2888, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/ExecutionHandler.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/ExecutionHandler.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/ExecutionHandler.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.runtime.preview;
+
+//$Id$
+
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.model.Node;
+
+/**
+ * The ProcessEngine invokes the ExecutionHandler on a 
+ * {@link Node} to execute user provided business logic.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface ExecutionHandler extends NodeHandler
+{
+  /**
+   * Execute the associated business logic.
+   */
+  void execute(Execution token);
+
+}
\ No newline at end of file

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/FlowHandler.java (from rev 2888, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/FlowHandler.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/FlowHandler.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/FlowHandler.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.runtime.preview;
+
+// $Id$
+
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.model.Node;
+
+/**
+ * The {@link ProcessEngine} invokes the FlowHandler on a {@link Node} 
+ * to move the {@link Execution} to the next {@link Node}.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface FlowHandler extends NodeHandler
+{
+  /**
+   * Execute the FlowHandler.
+   * <p/>
+   * The FlowHandler typically invoves one of the {@link TokenExecutor} 
+   * methods to move the {@link Execution} to the next {@link Node}.    
+   */
+  void execute(TokenExecutor tokenExecutor, Execution token);
+
+}
\ No newline at end of file

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/NodeHandler.java (from rev 2888, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/NodeHandler.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/NodeHandler.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/NodeHandler.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.runtime.preview;
+
+import java.io.Serializable;
+
+//$Id$
+
+import org.jbpm.api.model.Node;
+
+/**
+ * A handler that is associated with a node 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 30-Sep-2008
+ */
+public interface NodeHandler extends Serializable
+{
+  /**
+   * Get the associated node.
+   */
+  Node getNode();
+  
+  /**
+   * Set the associated node.
+   */
+  void setNode(Node node);
+}
\ No newline at end of file

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/SignalHandler.java (from rev 2889, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/SignalHandler.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/SignalHandler.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/SignalHandler.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.runtime.preview;
+
+// $Id$
+
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.model.Node;
+import org.jbpm.api.model.preview.Signal;
+
+/**
+ * The {@link ProcessEngine} invokes the SignalHandler on a {@link Node} 
+ * to send {@link Signal}s.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface SignalHandler extends NodeHandler
+{
+  /** 
+   * Get signal for enter 
+   */
+  void throwEnterSignal(Execution token);
+
+  /** 
+   * Get signal for exit 
+   */
+  void throwExitSignal(Execution token);
+}
\ No newline at end of file

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/TokenExecutor.java (from rev 2888, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/TokenExecutor.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/TokenExecutor.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/preview/TokenExecutor.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.runtime.preview;
+
+//$Id$
+
+import java.util.Set;
+
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.model.SequenceFlow;
+
+/**
+ * The {@link FlowHandler} invokes the TokenExecutor to move {@link Execution}s
+ * along the {@link SequenceFlow}s in the {@link Process}.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface TokenExecutor
+{
+  /**
+   * Get the set of active tokens
+   */
+  Set<Execution> getRunnableTokens();
+  
+  /**
+   * True if there are active tokens
+   */
+  boolean hasRunnableTokens();
+  
+  /**
+   * Create a {@link Execution} with an initial flow
+   */
+  void create(Execution token, SequenceFlow flow);
+  
+  /**
+   * Start a {@link Execution}
+   */
+  void start(Execution token);
+  
+  /**
+   * Stop a {@link Execution}
+   */
+  void stop(Execution token);
+  
+  /**
+   * Destroy a {@link Execution}
+   */
+  void destroy(Execution token);
+  
+  /**
+   * Suspend a {@link Execution}
+   */
+  String suspend(Execution token);
+  
+  /**
+   * Activate a {@link Execution}
+   */
+  Execution activate(String tokenID);
+  
+  /**
+   * Move a given {@link Execution} along a given flow.
+   */
+  void move(Execution token, SequenceFlow flow);
+}

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/DialectHandler.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/DialectHandler.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/DialectHandler.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -28,7 +28,7 @@
 import java.net.URI;
 import java.net.URL;
 
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.ProcessDefinition;
 
 /**
  * The DialectHandler converts a supported dialect to the ProcessDefinition model.

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,9 +26,9 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
-import org.jbpm.api.model.ProcessInstance;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.Process.ProcessStatus;
 import org.jbpm.api.model.StartEvent;
-import org.jbpm.api.model.ProcessInstance.ProcessStatus;
 import org.jbpm.api.runtime.Attachments;
 
 /**
@@ -60,7 +60,7 @@
    * @param proc The Process to start
    * @param att The Attachments in the ExecutionContext
    */
-  public abstract void startProcess(ProcessInstance proc, Attachments att);
+  public abstract void startProcess(Process proc, Attachments att);
 
   /**
    * Start the Process from a given start event
@@ -68,19 +68,19 @@
    * @param start The StartEvent that triggers the process
    * @param att The Attachments in the ExecutionContext
    */
-  public abstract void startProcess(ProcessInstance proc, StartEvent start, Attachments att);
+  public abstract void startProcess(Process proc, StartEvent start, Attachments att);
 
   /**
    * All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
    * Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends without
    * timeout.
    */
-  public abstract ProcessStatus waitForEnd(ProcessInstance proc);
+  public abstract ProcessStatus waitForEnd(Process proc);
 
   /**
    * All Tokens that are generated at the Start Event for that Process must eventually arrive at an End Event. The
    * Process will be in a running state until all Tokens are consumed. <p/> This method until the process ends with a
    * given timeout.
    */
-  public abstract ProcessStatus waitForEnd(ProcessInstance proc, long timeout);
+  public abstract ProcessStatus waitForEnd(Process proc, long timeout);
 }

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -23,12 +23,12 @@
 
 //$Id$
 
+import org.jbpm.api.client.Process;
 import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.model.ProcessInstance;
 import org.jbpm.api.model.builder.ProcessBuilder;
 
 /**
- * The ProcessBuilder can be used to build a {@link ProcessInstance} dynamically.
+ * The ProcessBuilder can be used to build a {@link Process} dynamically.
  * 
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -37,9 +37,9 @@
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.preview.Deployment;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.preview.PersistenceService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -31,10 +31,10 @@
 
 import javax.management.ObjectName;
 
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
-import org.jbpm.api.model.ProcessInstance.ProcessStatus;
+import org.jbpm.api.client.Process.ProcessStatus;
 import org.jbpm.api.service.preview.PersistenceService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -51,7 +51,7 @@
   final static Logger log = LoggerFactory.getLogger(ProcessInstanceService.class);
 
   // The set of registered processes
-  private Map<ObjectName, ProcessInstance> registeredProcs = new HashMap<ObjectName, ProcessInstance>();
+  private Map<ObjectName, Process> registeredProcs = new HashMap<ObjectName, Process>();
 
   // Hide public constructor
   protected ProcessInstanceService()
@@ -70,7 +70,7 @@
   /**
    * Register a Process.
    */
-  public ObjectName registerProcess(ProcessInstance proc)
+  public ObjectName registerProcess(Process proc)
   {
     log.debug("registerProcess: " + proc);
 
@@ -102,7 +102,7 @@
   public boolean unregisterProcess(ObjectName procID)
   {
     boolean removed = false;
-    ProcessInstance proc = registeredProcs.get(procID);
+    Process proc = registeredProcs.get(procID);
     if (proc != null)
     {
       log.debug("unregisterProcess: " + proc);
@@ -119,9 +119,9 @@
   /**
    * Get a Process for a given id
    */
-  public ProcessInstance getProcess(ObjectName procID)
+  public Process getProcess(ObjectName procID)
   {
-    ProcessInstance proc = registeredProcs.get(procID);
+    Process proc = registeredProcs.get(procID);
     return proc;
   }
 
@@ -143,7 +143,7 @@
   public Set<ObjectName> getProcesses(String name, ProcessStatus status)
   {
     Set<ObjectName> procSet = new HashSet<ObjectName>();
-    for (ProcessInstance auxProc : registeredProcs.values())
+    for (Process auxProc : registeredProcs.values())
     {
       if (auxProc.getName().equals(name))
       {

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -31,11 +31,11 @@
 
 import javax.management.ObjectName;
 
+import org.jbpm.api.client.Process;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.preview.MessageListener;
 import org.jbpm.api.model.Event;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessInstance;
 import org.jbpm.api.model.Task;
 import org.jbpm.api.model.preview.Message;
 import org.jbpm.api.model.preview.Participant;
@@ -136,7 +136,7 @@
   public void sendMessage(ObjectName procID, String targetName, Message msg)
   {
     ProcessInstanceService procService = ProcessInstanceService.locateProcessService();
-    ProcessInstance proc = procService.getProcess(procID);
+    Process proc = procService.getProcess(procID);
     if (proc == null)
       throw new IllegalStateException("Cannot obtain registered process: " + procID);
 

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,10 +26,10 @@
 import javax.management.ObjectName;
 
 import org.hibernate.Session;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessDefinition;
-import org.jbpm.api.model.ProcessInstance;
 import org.jbpm.api.service.AbstractService;
 
 /**
@@ -72,17 +72,17 @@
   /**
    * Save the Process to persistent storage
    */
-  public abstract ObjectName saveProcess(ProcessInstance proc);
+  public abstract ObjectName saveProcess(Process proc);
 
   /**
    * Load the Process from persistent storage
    */
-  public abstract ProcessInstance loadProcess(ObjectName procID);
+  public abstract Process loadProcess(ObjectName procID);
 
   /**
    * Delete the Process from persistent storage
    */
-  public abstract void deleteProcess(ProcessInstance proc);
+  public abstract void deleteProcess(Process proc);
 
   /**
    * Save the Node to persistent storage

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestCase.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestCase.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestCase.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -35,10 +35,10 @@
 import javax.management.ObjectName;
 
 import org.jbpm.api.BPMException;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.preview.MessageListener;
 import org.jbpm.api.client.preview.SignalListener;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.builder.preview.SignalBuilder;
 import org.jbpm.api.model.preview.Message;
 import org.jbpm.api.model.preview.Signal;

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ProcessCatalog.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ProcessCatalog.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ProcessCatalog.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,10 +25,10 @@
 
 import junit.framework.TestCase;
 
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.EndEvent;
 import org.jbpm.api.model.Expression;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.api.model.StartEvent;
 import org.jbpm.api.model.Task;

Modified: projects/spec/trunk/modules/cts/pom.xml
===================================================================
--- projects/spec/trunk/modules/cts/pom.xml	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/pom.xml	2008-11-12 11:00:17 UTC (rev 2891)
@@ -46,8 +46,8 @@
         <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
           <excludes>
-            <exclude>org/jbpm/test/cts/preview/**</exclude>
-            <exclude>org/jbpm/test/cts/pattern/**</exclude>
+            <exclude>org/jbpm/test/cts/preview/**/*Test.java</exclude>
+            <exclude>org/jbpm/test/pattern/**/*Test.java</exclude>
           </excludes>
         </configuration>
       </plugin>

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,8 +26,8 @@
 import java.io.IOException;
 import java.util.List;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Gateway.GatewayType;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.preview.Signal;
@@ -47,10 +47,10 @@
   public void testMerge() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     // Start the process
-    proc.startProcess();
+    proc.startProcessAsync();
 
     // Wait for the process to end
     proc.waitForEnd(5000);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,8 +26,8 @@
 import java.io.IOException;
 import java.util.List;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.Gateway.GatewayType;
 import org.jbpm.api.model.builder.ProcessBuilder;
@@ -49,11 +49,11 @@
   public void testGateA() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "5");
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
     proc.waitForEnd(5000);
 
     List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
@@ -64,11 +64,11 @@
   public void testGateB() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "15");
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
     proc.waitForEnd(5000);
 
     List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
@@ -79,11 +79,11 @@
   public void testInvalidGate() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "10");
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
     try
     {
       proc.waitForEnd(5000);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/endevent/EndEventMessageTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/endevent/EndEventMessageTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/endevent/EndEventMessageTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,8 +25,8 @@
 
 import java.io.IOException;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.builder.preview.MessageBuilder;
@@ -46,12 +46,12 @@
   public void testStart() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     // Start the process
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("kermit", "the frog");
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
 
     // Wait for the process to end
     proc.waitForEnd(5000);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/executioncontext/ExecutionContextTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/executioncontext/ExecutionContextTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/executioncontext/ExecutionContextTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -23,8 +23,8 @@
 
 // $Id$
 
-import org.jbpm.api.runtime.BasicExecutionContext;
-import org.jbpm.api.runtime.ExecutionContext;
+import org.jbpm.api.runtime.preview.BasicExecutionContext;
+import org.jbpm.api.runtime.preview.ExecutionContext;
 import org.jbpm.api.test.CTSTestCase;
 
 /**

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/inclusive/InclusiveGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/inclusive/InclusiveGatewayMergeTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/inclusive/InclusiveGatewayMergeTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,8 +26,8 @@
 import java.io.IOException;
 import java.util.List;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Gateway.GatewayType;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.preview.Signal;
@@ -46,10 +46,10 @@
   public void testSimpleMerge() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     // Start the process
-    proc.startProcess();
+    proc.startProcessAsync();
 
     // Wait for the process to end
     proc.waitForEnd(5000);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/inclusive/InclusiveGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/inclusive/InclusiveGatewaySplitTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/inclusive/InclusiveGatewaySplitTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,8 +26,8 @@
 import java.io.IOException;
 import java.util.List;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.Gateway.GatewayType;
 import org.jbpm.api.model.builder.ProcessBuilder;
@@ -49,11 +49,11 @@
   public void testGateA() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "5");
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
     proc.waitForEnd(5000);
 
     List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
@@ -63,11 +63,11 @@
   public void testGateB() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "15");
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
     proc.waitForEnd(5000);
 
     List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/parallel/ParallelGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/parallel/ParallelGatewayMergeTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/parallel/ParallelGatewayMergeTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,8 +25,8 @@
 
 import java.io.IOException;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.Gateway.GatewayType;
@@ -50,10 +50,10 @@
   public void testParallelMerge() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
     
     // Start the process
-    proc.startProcess();
+    proc.startProcessAsync();
 
     // Wait for the process to end
     proc.waitForEnd(5000);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/parallel/ParallelGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/parallel/ParallelGatewaySplitTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/gateway/parallel/ParallelGatewaySplitTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -28,8 +28,8 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Gateway.GatewayType;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.preview.Signal;
@@ -49,9 +49,9 @@
   public void testParallelSplit() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
     
-    proc.startProcess();
+    proc.startProcessAsync();
     proc.waitForEnd(5000);
 
     // Validate received signals

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node/NodeInputSetTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node/NodeInputSetTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node/NodeInputSetTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,8 +25,8 @@
 
 import java.io.IOException;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.builder.TaskBuilder;
@@ -51,11 +51,11 @@
   public void testValidProps() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("frog", "kermit");
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
     proc.waitForEnd(5000);
 
     Message endMessage = getMessages().get(0);
@@ -66,11 +66,11 @@
   public void testInvalidProps() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("pig", "piggy");
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
 
     try
     {

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node/NodeOutputSetTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node/NodeOutputSetTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node/NodeOutputSetTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,8 +25,8 @@
 
 import java.io.IOException;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.builder.TaskBuilder;
@@ -51,9 +51,9 @@
   public void testValidProps() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
-    proc.startProcess();
+    proc.startProcessAsync();
     proc.waitForEnd(5000);
 
     Message endMessage = getMessages().get(0);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node/NodePropertyTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node/NodePropertyTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/node/NodePropertyTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,8 +25,8 @@
 
 import java.io.IOException;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.builder.ProcessBuilder;
@@ -52,9 +52,9 @@
   public void testActivityPropertyRead() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
     
-    proc.startProcess();
+    proc.startProcessAsync();
     proc.waitForEnd(5000);
     
     Message endMessage = getMessages().get(0);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/process/ProcessPropertyTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/process/ProcessPropertyTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/process/ProcessPropertyTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,8 +25,8 @@
 
 import java.io.IOException;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.builder.ProcessBuilder;
@@ -57,9 +57,9 @@
   public void testProcessProperties() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
     
-    proc.startProcess();
+    proc.startProcessAsync();
     proc.waitForEnd(5000);
 
     Message endMessage = getMessages().get(0);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/startevent/StartEventSignalTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/startevent/StartEventSignalTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/startevent/StartEventSignalTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -28,9 +28,9 @@
 
 import javax.management.ObjectName;
 
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.preview.SignalListener;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.builder.ProcessBuilder;
@@ -63,10 +63,10 @@
     ProcessDefinitionService procDefService = ProcessDefinitionService.locateProcessDefinitionService();
     procDefService.registerProcessDefinition(procDef);
 
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
     try
     {
-      proc.startProcess();
+      proc.startProcessAsync();
       fail("Cannot obtain StartEvent.None to start the process explicitly");
     }
     catch (IllegalStateException ex)

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/java/JavaTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/java/JavaTaskTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/java/JavaTaskTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,16 +25,16 @@
 
 import java.io.IOException;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.builder.TaskBuilder;
 import org.jbpm.api.model.preview.Assignment.AssignTime;
-import org.jbpm.api.runtime.BasicNodeHandler;
-import org.jbpm.api.runtime.ExecutionContext;
-import org.jbpm.api.runtime.ExecutionHandler;
-import org.jbpm.api.runtime.Token;
+import org.jbpm.api.runtime.preview.BasicNodeHandler;
+import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 
@@ -49,9 +49,9 @@
   public void testExecutionHandler() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
     
-    proc.startProcess();
+    proc.startProcessAsync();
     proc.waitForEnd(5000);
     
     assertEquals("kermit", TaskExecutionHandler.procProp);
@@ -89,7 +89,7 @@
      * - The result of start time activity assignments
      */
     @Override
-    public void execute(Token token)
+    public void execute(Execution token)
     {
       ExecutionContext exContext = token.getExecutionContext();
       procProp = (String)exContext.getAttachment("TaskExecutionHandlerTest.procProp");

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/receive/ReceiveTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/receive/ReceiveTaskTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/receive/ReceiveTaskTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -28,9 +28,9 @@
 import javax.management.ObjectName;
 
 import org.jbpm.api.InvalidProcessException;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.preview.SignalListener;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.Task.TaskType;
 import org.jbpm.api.model.builder.ProcessBuilder;
@@ -74,7 +74,7 @@
   public void testUnregisteredProcess() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     MessageService msgService = MessageService.locateMessageService();
     try
@@ -94,7 +94,7 @@
     ProcessInstanceService procService = ProcessInstanceService.locateProcessService();
     
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
     
     ObjectName procID = procService.registerProcess(proc);
     try
@@ -103,7 +103,7 @@
       MessageService msgService = MessageService.locateMessageService();
       msgService.sendMessage(procID, "TaskA", getMessage());
 
-      proc.startProcess();
+      proc.startProcessAsync();
       proc.waitForEnd(5000);
     }
     finally
@@ -119,7 +119,7 @@
   public void testSuspendedToken() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    final ProcessInstance proc = procDef.newInstance();
+    final Process proc = procDef.newInstance();
     SignalListener sigListener = new SignalListener()
     {
       private boolean sendMessage = true;
@@ -145,7 +145,7 @@
 
     try
     {
-      proc.startProcess();
+      proc.startProcessAsync();
       proc.waitForEnd(5000);
     }
     finally

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/send/SendTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/send/SendTaskTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/send/SendTaskTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -27,8 +27,8 @@
 import java.util.List;
 
 import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Task.TaskType;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.builder.preview.MessageBuilder;
@@ -48,11 +48,11 @@
   public void testSendTask() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
     
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "bar");
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
     proc.waitForEnd(5000);
     
     List<Message> messages = getMessages();

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/user/UserTaskCallbackTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/user/UserTaskCallbackTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/user/UserTaskCallbackTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,9 +26,9 @@
 import java.io.IOException;
 import java.util.List;
 
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.preview.UserTaskCallback;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.Task.TaskType;
 import org.jbpm.api.model.builder.ProcessBuilder;
@@ -50,7 +50,7 @@
   public void testUserTask() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     // Attach the callback to the UserTask
     UserTask userTask = proc.getNode(UserTask.class, "UserTask");
@@ -58,7 +58,7 @@
 
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "xxx");
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
     proc.waitForEnd(5000);
 
     List<Message> messages = getMessages();

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/user/UserTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/user/UserTaskTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/task/user/UserTaskTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -29,9 +29,9 @@
 import javax.management.ObjectName;
 
 import org.jbpm.api.Constants;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.preview.MessageListener;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.Task.TaskType;
 import org.jbpm.api.model.builder.ProcessBuilder;
@@ -58,7 +58,7 @@
   public void testUserTask() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
     
     // Register the process - this assigns the procID
     ProcessInstanceService procService = ProcessInstanceService.locateProcessService();
@@ -72,7 +72,7 @@
     {
       BasicAttachments att = new BasicAttachments();
       att.addAttachment("foo", "xxx");
-      proc.startProcess(att);
+      proc.startProcessAsync(att);
       proc.waitForEnd(5000);
       
       List<Message> messages = getMessages();

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/transaction/TxRequiredMarshallerTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/transaction/TxRequiredMarshallerTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/transaction/TxRequiredMarshallerTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,7 +25,7 @@
 
 import java.io.IOException;
 
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.service.ProcessDefinitionService;
 
 /**

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/transaction/TxRequiredTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/transaction/TxRequiredTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/preview/transaction/TxRequiredTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -29,17 +29,17 @@
 import org.hibernate.Transaction;
 import org.jbpm.api.Constants;
 import org.jbpm.api.Constants.TxType;
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.Task.TaskType;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.preview.Group;
 import org.jbpm.api.model.preview.Message;
 import org.jbpm.api.model.preview.Group.GroupType;
 import org.jbpm.api.runtime.BasicAttachments;
-import org.jbpm.api.runtime.ExecutionHandler;
-import org.jbpm.api.runtime.Token;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.ri.runtime.TransactionAssociation;
@@ -66,9 +66,9 @@
     assertSame("Group same", group, groupA);
     assertSame("Group same", group, groupB);
 
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
-    proc.startProcess();
+    proc.startProcessAsync();
     proc.waitForEnd();
 
     List<Message> messages = getMessages();
@@ -78,12 +78,12 @@
   public void testRollback() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     BasicAttachments att = new BasicAttachments();
     att.addAttachment(Boolean.class, "rollback", Boolean.TRUE);
 
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
     proc.waitForEnd(5000);
 
     List<Message> messages = getMessages();
@@ -110,7 +110,7 @@
     private Node node;
 
     @Override
-    public void execute(Token token)
+    public void execute(Execution token)
     {
       Transaction tx = TransactionAssociation.getTransaction();
       Boolean doRollback = token.getExecutionContext().getAttachment(Boolean.class, "rollback");

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessBuilderTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessBuilderTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessBuilderTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -24,7 +24,7 @@
 // $Id$
 
 import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -27,9 +27,9 @@
 
 import javax.management.ObjectName;
 
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessDefinitionService;
 import org.jbpm.api.service.ProcessInstanceService;
 import org.jbpm.api.test.CTSTestCase;
@@ -66,7 +66,7 @@
     ProcessDefinitionService procDefService = engine.getService(ProcessDefinitionService.class);
     ProcessInstanceService procService = engine.getService(ProcessInstanceService.class);
 
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
     assertNotNull("Process not null", proc);
     assertNull("Process not automatically registered", procService.getProcess(proc.getKey()));
     assertNull("ProcessDefinition not automatically registered", procDefService.getProcessDefinition(procDef.getKey()));

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,9 +25,9 @@
 
 import javax.management.ObjectName;
 
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.preview.SignalListener;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.preview.Signal;
 import org.jbpm.api.model.preview.Signal.SignalType;
@@ -51,7 +51,7 @@
     ProcessInstanceService procService = ProcessInstanceService.locateProcessService();
     
     ProcessDefinition procDef = getProcessDefinition();
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     assertNull("ProcessDefinition not registered automatically", procDefService.getProcessDefinition(procDef.getKey()));
     assertNull("Process not registered automatically", procService.getProcess(proc.getKey()));
@@ -77,7 +77,7 @@
     final ProcessInstanceService procService = ProcessInstanceService.locateProcessService();
     
     final ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    final ProcessInstance proc = procDef.newInstance();
+    final Process proc = procDef.newInstance();
     assertNull("Process not registered automatically", procService.getProcess(proc.getKey()));
 
     SignalListener sigListener = new SignalListener()
@@ -99,7 +99,7 @@
     try
     {
       // Start the process, which automatically adds it to the registry
-      proc.startProcess();
+      proc.startProcessAsync();
       proc.waitForEnd(5000);
     }
     finally

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/exclusivechoice/ExclusiveChoiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/exclusivechoice/ExclusiveChoiceTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/exclusivechoice/ExclusiveChoiceTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,9 +26,9 @@
 import java.io.IOException;
 import java.util.List;
 
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Gateway;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.builder.preview.GatewayBuilder;
@@ -49,11 +49,11 @@
   public void testGateA() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "5");
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
     proc.waitForEnd();
 
     List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
@@ -64,11 +64,11 @@
   public void testGateB() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "15");
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
     proc.waitForEnd();
 
     List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
@@ -79,11 +79,11 @@
   public void testInvalidGate() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "10");
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
     try
     {
       proc.waitForEnd();

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/multichoice/MultiChoiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/multichoice/MultiChoiceTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/multichoice/MultiChoiceTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,9 +26,9 @@
 import java.io.IOException;
 import java.util.List;
 
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Gateway;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.builder.preview.GatewayBuilder;
@@ -49,11 +49,11 @@
   public void testGateA() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "5");
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
     proc.waitForEnd();
 
     List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
@@ -63,11 +63,11 @@
   public void testGateB() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "15");
-    proc.startProcess(att);
+    proc.startProcessAsync(att);
     proc.waitForEnd();
 
     List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/parallelsplit/ParallelSplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/parallelsplit/ParallelSplitTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/parallelsplit/ParallelSplitTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -28,9 +28,9 @@
 
 import javax.management.ObjectName;
 
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Gateway;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.preview.Signal;
 import org.jbpm.api.model.preview.Signal.SignalType;
@@ -49,9 +49,9 @@
   public void testParallelSplit() throws Exception 
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
     
-    proc.startProcess();
+    proc.startProcessAsync();
     proc.waitForEnd();
     
     // Validate received signals

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequencePersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequencePersistenceTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequencePersistenceTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -27,7 +27,7 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.service.preview.PersistenceService;
 
 /**

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,8 +26,8 @@
 import java.io.IOException;
 import java.util.List;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.preview.Signal;
 import org.jbpm.api.model.preview.Signal.SignalType;
@@ -46,10 +46,10 @@
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
 
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     // Start the Process
-    proc.startProcess();
+    proc.startProcessAsync();
     proc.waitForEnd();
 
     // Validate received signals

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,8 +26,8 @@
 import java.io.IOException;
 import java.util.List;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Gateway.GatewayType;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.model.preview.Signal;
@@ -46,10 +46,10 @@
   public void testSimpleMerge() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
 
     // Start the process
-    proc.startProcess();
+    proc.startProcessAsync();
 
     // Wait for the process to end
     proc.waitForEnd(5000);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,8 +25,8 @@
 
 import java.io.IOException;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.Gateway.GatewayType;
@@ -50,10 +50,10 @@
   public void testParallelMerge() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
     
     // Start the process
-    proc.startProcess();
+    proc.startProcessAsync();
 
     // Wait for the process to end
     proc.waitForEnd();

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/casedata/CaseDataTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/casedata/CaseDataTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/casedata/CaseDataTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,8 +25,8 @@
 
 import java.io.IOException;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.builder.ProcessBuilder;
@@ -50,9 +50,9 @@
   public void testCaseProperties() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
     
-    proc.startProcess();
+    proc.startProcessAsync();
     proc.waitForEnd();
 
     Message endMessage = getMessages().get(0);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/taskdata/TaskDataTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/taskdata/TaskDataTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/taskdata/TaskDataTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,8 +25,8 @@
 
 import java.io.IOException;
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.builder.ProcessBuilder;
@@ -51,9 +51,9 @@
   public void testTaskDataRead() throws Exception
   {
     ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
     
-    proc.startProcess();
+    proc.startProcessAsync();
     proc.waitForEnd();
     
     Message endMessage = getMessages().get(0);

Modified: projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/DialectHandlerImpl.java
===================================================================
--- projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/DialectHandlerImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/DialectHandlerImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -33,7 +33,7 @@
 import javax.xml.bind.JAXBException;
 
 import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.service.DialectHandler;
 
 /**

Modified: projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java
===================================================================
--- projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -31,13 +31,13 @@
 import javax.xml.bind.Marshaller;
 
 import org.jbpm.api.NotImplementedException;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.EndEvent;
 import org.jbpm.api.model.Event;
 import org.jbpm.api.model.ExclusiveGateway;
 import org.jbpm.api.model.Expression;
 import org.jbpm.api.model.Gateway;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.api.model.StartEvent;
 import org.jbpm.api.model.Task;
@@ -56,9 +56,9 @@
 import org.jbpm.api.model.preview.ReceiveTask;
 import org.jbpm.api.model.preview.SendTask;
 import org.jbpm.api.model.preview.Signal;
-import org.jbpm.api.runtime.ExecutionHandler;
-import org.jbpm.api.runtime.FlowHandler;
-import org.jbpm.api.runtime.SignalHandler;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
+import org.jbpm.api.runtime.preview.FlowHandler;
+import org.jbpm.api.runtime.preview.SignalHandler;
 import org.jbpm.dialect.api10.model.JAXBAssignment;
 import org.jbpm.dialect.api10.model.JAXBComplexGateway;
 import org.jbpm.dialect.api10.model.JAXBEndEvent;

Modified: projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java
===================================================================
--- projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -32,8 +32,8 @@
 import javax.xml.bind.Unmarshaller;
 
 import org.jbpm.api.NotImplementedException;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Gateway;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.SequenceFlow.ConditionType;
 import org.jbpm.api.model.Task.TaskType;
 import org.jbpm.api.model.builder.ProcessBuilder;
@@ -43,10 +43,10 @@
 import org.jbpm.api.model.builder.preview.GroupBuilder;
 import org.jbpm.api.model.builder.preview.MessageBuilder;
 import org.jbpm.api.model.builder.preview.ObjectNameFactory;
-import org.jbpm.api.runtime.ExecutionHandler;
-import org.jbpm.api.runtime.FlowHandler;
-import org.jbpm.api.runtime.NodeHandler;
-import org.jbpm.api.runtime.SignalHandler;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
+import org.jbpm.api.runtime.preview.FlowHandler;
+import org.jbpm.api.runtime.preview.NodeHandler;
+import org.jbpm.api.runtime.preview.SignalHandler;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.dialect.api10.model.JAXBAssignment;
 import org.jbpm.dialect.api10.model.JAXBCancelEventDetail;

Modified: projects/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jbpm/dialect/jpdl32/DialectHandlerImpl.java
===================================================================
--- projects/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jbpm/dialect/jpdl32/DialectHandlerImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jbpm/dialect/jpdl32/DialectHandlerImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -34,7 +34,7 @@
 
 import org.jbpm.api.InvalidProcessException;
 import org.jbpm.api.NotImplementedException;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.service.DialectHandler;
 import org.jbpm.dialect.jpdl32.model.JPDL32ProcessDefinition;
 

Modified: projects/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jbpm/dialect/jpdl32/ProcessDefinitionAdapter.java
===================================================================
--- projects/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jbpm/dialect/jpdl32/ProcessDefinitionAdapter.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jbpm/dialect/jpdl32/ProcessDefinitionAdapter.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,11 +26,11 @@
 import java.util.List;
 
 import org.jbpm.api.InvalidProcessException;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Gateway;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.Task;
 import org.jbpm.api.model.builder.ProcessBuilder;
-import org.jbpm.api.runtime.ExecutionHandler;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.dialect.jpdl32.model.JPDL32Action;
 import org.jbpm.dialect.jpdl32.model.JPDL32EndState;

Modified: projects/spec/trunk/modules/dialects/stp/src/main/java/org/jbpm/dialect/stp/DialectHandlerImpl.java
===================================================================
--- projects/spec/trunk/modules/dialects/stp/src/main/java/org/jbpm/dialect/stp/DialectHandlerImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/dialects/stp/src/main/java/org/jbpm/dialect/stp/DialectHandlerImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -33,7 +33,7 @@
 
 import org.jbpm.api.InvalidProcessException;
 import org.jbpm.api.NotImplementedException;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.service.DialectHandler;
 
 /**

Modified: projects/spec/trunk/modules/dialects/stp/src/main/java/org/jbpm/dialect/stp/ProcessUnmarshaller.java
===================================================================
--- projects/spec/trunk/modules/dialects/stp/src/main/java/org/jbpm/dialect/stp/ProcessUnmarshaller.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/dialects/stp/src/main/java/org/jbpm/dialect/stp/ProcessUnmarshaller.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -37,8 +37,8 @@
 
 import org.jboss.util.xml.DOMUtils;
 import org.jbpm.api.InvalidProcessException;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Gateway;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.Task;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.service.ProcessBuilderService;

Modified: projects/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jbpm/dialect/xpdl21/DialectHandlerImpl.java
===================================================================
--- projects/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jbpm/dialect/xpdl21/DialectHandlerImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jbpm/dialect/xpdl21/DialectHandlerImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -34,7 +34,7 @@
 
 import org.jbpm.api.InvalidProcessException;
 import org.jbpm.api.NotImplementedException;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.service.DialectHandler;
 import org.jbpm.dialect.xpdl21.model.XPDLWorkflowProcess;
 

Modified: projects/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jbpm/dialect/xpdl21/WorkflowProcessAdapter.java
===================================================================
--- projects/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jbpm/dialect/xpdl21/WorkflowProcessAdapter.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jbpm/dialect/xpdl21/WorkflowProcessAdapter.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -24,7 +24,7 @@
 // $Id$
 
 import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.dialect.xpdl21.model.XPDLActivities;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -31,10 +31,10 @@
 
 import org.hibernate.Session;
 import org.jbpm.api.InvalidProcessException;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
-import org.jbpm.api.model.internal.AbstractElement;
+import org.jbpm.api.model.AbstractElement;
 
 /**
  * The parrent of all Elements
@@ -105,22 +105,22 @@
     // nothing to do
   }
   
-  protected void create(ProcessInstance proc)
+  protected void create(Process proc)
   {
     // nothing to do
   }
   
-  protected void register(ProcessInstance proc)
+  protected void register(Process proc)
   {
     // nothing to do
   }
   
-  protected void unregister(ProcessInstance proc)
+  protected void unregister(Process proc)
   {
     // nothing to do
   }
   
-  protected void destroy(ProcessInstance proc)
+  protected void destroy(Process proc)
   {
     // nothing to do
   }

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ComplexGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ComplexGatewayImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ComplexGatewayImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -27,7 +27,7 @@
 
 import org.jbpm.api.NotImplementedException;
 import org.jbpm.api.model.Expression;
-import org.jbpm.api.model.internal.ProcessStructure;
+import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.model.preview.ComplexGateway;
 
 /**

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -28,18 +28,18 @@
 
 import org.jbpm.api.Constants;
 import org.jbpm.api.InvalidProcessException;
+import org.jbpm.api.client.Execution;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.EndEvent;
 import org.jbpm.api.model.Node;
+import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.api.model.builder.preview.ObjectNameFactory;
-import org.jbpm.api.model.internal.ProcessStructure;
 import org.jbpm.api.model.preview.Signal;
-import org.jbpm.api.runtime.ExecutionContext;
-import org.jbpm.api.runtime.FlowHandler;
-import org.jbpm.api.runtime.SignalHandler;
-import org.jbpm.api.runtime.Token;
-import org.jbpm.api.runtime.TokenExecutor;
+import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.preview.FlowHandler;
+import org.jbpm.api.runtime.preview.SignalHandler;
+import org.jbpm.api.runtime.preview.TokenExecutor;
 import org.jbpm.api.service.preview.SignalService;
 import org.jbpm.ri.model.builder.SingleInFlowSupport;
 import org.slf4j.Logger;
@@ -117,13 +117,13 @@
       
       ProcessEngine engine = getProcessDefinition().getProcessEngine();
       SignalService sigService = engine.getService(SignalService.class);
-      public void throwEnterSignal(Token token)
+      public void throwEnterSignal(Execution token)
       {
         Signal signal = new SignalImpl(Signal.SignalType.SYSTEM_END_EVENT_ENTER, getKey());
         sigService.throwSignal(signal);
       }
 
-      public void throwExitSignal(Token token)
+      public void throwExitSignal(Execution token)
       {
         Signal signal = new SignalImpl(Signal.SignalType.SYSTEM_END_EVENT_EXIT, getKey());
         sigService.throwSignal(signal);
@@ -155,7 +155,7 @@
     {
       private static final long serialVersionUID = 1L;
 
-      public void execute(TokenExecutor tokenExecutor, Token token)
+      public void execute(TokenExecutor tokenExecutor, Execution token)
       {
         log.debug("End reached in: " + getName());
         ExecutionContext exContext = token.getExecutionContext();
@@ -186,7 +186,7 @@
       this.tokenExecutor = tokenExecutor;
     }
 
-    void destroyToken(Token token)
+    void destroyToken(Execution token)
     {
       tokenExecutor.destroy(token);
     }

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -32,18 +32,18 @@
 
 import org.jbpm.api.Constants;
 import org.jbpm.api.InvalidProcessException;
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Event;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.model.builder.preview.ObjectNameFactory;
-import org.jbpm.api.model.internal.ProcessStructure;
 import org.jbpm.api.model.preview.Message;
 import org.jbpm.api.model.preview.Signal;
-import org.jbpm.api.runtime.ExecutionHandler;
-import org.jbpm.api.runtime.SignalHandler;
-import org.jbpm.api.runtime.Token;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
+import org.jbpm.api.runtime.preview.SignalHandler;
 import org.jbpm.api.service.preview.SignalService;
 import org.jbpm.ri.runtime.MessageSender;
 
@@ -133,7 +133,7 @@
     {
       private static final long serialVersionUID = 1L;
 
-      public void execute(Token token)
+      public void execute(Execution token)
       {
         if (detailType == EventDetailType.Message && getMessageRef() != null)
         {
@@ -166,13 +166,13 @@
       ProcessEngine engine = getProcessDefinition().getProcessEngine();
       SignalService sigService = engine.getService(SignalService.class);
 
-      public void throwEnterSignal(Token token)
+      public void throwEnterSignal(Execution token)
       {
         Signal signal = new SignalImpl(Signal.SignalType.SYSTEM_EVENT_ENTER, getKey());
         sigService.throwSignal(signal);
       }
 
-      public void throwExitSignal(Token token)
+      public void throwExitSignal(Execution token)
       {
         Signal signal = new SignalImpl(Signal.SignalType.SYSTEM_EVENT_EXIT, getKey());
         sigService.throwSignal(signal);
@@ -214,7 +214,7 @@
   }
 
   @Override
-  protected void create(ProcessInstance proc)
+  protected void create(Process proc)
   {
     super.create(proc);
 

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -29,16 +29,16 @@
 import javax.persistence.Entity;
 import javax.persistence.Transient;
 
+import org.jbpm.api.client.Execution;
 import org.jbpm.api.model.ExclusiveGateway;
 import org.jbpm.api.model.Expression;
 import org.jbpm.api.model.Node;
+import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.api.model.SequenceFlow.ConditionType;
-import org.jbpm.api.model.internal.ProcessStructure;
-import org.jbpm.api.runtime.ExecutionHandler;
-import org.jbpm.api.runtime.FlowHandler;
-import org.jbpm.api.runtime.Token;
-import org.jbpm.api.runtime.TokenExecutor;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
+import org.jbpm.api.runtime.preview.FlowHandler;
+import org.jbpm.api.runtime.preview.TokenExecutor;
 import org.jbpm.ri.runtime.ExpressionEvaluator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -88,7 +88,7 @@
     {
       private static final long serialVersionUID = 1L;
 
-      public void execute(Token token)
+      public void execute(Execution token)
       {
         // Call the super default handler
         superExecHandler.execute(token);
@@ -122,7 +122,7 @@
     {
       private static final long serialVersionUID = 1L;
 
-      public void execute(TokenExecutor tokenExecutor, Token token)
+      public void execute(TokenExecutor tokenExecutor, Execution token)
       {
         String sourceRef = token.getSequenceFlow().getSourceRef();
         
@@ -170,7 +170,7 @@
   // Get a single selected gate which' condition evaluates to TRUE
   // Fall back to the default gate if there is one
   // Choke if there is no selected gate
-  private SequenceFlow getSelectedGate(Token token)
+  private SequenceFlow getSelectedGate(Execution token)
   {
     SequenceFlow selectedGate = null;
     for (SequenceFlow auxGate : getGates())

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -34,17 +34,17 @@
 import javax.persistence.Transient;
 
 import org.jbpm.api.Constants;
+import org.jbpm.api.client.Execution;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Gateway;
 import org.jbpm.api.model.Node;
+import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.api.model.SequenceFlow.ConditionType;
 import org.jbpm.api.model.builder.preview.ObjectNameFactory;
-import org.jbpm.api.model.internal.ProcessStructure;
 import org.jbpm.api.model.preview.Signal;
-import org.jbpm.api.runtime.ExecutionHandler;
-import org.jbpm.api.runtime.SignalHandler;
-import org.jbpm.api.runtime.Token;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
+import org.jbpm.api.runtime.preview.SignalHandler;
 import org.jbpm.api.service.preview.SignalService;
 import org.jbpm.ri.model.builder.MultipleInFlowSupport;
 import org.jbpm.ri.model.builder.MultipleOutFlowSupport;
@@ -71,7 +71,7 @@
   
   // The list of received tokens
   @Transient
-  protected List<Token> receivedTokens;
+  protected List<Execution> receivedTokens;
   
   public GatewayImpl(ProcessStructure procStruct, String name, GatewayType gatewayType)
   {
@@ -162,13 +162,13 @@
     {
       private static final long serialVersionUID = 1L;
 
-      public void execute(Token token)
+      public void execute(Execution token)
       {
         // Initialize the gateway
         if (expectedFlows == null)
         {
           expectedFlows = new ArrayList<SequenceFlow>(inFlows);
-          receivedTokens = new ArrayList<Token>();
+          receivedTokens = new ArrayList<Execution>();
         }
         
         // Check that token from flow is valid
@@ -207,13 +207,13 @@
       ProcessEngine engine = getProcessDefinition().getProcessEngine();
       SignalService sigService = engine.getService(SignalService.class);
       
-      public void throwEnterSignal(Token token)
+      public void throwEnterSignal(Execution token)
       {
         Signal signal = new SignalImpl(Signal.SignalType.SYSTEM_GATEWAY_ENTER, getKey());
         sigService.throwSignal(signal);
       }
 
-      public void throwExitSignal(Token token)
+      public void throwExitSignal(Execution token)
       {
         Signal signal = new SignalImpl(Signal.SignalType.SYSTEM_GATEWAY_EXIT, getKey());
         sigService.throwSignal(signal);

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -34,9 +34,9 @@
 import javax.persistence.Id;
 import javax.persistence.OneToOne;
 
-import org.jbpm.api.model.internal.PropertySupport;
 import org.jbpm.api.model.preview.Group;
 import org.jbpm.api.model.preview.Property;
+import org.jbpm.api.model.preview.PropertySupport;
 
 /**
  * A Flow Object is one of the set of following graphical objects: Event, Activity, and

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -30,19 +30,19 @@
 
 import javax.persistence.Entity;
 
+import org.jbpm.api.client.Execution;
 import org.jbpm.api.model.Expression;
 import org.jbpm.api.model.Node;
+import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.SequenceFlow.ConditionType;
-import org.jbpm.api.model.internal.ProcessStructure;
 import org.jbpm.api.model.preview.InclusiveGateway;
-import org.jbpm.api.runtime.ExecutionContext;
-import org.jbpm.api.runtime.FlowHandler;
-import org.jbpm.api.runtime.Token;
-import org.jbpm.api.runtime.TokenExecutor;
 import org.jbpm.api.runtime.Attachments.Key;
-import org.jbpm.ri.runtime.MutableToken;
+import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.preview.FlowHandler;
+import org.jbpm.api.runtime.preview.TokenExecutor;
+import org.jbpm.ri.runtime.MutableExecution;
 import org.mvel.MVEL;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -81,9 +81,9 @@
     {
       private static final long serialVersionUID = 1L;
 
-      public void execute(TokenExecutor tokenExecutor, Token token)
+      public void execute(TokenExecutor tokenExecutor, Execution token)
       {
-        MutableToken mutableToken = (MutableToken)token;
+        MutableExecution mutableToken = (MutableExecution)token;
         String sourceRef = token.getSequenceFlow().getSourceRef();
         log.debug("Propagate token comming from: " + sourceRef);
 
@@ -98,15 +98,15 @@
         }
         else
         {
-          List<Token> outTokens = new ArrayList<Token>();
+          List<Execution> outTokens = new ArrayList<Execution>();
           for (SequenceFlow auxGate : applicableGates)
           {
             SequenceFlow outFlow = auxGate;
-            Token outToken = mutableToken.copyToken();
+            Execution outToken = mutableToken.copyToken();
             tokenExecutor.create(outToken, outFlow);
             outTokens.add(outToken);
           }
-          for (Token outToken : outTokens)
+          for (Execution outToken : outTokens)
           {
             tokenExecutor.start(outToken);
           }
@@ -134,7 +134,7 @@
   // Get applicable gates which' condition evaluates to TRUE.
   // Fall back to the default gate if there is one.
   // Choke if there is no applicable gate.
-  private List<SequenceFlow> getApplicableGates(Token token)
+  private List<SequenceFlow> getApplicableGates(Execution token)
   {
     List<SequenceFlow> applicableGates = new ArrayList<SequenceFlow>();
     for (SequenceFlow auxGate : getGates())

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -32,9 +32,9 @@
 import javax.persistence.Id;
 import javax.persistence.OneToOne;
 
-import org.jbpm.api.model.internal.PropertySupport;
 import org.jbpm.api.model.preview.InputSet;
 import org.jbpm.api.model.preview.Property;
+import org.jbpm.api.model.preview.PropertySupport;
 
 /**
  * An InputSet, which is used in the definition of common attributes for Activities and for attributes of a Process

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -33,10 +33,10 @@
 import javax.persistence.Id;
 import javax.persistence.OneToOne;
 
-import org.jbpm.api.model.internal.PropertySupport;
 import org.jbpm.api.model.preview.Message;
 import org.jbpm.api.model.preview.Participant;
 import org.jbpm.api.model.preview.Property;
+import org.jbpm.api.model.preview.PropertySupport;
 
 /**
  * A Message, which is used in the definition of attributes for a @{link StartEvent},

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -43,24 +43,24 @@
 import org.hibernate.annotations.IndexColumn;
 import org.jbpm.api.InvalidProcessException;
 import org.jbpm.api.NameNotUniqueException;
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
+import org.jbpm.api.client.Execution.ExecutionStatus;
 import org.jbpm.api.model.EndEvent;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.api.model.StartEvent;
-import org.jbpm.api.model.internal.ProcessStructure;
-import org.jbpm.api.model.internal.PropertySupport;
 import org.jbpm.api.model.preview.Assignment;
 import org.jbpm.api.model.preview.Group;
 import org.jbpm.api.model.preview.Property;
-import org.jbpm.api.runtime.ExecutionHandler;
-import org.jbpm.api.runtime.FlowHandler;
-import org.jbpm.api.runtime.NodeHandler;
-import org.jbpm.api.runtime.SignalHandler;
-import org.jbpm.api.runtime.Token;
-import org.jbpm.api.runtime.TokenExecutor;
-import org.jbpm.api.runtime.Token.TokenStatus;
+import org.jbpm.api.model.preview.PropertySupport;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
+import org.jbpm.api.runtime.preview.FlowHandler;
+import org.jbpm.api.runtime.preview.NodeHandler;
+import org.jbpm.api.runtime.preview.SignalHandler;
+import org.jbpm.api.runtime.preview.TokenExecutor;
 import org.jbpm.ri.model.builder.MultipleInFlowSupport;
 import org.jbpm.ri.model.builder.MultipleOutFlowSupport;
 import org.jbpm.ri.model.builder.SingleInFlowSupport;
@@ -129,7 +129,7 @@
   private ProcessDefinition procDef;
 
   @ManyToOne(targetEntity = ProcessImpl.class)
-  private ProcessInstance proc;
+  private Process proc;
 
   @ManyToOne(targetEntity = GroupImpl.class)
   private Group groupRef;
@@ -152,7 +152,7 @@
   }
 
   @Override
-  public ProcessInstance getProcess()
+  public Process getProcess()
   {
     return proc;
   }
@@ -248,7 +248,7 @@
 
   public void execute(RuntimeContext rtContext)
   {
-    Token token = rtContext.getToken();
+    Execution token = rtContext.getToken();
 
     // The default implementation calls the ExecutionHandler
     ExecutionHandler execHandler = getExecutionHandler();
@@ -289,7 +289,7 @@
     {
       private static final long serialVersionUID = 1L;
 
-      public void execute(Token token)
+      public void execute(Execution token)
       {
         // nothing to do
       }
@@ -340,12 +340,12 @@
     {
       private static final long serialVersionUID = 1L;
 
-      public void execute(TokenExecutor tokenExecutor, Token token)
+      public void execute(TokenExecutor tokenExecutor, Execution token)
       {
         if (getOutFlows().size() == 1)
         {
           SequenceFlow outFlow = getOutFlows().get(0);
-          if (token.getTokenStatus() == TokenStatus.Started)
+          if (token.getExecutionStatus() == ExecutionStatus.Started)
             tokenExecutor.move(token, outFlow);
         }
         else
@@ -396,7 +396,7 @@
   }
 
   @Override
-  protected void create(ProcessInstance proc)
+  protected void create(Process proc)
   {
     super.create(proc);
     this.proc = proc;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -32,9 +32,9 @@
 import javax.persistence.Id;
 import javax.persistence.OneToOne;
 
-import org.jbpm.api.model.internal.PropertySupport;
 import org.jbpm.api.model.preview.OutputSet;
 import org.jbpm.api.model.preview.Property;
+import org.jbpm.api.model.preview.PropertySupport;
 
 /**
  * An OutputSet, which is used in the definition of common attributes for Activities and for attributes of a Process

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -31,16 +31,16 @@
 import javax.persistence.Entity;
 import javax.persistence.Transient;
 
+import org.jbpm.api.client.Execution;
 import org.jbpm.api.model.Node;
+import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.model.SequenceFlow;
-import org.jbpm.api.model.internal.ProcessStructure;
 import org.jbpm.api.model.preview.ParallelGateway;
-import org.jbpm.api.runtime.ExecutionHandler;
-import org.jbpm.api.runtime.FlowHandler;
-import org.jbpm.api.runtime.Token;
-import org.jbpm.api.runtime.TokenExecutor;
-import org.jbpm.ri.runtime.MutableToken;
-import org.jbpm.ri.runtime.TokenImpl;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
+import org.jbpm.api.runtime.preview.FlowHandler;
+import org.jbpm.api.runtime.preview.TokenExecutor;
+import org.jbpm.ri.runtime.MutableExecution;
+import org.jbpm.ri.runtime.ExecutionImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -63,7 +63,7 @@
   private Set<SequenceFlow> outstandingFlows;
   
   @Transient
-  private Set<Token> mergeTokens;
+  private Set<Execution> mergeTokens;
 
   public ParallelGatewayImpl(ProcessStructure procStruct, String name)
   {
@@ -85,7 +85,7 @@
     {
       private static final long serialVersionUID = 1L;
 
-      public void execute(Token token)
+      public void execute(Execution token)
       {
         // Call the super default handler
         superExecHandler.execute(token);
@@ -94,7 +94,7 @@
         if (outstandingFlows == null)
         {
           outstandingFlows = new HashSet<SequenceFlow>(inFlows);
-          mergeTokens = new HashSet<Token>();
+          mergeTokens = new HashSet<Execution>();
         }
 
         SequenceFlow flow = token.getSequenceFlow();
@@ -123,13 +123,13 @@
     {
       private static final long serialVersionUID = 1L;
 
-      public void execute(TokenExecutor tokenExecutor, Token token)
+      public void execute(TokenExecutor tokenExecutor, Execution token)
       {
         // In any case, the incomming token is not propagated
         tokenExecutor.suspend(token);
         
         // If the gateway has a single incomming flow the outgoing token is the incomming token 
-        MutableToken outToken = (getInFlows().size() == 1 ? (MutableToken)token : null);
+        MutableExecution outToken = (getInFlows().size() == 1 ? (MutableExecution)token : null);
         
         // The outgoing token is the merge of all incomming tokens
         if (outToken == null)
@@ -152,7 +152,7 @@
         if (outToken != null)
         {
           // Start a copy of the outgoing token for every gate
-          List<Token> outTokens = new ArrayList<Token>();
+          List<Execution> outTokens = new ArrayList<Execution>();
           for(SequenceFlow auxGate : getGates())
           {
             SequenceFlow outFlow = auxGate;
@@ -160,13 +160,13 @@
             tokenExecutor.create(outToken, outFlow);
             outTokens.add(outToken);
           }
-          for (Token auxToken : outTokens)
+          for (Execution auxToken : outTokens)
           {
             tokenExecutor.start(auxToken);
           }
           
           // Destroy the received tokens
-          for (Token auxToken : receivedTokens)
+          for (Execution auxToken : receivedTokens)
           {
             tokenExecutor.destroy(auxToken);
           }
@@ -197,10 +197,10 @@
     mergeTokens = null;
   }
   
-  private TokenImpl getMergedTokens()
+  private ExecutionImpl getMergedTokens()
   {
-    TokenImpl mergedToken = new TokenImpl(getProcess(), null);
-    for (Token auxToken : mergeTokens)
+    ExecutionImpl mergedToken = new ExecutionImpl(getProcess(), null);
+    for (Execution auxToken : mergeTokens)
     {
       log.debug("mergeToken: " + auxToken);
       mergedToken.mergeToken(auxToken);

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -41,12 +41,12 @@
 import org.hibernate.Hibernate;
 import org.hibernate.Session;
 import org.jbpm.api.Constants;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.model.builder.preview.ObjectNameFactory;
-import org.jbpm.api.model.internal.ProcessStructure;
 import org.jbpm.api.model.preview.Assignment;
 import org.jbpm.api.model.preview.Group;
 import org.jbpm.api.model.preview.Message;
@@ -87,7 +87,7 @@
   }
 
   @Override
-  public ProcessInstance newInstance()
+  public Process newInstance()
   {
     // Create a copy of the process structure from raw data
     ProcessStructureImpl procStructCopy;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -38,10 +38,10 @@
 import org.hibernate.Hibernate;
 import org.hibernate.Session;
 import org.jbpm.api.Constants;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.builder.preview.ObjectNameFactory;
 import org.jbpm.api.model.preview.Assignment;
 import org.jbpm.api.model.preview.Group;
@@ -60,7 +60,7 @@
  * @since 08-Jul-2008
  */
 @Entity(name = "BPMProcess")
-public class ProcessImpl extends AbstractElementImpl implements ProcessInstance
+public class ProcessImpl extends AbstractElementImpl implements Process
 {
   private static final long serialVersionUID = 1L;
 
@@ -225,12 +225,12 @@
     setProcessStatus(ProcessStatus.Aborted);
   }
 
-  public ObjectName startProcess()
+  public ObjectName startProcessAsync()
   {
     return startProcessInternal(null);
   }
 
-  public ObjectName startProcess(Attachments att)
+  public ObjectName startProcessAsync(Attachments att)
   {
     return startProcessInternal(att);
   }
@@ -284,28 +284,28 @@
   }
   
   @Override
-  protected void create(ProcessInstance proc)
+  protected void create(Process proc)
   {
     super.create(proc);
     procStruct.create(proc);
   }
 
   @Override
-  public void register(ProcessInstance proc)
+  public void register(Process proc)
   {
     super.register(proc);
     procStruct.register(proc);
   }
 
   @Override
-  public void unregister(ProcessInstance proc)
+  public void unregister(Process proc)
   {
     super.unregister(proc);
     procStruct.unregister(proc);
   }
 
   @Override
-  protected void destroy(ProcessInstance proc)
+  protected void destroy(Process proc)
   {
     super.destroy(proc);
     procStruct.destroy(proc);

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -41,19 +41,19 @@
 import org.hibernate.annotations.IndexColumn;
 import org.jbpm.api.Constants;
 import org.jbpm.api.InvalidProcessException;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.EndEvent;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.model.StartEvent;
 import org.jbpm.api.model.builder.preview.ObjectNameFactory;
-import org.jbpm.api.model.internal.ProcessStructure;
-import org.jbpm.api.model.internal.PropertySupport;
 import org.jbpm.api.model.preview.Assignment;
 import org.jbpm.api.model.preview.Group;
 import org.jbpm.api.model.preview.Message;
 import org.jbpm.api.model.preview.Property;
+import org.jbpm.api.model.preview.PropertySupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -359,7 +359,7 @@
   }
 
   @Override
-  protected void create(ProcessInstance proc)
+  protected void create(Process proc)
   {
     super.create(proc);
     for (Node node : getNodes())
@@ -370,7 +370,7 @@
   }
 
   @Override
-  protected void register(ProcessInstance proc)
+  protected void register(Process proc)
   {
     super.register(proc);
     for (Node node : getNodes())
@@ -381,7 +381,7 @@
   }
 
   @Override
-  protected void unregister(ProcessInstance proc)
+  protected void unregister(Process proc)
   {
     super.unregister(proc);
     for (Node node : getNodes())
@@ -392,7 +392,7 @@
   }
 
   @Override
-  protected void destroy(ProcessInstance proc)
+  protected void destroy(Process proc)
   {
     super.destroy(proc);
     for (Node node : getNodes())

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/PropertySupportImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/PropertySupportImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/PropertySupportImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -37,8 +37,8 @@
 import javax.persistence.MapKey;
 import javax.persistence.OneToMany;
 
-import org.jbpm.api.model.internal.PropertySupport;
 import org.jbpm.api.model.preview.Property;
+import org.jbpm.api.model.preview.PropertySupport;
 
 /**
  * Basic property support

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -31,15 +31,15 @@
 
 import org.jbpm.api.InvalidProcessException;
 import org.jbpm.api.NotImplementedException;
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.preview.MessageListener;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
-import org.jbpm.api.model.internal.ProcessStructure;
+import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.model.preview.Message;
 import org.jbpm.api.model.preview.ReceiveTask;
-import org.jbpm.api.runtime.ExecutionContext;
-import org.jbpm.api.runtime.Token;
-import org.jbpm.api.runtime.TokenExecutor;
+import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.preview.TokenExecutor;
 import org.jbpm.ri.runtime.RuntimeContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -65,7 +65,7 @@
   private List<Message> receivedMessages = new ArrayList<Message>();
 
   @Transient
-  private transient Token suspendedToken;
+  private transient Execution suspendedToken;
 
   @Transient
   private transient TokenExecutor tokenExecutor;
@@ -100,7 +100,7 @@
   @Override
   public void execute(RuntimeContext rtContext)
   {
-    Token token = rtContext.getToken();
+    Execution token = rtContext.getToken();
     tokenExecutor = rtContext.getTokenExecutor();
     
     if (receivedMessages.size() > 0)
@@ -142,7 +142,7 @@
       // Activate the suspended token
       if (suspendedToken != null)
       {
-        tokenExecutor.activate(suspendedToken.getTokenID());
+        tokenExecutor.activate(suspendedToken.getExecutionID());
         suspendedToken = null;
       }
     }
@@ -165,7 +165,7 @@
   }
 
   @Override
-  protected void create(ProcessInstance proc)
+  protected void create(Process proc)
   {
     super.create(proc);
 

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -27,14 +27,14 @@
 import javax.persistence.Transient;
 
 import org.jbpm.api.InvalidProcessException;
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
-import org.jbpm.api.model.internal.ProcessStructure;
+import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.model.preview.Message;
 import org.jbpm.api.model.preview.SendTask;
-import org.jbpm.api.runtime.ExecutionHandler;
-import org.jbpm.api.runtime.Token;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
 import org.jbpm.ri.runtime.MessageSender;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -83,7 +83,7 @@
     {
       private static final long serialVersionUID = 1L;
 
-      public void execute(Token token)
+      public void execute(Execution token)
       {
         Message messageRef = thisNode.getMessageRef();
         MessageSender messageSender = new MessageSender(thisNode, messageRef);
@@ -119,7 +119,7 @@
   }
 
   @Override
-  protected void create(ProcessInstance proc)
+  protected void create(Process proc)
   {
     super.create(proc);
 

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -29,19 +29,19 @@
 
 import org.jbpm.api.Constants;
 import org.jbpm.api.InvalidProcessException;
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.preview.SignalListener;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.api.model.StartEvent;
 import org.jbpm.api.model.builder.preview.ObjectNameFactory;
-import org.jbpm.api.model.internal.ProcessStructure;
 import org.jbpm.api.model.preview.Signal;
 import org.jbpm.api.model.preview.Signal.SignalType;
-import org.jbpm.api.runtime.SignalHandler;
-import org.jbpm.api.runtime.Token;
+import org.jbpm.api.runtime.preview.SignalHandler;
 import org.jbpm.api.service.ExecutionService;
 import org.jbpm.api.service.preview.SignalService;
 import org.jbpm.ri.model.builder.SingleOutFlowSupport;
@@ -123,13 +123,13 @@
       ProcessEngine engine = getProcessDefinition().getProcessEngine();
       SignalService sigService = engine.getService(SignalService.class);
 
-      public void throwEnterSignal(Token token)
+      public void throwEnterSignal(Execution token)
       {
         Signal signal = new SignalImpl(Signal.SignalType.SYSTEM_START_EVENT_ENTER, getKey());
         sigService.throwSignal(signal);
       }
 
-      public void throwExitSignal(Token token)
+      public void throwExitSignal(Execution token)
       {
         Signal signal = new SignalImpl(Signal.SignalType.SYSTEM_START_EVENT_EXIT, getKey());
         sigService.throwSignal(signal);
@@ -187,7 +187,7 @@
 
             // There MAY be multiple Start Events for a given Process level. Each Start Event is an independent event. 
             // That is, a Process Instance SHALL be generated when the Start Event is triggered.
-            ProcessInstance proc = procDef.newInstance();
+            Process proc = procDef.newInstance();
             StartEvent startEvent = proc.getNode(StartEvent.class, startEventName);
             
             ExecutionService execService = engine.getService(ExecutionService.class);

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -39,21 +39,21 @@
 import org.jbpm.api.Constants;
 import org.jbpm.api.InvalidProcessException;
 import org.jbpm.api.NotImplementedException;
+import org.jbpm.api.client.Execution;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Expression;
 import org.jbpm.api.model.Node;
+import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.api.model.Task;
 import org.jbpm.api.model.builder.preview.ObjectNameFactory;
-import org.jbpm.api.model.internal.ProcessStructure;
 import org.jbpm.api.model.preview.InputSet;
 import org.jbpm.api.model.preview.OutputSet;
 import org.jbpm.api.model.preview.Property;
 import org.jbpm.api.model.preview.Signal;
-import org.jbpm.api.runtime.ExecutionContext;
-import org.jbpm.api.runtime.ExecutionHandler;
-import org.jbpm.api.runtime.SignalHandler;
-import org.jbpm.api.runtime.Token;
+import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
+import org.jbpm.api.runtime.preview.SignalHandler;
 import org.jbpm.api.service.preview.SignalService;
 import org.jbpm.ri.model.builder.SingleInFlowSupport;
 import org.jbpm.ri.model.builder.SingleOutFlowSupport;
@@ -187,7 +187,7 @@
     {
       private static final long serialVersionUID = 1L;
 
-      public void execute(Token token)
+      public void execute(Execution token)
       {
         superExecHandler.execute(token);
         processOutputSet(token);
@@ -209,7 +209,7 @@
   /**
    * Select and validate active inputSet
    */
-  protected InputSet getActiveInputSet(Token token)
+  protected InputSet getActiveInputSet(Execution token)
   {
     InputSetImpl inputSet = null;
     ExecutionContext exContext = token.getExecutionContext();
@@ -280,7 +280,7 @@
   /**
    * Transfer data from outputSet to Token
    */
-  protected void processOutputSet(Token token)
+  protected void processOutputSet(Execution token)
   {
     ExecutionContext exContext = token.getExecutionContext();
 
@@ -308,13 +308,13 @@
       
       ProcessEngine engine = getProcessEngine();
       SignalService sigService = engine.getService(SignalService.class);
-      public void throwEnterSignal(Token token)
+      public void throwEnterSignal(Execution token)
       {
         Signal signal = new SignalImpl(Signal.SignalType.SYSTEM_TASK_ENTER, getKey());
         sigService.throwSignal(signal);
       }
 
-      public void throwExitSignal(Token token)
+      public void throwExitSignal(Execution token)
       {
         Signal signal = new SignalImpl(Signal.SignalType.SYSTEM_TASK_EXIT, getKey());
         sigService.throwSignal(signal);

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -33,16 +33,16 @@
 import javax.persistence.Transient;
 
 import org.jbpm.api.InvalidProcessException;
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.preview.MessageListener;
 import org.jbpm.api.client.preview.UserTaskCallback;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
-import org.jbpm.api.model.internal.ProcessStructure;
+import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.model.preview.Message;
 import org.jbpm.api.model.preview.UserTask;
-import org.jbpm.api.runtime.ExecutionContext;
-import org.jbpm.api.runtime.Token;
-import org.jbpm.api.runtime.TokenExecutor;
+import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.preview.TokenExecutor;
 import org.jbpm.ri.runtime.MessageSender;
 import org.jbpm.ri.runtime.RuntimeContext;
 import org.slf4j.Logger;
@@ -71,7 +71,7 @@
   private List<Message> receivedMessages = new ArrayList<Message>();
 
   @Transient
-  private transient Token suspendedToken;
+  private transient Execution suspendedToken;
 
   @Transient
   private transient TokenExecutor tokenExecutor;
@@ -126,7 +126,7 @@
   @Override
   public void execute(RuntimeContext rtContext)
   {
-    Token token = rtContext.getToken();
+    Execution token = rtContext.getToken();
     tokenExecutor = rtContext.getTokenExecutor();
 
     if (receivedMessages.size() == 0)
@@ -176,7 +176,7 @@
       // Activate the suspended token
       if (suspendedToken != null)
       {
-        tokenExecutor.activate(suspendedToken.getTokenID());
+        tokenExecutor.activate(suspendedToken.getExecutionID());
         suspendedToken = null;
       }
     }
@@ -202,7 +202,7 @@
   }
 
   @Override
-  protected void create(ProcessInstance proc)
+  protected void create(Process proc)
   {
     super.create(proc);
 
@@ -212,7 +212,7 @@
   }
 
   @Override
-  protected void register(ProcessInstance proc)
+  protected void register(Process proc)
   {
     super.register(proc);
     
@@ -227,7 +227,7 @@
   }
 
   @Override
-  protected void unregister(ProcessInstance proc)
+  protected void unregister(Process proc)
   {
     super.unregister(proc);
 

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -24,9 +24,9 @@
 //$Id$
 
 import org.jbpm.api.NotImplementedException;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.Gateway.GatewayType;
@@ -39,9 +39,9 @@
 import org.jbpm.api.model.builder.preview.MessageBuilder;
 import org.jbpm.api.model.preview.Assignment.AssignTime;
 import org.jbpm.api.model.preview.Group.GroupType;
-import org.jbpm.api.runtime.ExecutionHandler;
-import org.jbpm.api.runtime.FlowHandler;
-import org.jbpm.api.runtime.SignalHandler;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
+import org.jbpm.api.runtime.preview.FlowHandler;
+import org.jbpm.api.runtime.preview.SignalHandler;
 import org.jbpm.ri.model.AssignmentImpl;
 import org.jbpm.ri.model.ComplexGatewayImpl;
 import org.jbpm.ri.model.EndEventImpl;
@@ -63,7 +63,7 @@
 import org.jbpm.ri.model.UserTaskImpl;
 
 /**
- * The ProcessBuilder can be used to dynamically build a {@link ProcessInstance}.
+ * The ProcessBuilder can be used to dynamically build a {@link Process}.
  * 
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/AssignmentInterceptor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/AssignmentInterceptor.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/AssignmentInterceptor.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -23,12 +23,12 @@
 
 //$Id$
 
+import org.jbpm.api.client.Execution;
 import org.jbpm.api.model.Expression;
 import org.jbpm.api.model.Node;
 import org.jbpm.api.model.preview.Assignment;
 import org.jbpm.api.model.preview.Assignment.AssignTime;
-import org.jbpm.api.runtime.ExecutionContext;
-import org.jbpm.api.runtime.Token;
+import org.jbpm.api.runtime.preview.ExecutionContext;
 
 /**
  * An interceptor that invokes the ExecutionHandler.execute
@@ -42,7 +42,7 @@
   public void execute(RuntimeContext rtContext)
   {
     Node node = rtContext.getNode();
-    Token token = rtContext.getToken();
+    Execution token = rtContext.getToken();
 
     // Do start time assignments
     for (Assignment ass : node.getAssignments())
@@ -62,7 +62,7 @@
     }
   }
 
-  protected void anyTimeAssignment(Assignment ass, Token token)
+  protected void anyTimeAssignment(Assignment ass, Execution token)
   {
     Expression expr = ass.getFrom();
     ExpressionEvaluator exprEvaluator = new ExpressionEvaluator(expr);

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingExecutionContext.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingExecutionContext.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingExecutionContext.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -28,14 +28,14 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.preview.Property;
-import org.jbpm.api.runtime.ExecutionContext;
+import org.jbpm.api.runtime.preview.ExecutionContext;
 
 /**
- * An ExecutionContext that delegates to the current {@link Node} or {@link ProcessInstance} for property rerieval.
+ * An ExecutionContext that delegates to the current {@link Node} or {@link Process} for property rerieval.
  * 
  * @author Thomas.Diesler at jboss.com
  * @since 15-Aug-2008

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -24,24 +24,24 @@
 //$Id$
 
 import org.hibernate.Session;
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.client.Process;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessInstance;
 import org.jbpm.api.model.SequenceFlow;
-import org.jbpm.api.runtime.ExecutionContext;
-import org.jbpm.api.runtime.Token;
+import org.jbpm.api.runtime.preview.ExecutionContext;
 
 /**
- * A {@link Token} that includes properties from the current {@link Node}
+ * A {@link Execution} that includes properties from the current {@link Node}
  * 
  * @author Thomas.Diesler at jboss.com
  * @since 15-Aug-2008
  */
-public class DelegatingToken implements MutableToken
+public class DelegatingToken implements MutableExecution
 {
-  private MutableToken delegateToken;
+  private MutableExecution delegateToken;
   private ExecutionContext delegateContext;
 
-  public DelegatingToken(MutableToken token)
+  public DelegatingToken(MutableExecution token)
   {
     this.delegateToken = token;
 
@@ -58,7 +58,7 @@
   }
 
   @Override
-  public MutableToken copyToken()
+  public MutableExecution copyToken()
   {
     return delegateToken.copyToken();
   }
@@ -70,25 +70,25 @@
   }
 
   @Override
-  public String getTokenID()
+  public String getExecutionID()
   {
-    return delegateToken.getTokenID();
+    return delegateToken.getExecutionID();
   }
 
   @Override
-  public TokenStatus getTokenStatus()
+  public ExecutionStatus getExecutionStatus()
   {
-    return delegateToken.getTokenStatus();
+    return delegateToken.getExecutionStatus();
   }
 
   @Override
-  public ProcessInstance getProcess()
+  public Process getProcess()
   {
     return delegateToken.getProcess();
   }
 
   @Override
-  public void mergeToken(Token token)
+  public void mergeToken(Execution token)
   {
     delegateToken.mergeToken(token);
   }
@@ -100,9 +100,9 @@
   }
 
   @Override
-  public void setTokenStatus(TokenStatus status)
+  public void setExecutionStatus(ExecutionStatus status)
   {
-    delegateToken.setTokenStatus(status);
+    delegateToken.setExecutionStatus(status);
   }
 
   @Override

Copied: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExecutionImpl.java (from rev 2889, projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java)
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExecutionImpl.java	                        (rev 0)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExecutionImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,147 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.ri.runtime;
+
+//$Id$
+
+import org.hibernate.Session;
+import org.jboss.util.id.UID;
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.model.SequenceFlow;
+import org.jbpm.api.runtime.Attachments;
+import org.jbpm.api.runtime.Attachments.Key;
+import org.jbpm.api.runtime.preview.BasicExecutionContext;
+import org.jbpm.api.runtime.preview.ExecutionContext;
+
+/**
+ * A Token is a descriptive construct used to describe how the flow of a Process will proceed at runtime.
+ * 
+ * By tracking how the Token traverses the Flow Objects, gets diverted through alternative paths, 
+ * and gets split into parallel paths, the normal Sequence Flow should be completely definable.
+ * 
+ * A Token will have a unique identity that can be used to separate multiple Tokens that may exist because of 
+ * concurrent process instances or the splitting of the Token for parallel processing within a single process instance.
+ * 
+ * @author Thomas.Diesler at jboss.com
+ * @since 20-Apr-2007
+ */
+public class ExecutionImpl implements MutableExecution
+{
+  private String id;
+  private SequenceFlow flow;
+  private ExecutionContext context;
+  private ExecutionStatus status;
+  private Process process;
+  private Session session;
+
+  /**
+   * Construct a Token with given {@link Attachments}
+   */
+  public ExecutionImpl(Process process, Attachments att)
+  {
+    this.context = new BasicExecutionContext(att);
+    this.id = new UID().toString();
+    this.status = ExecutionStatus.Created;
+    this.process = process;
+  }
+
+  @Override
+  public String getExecutionID()
+  {
+    return id;
+  }
+
+  @Override
+  public ExecutionStatus getExecutionStatus()
+  {
+    return status;
+  }
+
+  @Override
+  public void setExecutionStatus(ExecutionStatus status)
+  {
+    this.status = status;
+  }
+  
+  @Override
+  public Process getProcess()
+  {
+    return process;
+  }
+
+  @Override
+  public ExecutionContext getExecutionContext()
+  {
+    return context;
+  }
+  
+  @Override
+  public SequenceFlow getSequenceFlow()
+  {
+    return flow;
+  }
+
+  @Override
+  public void setSequenceFlow(SequenceFlow flow)
+  {
+    this.flow = flow;
+  }
+
+  @Override
+  public Session getSession()
+  {
+    return session;
+  }
+
+  @Override
+  public void setSession(Session session)
+  {
+    this.session = session;
+  }
+
+  @Override
+  public MutableExecution copyToken()
+  {
+    return new ExecutionImpl(process, context);
+  }
+  
+  @Override
+  public void mergeToken(Execution token)
+  {
+    ExecutionContext mergeContext = token.getExecutionContext();
+    for(Key key : mergeContext.getAttachmentKeys())
+    {
+      Object mergeValue = mergeContext.getAttachment(key.getClassPart(), key.getNamePart());
+      Object existValue = context.getAttachment(key.getClassPart(), key.getNamePart());
+      if (existValue != null && existValue.equals(mergeValue) == false)
+        throw new IllegalStateException("Cannot merge the same key with different values: " + key);
+      
+      context.addAttachment(key.getClassPart(), key.getNamePart(), mergeValue);
+    }
+  }
+  
+  public String toString()
+  {
+    return "[sf=" + getSequenceFlow() + ",status=" + getExecutionStatus() + ",ctx=" + getExecutionContext() + ",id=" + id + "]";
+  }
+}
\ No newline at end of file

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExitSignalInterceptor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExitSignalInterceptor.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExitSignalInterceptor.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -23,9 +23,9 @@
 
 //$Id$
 
+import org.jbpm.api.client.Execution;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.runtime.SignalHandler;
-import org.jbpm.api.runtime.Token;
+import org.jbpm.api.runtime.preview.SignalHandler;
 
 /**
  * An interceptor that invokes the SignalHandler.throwExitSignal 
@@ -39,7 +39,7 @@
   public void execute(RuntimeContext rtContext)
   {
     Node node = rtContext.getNode();
-    Token token = rtContext.getToken();
+    Execution token = rtContext.getToken();
     
     SignalHandler sigHandler = node.getSignalHandler();
     sigHandler.throwExitSignal(token);

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExpressionEvaluator.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExpressionEvaluator.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExpressionEvaluator.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,11 +26,11 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.jbpm.api.client.Execution;
 import org.jbpm.api.model.Expression;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
-import org.jbpm.api.runtime.ExecutionContext;
-import org.jbpm.api.runtime.Token;
 import org.jbpm.api.runtime.Attachments.Key;
+import org.jbpm.api.runtime.preview.ExecutionContext;
 import org.mvel.MVEL;
 
 /**
@@ -52,7 +52,7 @@
    * Evaluate an expression for a given token. <p/> Note that <code>propName.replace(".", "_")</code> applies to
    * property names for MVEL expressions, because the dot notation has special meaning in MVEL.
    */
-  public Object evaluateExpression(Token token)
+  public Object evaluateExpression(Execution token)
   {
     ExpressionLanguage exprLang = expr.getExpressionLanguage();
     if (exprLang == ExpressionLanguage.MVEL)

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/FlowHandlerInterceptor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/FlowHandlerInterceptor.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/FlowHandlerInterceptor.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -23,10 +23,10 @@
 
 //$Id$
 
+import org.jbpm.api.client.Execution;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.runtime.FlowHandler;
-import org.jbpm.api.runtime.Token;
-import org.jbpm.api.runtime.TokenExecutor;
+import org.jbpm.api.runtime.preview.FlowHandler;
+import org.jbpm.api.runtime.preview.TokenExecutor;
 
 /**
  * An interceptor that invokes the FlowHandler.execute 
@@ -41,7 +41,7 @@
   {
     TokenExecutor tokenExecutor = rtContext.getTokenExecutor();
     Node node = rtContext.getNode();
-    Token token = rtContext.getToken();
+    Execution token = rtContext.getToken();
     
     // Call the next Interceptor
     rtContext.next();

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,14 +25,14 @@
 
 import javax.management.ObjectName;
 
+import org.jbpm.api.client.Execution;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Node;
 import org.jbpm.api.model.builder.preview.MessageBuilder;
 import org.jbpm.api.model.preview.Message;
 import org.jbpm.api.model.preview.Participant;
 import org.jbpm.api.model.preview.Property;
-import org.jbpm.api.runtime.ExecutionContext;
-import org.jbpm.api.runtime.Token;
+import org.jbpm.api.runtime.preview.ExecutionContext;
 import org.jbpm.api.service.preview.MessageService;
 import org.jbpm.ri.model.MessageImpl;
 import org.jbpm.ri.model.ParticipantImpl;
@@ -65,7 +65,7 @@
    * Extract message content from the token and send the message
    * to it's recipient.
    */
-  public void sendMessage(Token token)
+  public void sendMessage(Execution token)
   {
     ExecutionContext exContext = token.getExecutionContext();
     MessageBuilder msgBuilder = new MessageBuilderImpl();

Copied: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableExecution.java (from rev 2888, projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java)
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableExecution.java	                        (rev 0)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableExecution.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.ri.runtime;
+
+//$Id$
+
+import org.hibernate.Session;
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.model.SequenceFlow;
+
+/**
+ * A mutable extension to the Token.
+ * 
+ * @author Thomas.Diesler at jboss.com
+ * @since 20-Apr-2007
+ */
+public interface MutableExecution extends Execution
+{
+  /**
+   * Set the token status
+   */
+  void setExecutionStatus(ExecutionStatus status);
+
+  /**
+   * Set the associated session
+   */
+  void setSession(Session session);
+  
+  /**
+   * Set the current SequenceFlow
+   */
+  void setSequenceFlow(SequenceFlow flow);
+
+  /**
+   * Create a schallow copy of this Token. 
+   * The content in the ExecutionContext will be copied by reference.
+   */
+  MutableExecution copyToken();
+
+  /**
+   * Merge this Token with another token.
+   */
+  void mergeToken(Execution token);
+}
\ No newline at end of file

Deleted: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -1,63 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.ri.runtime;
-
-//$Id$
-
-import org.hibernate.Session;
-import org.jbpm.api.model.SequenceFlow;
-import org.jbpm.api.runtime.Token;
-
-/**
- * A mutable extension to the Token.
- * 
- * @author Thomas.Diesler at jboss.com
- * @since 20-Apr-2007
- */
-public interface MutableToken extends Token
-{
-  /**
-   * Set the token status
-   */
-  void setTokenStatus(TokenStatus status);
-
-  /**
-   * Set the associated session
-   */
-  void setSession(Session session);
-  
-  /**
-   * Set the current SequenceFlow
-   */
-  void setSequenceFlow(SequenceFlow flow);
-
-  /**
-   * Create a schallow copy of this Token. 
-   * The content in the ExecutionContext will be copied by reference.
-   */
-  MutableToken copyToken();
-
-  /**
-   * Merge this Token with another token.
-   */
-  void mergeToken(Token token);
-}
\ No newline at end of file

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/PersistenceSessionInterceptor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/PersistenceSessionInterceptor.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/PersistenceSessionInterceptor.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,8 +25,8 @@
 
 import org.hibernate.Session;
 import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.client.Execution.ExecutionStatus;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.runtime.Token.TokenStatus;
 import org.jbpm.api.service.preview.PersistenceService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -45,7 +45,7 @@
   public void execute(RuntimeContext rtContext)
   {
     Node node = rtContext.getNode();
-    MutableToken token = (MutableToken)rtContext.getToken();
+    MutableExecution token = (MutableExecution)rtContext.getToken();
     
     Session session = token.getSession();
     try
@@ -64,8 +64,8 @@
     }
     finally
     {
-      TokenStatus status = token.getTokenStatus();
-      if (status == TokenStatus.Destroyed || status == TokenStatus.Suspended)
+      ExecutionStatus status = token.getExecutionStatus();
+      if (status == ExecutionStatus.Destroyed || status == ExecutionStatus.Suspended)
       {
         session.close();
         token.setSession(null);

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -21,13 +21,13 @@
  */
 package org.jbpm.ri.runtime;
 
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.Execution.ExecutionStatus;
+import org.jbpm.api.client.Process.ProcessStatus;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessInstance;
 import org.jbpm.api.model.SequenceFlow;
-import org.jbpm.api.model.ProcessInstance.ProcessStatus;
-import org.jbpm.api.runtime.Token;
-import org.jbpm.api.runtime.TokenExecutor;
-import org.jbpm.api.runtime.Token.TokenStatus;
+import org.jbpm.api.runtime.preview.TokenExecutor;
 import org.jbpm.api.service.ProcessInstanceService;
 import org.jbpm.ri.model.ProcessImpl;
 import org.jbpm.ri.service.ProcessServiceImpl;
@@ -47,17 +47,17 @@
   
   private RuntimeProcess rtProc;
   private TokenExecutor tokenExecutor;
-  private MutableToken token;
+  private MutableExecution token;
   private boolean releaseThread;
 
-  public RunnableToken(TokenExecutorImpl tokenExecutorImpl, RuntimeProcess rtProc, MutableToken token)
+  public RunnableToken(TokenExecutorImpl tokenExecutorImpl, RuntimeProcess rtProc, MutableExecution token)
   {
     this.tokenExecutor = rtProc.getTokenExecutor();
     this.rtProc = rtProc;
     this.token = token;
   }
 
-  public Token getToken()
+  public Execution getToken()
   {
     return token;
   }
@@ -69,7 +69,7 @@
 
   public void run()
   {
-    ProcessInstance proc = rtProc.getProcess();
+    Process proc = rtProc.getProcess();
     try
     {
       SequenceFlow flow = token.getSequenceFlow();
@@ -105,9 +105,9 @@
       ((ProcessImpl)proc).setRuntimeException(rte);
 
       log.debug("Terminate all suspended tokens");
-      for (Token auxToken : tokenExecutor.getRunnableTokens())
+      for (Execution auxToken : tokenExecutor.getRunnableTokens())
       {
-        if (auxToken.getTokenStatus() == TokenStatus.Suspended)
+        if (auxToken.getExecutionStatus() == ExecutionStatus.Suspended)
           tokenExecutor.destroy(auxToken);
       }
       
@@ -123,9 +123,9 @@
 
   private boolean continueTokenThread()
   {
-    TokenStatus tokStatus = token.getTokenStatus();
+    ExecutionStatus tokStatus = token.getExecutionStatus();
     ProcessStatus procStatus = rtProc.getProcess().getProcessStatus();
-    return releaseThread == false && procStatus == ProcessStatus.Active && tokStatus == TokenStatus.Started;
+    return releaseThread == false && procStatus == ProcessStatus.Active && tokStatus == ExecutionStatus.Started;
   }
 
   private void notifyRuntimeProcess()

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,9 +26,9 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.jbpm.api.client.Execution;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.runtime.Token;
-import org.jbpm.api.runtime.TokenExecutor;
+import org.jbpm.api.runtime.preview.TokenExecutor;
 
 /**
  * A runtime context that passes through a chain of interceptors.
@@ -42,9 +42,9 @@
   int itorIndex;
 
   TokenExecutor tokenExecutor;
-  MutableToken token;
+  MutableExecution token;
 
-  public RuntimeContext(TokenExecutor tokenExecutor, MutableToken token)
+  public RuntimeContext(TokenExecutor tokenExecutor, MutableExecution token)
   {
     this.tokenExecutor = tokenExecutor;
     this.token = token;
@@ -61,7 +61,7 @@
     return token.getProcess().getNode(targetRef);
   }
 
-  public Token getToken()
+  public Execution getToken()
   {
     return token;
   }

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcess.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcess.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcess.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -23,12 +23,12 @@
 
 //$Id$
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.runtime.TokenExecutor;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.runtime.preview.TokenExecutor;
 
 /**
- * A RuntimeProcess add runtime behaviour to the {@link ProcessInstance} <p/> To protect the engine from maligious user code it
- * does not extend {@link ProcessInstance} directly.
+ * A RuntimeProcess add runtime behaviour to the {@link Process} <p/> To protect the engine from maligious user code it
+ * does not extend {@link Process} directly.
  * 
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
@@ -36,12 +36,12 @@
 public interface RuntimeProcess
 {
   /**
-   * Get the associated {@link ProcessInstance}
+   * Get the associated {@link Process}
    */
-  ProcessInstance getProcess();
+  Process getProcess();
 
   /**
-   * Get the {@link TokenExecutor} for this {@link ProcessInstance}
+   * Get the {@link TokenExecutor} for this {@link Process}
    */
   TokenExecutor getTokenExecutor();
 }
\ No newline at end of file

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcessImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcessImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcessImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -23,27 +23,27 @@
 
 //$Id$
 
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.runtime.TokenExecutor;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.runtime.preview.TokenExecutor;
 
 /**
- * A RuntimeProcess add runtime behaviour to the {@link ProcessInstance}
+ * A RuntimeProcess add runtime behaviour to the {@link Process}
  * 
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
 public class RuntimeProcessImpl implements RuntimeProcess
 {
-  private ProcessInstance proc;
+  private Process proc;
   private TokenExecutor tokenExecutor;
 
-  public RuntimeProcessImpl(ProcessInstance proc)
+  public RuntimeProcessImpl(Process proc)
   {
     this.proc = proc;
     this.tokenExecutor = new TokenExecutorImpl(this);
   }
 
-  public ProcessInstance getProcess()
+  public Process getProcess()
   {
     return proc;
   }

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/SignalHandlerInterceptor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/SignalHandlerInterceptor.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/SignalHandlerInterceptor.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -23,9 +23,9 @@
 
 //$Id$
 
+import org.jbpm.api.client.Execution;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.runtime.SignalHandler;
-import org.jbpm.api.runtime.Token;
+import org.jbpm.api.runtime.preview.SignalHandler;
 
 /**
  * An interceptor that invokes the SignalHandler.throwEnterSignal 
@@ -39,7 +39,7 @@
   public void execute(RuntimeContext rtContext)
   {
     Node node = rtContext.getNode();
-    Token token = rtContext.getToken();
+    Execution token = rtContext.getToken();
     
     try
     {

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenExecutorImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenExecutorImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenExecutorImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -31,18 +31,18 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.client.Execution.ExecutionStatus;
+import org.jbpm.api.client.Process.ProcessStatus;
 import org.jbpm.api.model.SequenceFlow;
-import org.jbpm.api.model.ProcessInstance.ProcessStatus;
-import org.jbpm.api.runtime.FlowHandler;
-import org.jbpm.api.runtime.Token;
-import org.jbpm.api.runtime.TokenExecutor;
-import org.jbpm.api.runtime.Token.TokenStatus;
+import org.jbpm.api.runtime.preview.FlowHandler;
+import org.jbpm.api.runtime.preview.TokenExecutor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * The {@link FlowHandler} invokes the TokenExecutor to schedule {@link SequenceFlow} objects together with their
- * associated {@link Token}.
+ * associated {@link Execution}.
  * 
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
@@ -61,11 +61,11 @@
     this.rtProc = rtProc;
   }
 
-  public Set<Token> getRunnableTokens()
+  public Set<Execution> getRunnableTokens()
   {
     synchronized (runnableTokens)
     {
-      Set<Token> tokenSet = new HashSet<Token>();
+      Set<Execution> tokenSet = new HashSet<Execution>();
       for (RunnableToken rt : runnableTokens.values())
         tokenSet.add(rt.getToken());
 
@@ -81,22 +81,22 @@
     }
   }
 
-  public void create(Token token, SequenceFlow initialFlow)
+  public void create(Execution token, SequenceFlow initialFlow)
   {
     synchronized (runnableTokens)
     {
-      MutableToken mutableToken = (MutableToken)token;
-      mutableToken.setTokenStatus(TokenStatus.Created);
+      MutableExecution mutableToken = (MutableExecution)token;
+      mutableToken.setExecutionStatus(ExecutionStatus.Created);
       mutableToken.setSequenceFlow(initialFlow);
 
       log.debug("Create Token: " + token);
 
       RunnableToken rtToken = new RunnableToken(this, rtProc, mutableToken);
-      runnableTokens.put(token.getTokenID(), rtToken);
+      runnableTokens.put(token.getExecutionID(), rtToken);
     }
   }
 
-  public void start(Token token)
+  public void start(Execution token)
   {
     synchronized (runnableTokens)
     {
@@ -105,70 +105,70 @@
         throw new IllegalStateException("Cannot start token to process in state: " + procStatus);
 
       log.debug("Start Token: " + token);
-      MutableToken mutableToken = (MutableToken)token;
-      mutableToken.setTokenStatus(TokenStatus.Started);
+      MutableExecution mutableToken = (MutableExecution)token;
+      mutableToken.setExecutionStatus(ExecutionStatus.Started);
 
-      RunnableToken rtToken = runnableTokens.get(token.getTokenID());
+      RunnableToken rtToken = runnableTokens.get(token.getExecutionID());
       executor.submit(rtToken);
     }
   }
 
-  public void move(Token token, SequenceFlow flow)
+  public void move(Execution token, SequenceFlow flow)
   {
     synchronized (runnableTokens)
     {
       if (flow == null)
         throw new IllegalArgumentException("Flow cannot be null");
 
-      if (token.getTokenStatus() != TokenStatus.Started)
-        throw new IllegalStateException("Cannot move token in state: " + token.getTokenStatus());
+      if (token.getExecutionStatus() != ExecutionStatus.Started)
+        throw new IllegalStateException("Cannot move token in state: " + token.getExecutionStatus());
 
-      MutableToken mutableToken = (MutableToken)token;
+      MutableExecution mutableToken = (MutableExecution)token;
       mutableToken.setSequenceFlow(flow);
     }
   }
 
-  public void stop(Token token)
+  public void stop(Execution token)
   {
     synchronized (runnableTokens)
     {
       log.debug("Stop Token: " + token);
-      MutableToken mutableToken = (MutableToken)token;
-      mutableToken.setTokenStatus(TokenStatus.Stoped);
+      MutableExecution mutableToken = (MutableExecution)token;
+      mutableToken.setExecutionStatus(ExecutionStatus.Stoped);
     }
   }
 
-  public void destroy(Token token)
+  public void destroy(Execution token)
   {
     synchronized (runnableTokens)
     {
       log.debug("Destroy Token: " + token);
-      MutableToken mutableToken = (MutableToken)token;
-      mutableToken.setTokenStatus(TokenStatus.Destroyed);
-      runnableTokens.remove(token.getTokenID());
+      MutableExecution mutableToken = (MutableExecution)token;
+      mutableToken.setExecutionStatus(ExecutionStatus.Destroyed);
+      runnableTokens.remove(token.getExecutionID());
     }
   }
 
-  public String suspend(Token token)
+  public String suspend(Execution token)
   {
     synchronized (runnableTokens)
     {
-      RunnableToken rtToken = runnableTokens.get(token.getTokenID());
+      RunnableToken rtToken = runnableTokens.get(token.getExecutionID());
       if (rtToken == null)
         throw new IllegalStateException("Not a runnable token: " + token);
 
       log.debug("Suspend Token: " + token);
-      MutableToken mutableToken = (MutableToken)token;
-      mutableToken.setTokenStatus(TokenStatus.Suspended);
+      MutableExecution mutableToken = (MutableExecution)token;
+      mutableToken.setExecutionStatus(ExecutionStatus.Suspended);
 
       // Release the thread for a suspended token
       rtToken.releaseThread();
 
-      return token.getTokenID();
+      return token.getExecutionID();
     }
   }
 
-  public Token activate(String tokenID)
+  public Execution activate(String tokenID)
   {
     synchronized (runnableTokens)
     {
@@ -176,16 +176,16 @@
       if (rtToken == null)
         throw new IllegalStateException("Not a runnable token: " + tokenID);
 
-      Token token = rtToken.getToken();
-      if (token.getTokenStatus() != TokenStatus.Suspended)
-        throw new IllegalStateException("Activate token in state: " + token.getTokenStatus());
+      Execution token = rtToken.getToken();
+      if (token.getExecutionStatus() != ExecutionStatus.Suspended)
+        throw new IllegalStateException("Activate token in state: " + token.getExecutionStatus());
 
       log.debug("Activate Token: " + token);
-      MutableToken mutableToken = (MutableToken)token;
-      mutableToken.setTokenStatus(TokenStatus.Started);
+      MutableExecution mutableToken = (MutableExecution)token;
+      mutableToken.setExecutionStatus(ExecutionStatus.Started);
 
       rtToken = new RunnableToken(this, rtProc, mutableToken);
-      runnableTokens.put(token.getTokenID(), rtToken);
+      runnableTokens.put(token.getExecutionID(), rtToken);
       executor.submit(rtToken);
 
       return token;

Deleted: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -1,147 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.ri.runtime;
-
-//$Id$
-
-import org.hibernate.Session;
-import org.jboss.util.id.UID;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.SequenceFlow;
-import org.jbpm.api.runtime.Attachments;
-import org.jbpm.api.runtime.BasicExecutionContext;
-import org.jbpm.api.runtime.ExecutionContext;
-import org.jbpm.api.runtime.Token;
-import org.jbpm.api.runtime.Attachments.Key;
-
-/**
- * A Token is a descriptive construct used to describe how the flow of a Process will proceed at runtime.
- * 
- * By tracking how the Token traverses the Flow Objects, gets diverted through alternative paths, 
- * and gets split into parallel paths, the normal Sequence Flow should be completely definable.
- * 
- * A Token will have a unique identity that can be used to separate multiple Tokens that may exist because of 
- * concurrent process instances or the splitting of the Token for parallel processing within a single process instance.
- * 
- * @author Thomas.Diesler at jboss.com
- * @since 20-Apr-2007
- */
-public class TokenImpl implements MutableToken
-{
-  private String id;
-  private SequenceFlow flow;
-  private ExecutionContext context;
-  private TokenStatus status;
-  private ProcessInstance process;
-  private Session session;
-
-  /**
-   * Construct a Token with given {@link Attachments}
-   */
-  public TokenImpl(ProcessInstance process, Attachments att)
-  {
-    this.context = new BasicExecutionContext(att);
-    this.id = new UID().toString();
-    this.status = TokenStatus.Created;
-    this.process = process;
-  }
-
-  @Override
-  public String getTokenID()
-  {
-    return id;
-  }
-
-  @Override
-  public TokenStatus getTokenStatus()
-  {
-    return status;
-  }
-
-  @Override
-  public void setTokenStatus(TokenStatus status)
-  {
-    this.status = status;
-  }
-  
-  @Override
-  public ProcessInstance getProcess()
-  {
-    return process;
-  }
-
-  @Override
-  public ExecutionContext getExecutionContext()
-  {
-    return context;
-  }
-  
-  @Override
-  public SequenceFlow getSequenceFlow()
-  {
-    return flow;
-  }
-
-  @Override
-  public void setSequenceFlow(SequenceFlow flow)
-  {
-    this.flow = flow;
-  }
-
-  @Override
-  public Session getSession()
-  {
-    return session;
-  }
-
-  @Override
-  public void setSession(Session session)
-  {
-    this.session = session;
-  }
-
-  @Override
-  public MutableToken copyToken()
-  {
-    return new TokenImpl(process, context);
-  }
-  
-  @Override
-  public void mergeToken(Token token)
-  {
-    ExecutionContext mergeContext = token.getExecutionContext();
-    for(Key key : mergeContext.getAttachmentKeys())
-    {
-      Object mergeValue = mergeContext.getAttachment(key.getClassPart(), key.getNamePart());
-      Object existValue = context.getAttachment(key.getClassPart(), key.getNamePart());
-      if (existValue != null && existValue.equals(mergeValue) == false)
-        throw new IllegalStateException("Cannot merge the same key with different values: " + key);
-      
-      context.addAttachment(key.getClassPart(), key.getNamePart(), mergeValue);
-    }
-  }
-  
-  public String toString()
-  {
-    return "[sf=" + getSequenceFlow() + ",status=" + getTokenStatus() + ",ctx=" + getExecutionContext() + ",id=" + id + "]";
-  }
-}
\ No newline at end of file

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -28,12 +28,12 @@
 import org.jbpm.api.Constants;
 import org.jbpm.api.NotImplementedException;
 import org.jbpm.api.Constants.TxType;
+import org.jbpm.api.client.Execution;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Node;
 import org.jbpm.api.model.preview.Group;
 import org.jbpm.api.model.preview.Property;
 import org.jbpm.api.model.preview.Group.GroupType;
-import org.jbpm.api.runtime.Token;
 import org.jbpm.api.service.preview.PersistenceService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -52,7 +52,7 @@
   public void execute(RuntimeContext rtContext)
   {
     Node node = rtContext.getNode();
-    Token token = rtContext.getToken();
+    Execution token = rtContext.getToken();
     Session session = token.getSession();
 
     // Get the Thread associated Tx

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -32,19 +32,19 @@
 import org.jbpm.api.BPMException;
 import org.jbpm.api.InvalidProcessException;
 import org.jbpm.api.ProcessTimeoutException;
+import org.jbpm.api.client.Execution;
+import org.jbpm.api.client.Process;
 import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.client.Process.ProcessStatus;
 import org.jbpm.api.model.Expression;
-import org.jbpm.api.model.ProcessInstance;
 import org.jbpm.api.model.StartEvent;
 import org.jbpm.api.model.Event.EventDetailType;
-import org.jbpm.api.model.ProcessInstance.ProcessStatus;
 import org.jbpm.api.model.preview.Assignment;
 import org.jbpm.api.model.preview.Assignment.AssignTime;
 import org.jbpm.api.model.preview.Signal.SignalType;
 import org.jbpm.api.runtime.Attachments;
-import org.jbpm.api.runtime.ExecutionContext;
-import org.jbpm.api.runtime.Token;
-import org.jbpm.api.runtime.TokenExecutor;
+import org.jbpm.api.runtime.preview.ExecutionContext;
+import org.jbpm.api.runtime.preview.TokenExecutor;
 import org.jbpm.api.service.ExecutionService;
 import org.jbpm.api.service.ProcessInstanceService;
 import org.jbpm.api.service.preview.SignalService;
@@ -53,10 +53,10 @@
 import org.jbpm.ri.model.SignalImpl;
 import org.jbpm.ri.runtime.DelegatingToken;
 import org.jbpm.ri.runtime.ExpressionEvaluator;
-import org.jbpm.ri.runtime.MutableToken;
+import org.jbpm.ri.runtime.MutableExecution;
 import org.jbpm.ri.runtime.RuntimeProcess;
 import org.jbpm.ri.runtime.RuntimeProcessImpl;
-import org.jbpm.ri.runtime.TokenImpl;
+import org.jbpm.ri.runtime.ExecutionImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -81,7 +81,7 @@
   }
 
   @Override
-  public void startProcess(ProcessInstance proc, Attachments att)
+  public void startProcess(Process proc, Attachments att)
   {
     // Get the None Start Event if there is one and start the initial flow
     StartEvent start = getNoneStartEvent(proc);
@@ -98,12 +98,12 @@
   }
 
   @Override
-  public void startProcess(ProcessInstance proc, StartEvent start, Attachments att)
+  public void startProcess(Process proc, StartEvent start, Attachments att)
   {
     startProcessInternal(proc, start, att);
   }
 
-  private synchronized void startProcessInternal(ProcessInstance proc, StartEvent start, Attachments att)
+  private synchronized void startProcessInternal(Process proc, StartEvent start, Attachments att)
   {
     // Prepare the process to start
     startProcessPrepare(proc);
@@ -121,7 +121,7 @@
     boolean startProcessThread = (rtProc == null);
 
     // Create initial Token
-    TokenImpl initialToken = new TokenImpl(proc, att);
+    ExecutionImpl initialToken = new ExecutionImpl(proc, att);
     InitialFlow initialFlow = new InitialFlow(start);
     initialToken.setSequenceFlow(initialFlow);
 
@@ -158,7 +158,7 @@
     tokenExecutor.start(initialToken);
   }
 
-  private void startProcessPrepare(ProcessInstance proc)
+  private void startProcessPrepare(Process proc)
   {
     // Veriy the process state
     ProcessStatus procStatus = proc.getProcessStatus();
@@ -173,9 +173,9 @@
   }
 
   // Evaluate the Start time assignments
-  private void startTimeAssignments(ProcessInstance proc, Token token)
+  private void startTimeAssignments(Process proc, Execution token)
   {
-    DelegatingToken delegatingToken = new DelegatingToken((MutableToken)token);
+    DelegatingToken delegatingToken = new DelegatingToken((MutableExecution)token);
     ExecutionContext exContext = token.getExecutionContext();
     for (Assignment ass : proc.getAssignments())
     {
@@ -190,12 +190,12 @@
     }
   }
 
-  public ProcessStatus waitForEnd(ProcessInstance proc)
+  public ProcessStatus waitForEnd(Process proc)
   {
     return waitForEndInternal(proc, 0);
   }
 
-  public ProcessStatus waitForEnd(ProcessInstance proc, long timeout)
+  public ProcessStatus waitForEnd(Process proc, long timeout)
   {
     return waitForEndInternal(proc, timeout);
   }
@@ -205,7 +205,7 @@
    * arrive at an End Event. The Process will be in a running state until all Tokens are consumed. If the process was
    * aborted this method throws the causing RuntimeException if avaialable.
    */
-  private ProcessStatus waitForEndInternal(ProcessInstance proc, long timeout)
+  private ProcessStatus waitForEndInternal(Process proc, long timeout)
   {
     ProcessImpl procImpl = (ProcessImpl)proc;
 
@@ -270,13 +270,13 @@
     return status;
   }
 
-  private boolean isProcessTerminated(ProcessInstance proc)
+  private boolean isProcessTerminated(Process proc)
   {
     ProcessStatus status = proc.getProcessStatus();
     return status == ProcessStatus.Cancelled || status == ProcessStatus.Completed || status == ProcessStatus.Aborted;
   }
 
-  private StartEvent getNoneStartEvent(ProcessInstance proc)
+  private StartEvent getNoneStartEvent(Process proc)
   {
     StartEvent start = null;
     for (StartEvent aux : proc.getNodes(StartEvent.class))
@@ -291,7 +291,7 @@
     return start;
   }
 
-  private RuntimeProcess getRuntimeProcess(ProcessInstance proc, boolean createNew)
+  private RuntimeProcess getRuntimeProcess(Process proc, boolean createNew)
   {
     RuntimeProcess rtProcess;
     synchronized (runtimeProcesses)
@@ -322,7 +322,7 @@
     {
       TokenExecutor tokenExecutor = rtProc.getTokenExecutor();
       ProcessImpl procImpl = (ProcessImpl)rtProc.getProcess();
-      ProcessInstance proc = rtProc.getProcess();
+      Process proc = rtProc.getProcess();
 
       ProcessEngine engine = getProcessEngine();
       SignalService sigService = engine.getService(SignalService.class);

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -36,10 +36,10 @@
 import org.hibernate.cfg.AnnotationConfiguration;
 import org.jbpm.api.NodeNotFoundException;
 import org.jbpm.api.ProcessNotFoundException;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.Service;
 import org.jbpm.api.service.preview.PersistenceService;
 import org.jbpm.ri.model.AbstractElementImpl;
@@ -151,7 +151,7 @@
   }
 
   @Override
-  public ObjectName saveProcess(ProcessInstance proc)
+  public ObjectName saveProcess(Process proc)
   {
     log.debug("START saveProcess: " + proc.getKey());
     Session session = getSessionFactory().openSession();
@@ -170,15 +170,15 @@
   }
 
   @Override
-  public ProcessInstance loadProcess(ObjectName procID)
+  public Process loadProcess(ObjectName procID)
   {
     log.debug("START loadProcess: " + procID);
-    ProcessInstance proc = null;
+    Process proc = null;
     Session session = getSessionFactory().openSession();
     try
     {
       Integer id = Integer.valueOf(procID.getKeyProperty("id"));
-      proc = (ProcessInstance)session.load(ProcessImpl.class, id);
+      proc = (Process)session.load(ProcessImpl.class, id);
       AbstractElementImpl elImpl = (AbstractElementImpl)proc;
       elImpl.initialize(session);
     }
@@ -195,7 +195,7 @@
   }
 
   @Override
-  public void deleteProcess(ProcessInstance proc)
+  public void deleteProcess(Process proc)
   {
     log.debug("START deleteProcess: " + proc);
     Session session = getSessionFactory().openSession();
@@ -204,7 +204,7 @@
     {
       ObjectName procID = proc.getKey();
       Integer id = Integer.valueOf(procID.getKeyProperty("id"));
-      proc = (ProcessInstance)session.load(ProcessImpl.class, id);
+      proc = (Process)session.load(ProcessImpl.class, id);
       session.delete(proc);
       tx.commit();
     }

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/InMemoryPersistenceServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/InMemoryPersistenceServiceImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/InMemoryPersistenceServiceImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -30,10 +30,10 @@
 
 import org.hibernate.Session;
 import org.jbpm.api.ProcessNotFoundException;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.preview.PersistenceService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -50,7 +50,7 @@
   final Logger log = LoggerFactory.getLogger(InMemoryPersistenceServiceImpl.class);
 
   private Map<ObjectName, ProcessDefinition> procDefs = new HashMap<ObjectName, ProcessDefinition>();
-  private Map<ObjectName, ProcessInstance> procs = new HashMap<ObjectName, ProcessInstance>();
+  private Map<ObjectName, Process> procs = new HashMap<ObjectName, Process>();
   private Map<ObjectName, Node> nodes = new HashMap<ObjectName, Node>();
 
   @Override
@@ -89,7 +89,7 @@
   }
 
   @Override
-  public ObjectName saveProcess(ProcessInstance proc)
+  public ObjectName saveProcess(Process proc)
   {
     procs.put(proc.getKey(), proc);
     
@@ -100,9 +100,9 @@
   }
 
   @Override
-  public ProcessInstance loadProcess(ObjectName procID)
+  public Process loadProcess(ObjectName procID)
   {
-    ProcessInstance proc = procs.get(procID);
+    Process proc = procs.get(procID);
     if (proc == null)
       throw new ProcessNotFoundException("Cannot find process: " + procID);
     
@@ -110,7 +110,7 @@
   }
 
   @Override
-  public void deleteProcess(ProcessInstance proc)
+  public void deleteProcess(Process proc)
   {
     procs.remove(proc.getKey());
     

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -23,14 +23,14 @@
 
 // $Id$
 
+import org.jbpm.api.client.Process;
 import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.model.ProcessInstance;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.ri.model.builder.ProcessBuilderImpl;
 
 /**
- * The ProcessBuilder can be used to build a {@link ProcessInstance} dynamically.
+ * The ProcessBuilder can be used to build a {@link Process} dynamically.
  * 
  * @author thomas.diesler at jboss.com
  * @since 18-Jun-2008

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessDefinitionServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessDefinitionServiceImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessDefinitionServiceImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,8 +25,8 @@
 
 import javax.management.ObjectName;
 
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessDefinitionService;
 import org.jbpm.ri.model.ProcessDefinitionImpl;
 

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -29,9 +29,9 @@
 
 import javax.management.ObjectName;
 
+import org.jbpm.api.client.Process;
 import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessInstance.ProcessStatus;
+import org.jbpm.api.client.Process.ProcessStatus;
 import org.jbpm.api.service.ProcessInstanceService;
 import org.jbpm.api.service.preview.PersistenceService;
 import org.jbpm.ri.model.ProcessImpl;
@@ -73,7 +73,7 @@
   }
 
   @Override
-  public ObjectName registerProcess(ProcessInstance proc)
+  public ObjectName registerProcess(Process proc)
   {
     ObjectName procID = super.registerProcess(proc);
     

Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/dialect/stp/sequence/SequenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/dialect/stp/sequence/SequenceTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/dialect/stp/sequence/SequenceTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,7 +25,7 @@
 
 import java.net.URL;
 
-import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.service.ProcessDefinitionService;
 import org.jbpm.api.test.APITestCase;
 

Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessDefinitionPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessDefinitionPersistenceTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessDefinitionPersistenceTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,9 +26,9 @@
 import javax.management.ObjectName;
 
 import org.jbpm.api.ProcessNotFoundException;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.EndEvent;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.StartEvent;
 import org.jbpm.api.model.Task;
 import org.jbpm.api.service.preview.PersistenceService;

Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -26,10 +26,10 @@
 import javax.management.ObjectName;
 
 import org.jbpm.api.ProcessNotFoundException;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.EndEvent;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.StartEvent;
 import org.jbpm.api.model.Task;
 import org.jbpm.api.service.ProcessDefinitionService;
@@ -59,12 +59,12 @@
     procDefService.registerProcessDefinition(procDef);
     
     // Create and save the Process
-    ProcessInstance proc = procDef.newInstance();
+    Process proc = procDef.newInstance();
     service.saveProcess(proc);
 
     // Load the process
     ObjectName procID = proc.getKey();
-    ProcessInstance loadProc = service.loadProcess(procID);
+    Process loadProc = service.loadProcess(procID);
     ProcessCatalog.validateDefaultProcess(loadProc.getProcessDefinition());
 
     StartEvent start = loadProc.getNode(StartEvent.class, "Start");

Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -28,6 +28,7 @@
 
 import javax.management.ObjectName;
 
+import org.jbpm.api.client.Execution;
 import org.jbpm.api.model.Expression;
 import org.jbpm.api.model.Node;
 import org.jbpm.api.model.SequenceFlow;
@@ -38,11 +39,10 @@
 import org.jbpm.api.model.preview.InputSet;
 import org.jbpm.api.model.preview.OutputSet;
 import org.jbpm.api.model.preview.Assignment.AssignTime;
-import org.jbpm.api.runtime.ExecutionHandler;
-import org.jbpm.api.runtime.FlowHandler;
-import org.jbpm.api.runtime.SignalHandler;
-import org.jbpm.api.runtime.Token;
-import org.jbpm.api.runtime.TokenExecutor;
+import org.jbpm.api.runtime.preview.ExecutionHandler;
+import org.jbpm.api.runtime.preview.FlowHandler;
+import org.jbpm.api.runtime.preview.SignalHandler;
+import org.jbpm.api.runtime.preview.TokenExecutor;
 import org.jbpm.ri.model.AssignmentImpl;
 import org.jbpm.ri.model.ExpressionImpl;
 import org.jbpm.ri.model.InputSetImpl;
@@ -165,7 +165,7 @@
       private static final long serialVersionUID = 1L;
 
       @Override
-      public void execute(Token token)
+      public void execute(Execution token)
       {
       }
 
@@ -213,12 +213,12 @@
       }
 
       @Override
-      public void throwEnterSignal(Token token)
+      public void throwEnterSignal(Execution token)
       {
       }
 
       @Override
-      public void throwExitSignal(Token token)
+      public void throwExitSignal(Execution token)
       {
       }
     }
@@ -255,7 +255,7 @@
       }
 
       @Override
-      public void execute(TokenExecutor tokenExecutor, Token token)
+      public void execute(TokenExecutor tokenExecutor, Execution token)
       {
       }
     }

Modified: projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java
===================================================================
--- projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,8 +25,8 @@
 
 import javax.management.ObjectName;
 
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.model.Expression;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.Gateway.GatewayType;
 import org.jbpm.api.model.Task.TaskType;

Modified: projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -15,10 +15,10 @@
 import org.jboss.bpm.samples.airticket.client.OfferMessage;
 import org.jboss.bpm.samples.airticket.client.OrderMessage;
 import org.jboss.bpm.samples.airticket.client.RequestMessage;
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.preview.MessageListener;
 import org.jbpm.api.client.preview.SignalListener;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.builder.preview.MessageBuilder;
 import org.jbpm.api.model.builder.preview.ObjectNameFactory;
 import org.jbpm.api.model.preview.Message;
@@ -65,9 +65,9 @@
       System.out.println("Create new Process");
       AirticketProcessBuilder procBuilder = new AirticketProcessBuilder(sampleID);
       ProcessDefinition procDef = procBuilder.buildProcessDefinition();
-      ProcessInstance proc = procDef.newInstance();
+      Process proc = procDef.newInstance();
       procService.registerProcess(proc);
-      procID = proc.startProcess();
+      procID = proc.startProcessAsync();
       httpSession.setAttribute("procID", procID);
     }
     

Modified: projects/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java
===================================================================
--- projects/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java	2008-11-12 10:17:13 UTC (rev 2890)
+++ projects/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java	2008-11-12 11:00:17 UTC (rev 2891)
@@ -25,10 +25,10 @@
 
 import javax.management.ObjectName;
 
+import org.jbpm.api.client.Process;
+import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.preview.MessageListener;
 import org.jbpm.api.client.preview.UserTaskCallback;
-import org.jbpm.api.model.ProcessInstance;
-import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.builder.preview.MessageBuilder;
 import org.jbpm.api.model.builder.preview.ObjectNameFactory;
 import org.jbpm.api.model.preview.Message;
@@ -53,7 +53,7 @@
   
   private MessageService messageManager = MessageService.locateMessageService();
   private AirticketMessageListener msgListener;
-  private ProcessInstance proc;
+  private Process proc;
   
   public void testValidData() throws Exception
   {
@@ -68,7 +68,7 @@
     userTask.setUserTaskCallback(new UserTaskCallbackImpl());
     
     // Start the process and send the request message
-    proc.startProcess();
+    proc.startProcessAsync();
     Message reqMessage = getValidRequestMessage();
     messageManager.sendMessage(proc.getKey(), AirticketProcessBuilder.TASK_RECEIVE_REQUEST, reqMessage);
     
@@ -94,7 +94,7 @@
     userTask.setUserTaskCallback(new UserTaskCallbackImpl());
     
     // Start the process and send the request message
-    proc.startProcess();
+    proc.startProcessAsync();
     Message reqMessage = getInvalidRequestMessage();
     messageManager.sendMessage(proc.getKey(), AirticketProcessBuilder.TASK_RECEIVE_REQUEST, reqMessage);
     




More information about the jbpm-commits mailing list