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

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Nov 14 05:11:30 EST 2008


Author: thomas.diesler at jboss.com
Date: 2008-11-14 05:11:29 -0500 (Fri, 14 Nov 2008)
New Revision: 2922

Added:
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Process.java
   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/builder/ObjectNameFactory.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/EndEvent.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Event.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ExclusiveGateway.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Expression.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Gate.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Gateway.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/StartEvent.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Task.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/WaitState.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/ProcessBuilderExt.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/TaskBuilder.java
Removed:
   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/EndEvent.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Event.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ExclusiveGateway.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Expression.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Gate.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Gateway.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/StartEvent.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/WaitState.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/TaskBuilder.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/ObjectNameFactory.java
Modified:
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.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/SequenceFlow.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/GatewayBuilder.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/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/test/APITestCase.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/IntegrationTestHelper.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ProcessCatalog.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/client/Deployment.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/client/ProcessAsync.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/client/UserTaskCallback.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Assignment.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ComplexGateway.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/InclusiveGateway.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ParallelGateway.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ReceiveTask.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/SendTask.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/UserTask.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/EventBuilder.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/service/MessageService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/service/PersistenceService.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/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/cts/task/waitstate/WaitStateTest.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/cts/src/test/java/org/jbpm/test/preview/endevent/EndEventMessageTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/exclusive/ExclusiveGatewayMergeTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewayMergeTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewaySplitTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewayMergeTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewaySplitTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeInputSetTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeOutputSetTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodePropertyTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/ProcessPropertyTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/StartEventSignalTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/JavaTaskTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/ReceiveTaskTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/SendTaskTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskCallbackTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredMarshallerTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredTest.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/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBExpression.java
   projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBTask.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/AssignmentImpl.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/ExpressionImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.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/InclusiveGatewayImpl.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/ParticipantImpl.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/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/SequenceFlowImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SignalImpl.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/WaitStateImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/EventBuilderImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/GatewayBuilderImpl.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/model/builder/TaskBuilderImpl.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/DelegatingAttachments.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/ExpressionEvaluator.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.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/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/ThreadingTokenExecutor.java
   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/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/ComplexGatewayPersistenceTest.java
   projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/EndEventPersistenceTest.java
   projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ExclusiveGatewayPersistenceTest.java
   projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/InclusiveGatewayPersistenceTest.java
   projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ParallelGatewayPersistenceTest.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/StartEventPersistenceTest.java
   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/UserTaskPersistenceTest.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:
Move more model to preview

Deleted: 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	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -1,69 +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.client;
-
-//$Id$
-
-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 ProcessEngine
-   */
-  ProcessEngine getProcessEngine();
-  
-  /**
-   * Get the associated ProcessDefinition
-   */
-  ProcessDefinition getProcessDefinition();
-  
-  /**
-   * Get the process state
-   */
-  ProcessStatus getProcessStatus();
-
-  /**
-   * Start the process
-   */
-  Token startProcess();
-
-  /**
-   * Start the process, with a given context data
-   */
-  Token startProcess(Attachments att);
-}
\ No newline at end of file

Deleted: 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/client/ProcessDefinition.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -1,45 +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.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();
-
-  /**
-   * Get the associated ProcessEngine
-   */
-  ProcessEngine getProcessEngine();
-}
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,6 +26,7 @@
 import java.util.Set;
 
 import org.jbpm.api.model.Node;
+import org.jbpm.api.model.Process;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.api.runtime.Attachments;
 

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/EndEvent.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/EndEvent.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/EndEvent.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -1,43 +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$
-
-/**
- * As the name implies, the End Event indicates where a Process will end. 
- * 
- * In terms of Sequence Flow, the End Event ends the flow of the Process, and thus, will not have any outgoing Sequence Flow. 
- * An End Event can have a specific Result that will appear as a marker within the center of the End Event shape. 
- * End Event Results are Message, Error, Compensation, Link, and Multiple.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface EndEvent extends Event
-{
-  /**
-   * Get the type od end result
-   */
-  EventDetailType getResultType();
-}
\ No newline at end of file

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Event.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Event.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Event.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -1,75 +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;
-
-import org.jbpm.preview.model.Message;
-import org.jbpm.preview.model.Signal;
-
-
-//$Id$
-
-/**
- * An Event is something that “happens” during the course of a business process. 
- * <p/>
- * These Events affect the flow of the Process and usually have a cause or an impact.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface Event extends Node
-{
-  /**
-   * Defines the type of an {@link Event}
-   */
-  enum EventType
-  {
-    Start, End, Intermediate 
-  };
-  
-  /**
-   * Defines the type of event detail
-   */
-  enum EventDetailType
-  {
-    None, Message, Error, Cancel, Compensation, Link, Multiple, Timer, Rule, Signal, Terminate 
-  }
-  
-  /**
-   * Get the type of this event
-   */
-  EventType getEventType();
-  
-  /**
-   * Get the detail type fopr this event
-   */
-  EventDetailType getDetailType();
-  
-  /**
-   * Get the associated signal ref
-   */
-  Signal getSignalRef();
-  
-  /**
-   * Get the associated message ref
-   */
-  Message getMessageRef();
-}
\ No newline at end of file

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ExclusiveGateway.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ExclusiveGateway.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ExclusiveGateway.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -1,56 +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$
-
-/**
- * Exclusive Gateways (Decisions) are locations within a business process where the Sequence Flow can take two or more
- * alternative paths. This is basically the “fork in the road” for a process. For a given performance (or instance) of the
- * process, only one of the paths can be taken (this should not be confused with forking of paths—refer to “Forking Flow”)
- * 
- * A Decision is not an activity from the business process perspective, but is a type of Gateway that controls
- * the Sequence Flow between activities. It can be thought of as a question that is asked at that point in the Process. The
- * question has a defined set of alternative answers (Gates). Each Decision Gate is associated with a condition expression
- * found within an outgoing Sequence Flow. When a Gate is chosen during the performance of the Process, the
- * corresponding Sequence Flow is then chosen. A Token arriving at the Decision would be directed down the appropriate
- * path, based on the chosen Gate.
- * 
- * The Exclusive Decision has two or more outgoing Sequence Flow, but only one of them may be taken during the
- * performance of the Process. Thus, the Exclusive Decision defines a set of alternative paths for the Token to take as it
- * traverses the Flow. There are two types of Exclusive Decisions: Data-Based and Event-Based.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface ExclusiveGateway extends Gateway
-{
-  enum ExclusiveType
-  {
-    Data, Event
-  }
-  
-  /**
-   * ExclusiveType is by default Data. The ExclusiveType MAY be set to Event.
-   */
-  ExclusiveType getExclusiveType();
-}
\ No newline at end of file

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Expression.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Expression.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Expression.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -1,55 +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;
-
-import java.io.Serializable;
-
-//$Id$
-
-/**
- * An Expression, which is used in the definition of attributes for StartEvent,
- * IntermediateEvent, Activity, ComplexGateway, and SequenceFlow
- *  
- * @author thomas.diesler at jboss.com
- * @since 21-Jul-2008
- */
-public interface Expression extends Serializable
-{
-  enum ExpressionLanguage
-  {
-    MVEL
-  }
-
-  /**
-   * An ExpressionBody MUST be entered to provide the text of the expression, which
-   * will be written in the language defined by the ExpressionLanguage attribute.
-   */
-  String getExpressionBody();
-  
-  /**
-   * A Language MUST be provided to identify the language of the ExpressionBody.
-   * The value of the ExpressionLanguage should follow the naming conventions for the
-   * version of the specified language.
-   */
-  ExpressionLanguage getExpressionLanguage();
-
-}

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Gate.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Gate.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Gate.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -1,75 +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 java.util.List;
-
-import org.jbpm.preview.model.Assignment;
-
-/**
- * There MAY be zero or more Gates (except where noted below). Zero Gates are
- * allowed if the Gateway is last object in a Process flow and there are no Start or
- * End Events for the Process. If there are zero or only one incoming Sequence
- * Flow, then there MUST be at least two Gates.
- * 
- * For Exclusive Data-Based Gateways
- * When two Gates are required, one of them MAY be the DefaultGate.
- * 
- * For Exclusive Event-Based Gateways
- * There MUST be two or more Gates. (Note that this type of Gateway does not act
- * only as a Merge--it is always a Decision, at least.)
- * 
- * For Inclusive Gateways
- * When two Gates are required, one of them MAY be the DefaultGate.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface Gate 
-{
-  /**
-   * Each Gate MUST have an associated (outgoing) Sequence Flow. 
-   * 
-   * For Exclusive Event-Based, Complex, and Parallel Gateways:
-   * The Sequence Flow MUST have its Condition attribute set to None (there is not an
-   * evaluation of a condition expression).
-   * 
-   * For Exclusive Data-Based, and Inclusive Gateways:
-   * The Sequence Flow MUST have its Condition attribute set to Expression and
-   * MUST have a valid ConditionExpression. The ConditionExpression MUST be
-   * unique for all the Gates within the Gateway. If there is only one Gate (i.e., the
-   * Gateway is acting only as a Merge), then Sequence Flow MUST have its Condition
-   * set to None.
-   * 
-   * For DefaultGates:
-   * The Sequence Flow MUST have its Condition attribute set to Otherwise
-   */
-  SequenceFlow getOutgoingSequenceFlow();
-
-  /**
-   * One or more assignment expressions MAY be made for each Gate. The
-   * Assignment SHALL be performed when the Gate is selected.
-   */
-  List<Assignment> getAssignments();
-}

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Gateway.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Gateway.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Gateway.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -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.model;
-
-//$Id$
-
-import java.util.List;
-
-
-/**
- * Gateways are modeling elements that are used to control how Sequence Flow interact as they converge and diverge within
- * a Process. If the flow does not need to be controlled, then a Gateway is not needed. The term “Gateway” implies that
- * there is a gating mechanism that either allows or disallows passage through the Gateway--that is, as Tokens arrive at a
- * Gateway, they can be merged together on input and/or split apart on output as the Gateway mechanisms are invoked. To
- * be more descriptive, a Gateway is actually a collection of “Gates.” 
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface Gateway extends Node
-{
-  /**
-   * The GatewayType
-   * 
-   */
-  public enum GatewayType
-  {
-    Exclusive, Inclusive, Complex, Parallel
-  }
-
-  /**
-   * GatewayType is by default Exclusive. The GatewayType MAY be set to Inclusive, Complex, or Parallel. The GatewayType will determine the behavior of the Gateway,
-   * both for incoming and outgoing Sequence Flow
-   */
-  GatewayType getGatewayType();
-
-  /**
-   * There MAY be zero or more Gates (except where noted below). Zero Gates are allowed if the Gateway is last object in a Process flow and there are no Start or End
-   * Events for the Process. If there are zero or only one incoming Sequence Flow, then there MUST be at least two Gates.
-   * 
-   * For Exclusive Data-Based Gateways. 
-   * When two Gates are required, one of them MAY be the DefaultGate.
-   * 
-   * For Exclusive Event-Based Gateways.
-   * There MUST be two or more Gates. (Note that this type of Gateway does not act only as a Merge--it is always a Decision, at
-   * least.)
-   * 
-   * For Inclusive Gateways. 
-   * When two Gates are required, one of them MAY be the DefaultGate.
-   */
-  List<SequenceFlow> getGates();
-  
-  /**
-   * Get the optional default gate
-   * @return null if there is none
-   */
-  SequenceFlow getDefaultGate();
-  
-  /**
-   * Get the gate for the given target name
-   * @return null if there is none
-   */
-  SequenceFlow getGateByName(String targetName);
-}
\ 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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Node.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,8 +25,6 @@
 
 import java.util.List;
 
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.preview.model.Assignment;
 import org.jbpm.preview.model.Group;
 import org.jbpm.preview.model.PropertySupport;

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Process.java (from rev 2917, 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/model/Process.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Process.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -0,0 +1,70 @@
+/*
+ * 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.client.ProcessEngine;
+import org.jbpm.api.client.Token;
+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 ProcessEngine
+   */
+  ProcessEngine getProcessEngine();
+  
+  /**
+   * Get the associated ProcessDefinition
+   */
+  ProcessDefinition getProcessDefinition();
+  
+  /**
+   * Get the process state
+   */
+  ProcessStatus getProcessStatus();
+
+  /**
+   * Start the process
+   */
+  Token startProcess();
+
+  /**
+   * Start the process, with a given context data
+   */
+  Token startProcess(Attachments att);
+}
\ No newline at end of file

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ProcessDefinition.java (from rev 2917, 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/ProcessDefinition.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ProcessDefinition.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -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.model;
+
+//$Id$
+
+import org.jbpm.api.client.ProcessEngine;
+
+/**
+ * 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();
+
+  /**
+   * 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/SequenceFlow.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/SequenceFlow.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/SequenceFlow.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -23,8 +23,10 @@
 
 import java.io.Serializable;
 
+import org.jbpm.preview.model.Expression;
 
 
+
 //$Id$
 
 /**

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/StartEvent.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/StartEvent.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/StartEvent.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -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.model;
-
-
-// $Id$
-
-/**
- * A Start Event indicates where a particular Process will start. <p/> In terms of Sequence Flow, the Start Event starts
- * the Flow of the Process, and thus, will not have any incoming Sequence Flow. A Start Event can have a Trigger that
- * indicates how the Process starts: Message, Timer, Rule, Link, or Multiple.
- * 
- * 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.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface StartEvent extends Event
-{
-  /**
-   * Get the outgoing SequenceFlow
-   */
-  SequenceFlow getOutFlow();
-  
-  /**
-   * Get the start trigger type
-   */
-  EventDetailType getTriggerType();
-}
\ No newline at end of file

Deleted: 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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Task.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -1,97 +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 java.util.List;
-
-import org.jbpm.preview.model.InputSet;
-import org.jbpm.preview.model.OutputSet;
-
-
-/**
- * A Task is an Atomic Activity that is included within a Process.
- * 
- * A Task is used when the work in the Process is not broken down to a finer level of Process Model detail. Generally, an end-user and/or an application are used to
- * perform the Task when it is executed.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface Task extends Node
-{
-  /**
-   * The TaskType
-   */
-  public enum TaskType
-  {
-    Service, Receive, Send, User, Script, Manual, Reference, None, Wait
-  }
-
-  /**
-   * TaskType is an attribute that has a default of None, but MAY be set to Send,
-   * Receive, User, Script, Manual, Reference, or Service. The TaskType will be
-   * impacted by the Message Flow to and/or from the Task, if Message Flow are
-   * used. A TaskType of Receive MUST NOT have an outgoing Message Flow. A
-   * TaskType of Send MUST NOT have an incoming Message Flow. A TaskType of
-   * Script or Manual MUST NOT have an incoming or an outgoing Message Flow.
-   * The TaskType list MAY be extended to include new types.
-   */
-  TaskType getTaskType();
-  
-  /**
-   * Get the incomming SequenceFlow
-   */
-  SequenceFlow getInFlow();
-  
-  /**
-   * Get the outgoing SequenceFlow
-   */
-  SequenceFlow getOutFlow();
-  
-  /**
-   * The InputSets attribute defines the data requirements for input to the Activity.
-   * Zero or more InputSets MAY be defined. Each Input set is sufficient to allow the
-   * Activity to be performed (if it has first been instantiated by the appropriate signal
-   * arriving from an incoming Sequence Flow)
-   */
-  List<InputSet> getInputSets();
-  
-  /**
-   * The OutputSets attribute defines the data requirements for output from the
-   * activity. Zero or more OutputSets MAY be defined. At the completion of the
-   * activity, only one of the OutputSets may be produced--It is up to the
-   * implementation of the activity to determine which set will be produced. However,
-   * the IORules attribute MAY indicate a relationship between an OutputSet and an
-   * InputSet that started the activity.
-   */
-  List<OutputSet> getOutputSets();
-  
-  /**
-   * The IORules attribute is a collection of expressions, each of which specifies the
-   * required relationship between one input and one output. That is, if the activity is
-   * instantiated with a specified input, that activity shall complete with the specified
-   * output.
-   */
-  List<Expression> getIORules();
-}
\ No newline at end of file

Deleted: 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	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/WaitState.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -1,36 +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$
-
-
-
-/**
- * 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

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/GatewayBuilder.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/GatewayBuilder.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/GatewayBuilder.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -21,8 +21,8 @@
  */
 package org.jbpm.api.model.builder;
 
-import org.jbpm.api.model.Gate;
-import org.jbpm.api.model.Expression.ExpressionLanguage;
+import org.jbpm.preview.model.Gate;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
 
 
 //$Id$

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ObjectNameFactory.java (from rev 2919, projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/ObjectNameFactory.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ObjectNameFactory.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ObjectNameFactory.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -0,0 +1,74 @@
+/*
+ * 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.builder;
+
+// $Id$
+
+import java.util.Hashtable;
+
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+
+/**
+ * A simple factory for creating safe object names.
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 08-May-2006
+ */
+public class ObjectNameFactory
+{
+   public static ObjectName create(String name)
+   {
+      try
+      {
+         return new ObjectName(name);
+      }
+      catch (MalformedObjectNameException e)
+      {
+         throw new Error("Invalid ObjectName: " + name + "; " + e);
+      }
+   }
+
+   public static ObjectName create(String domain, String key, String value)
+   {
+      try
+      {
+         return new ObjectName(domain, key, value);
+      }
+      catch (MalformedObjectNameException e)
+      {
+         throw new Error("Invalid ObjectName: " + domain + "," + key + "," + value + "; " + e);
+      }
+   }
+
+   public static ObjectName create(String domain, Hashtable<String, String> table)
+   {
+      try
+      {
+         return new ObjectName(domain, table);
+      }
+      catch (MalformedObjectNameException e)
+      {
+         throw new Error("Invalid ObjectName: " + domain + "," + table + "; " + e);
+      }
+   }
+}

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilder.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -23,23 +23,10 @@
 
 //$Id$
 
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
-import org.jbpm.api.model.Node;
-import org.jbpm.api.model.Event.EventDetailType;
-import org.jbpm.api.model.Expression.ExpressionLanguage;
-import org.jbpm.api.model.Gateway.GatewayType;
-import org.jbpm.api.model.Task.TaskType;
-import org.jbpm.preview.model.Message;
-import org.jbpm.preview.model.Property;
-import org.jbpm.preview.model.Assignment.AssignTime;
-import org.jbpm.preview.model.Group.GroupType;
-import org.jbpm.preview.model.builder.EventBuilder;
-import org.jbpm.preview.model.builder.GroupBuilder;
-import org.jbpm.preview.model.builder.MessageBuilder;
-import org.jbpm.preview.runtime.ExecutionHandler;
-import org.jbpm.preview.runtime.FlowHandler;
-import org.jbpm.preview.runtime.SignalHandler;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.preview.model.Gateway.GatewayType;
+import org.jbpm.preview.model.Task.TaskType;
 
 /**
  * The ProcessBuilder can be used to build a {@link Process} dynamically.
@@ -69,90 +56,25 @@
   /**
    * Add a SartEvent with a given name
    */
-  EventBuilder addStartEvent(String name);
+  ProcessBuilder addStartEvent(String name);
 
   /**
-   * Add a SartEvent with a given name and ResultType
-   */
-  EventBuilder addStartEvent(String name, EventDetailType ResultType);
-
-  /**
-   * Add an IntermediateEvent with a given name
-   */
-  ProcessBuilder addEvent(String name);
-
-  /**
    * Add an EndEvent with a given name
    */
-  EventBuilder addEndEvent(String name);
+  ProcessBuilder addEndEvent(String name);
 
   /**
-   * Add an EndEvent with a given name and ResultType
-   */
-  EventBuilder addEndEvent(String name, EventDetailType resultType);
-
-  /**
    * Add a Task of {@link TaskType} NONE with a given name
    */
-  TaskBuilder addTask(String name);
+  ProcessBuilder addTask(String name);
 
   /**
    * Add a Task of {@link TaskType} with a given name
    */
-  TaskBuilder addTask(String name, TaskType type);
+  ProcessBuilder addTask(String name, TaskType type);
 
   /**
    * Add a Gateway with a given name
    */
   GatewayBuilder addGateway(String name, GatewayType type);
-  
-  /**
-   * Add a {@link Message} with a given name.
-   */
-  MessageBuilder addProcessMessage(String name);
-  
-  /**
-   * Add a {@link Property} to the process
-   */
-  ProcessBuilder addProcessProperty(String name, String value);
-  
-  /**
-   * Add a {@link Property} to the current node
-   */
-  ProcessBuilder addNodeProperty(String name, String value);
-  
-  /**
-   * Add an Assignment to the Process.
-   */
-  ProcessBuilder addProcessAssignment(AssignTime time, ExpressionLanguage lang, String fromExpr, String toProp);
-  
-  /**
-   * Add an Assignment to the current {@link Node}.
-   */
-  ProcessBuilder addNodeAssignment(AssignTime time, ExpressionLanguage lang, String fromExpr, String toProp);
-  
-  /**
-   * Add an {@link ExecutionHandler} with a given Class
-   */
-  <T extends ExecutionHandler> ProcessBuilder addExecutionHandler(Class<T> clazz);
-
-  /**
-   * Add an {@link FlowHandler} with a given Class
-   */
-  <T extends FlowHandler> ProcessBuilder addFlowHandler(Class<T> clazz);
-
-  /**
-   * Add an {@link SignalHandler} with a given Class
-   */
-  <T extends SignalHandler> ProcessBuilder addSignalHandler(Class<T> clazz);
-
-  /**
-   * Add a group reference for the current node
-   */
-  ProcessBuilder addGroupRef(String name);
-  
-  /**
-   * Add a Process group
-   */
-  GroupBuilder addGroup(GroupType type, String name);
 }
\ No newline at end of file

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/TaskBuilder.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/TaskBuilder.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/TaskBuilder.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -1,75 +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.builder;
-
-//$Id$
-
-import org.jbpm.api.model.Expression.ExpressionLanguage;
-import org.jbpm.preview.model.Message;
-
-/**
- * The TaskBuilder can be used to build a Task dynamically.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface TaskBuilder extends ProcessBuilder
-{
-  /**
-   * Add an outgoing {@link Message} reference.
-   * <p/>
-   * The {@link Message} must be defined at {@link Process} level
-   */
-  TaskBuilder addOutMessageRef(String msgName);
-  
-  /**
-   * Add an incomming {@link Message} reference.
-   * <p/>
-   * The {@link Message} must be defined at {@link Process} level
-   */
-  TaskBuilder addInMessageRef(String msgName);
-  
-  /**
-   * Add an InputSet
-   */
-  TaskBuilder addInputSet();
-
-  /**
-   * Add an Property Input
-   */
-  TaskBuilder addPropertyInput(String name);
-
-  /**
-   * Add an OutputSet
-   */
-  TaskBuilder addOutputSet();
-
-  /**
-   * Add an Property Output
-   */
-  TaskBuilder addPropertyOutput(String name, String value);
-  
-  /**
-   * Add an IORule Expression
-   */
-  TaskBuilder addIORule(String body, ExpressionLanguage lang);
-}
\ No newline at end of file

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/DialectHandler.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -28,7 +28,7 @@
 import java.net.URI;
 import java.net.URL;
 
-import org.jbpm.api.client.ProcessDefinition;
+import org.jbpm.api.model.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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,10 +26,10 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.Process.ProcessStatus;
-import org.jbpm.api.model.StartEvent;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.Process.ProcessStatus;
 import org.jbpm.api.runtime.Attachments;
+import org.jbpm.preview.model.StartEvent;
 
 /**
  * The ExecutionService executes processes

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -24,8 +24,8 @@
 //$Id$
 
 import org.jbpm.api.client.Configuration;
-import org.jbpm.api.client.Process;
 import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.model.Process;
 import org.jbpm.api.model.builder.ProcessBuilder;
 
 /**

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -38,9 +38,8 @@
 import javax.xml.parsers.DocumentBuilderFactory;
 
 import org.jbpm.api.client.Configuration;
-import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.preview.client.Deployment;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.preview.service.PersistenceService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -106,23 +105,6 @@
   }
   
   /**
-   * Deploy a new ProcessDefinition to the ProcessDefinition service.
-   */
-  public ObjectName deploy(Deployment dep)
-  {
-    // Get the associated engine
-    ProcessEngine engine = getProcessEngine();
-
-    // Get the ProcessDefinition from the deployment
-    ProcessDefinition procDef = dep.getProcessDefinition(engine);
-    if (procDef == null)
-      throw new IllegalStateException("Cannot obtain ProcessDefinition from: " + dep);
-
-    ObjectName procDefID = registerProcessDefinition(procDef);
-    return procDefID;
-  }
-
-  /**
    * Register a ProcessDefinition.
    */
   public ObjectName registerProcessDefinition(ProcessDefinition procDef)

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -32,10 +32,10 @@
 import javax.management.ObjectName;
 
 import org.jbpm.api.client.Configuration;
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.client.Process.ProcessStatus;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.Process.ProcessStatus;
 import org.jbpm.preview.service.PersistenceService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/APITestCase.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/APITestCase.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/APITestCase.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -30,7 +30,7 @@
 import junit.framework.TestCase;
 
 import org.jbpm.api.Constants;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
+import org.jbpm.api.model.builder.ObjectNameFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestCase.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -36,8 +36,8 @@
 
 import org.jbpm.api.BPMException;
 import org.jbpm.api.client.Configuration;
-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.ProcessDefinitionService;

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/IntegrationTestHelper.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/IntegrationTestHelper.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/IntegrationTestHelper.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -31,7 +31,7 @@
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 
-import org.jbpm.preview.model.builder.ObjectNameFactory;
+import org.jbpm.api.model.builder.ObjectNameFactory;
 
 /**
  * An integration test helper that deals with test deployment/undeployment, etc.

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ProcessCatalog.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,18 +25,18 @@
 
 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;
-import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.preview.model.Assignment;
+import org.jbpm.preview.model.EndEvent;
+import org.jbpm.preview.model.Expression;
 import org.jbpm.preview.model.Message;
+import org.jbpm.preview.model.StartEvent;
+import org.jbpm.preview.model.Task;
 import org.jbpm.preview.model.Assignment.AssignTime;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * A catalog of CTS test processes
@@ -48,13 +48,14 @@
 {
   public static ProcessDefinition getDefaultProcess(ProcessEngine engine)
   {
-    ProcessBuilder builder = engine.getService(ProcessBuilderService.class).getProcessBuilder();
+    ProcessBuilderService pbService = engine.getService(ProcessBuilderService.class);
+    ProcessBuilderExt builder = (ProcessBuilderExt)pbService.getProcessBuilder();
     builder.addProcess("Proc");
     builder.addProcessProperty("proP1", "valP1").addProcessProperty("proP2", "valP2");
     builder.addProcessMessage("procMsg").addProperty("msgPropName", "msgPropVal");
     builder.addProcessAssignment(AssignTime.Start, Expression.ExpressionLanguage.MVEL, "foo==true", "fooTrue");
-    builder.addStartEvent("Start").addSequenceFlow("Task");
-    builder.addTask("Task").addNodeProperty("proT1", "valT1").addNodeProperty("proT2", "valT2");
+    builder.addStartEventExt("Start").addSequenceFlow("Task");
+    builder.addTaskExt("Task").addNodeProperty("proT1", "valT1").addNodeProperty("proT2", "valT2");
     builder.addSequenceFlow("End").addEndEvent("End");
     return builder.getProcessDefinition();
   }

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/client/Deployment.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/client/Deployment.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/client/Deployment.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -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;

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/client/ProcessAsync.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/client/ProcessAsync.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/client/ProcessAsync.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,7 +25,7 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.client.Process;
+import org.jbpm.api.model.Process;
 import org.jbpm.api.runtime.Attachments;
 
 /**

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/client/UserTaskCallback.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/client/UserTaskCallback.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/client/UserTaskCallback.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,12 +26,12 @@
 import javax.management.ObjectName;
 
 import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.model.builder.ObjectNameFactory;
 import org.jbpm.api.runtime.Attachments;
 import org.jbpm.api.runtime.BasicAttachments;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.UserTask;
 import org.jbpm.preview.model.builder.MessageBuilder;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
 import org.jbpm.preview.service.MessageBuilderService;
 import org.jbpm.preview.service.MessageService;
 

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Assignment.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Assignment.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Assignment.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -23,7 +23,6 @@
 
 import java.io.Serializable;
 
-import org.jbpm.api.model.Expression;
 
 
 //$Id$

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ComplexGateway.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ComplexGateway.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ComplexGateway.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -21,8 +21,6 @@
  */
 package org.jbpm.preview.model;
 
-import org.jbpm.api.model.Expression;
-import org.jbpm.api.model.Gateway;
 
 // $Id$
 

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/EndEvent.java (from rev 2917, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/EndEvent.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/EndEvent.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/EndEvent.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -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.preview.model;
+
+import org.jbpm.preview.model.Event.EventDetailType;
+
+
+//$Id$
+
+/**
+ * As the name implies, the End Event indicates where a Process will end. 
+ * 
+ * In terms of Sequence Flow, the End Event ends the flow of the Process, and thus, will not have any outgoing Sequence Flow. 
+ * An End Event can have a specific Result that will appear as a marker within the center of the End Event shape. 
+ * End Event Results are Message, Error, Compensation, Link, and Multiple.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface EndEvent extends Event
+{
+  /**
+   * Get the type od end result
+   */
+  EventDetailType getResultType();
+}
\ No newline at end of file

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Event.java (from rev 2918, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Event.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Event.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Event.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -0,0 +1,74 @@
+/*
+ * 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.preview.model;
+
+import org.jbpm.api.model.Node;
+
+
+//$Id$
+
+/**
+ * An Event is something that “happens” during the course of a business process. 
+ * <p/>
+ * These Events affect the flow of the Process and usually have a cause or an impact.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface Event extends Node
+{
+  /**
+   * Defines the type of an {@link Event}
+   */
+  enum EventType
+  {
+    Start, End, Intermediate 
+  };
+  
+  /**
+   * Defines the type of event detail
+   */
+  enum EventDetailType
+  {
+    None, Message, Error, Cancel, Compensation, Link, Multiple, Timer, Rule, Signal, Terminate 
+  }
+  
+  /**
+   * Get the type of this event
+   */
+  EventType getEventType();
+  
+  /**
+   * Get the detail type fopr this event
+   */
+  EventDetailType getDetailType();
+  
+  /**
+   * Get the associated signal ref
+   */
+  Signal getSignalRef();
+  
+  /**
+   * Get the associated message ref
+   */
+  Message getMessageRef();
+}
\ No newline at end of file

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ExclusiveGateway.java (from rev 2917, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/ExclusiveGateway.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ExclusiveGateway.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ExclusiveGateway.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -0,0 +1,57 @@
+/*
+ * 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.preview.model;
+
+
+//$Id$
+
+/**
+ * Exclusive Gateways (Decisions) are locations within a business process where the Sequence Flow can take two or more
+ * alternative paths. This is basically the “fork in the road” for a process. For a given performance (or instance) of the
+ * process, only one of the paths can be taken (this should not be confused with forking of paths—refer to “Forking Flow”)
+ * 
+ * A Decision is not an activity from the business process perspective, but is a type of Gateway that controls
+ * the Sequence Flow between activities. It can be thought of as a question that is asked at that point in the Process. The
+ * question has a defined set of alternative answers (Gates). Each Decision Gate is associated with a condition expression
+ * found within an outgoing Sequence Flow. When a Gate is chosen during the performance of the Process, the
+ * corresponding Sequence Flow is then chosen. A Token arriving at the Decision would be directed down the appropriate
+ * path, based on the chosen Gate.
+ * 
+ * The Exclusive Decision has two or more outgoing Sequence Flow, but only one of them may be taken during the
+ * performance of the Process. Thus, the Exclusive Decision defines a set of alternative paths for the Token to take as it
+ * traverses the Flow. There are two types of Exclusive Decisions: Data-Based and Event-Based.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface ExclusiveGateway extends Gateway
+{
+  enum ExclusiveType
+  {
+    Data, Event
+  }
+  
+  /**
+   * ExclusiveType is by default Data. The ExclusiveType MAY be set to Event.
+   */
+  ExclusiveType getExclusiveType();
+}
\ No newline at end of file

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Expression.java (from rev 2917, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Expression.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Expression.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Expression.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -0,0 +1,55 @@
+/*
+ * 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.preview.model;
+
+import java.io.Serializable;
+
+//$Id$
+
+/**
+ * An Expression, which is used in the definition of attributes for StartEvent,
+ * IntermediateEvent, Activity, ComplexGateway, and SequenceFlow
+ *  
+ * @author thomas.diesler at jboss.com
+ * @since 21-Jul-2008
+ */
+public interface Expression extends Serializable
+{
+  enum ExpressionLanguage
+  {
+    MVEL
+  }
+
+  /**
+   * An ExpressionBody MUST be entered to provide the text of the expression, which
+   * will be written in the language defined by the ExpressionLanguage attribute.
+   */
+  String getExpressionBody();
+  
+  /**
+   * A Language MUST be provided to identify the language of the ExpressionBody.
+   * The value of the ExpressionLanguage should follow the naming conventions for the
+   * version of the specified language.
+   */
+  ExpressionLanguage getExpressionLanguage();
+
+}

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Gate.java (from rev 2918, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Gate.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Gate.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Gate.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -0,0 +1,75 @@
+/*
+ * 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.preview.model;
+
+//$Id$
+
+import java.util.List;
+
+import org.jbpm.api.model.SequenceFlow;
+
+/**
+ * There MAY be zero or more Gates (except where noted below). Zero Gates are
+ * allowed if the Gateway is last object in a Process flow and there are no Start or
+ * End Events for the Process. If there are zero or only one incoming Sequence
+ * Flow, then there MUST be at least two Gates.
+ * 
+ * For Exclusive Data-Based Gateways
+ * When two Gates are required, one of them MAY be the DefaultGate.
+ * 
+ * For Exclusive Event-Based Gateways
+ * There MUST be two or more Gates. (Note that this type of Gateway does not act
+ * only as a Merge--it is always a Decision, at least.)
+ * 
+ * For Inclusive Gateways
+ * When two Gates are required, one of them MAY be the DefaultGate.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface Gate 
+{
+  /**
+   * Each Gate MUST have an associated (outgoing) Sequence Flow. 
+   * 
+   * For Exclusive Event-Based, Complex, and Parallel Gateways:
+   * The Sequence Flow MUST have its Condition attribute set to None (there is not an
+   * evaluation of a condition expression).
+   * 
+   * For Exclusive Data-Based, and Inclusive Gateways:
+   * The Sequence Flow MUST have its Condition attribute set to Expression and
+   * MUST have a valid ConditionExpression. The ConditionExpression MUST be
+   * unique for all the Gates within the Gateway. If there is only one Gate (i.e., the
+   * Gateway is acting only as a Merge), then Sequence Flow MUST have its Condition
+   * set to None.
+   * 
+   * For DefaultGates:
+   * The Sequence Flow MUST have its Condition attribute set to Otherwise
+   */
+  SequenceFlow getOutgoingSequenceFlow();
+
+  /**
+   * One or more assignment expressions MAY be made for each Gate. The
+   * Assignment SHALL be performed when the Gate is selected.
+   */
+  List<Assignment> getAssignments();
+}

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Gateway.java (from rev 2917, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Gateway.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Gateway.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Gateway.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -0,0 +1,86 @@
+/*
+ * 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.preview.model;
+
+//$Id$
+
+import java.util.List;
+
+import org.jbpm.api.model.Node;
+import org.jbpm.api.model.SequenceFlow;
+
+
+/**
+ * Gateways are modeling elements that are used to control how Sequence Flow interact as they converge and diverge within
+ * a Process. If the flow does not need to be controlled, then a Gateway is not needed. The term “Gateway” implies that
+ * there is a gating mechanism that either allows or disallows passage through the Gateway--that is, as Tokens arrive at a
+ * Gateway, they can be merged together on input and/or split apart on output as the Gateway mechanisms are invoked. To
+ * be more descriptive, a Gateway is actually a collection of “Gates.” 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface Gateway extends Node
+{
+  /**
+   * The GatewayType
+   * 
+   */
+  public enum GatewayType
+  {
+    Exclusive, Inclusive, Complex, Parallel
+  }
+
+  /**
+   * GatewayType is by default Exclusive. The GatewayType MAY be set to Inclusive, Complex, or Parallel. The GatewayType will determine the behavior of the Gateway,
+   * both for incoming and outgoing Sequence Flow
+   */
+  GatewayType getGatewayType();
+
+  /**
+   * There MAY be zero or more Gates (except where noted below). Zero Gates are allowed if the Gateway is last object in a Process flow and there are no Start or End
+   * Events for the Process. If there are zero or only one incoming Sequence Flow, then there MUST be at least two Gates.
+   * 
+   * For Exclusive Data-Based Gateways. 
+   * When two Gates are required, one of them MAY be the DefaultGate.
+   * 
+   * For Exclusive Event-Based Gateways.
+   * There MUST be two or more Gates. (Note that this type of Gateway does not act only as a Merge--it is always a Decision, at
+   * least.)
+   * 
+   * For Inclusive Gateways. 
+   * When two Gates are required, one of them MAY be the DefaultGate.
+   */
+  List<SequenceFlow> getGates();
+  
+  /**
+   * Get the optional default gate
+   * @return null if there is none
+   */
+  SequenceFlow getDefaultGate();
+  
+  /**
+   * Get the gate for the given target name
+   * @return null if there is none
+   */
+  SequenceFlow getGateByName(String targetName);
+}
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/InclusiveGateway.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/InclusiveGateway.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/InclusiveGateway.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -21,7 +21,6 @@
  */
 package org.jbpm.preview.model;
 
-import org.jbpm.api.model.Gateway;
 
 //$Id$
 

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ParallelGateway.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ParallelGateway.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ParallelGateway.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -21,7 +21,6 @@
  */
 package org.jbpm.preview.model;
 
-import org.jbpm.api.model.Gateway;
 
 // $Id$
 

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ReceiveTask.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ReceiveTask.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/ReceiveTask.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -21,7 +21,6 @@
  */
 package org.jbpm.preview.model;
 
-import org.jbpm.api.model.Task;
 
 //$Id$
 

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/SendTask.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/SendTask.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/SendTask.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -21,7 +21,6 @@
  */
 package org.jbpm.preview.model;
 
-import org.jbpm.api.model.Task;
 
 //$Id$
 

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/StartEvent.java (from rev 2917, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/StartEvent.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/StartEvent.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/StartEvent.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -0,0 +1,51 @@
+/*
+ * 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.preview.model;
+
+import org.jbpm.api.model.SequenceFlow;
+
+
+// $Id$
+
+/**
+ * A Start Event indicates where a particular Process will start. <p/> In terms of Sequence Flow, the Start Event starts
+ * the Flow of the Process, and thus, will not have any incoming Sequence Flow. A Start Event can have a Trigger that
+ * indicates how the Process starts: Message, Timer, Rule, Link, or Multiple.
+ * 
+ * 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.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface StartEvent extends Event
+{
+  /**
+   * Get the outgoing SequenceFlow
+   */
+  SequenceFlow getOutFlow();
+  
+  /**
+   * Get the start trigger type
+   */
+  EventDetailType getTriggerType();
+}
\ No newline at end of file

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Task.java (from rev 2918, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Task.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Task.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/Task.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -0,0 +1,97 @@
+/*
+ * 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.preview.model;
+
+//$Id$
+
+import java.util.List;
+
+import org.jbpm.api.model.Node;
+import org.jbpm.api.model.SequenceFlow;
+
+
+/**
+ * A Task is an Atomic Activity that is included within a Process.
+ * 
+ * A Task is used when the work in the Process is not broken down to a finer level of Process Model detail. Generally, an end-user and/or an application are used to
+ * perform the Task when it is executed.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface Task extends Node
+{
+  /**
+   * The TaskType
+   */
+  public enum TaskType
+  {
+    Service, Receive, Send, User, Script, Manual, Reference, None, Wait
+  }
+
+  /**
+   * TaskType is an attribute that has a default of None, but MAY be set to Send,
+   * Receive, User, Script, Manual, Reference, or Service. The TaskType will be
+   * impacted by the Message Flow to and/or from the Task, if Message Flow are
+   * used. A TaskType of Receive MUST NOT have an outgoing Message Flow. A
+   * TaskType of Send MUST NOT have an incoming Message Flow. A TaskType of
+   * Script or Manual MUST NOT have an incoming or an outgoing Message Flow.
+   * The TaskType list MAY be extended to include new types.
+   */
+  TaskType getTaskType();
+  
+  /**
+   * Get the incomming SequenceFlow
+   */
+  SequenceFlow getInFlow();
+  
+  /**
+   * Get the outgoing SequenceFlow
+   */
+  SequenceFlow getOutFlow();
+  
+  /**
+   * The InputSets attribute defines the data requirements for input to the Activity.
+   * Zero or more InputSets MAY be defined. Each Input set is sufficient to allow the
+   * Activity to be performed (if it has first been instantiated by the appropriate signal
+   * arriving from an incoming Sequence Flow)
+   */
+  List<InputSet> getInputSets();
+  
+  /**
+   * The OutputSets attribute defines the data requirements for output from the
+   * activity. Zero or more OutputSets MAY be defined. At the completion of the
+   * activity, only one of the OutputSets may be produced--It is up to the
+   * implementation of the activity to determine which set will be produced. However,
+   * the IORules attribute MAY indicate a relationship between an OutputSet and an
+   * InputSet that started the activity.
+   */
+  List<OutputSet> getOutputSets();
+  
+  /**
+   * The IORules attribute is a collection of expressions, each of which specifies the
+   * required relationship between one input and one output. That is, if the activity is
+   * instantiated with a specified input, that activity shall complete with the specified
+   * output.
+   */
+  List<Expression> getIORules();
+}
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/UserTask.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/UserTask.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/UserTask.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -21,7 +21,6 @@
  */
 package org.jbpm.preview.model;
 
-import org.jbpm.api.model.Task;
 import org.jbpm.preview.client.UserTaskCallback;
 
 //$Id$

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/WaitState.java (from rev 2917, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/WaitState.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/WaitState.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/WaitState.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -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.preview.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

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/EventBuilder.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/EventBuilder.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/EventBuilder.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -23,7 +23,6 @@
 
 //$Id$
 
-import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.preview.model.Signal.SignalType;
 
 /**
@@ -32,7 +31,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public interface EventBuilder extends ProcessBuilder
+public interface EventBuilder extends ProcessBuilderExt
 {
   /**
    * Add a signal ref to the last added EventDetail

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/ObjectNameFactory.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/ObjectNameFactory.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/ObjectNameFactory.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -1,74 +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.preview.model.builder;
-
-// $Id$
-
-import java.util.Hashtable;
-
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-
-/**
- * A simple factory for creating safe object names.
- *
- * @author Thomas.Diesler at jboss.org
- * @since 08-May-2006
- */
-public class ObjectNameFactory
-{
-   public static ObjectName create(String name)
-   {
-      try
-      {
-         return new ObjectName(name);
-      }
-      catch (MalformedObjectNameException e)
-      {
-         throw new Error("Invalid ObjectName: " + name + "; " + e);
-      }
-   }
-
-   public static ObjectName create(String domain, String key, String value)
-   {
-      try
-      {
-         return new ObjectName(domain, key, value);
-      }
-      catch (MalformedObjectNameException e)
-      {
-         throw new Error("Invalid ObjectName: " + domain + "," + key + "," + value + "; " + e);
-      }
-   }
-
-   public static ObjectName create(String domain, Hashtable<String, String> table)
-   {
-      try
-      {
-         return new ObjectName(domain, table);
-      }
-      catch (MalformedObjectNameException e)
-      {
-         throw new Error("Invalid ObjectName: " + domain + "," + table + "; " + e);
-      }
-   }
-}

Added: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/ProcessBuilderExt.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/ProcessBuilderExt.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/ProcessBuilderExt.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -0,0 +1,139 @@
+/*
+ * 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.preview.model.builder;
+
+//$Id$
+
+import org.jbpm.api.model.Node;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.builder.GatewayBuilder;
+import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.preview.model.Message;
+import org.jbpm.preview.model.Property;
+import org.jbpm.preview.model.Assignment.AssignTime;
+import org.jbpm.preview.model.Event.EventDetailType;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
+import org.jbpm.preview.model.Gateway.GatewayType;
+import org.jbpm.preview.model.Group.GroupType;
+import org.jbpm.preview.model.Task.TaskType;
+import org.jbpm.preview.runtime.ExecutionHandler;
+import org.jbpm.preview.runtime.FlowHandler;
+import org.jbpm.preview.runtime.SignalHandler;
+
+/**
+ * The ProcessBuilder can be used to build a {@link Process} dynamically.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface ProcessBuilderExt extends ProcessBuilder
+{
+  /**
+   * Add a SartEvent with a given name
+   */
+  EventBuilder addStartEventExt(String name);
+
+  /**
+   * Add a SartEvent with a given name and ResultType
+   */
+  EventBuilder addStartEventExt(String name, EventDetailType ResultType);
+
+  /**
+   * Add an IntermediateEvent with a given name
+   */
+  ProcessBuilderExt addEventExt(String name);
+
+  /**
+   * Add an EndEvent with a given name
+   */
+  EventBuilder addEndEventExt(String name);
+
+  /**
+   * Add an EndEvent with a given name and ResultType
+   */
+  EventBuilder addEndEventExt(String name, EventDetailType resultType);
+
+  /**
+   * Add a Task of {@link TaskType} NONE with a given name
+   */
+  TaskBuilder addTaskExt(String name);
+
+  /**
+   * Add a Task of {@link TaskType} with a given name
+   */
+  TaskBuilder addTaskExt(String name, TaskType type);
+
+  /**
+   * Add a Gateway with a given name
+   */
+  GatewayBuilder addGateway(String name, GatewayType type);
+  
+  /**
+   * Add a {@link Message} with a given name.
+   */
+  MessageBuilder addProcessMessage(String name);
+  
+  /**
+   * Add a {@link Property} to the process
+   */
+  ProcessBuilderExt addProcessProperty(String name, String value);
+  
+  /**
+   * Add a {@link Property} to the current node
+   */
+  ProcessBuilderExt addNodeProperty(String name, String value);
+  
+  /**
+   * Add an Assignment to the Process.
+   */
+  ProcessBuilderExt addProcessAssignment(AssignTime time, ExpressionLanguage lang, String fromExpr, String toProp);
+  
+  /**
+   * Add an Assignment to the current {@link Node}.
+   */
+  ProcessBuilderExt addNodeAssignment(AssignTime time, ExpressionLanguage lang, String fromExpr, String toProp);
+  
+  /**
+   * Add an {@link ExecutionHandler} with a given Class
+   */
+  <T extends ExecutionHandler> ProcessBuilderExt addExecutionHandler(Class<T> clazz);
+
+  /**
+   * Add an {@link FlowHandler} with a given Class
+   */
+  <T extends FlowHandler> ProcessBuilderExt addFlowHandler(Class<T> clazz);
+
+  /**
+   * Add an {@link SignalHandler} with a given Class
+   */
+  <T extends SignalHandler> ProcessBuilderExt addSignalHandler(Class<T> clazz);
+
+  /**
+   * Add a group reference for the current node
+   */
+  ProcessBuilderExt addGroupRef(String name);
+  
+  /**
+   * Add a Process group
+   */
+  GroupBuilder addGroup(GroupType type, String name);
+}
\ No newline at end of file


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

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/TaskBuilder.java (from rev 2918, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/TaskBuilder.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/TaskBuilder.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/model/builder/TaskBuilder.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -0,0 +1,75 @@
+/*
+ * 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.preview.model.builder;
+
+//$Id$
+
+import org.jbpm.preview.model.Message;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
+
+/**
+ * The TaskBuilder can be used to build a Task dynamically.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface TaskBuilder extends ProcessBuilderExt
+{
+  /**
+   * Add an outgoing {@link Message} reference.
+   * <p/>
+   * The {@link Message} must be defined at {@link Process} level
+   */
+  TaskBuilder addOutMessageRef(String msgName);
+  
+  /**
+   * Add an incomming {@link Message} reference.
+   * <p/>
+   * The {@link Message} must be defined at {@link Process} level
+   */
+  TaskBuilder addInMessageRef(String msgName);
+  
+  /**
+   * Add an InputSet
+   */
+  TaskBuilder addInputSet();
+
+  /**
+   * Add an Property Input
+   */
+  TaskBuilder addPropertyInput(String name);
+
+  /**
+   * Add an OutputSet
+   */
+  TaskBuilder addOutputSet();
+
+  /**
+   * Add an Property Output
+   */
+  TaskBuilder addPropertyOutput(String name, String value);
+  
+  /**
+   * Add an IORule Expression
+   */
+  TaskBuilder addIORule(String body, ExpressionLanguage lang);
+}
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/service/MessageService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/service/MessageService.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/service/MessageService.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -32,16 +32,16 @@
 import javax.management.ObjectName;
 
 import org.jbpm.api.client.Configuration;
-import org.jbpm.api.client.Process;
 import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.model.Event;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.Task;
+import org.jbpm.api.model.Process;
 import org.jbpm.api.service.AbstractService;
 import org.jbpm.api.service.ProcessInstanceService;
 import org.jbpm.preview.client.MessageListener;
+import org.jbpm.preview.model.Event;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Participant;
+import org.jbpm.preview.model.Task;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/service/PersistenceService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/service/PersistenceService.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/preview/service/PersistenceService.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -27,10 +27,10 @@
 
 import org.hibernate.Session;
 import org.jbpm.api.client.Configuration;
-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.Process;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.AbstractService;
 
 /**

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,18 +25,18 @@
 
 import java.io.IOException;
 
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process.ProcessStatus;
 import org.jbpm.api.client.Token.TokenStatus;
-import org.jbpm.api.model.Expression.ExpressionLanguage;
-import org.jbpm.api.model.Gateway.GatewayType;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.Process.ProcessStatus;
 import org.jbpm.api.model.builder.GatewayBuilder;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.runtime.BasicAttachments;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
+import org.jbpm.preview.model.Gateway.GatewayType;
 
 /**
  * Exclusive data-based gateway that has conditional outgoing sequence flows. Only one of the gates is taken. It is an

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessBuilderTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -24,7 +24,7 @@
 // $Id$
 
 import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.ProcessDefinition;
+import org.jbpm.api.model.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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -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.Process;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessDefinitionService;
 import org.jbpm.api.service.ProcessInstanceService;
 import org.jbpm.api.test.CTSTestCase;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,8 +25,8 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.service.ProcessDefinitionService;

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/waitstate/WaitStateTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/waitstate/WaitStateTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/waitstate/WaitStateTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,15 +25,15 @@
 
 import java.io.IOException;
 
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process.ProcessStatus;
 import org.jbpm.api.client.Token.TokenStatus;
-import org.jbpm.api.model.Task.TaskType;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.Process.ProcessStatus;
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
+import org.jbpm.preview.model.Task.TaskType;
 
 /**
  * Test the basic wait state sequence
@@ -77,12 +77,12 @@
 
   public ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder builder = ProcessBuilderService.locateProcessBuilder();
-    builder.addProcess("Proc").addStartEvent("Start").addSequenceFlow("TaskA");
-    builder.addTask("TaskA", TaskType.Wait).addSequenceFlow("TaskB");
-    builder.addTask("TaskB", TaskType.Wait).addSequenceFlow("TaskC");
-    builder.addTask("TaskC", TaskType.Wait).addSequenceFlow("End");
-    builder.addEndEvent("End");
-    return builder.getProcessDefinition();
+    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    procBuilder.addProcess("Proc").addStartEvent("Start").addSequenceFlow("TaskA");
+    procBuilder.addTask("TaskA", TaskType.Wait).addSequenceFlow("TaskB");
+    procBuilder.addTask("TaskB", TaskType.Wait).addSequenceFlow("TaskC");
+    procBuilder.addTask("TaskC", TaskType.Wait).addSequenceFlow("End");
+    procBuilder.addEndEvent("End");
+    return procBuilder.getProcessDefinition();
   }
 }

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/exclusivechoice/ExclusiveChoiceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,16 +26,16 @@
 import java.io.IOException;
 import java.util.List;
 
-import org.jbpm.api.client.ProcessDefinition;
-import org.jbpm.api.model.Gateway;
-import org.jbpm.api.model.Expression.ExpressionLanguage;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.builder.GatewayBuilder;
-import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.runtime.BasicAttachments;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
+import org.jbpm.preview.model.Gateway;
 import org.jbpm.preview.model.Signal;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Exclusive data-based gateway that has conditional outgoing sequence flows. 
@@ -97,12 +97,12 @@
 
   public ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess(getName()).addStartEvent("Start").addSequenceFlow("Split");
     GatewayBuilder gatewayBuilder = procBuilder.addGateway("Split", Gateway.GatewayType.Exclusive);
     gatewayBuilder.addConditionalGate("EndA", ExpressionLanguage.MVEL, "foo < 10");
     gatewayBuilder.addConditionalGate("EndB", ExpressionLanguage.MVEL, "foo > 10");
-    procBuilder.addEndEvent("EndA").addEndEvent("EndB");
+    procBuilder.addEndEventExt("EndA").addEndEventExt("EndB");
     return procBuilder.getProcessDefinition();
   }
 }

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/multichoice/MultiChoiceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,16 +26,16 @@
 import java.io.IOException;
 import java.util.List;
 
-import org.jbpm.api.client.ProcessDefinition;
-import org.jbpm.api.model.Gateway;
-import org.jbpm.api.model.Expression.ExpressionLanguage;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.builder.GatewayBuilder;
-import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.runtime.BasicAttachments;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
+import org.jbpm.preview.model.Gateway;
 import org.jbpm.preview.model.Signal;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Inclusive gateway that has conditional outgoing sequence flows. 
@@ -77,12 +77,12 @@
 
   public ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("MultiChoiceTest").addStartEvent("Start").addSequenceFlow("Split");
     GatewayBuilder gatewayBuilder = procBuilder.addGateway("Split", Gateway.GatewayType.Inclusive);
     gatewayBuilder.addConditionalGate("EndA", ExpressionLanguage.MVEL, "foo < 10");
     gatewayBuilder.addConditionalGate("EndB", ExpressionLanguage.MVEL, "foo < 20");
-    procBuilder.addEndEvent("EndA").addEndEvent("EndB");
+    procBuilder.addEndEventExt("EndA").addEndEventExt("EndB");
     return procBuilder.getProcessDefinition();
   }
 }
\ No newline at end of file

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/parallelsplit/ParallelSplitTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -28,14 +28,14 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.client.ProcessDefinition;
-import org.jbpm.api.model.Gateway;
-import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
+import org.jbpm.preview.model.Gateway;
 import org.jbpm.preview.model.Signal;
 import org.jbpm.preview.model.Signal.SignalType;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Parallel gateway that has uncontrolled outgoing sequence flows. 
@@ -66,7 +66,7 @@
 
   public ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess(getName()).addStartEvent("Start").addSequenceFlow("Split").addGateway("Split", Gateway.GatewayType.Parallel).
     addSequenceFlow("EndA").addSequenceFlow("EndB").addEndEvent("EndA").addEndEvent("EndB");
     return procBuilder.getProcessDefinition();

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequencePersistenceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -27,7 +27,7 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.client.ProcessDefinition;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.preview.service.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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,13 +26,13 @@
 import java.io.IOException;
 import java.util.List;
 
-import org.jbpm.api.client.ProcessDefinition;
-import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Signal;
 import org.jbpm.preview.model.Signal.SignalType;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Test the basic execution sequence
@@ -66,9 +66,9 @@
 
   public ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder builder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt builder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     builder.addProcess("Proc").addStartEvent("Start").addSequenceFlow("Task");
-    builder.addTask("Task").addSequenceFlow("End").addEndEvent("End");
+    builder.addTaskExt("Task").addSequenceFlow("End").addEndEvent("End");
     return builder.getProcessDefinition();
   }
 }

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,13 +26,13 @@
 import java.io.IOException;
 import java.util.List;
 
-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.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Signal;
+import org.jbpm.preview.model.Gateway.GatewayType;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Inclusive gateway that has multiple incoming sequence flows. All tokens arriving from incoming sequence flows
@@ -60,11 +60,11 @@
 
   public ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("ParallelGatewayMerge").addStartEvent("Start").addSequenceFlow("Split");
     procBuilder.addGateway("Split", GatewayType.Inclusive).addSequenceFlow("TaskA").addSequenceFlow("TaskB");
-    procBuilder.addTask("TaskA").addSequenceFlow("Merge");
-    procBuilder.addTask("TaskB").addSequenceFlow("Merge");
+    procBuilder.addTaskExt("TaskA").addSequenceFlow("Merge");
+    procBuilder.addTaskExt("TaskB").addSequenceFlow("Merge");
     procBuilder.addGateway("Merge", GatewayType.Inclusive).addSequenceFlow("End");
     procBuilder.addEndEvent("End");
     return procBuilder.getProcessDefinition();

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,17 +25,17 @@
 
 import java.io.IOException;
 
-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;
-import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Assignment.AssignTime;
+import org.jbpm.preview.model.Event.EventDetailType;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
+import org.jbpm.preview.model.Gateway.GatewayType;
 import org.jbpm.preview.model.builder.MessageBuilder;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Parallel gateway that that has multiple incoming sequence flows. Each token arriving from an incoming sequence flow
@@ -66,13 +66,13 @@
 
   public ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("ParallelGatewayMerge").addStartEvent("Start").addSequenceFlow("Split");
     procBuilder.addGateway("Split", GatewayType.Parallel).addSequenceFlow("TaskA").addSequenceFlow("TaskB");
-    procBuilder.addTask("TaskA").addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "'TaskA'", "taskValueA").addSequenceFlow("Merge");
-    procBuilder.addTask("TaskB").addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "'TaskB'", "taskValueB").addSequenceFlow("Merge");
+    procBuilder.addTaskExt("TaskA").addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "'TaskA'", "taskValueA").addSequenceFlow("Merge");
+    procBuilder.addTaskExt("TaskB").addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "'TaskB'", "taskValueB").addSequenceFlow("Merge");
     procBuilder.addGateway("Merge", GatewayType.Parallel).addSequenceFlow("End");
-    procBuilder.addEndEvent("End", EventDetailType.Message).addMessageRef("EndMessage");
+    procBuilder.addEndEventExt("End", EventDetailType.Message).addMessageRef("EndMessage");
     MessageBuilder msgBuilder = procBuilder.addProcessMessage("EndMessage");
     msgBuilder.addToRef(getTestID()).addProperty("taskValueA", null, true).addProperty("taskValueB", null, true);
     return procBuilder.getProcessDefinition();

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/casedata/CaseDataTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,16 +25,16 @@
 
 import java.io.IOException;
 
-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;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Assignment.AssignTime;
+import org.jbpm.preview.model.Event.EventDetailType;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
 import org.jbpm.preview.model.builder.MessageBuilder;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Data elements are supported which are specific to a process instance or case. They can be accessed by all components
@@ -62,12 +62,12 @@
 
   protected ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("CaseData");
     procBuilder.addProcessAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "CaseData_foo", "propValue");
     procBuilder.addProcessProperty("foo", "bar").addStartEvent("Start").addSequenceFlow("TaskA");
-    procBuilder.addTask("TaskA").addSequenceFlow("End");
-    procBuilder.addEndEvent("End", EventDetailType.Message).addMessageRef("EndMessage");
+    procBuilder.addTaskExt("TaskA").addSequenceFlow("End");
+    procBuilder.addEndEventExt("End", EventDetailType.Message).addMessageRef("EndMessage");
     MessageBuilder msgBuilder = procBuilder.addProcessMessage("EndMessage");
     msgBuilder.addToRef(getTestID()).addProperty("propValue", null, true);
     return procBuilder.getProcessDefinition();

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/data/taskdata/TaskDataTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,17 +25,17 @@
 
 import java.io.IOException;
 
-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;
-import org.jbpm.api.model.builder.TaskBuilder;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Assignment.AssignTime;
+import org.jbpm.preview.model.Event.EventDetailType;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
 import org.jbpm.preview.model.builder.MessageBuilder;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
+import org.jbpm.preview.model.builder.TaskBuilder;
 
 /**
  * Data elements can be defined by tasks which are accessible only within the context of individual execution instances
@@ -63,12 +63,12 @@
 
   protected ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("TaskData").addStartEvent("Start").addSequenceFlow("TaskA");
-    TaskBuilder taskBuilder = procBuilder.addTask("TaskA");
+    TaskBuilder taskBuilder = procBuilder.addTaskExt("TaskA");
     taskBuilder.addNodeProperty("foo", "bar").addSequenceFlow("End");
     taskBuilder.addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "TaskData_TaskA_foo", "foo");
-    procBuilder.addEndEvent("End", EventDetailType.Message).addMessageRef("EndMessage");
+    procBuilder.addEndEventExt("End", EventDetailType.Message).addMessageRef("EndMessage");
     MessageBuilder msgBuilder = procBuilder.addProcessMessage("EndMessage");
     msgBuilder.addToRef(getTestID()).addProperty("foo", null, true);
     return procBuilder.getProcessDefinition();

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent/EndEventMessageTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent/EndEventMessageTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/endevent/EndEventMessageTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,15 +25,15 @@
 
 import java.io.IOException;
 
-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.ProcessDefinition;
 import org.jbpm.api.runtime.BasicAttachments;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Message;
+import org.jbpm.preview.model.Event.EventDetailType;
 import org.jbpm.preview.model.builder.MessageBuilder;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Test end event with message result
@@ -63,10 +63,11 @@
 
   public ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("EndEventMessage").addStartEvent("Start");
-    procBuilder.addSequenceFlow("TaskA").addTask("TaskA").addSequenceFlow("End");
-    procBuilder.addEndEvent("End", EventDetailType.Message).addMessageRef("EndMessage");
+    procBuilder.addSequenceFlow("TaskA");
+    procBuilder.addTaskExt("TaskA").addSequenceFlow("End");
+    procBuilder.addEndEventExt("End", EventDetailType.Message).addMessageRef("EndMessage");
     MessageBuilder msgBuilder = procBuilder.addProcessMessage("EndMessage");
     msgBuilder.addToRef(getTestID()).addProperty("kermit", null, true);
     return procBuilder.getProcessDefinition();

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/exclusive/ExclusiveGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/exclusive/ExclusiveGatewayMergeTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/exclusive/ExclusiveGatewayMergeTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,13 +26,13 @@
 import java.io.IOException;
 import java.util.List;
 
-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.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Signal;
+import org.jbpm.preview.model.Gateway.GatewayType;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Exclusive data-based gateway that has multiple incoming sequence flows. The first token arriving from one of the
@@ -62,11 +62,11 @@
 
   public ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("ExclusiveGatewayMerge").addStartEvent("Start").addSequenceFlow("Split");
     procBuilder.addGateway("Split", GatewayType.Inclusive).addSequenceFlow("TaskA").addSequenceFlow("TaskB");
-    procBuilder.addTask("TaskA").addSequenceFlow("Merge");
-    procBuilder.addTask("TaskB").addSequenceFlow("Merge");
+    procBuilder.addTaskExt("TaskA").addSequenceFlow("Merge");
+    procBuilder.addTaskExt("TaskB").addSequenceFlow("Merge");
     procBuilder.addGateway("Merge", GatewayType.Exclusive).addSequenceFlow("End");
     procBuilder.addEndEvent("End");
     return procBuilder.getProcessDefinition();

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewayMergeTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewayMergeTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,13 +26,13 @@
 import java.io.IOException;
 import java.util.List;
 
-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.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Signal;
+import org.jbpm.preview.model.Gateway.GatewayType;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Inclusive gateway that has multiple incoming sequence flows. All tokens arriving from incoming sequence flows
@@ -60,11 +60,11 @@
 
   public ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("ParallelGatewayMerge").addStartEvent("Start").addSequenceFlow("Split");
     procBuilder.addGateway("Split", GatewayType.Inclusive).addSequenceFlow("TaskA").addSequenceFlow("TaskB");
-    procBuilder.addTask("TaskA").addSequenceFlow("Merge");
-    procBuilder.addTask("TaskB").addSequenceFlow("Merge");
+    procBuilder.addTaskExt("TaskA").addSequenceFlow("Merge");
+    procBuilder.addTaskExt("TaskB").addSequenceFlow("Merge");
     procBuilder.addGateway("Merge", GatewayType.Inclusive).addSequenceFlow("End");
     procBuilder.addEndEvent("End");
     return procBuilder.getProcessDefinition();

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewaySplitTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/inclusive/InclusiveGatewaySplitTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,16 +26,16 @@
 import java.io.IOException;
 import java.util.List;
 
-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.ProcessDefinition;
 import org.jbpm.api.model.builder.GatewayBuilder;
-import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.runtime.BasicAttachments;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Signal;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
+import org.jbpm.preview.model.Gateway.GatewayType;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Inclusive gateway that has conditional outgoing sequence flows. 
@@ -77,12 +77,12 @@
 
   public ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("InclusiveGatewaySplitTest").addStartEvent("Start").addSequenceFlow("Split");
     GatewayBuilder gatewayBuilder = procBuilder.addGateway("Split", GatewayType.Inclusive);
     gatewayBuilder.addConditionalGate("EndA", ExpressionLanguage.MVEL, "foo < 10");
     gatewayBuilder.addConditionalGate("EndB", ExpressionLanguage.MVEL, "foo < 20");
-    procBuilder.addEndEvent("EndA").addEndEvent("EndB");
+    procBuilder.addEndEventExt("EndA").addEndEventExt("EndB");
     return procBuilder.getProcessDefinition();
   }
 }
\ No newline at end of file

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewayMergeTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewayMergeTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,17 +25,17 @@
 
 import java.io.IOException;
 
-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;
-import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Assignment.AssignTime;
+import org.jbpm.preview.model.Event.EventDetailType;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
+import org.jbpm.preview.model.Gateway.GatewayType;
 import org.jbpm.preview.model.builder.MessageBuilder;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Parallel gateway that that has multiple incoming sequence flows. Each token arriving from an incoming sequence flow
@@ -66,13 +66,13 @@
 
   public ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("ParallelGatewayMerge").addStartEvent("Start").addSequenceFlow("Split");
     procBuilder.addGateway("Split", GatewayType.Parallel).addSequenceFlow("TaskA").addSequenceFlow("TaskB");
-    procBuilder.addTask("TaskA").addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "'TaskA'", "taskValueA").addSequenceFlow("Merge");
-    procBuilder.addTask("TaskB").addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "'TaskB'", "taskValueB").addSequenceFlow("Merge");
+    procBuilder.addTaskExt("TaskA").addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "'TaskA'", "taskValueA").addSequenceFlow("Merge");
+    procBuilder.addTaskExt("TaskB").addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "'TaskB'", "taskValueB").addSequenceFlow("Merge");
     procBuilder.addGateway("Merge", GatewayType.Parallel).addSequenceFlow("End");
-    procBuilder.addEndEvent("End", EventDetailType.Message).addMessageRef("EndMessage");
+    procBuilder.addEndEventExt("End", EventDetailType.Message).addMessageRef("EndMessage");
     MessageBuilder msgBuilder = procBuilder.addProcessMessage("EndMessage");
     msgBuilder.addToRef(getTestID()).addProperty("taskValueA", null, true).addProperty("taskValueB", null, true);
     return procBuilder.getProcessDefinition();

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewaySplitTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/gateway/parallel/ParallelGatewaySplitTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -28,14 +28,14 @@
 
 import javax.management.ObjectName;
 
-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.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Signal;
+import org.jbpm.preview.model.Gateway.GatewayType;
 import org.jbpm.preview.model.Signal.SignalType;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Parallel gateway that has uncontrolled outgoing sequence flows. All of them are taken, which leads to parallel paths
@@ -66,9 +66,9 @@
 
   public ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("ParallelGatewaySplit").addStartEvent("Start").addSequenceFlow("Split");
     procBuilder.addGateway("Split", GatewayType.Parallel).addSequenceFlow("EndA").addSequenceFlow("EndB");
-    return procBuilder.addEndEvent("EndA").addEndEvent("EndB").getProcessDefinition();
+    return procBuilder.addEndEventExt("EndA").addEndEventExt("EndB").getProcessDefinition();
   }
 }

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeInputSetTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeInputSetTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeInputSetTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,16 +25,16 @@
 
 import java.io.IOException;
 
-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;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.runtime.BasicAttachments;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Message;
+import org.jbpm.preview.model.Event.EventDetailType;
 import org.jbpm.preview.model.builder.MessageBuilder;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
+import org.jbpm.preview.model.builder.TaskBuilder;
 
 /**
  * InputSets define the data requirements for input to the activity. Zero or more InputSets MAY be defined. Each
@@ -84,11 +84,11 @@
 
   protected ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("ActivityInputSet").addStartEvent("Start").addSequenceFlow("TaskA");
-    TaskBuilder taskBuilder = procBuilder.addTask("TaskA");
+    TaskBuilder taskBuilder = procBuilder.addTaskExt("TaskA");
     taskBuilder.addInputSet().addPropertyInput("frog").addSequenceFlow("End");
-    procBuilder.addEndEvent("End", EventDetailType.Message).addMessageRef("EndMessage");
+    procBuilder.addEndEventExt("End", EventDetailType.Message).addMessageRef("EndMessage");
     MessageBuilder msgBuilder = procBuilder.addProcessMessage("EndMessage");
     msgBuilder.addToRef(getTestID()).addProperty("frog", null, true);
     return procBuilder.getProcessDefinition();

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeOutputSetTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeOutputSetTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodeOutputSetTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,15 +25,15 @@
 
 import java.io.IOException;
 
-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;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Message;
+import org.jbpm.preview.model.Event.EventDetailType;
 import org.jbpm.preview.model.builder.MessageBuilder;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
+import org.jbpm.preview.model.builder.TaskBuilder;
 
 /**
  * OutputSets define the data requirements for output from the activity. Zero or more OutputSets MAY be defined. At the
@@ -63,11 +63,11 @@
 
   protected ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("ActivityInputSet").addStartEvent("Start").addSequenceFlow("TaskA");
-    TaskBuilder taskBuilder = procBuilder.addTask("TaskA");
+    TaskBuilder taskBuilder = procBuilder.addTaskExt("TaskA");
     taskBuilder.addOutputSet().addPropertyOutput("frog", "kermit").addSequenceFlow("End");
-    procBuilder.addEndEvent("End", EventDetailType.Message).addMessageRef("EndMessage");
+    procBuilder.addEndEventExt("End", EventDetailType.Message).addMessageRef("EndMessage");
     MessageBuilder msgBuilder = procBuilder.addProcessMessage("EndMessage");
     msgBuilder.addToRef(getTestID()).addProperty("frog", null, true);
     return procBuilder.getProcessDefinition();

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodePropertyTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodePropertyTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/node/NodePropertyTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,17 +25,17 @@
 
 import java.io.IOException;
 
-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;
-import org.jbpm.api.model.builder.TaskBuilder;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Assignment.AssignTime;
+import org.jbpm.preview.model.Event.EventDetailType;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
 import org.jbpm.preview.model.builder.MessageBuilder;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
+import org.jbpm.preview.model.builder.TaskBuilder;
 
 /**
  * Modeler-defined Properties MAY be added to an activity. These Properties are "local" to the activity. These
@@ -64,12 +64,12 @@
 
   protected ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("ActivityProperties").addStartEvent("Start").addSequenceFlow("TaskA");
-    TaskBuilder taskBuilder = procBuilder.addTask("TaskA");
+    TaskBuilder taskBuilder = procBuilder.addTaskExt("TaskA");
     taskBuilder.addNodeProperty("foo", "bar").addSequenceFlow("End");
     taskBuilder.addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "ActivityProperties_TaskA_foo", "propValue");
-    procBuilder.addEndEvent("End", EventDetailType.Message).addMessageRef("EndMessage");
+    procBuilder.addEndEventExt("End", EventDetailType.Message).addMessageRef("EndMessage");
     MessageBuilder msgBuilder = procBuilder.addProcessMessage("EndMessage");
     msgBuilder.addToRef(getTestID()).addProperty("propValue", null, true);
     return procBuilder.getProcessDefinition();

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/ProcessPropertyTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/ProcessPropertyTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/process/ProcessPropertyTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,16 +25,16 @@
 
 import java.io.IOException;
 
-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;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Assignment.AssignTime;
+import org.jbpm.preview.model.Event.EventDetailType;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
 import org.jbpm.preview.model.builder.MessageBuilder;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Modeler-defined Properties MAY be added to a Process. These Properties are "local" to the Process. All Tasks,
@@ -69,12 +69,12 @@
 
   protected ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("ProcessProperties").addStartEvent("Start").addSequenceFlow("TaskA");
     procBuilder.addProcessAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "ProcessProperties_foo", "propValue");
     procBuilder.addProcessProperty("foo", "bar");
-    procBuilder.addTask("TaskA").addSequenceFlow("End");
-    procBuilder.addEndEvent("End", EventDetailType.Message).addMessageRef("EndMessage");
+    procBuilder.addTaskExt("TaskA").addSequenceFlow("End");
+    procBuilder.addEndEventExt("End", EventDetailType.Message).addMessageRef("EndMessage");
     MessageBuilder msgBuilder = procBuilder.addProcessMessage("EndMessage");
     msgBuilder.addToRef(getTestID()).addProperty("propValue", null, true);
     return procBuilder.getProcessDefinition();

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/StartEventSignalTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/StartEventSignalTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/startevent/StartEventSignalTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -28,11 +28,7 @@
 
 import javax.management.ObjectName;
 
-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;
-import org.jbpm.api.model.builder.TaskBuilder;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.service.ProcessDefinitionService;
 import org.jbpm.api.service.ProcessInstanceService;
@@ -42,9 +38,13 @@
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Signal;
 import org.jbpm.preview.model.Assignment.AssignTime;
+import org.jbpm.preview.model.Event.EventDetailType;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
 import org.jbpm.preview.model.Signal.SignalType;
 import org.jbpm.preview.model.builder.EventBuilder;
 import org.jbpm.preview.model.builder.MessageBuilder;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
+import org.jbpm.preview.model.builder.TaskBuilder;
 import org.jbpm.preview.service.SignalService;
 
 /**
@@ -94,13 +94,15 @@
 
   public ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
-    EventBuilder eventBuilder = procBuilder.addProcess("StartEventSignal").addStartEvent("StartA", EventDetailType.Signal);
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
+    procBuilder.addProcess("StartEventSignal");
+    EventBuilder eventBuilder = procBuilder.addStartEventExt("StartA", EventDetailType.Signal);
     eventBuilder.addSignalRef(SignalType.SYSTEM_START_TRIGGER, "A");
-    TaskBuilder taskBuilder = procBuilder.addSequenceFlow("TaskA").addTask("TaskA");
+    procBuilder.addSequenceFlow("TaskA");
+    TaskBuilder taskBuilder = procBuilder.addTaskExt("TaskA");
     taskBuilder.addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "'TaskA'", "taskValue");
     taskBuilder.addSequenceFlow("End");
-    procBuilder.addEndEvent("End", EventDetailType.Message).addMessageRef("EndMessage");
+    procBuilder.addEndEventExt("End", EventDetailType.Message).addMessageRef("EndMessage");
     MessageBuilder msgBuilder = procBuilder.addProcessMessage("EndMessage");
     msgBuilder.addToRef(getTestID()).addProperty("taskValue", null, true);
     return procBuilder.getProcessDefinition();

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/JavaTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/JavaTaskTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/java/JavaTaskTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,16 +25,16 @@
 
 import java.io.IOException;
 
-import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.Token;
-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.ProcessDefinition;
 import org.jbpm.api.runtime.Attachments;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Assignment.AssignTime;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
+import org.jbpm.preview.model.builder.TaskBuilder;
 import org.jbpm.preview.runtime.BasicNodeHandler;
 import org.jbpm.preview.runtime.ExecutionHandler;
 
@@ -62,11 +62,12 @@
 
   protected ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
-    procBuilder.addProcess("TaskExecutionHandlerTest").addProcessProperty("procProp", "kermit");
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
+    procBuilder.addProcess("TaskExecutionHandlerTest");
+    procBuilder.addProcessProperty("procProp", "kermit");
     procBuilder.addProcessAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "TaskExecutionHandlerTest_procProp == 'kermit'", "procAssign");
     procBuilder.addStartEvent("Start").addSequenceFlow("TaskA");
-    TaskBuilder taskBuilder = procBuilder.addTask("TaskA");
+    TaskBuilder taskBuilder = procBuilder.addTaskExt("TaskA");
     taskBuilder.addNodeProperty("taskProp", "piggy").addExecutionHandler(TaskExecutionHandler.class).addSequenceFlow("End");
     taskBuilder.addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "TaskExecutionHandlerTest_TaskA_taskProp == 'piggy'", "taskAssign");
     procBuilder.addEndEvent("End");

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/ReceiveTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/ReceiveTaskTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/receive/ReceiveTaskTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -28,10 +28,7 @@
 import javax.management.ObjectName;
 
 import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.ProcessDefinition;
-import org.jbpm.api.model.Event.EventDetailType;
-import org.jbpm.api.model.Task.TaskType;
-import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.service.ProcessDefinitionService;
 import org.jbpm.api.service.ProcessInstanceService;
@@ -40,9 +37,12 @@
 import org.jbpm.preview.client.SignalListener;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Signal;
+import org.jbpm.preview.model.Event.EventDetailType;
 import org.jbpm.preview.model.Signal.SignalType;
+import org.jbpm.preview.model.Task.TaskType;
 import org.jbpm.preview.model.builder.EventBuilder;
 import org.jbpm.preview.model.builder.MessageBuilder;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 import org.jbpm.preview.service.MessageBuilderService;
 import org.jbpm.preview.service.MessageService;
 import org.jbpm.preview.service.SignalService;
@@ -57,9 +57,9 @@
 {
   public void testReceiveTaskWithNoMessage() throws Exception
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("ReceiveTaskTest").addStartEvent("Start").addSequenceFlow("TaskA");
-    procBuilder.addTask("TaskA", TaskType.Receive).addSequenceFlow("End").addEndEvent("End");
+    procBuilder.addTaskExt("TaskA", TaskType.Receive).addSequenceFlow("End").addEndEvent("End");
     try
     {
       procBuilder.getProcessDefinition();
@@ -167,13 +167,14 @@
 
   protected ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("ReceiveTaskTest");
     procBuilder.addProcessMessage("ReceiveTaskMessage").addProperty("foo", null, true);
     procBuilder.addProcessMessage("EndEventMessage").addToRef(getTestID()).addProperty("foo", null, true);
     procBuilder.addStartEvent("Start").addSequenceFlow("TaskA");
-    procBuilder.addTask("TaskA", TaskType.Receive).addInMessageRef("ReceiveTaskMessage");
-    EventBuilder eventBuilder = procBuilder.addSequenceFlow("End").addEndEvent("End", EventDetailType.Message);
+    procBuilder.addTaskExt("TaskA", TaskType.Receive).addInMessageRef("ReceiveTaskMessage");
+    procBuilder.addSequenceFlow("End");
+    EventBuilder eventBuilder = procBuilder.addEndEventExt("End", EventDetailType.Message);
     eventBuilder.addMessageRef("EndEventMessage");
     return procBuilder.getProcessDefinition();
   }

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/SendTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/SendTaskTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/send/SendTaskTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -27,15 +27,15 @@
 import java.util.List;
 
 import org.jbpm.api.InvalidProcessException;
-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.ProcessDefinition;
 import org.jbpm.api.runtime.BasicAttachments;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Message;
+import org.jbpm.preview.model.Task.TaskType;
 import org.jbpm.preview.model.builder.MessageBuilder;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Test Send Task
@@ -62,9 +62,9 @@
 
   public void testSendTaskWithNoMessage() throws Exception
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("SendTaskTest").addStartEvent("Start").addSequenceFlow("TaskA");
-    procBuilder.addTask("TaskA", TaskType.Send).addSequenceFlow("End").addEndEvent("End");
+    procBuilder.addTaskExt("TaskA", TaskType.Send).addSequenceFlow("End").addEndEvent("End");
     try
     {
       procBuilder.getProcessDefinition();
@@ -78,11 +78,12 @@
 
   protected ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
-    MessageBuilder msgBuilder = procBuilder.addProcess("SendTaskTest").addProcessMessage("SendTaskMessage");
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
+    procBuilder.addProcess("SendTaskTest");
+    MessageBuilder msgBuilder = procBuilder.addProcessMessage("SendTaskMessage");
     msgBuilder.addToRef(getTestID()).addProperty("foo", null, true);
     procBuilder.addStartEvent("Start").addSequenceFlow("TaskA");
-    procBuilder.addTask("TaskA", TaskType.Send).addOutMessageRef("SendTaskMessage");
+    procBuilder.addTaskExt("TaskA", TaskType.Send).addOutMessageRef("SendTaskMessage");
     procBuilder.addSequenceFlow("End").addEndEvent("End");
     return procBuilder.getProcessDefinition();
   }

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskCallbackTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskCallbackTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskCallbackTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,10 +26,7 @@
 import java.io.IOException;
 import java.util.List;
 
-import org.jbpm.api.client.ProcessDefinition;
-import org.jbpm.api.model.Event.EventDetailType;
-import org.jbpm.api.model.Task.TaskType;
-import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.runtime.Attachments;
 import org.jbpm.api.runtime.BasicAttachments;
 import org.jbpm.api.service.ProcessBuilderService;
@@ -38,6 +35,9 @@
 import org.jbpm.preview.client.UserTaskCallback;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.UserTask;
+import org.jbpm.preview.model.Event.EventDetailType;
+import org.jbpm.preview.model.Task.TaskType;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Test UserTask that uses the callback API
@@ -68,14 +68,15 @@
 
   protected ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("UserTaskTest");
     procBuilder.addProcessMessage("OutMessage").addProperty("foo", null, true);
     procBuilder.addProcessMessage("InMessage").addProperty("bar", null, true);
     procBuilder.addProcessMessage("EndMessage").addToRef(getTestID()).addProperty("bar", null, true);
     procBuilder.addStartEvent("Start").addSequenceFlow("UserTask");
-    procBuilder.addTask("UserTask", TaskType.User).addOutMessageRef("OutMessage").addInMessageRef("InMessage");
-    procBuilder.addSequenceFlow("End").addEndEvent("End", EventDetailType.Message).addMessageRef("EndMessage");
+    procBuilder.addTaskExt("UserTask", TaskType.User).addOutMessageRef("OutMessage").addInMessageRef("InMessage");
+    procBuilder.addSequenceFlow("End");
+    procBuilder.addEndEventExt("End", EventDetailType.Message).addMessageRef("EndMessage");
     return procBuilder.getProcessDefinition();
   }
   

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/task/user/UserTaskTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -29,10 +29,8 @@
 import javax.management.ObjectName;
 
 import org.jbpm.api.Constants;
-import org.jbpm.api.client.ProcessDefinition;
-import org.jbpm.api.model.Event.EventDetailType;
-import org.jbpm.api.model.Task.TaskType;
-import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.builder.ObjectNameFactory;
 import org.jbpm.api.runtime.BasicAttachments;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.service.ProcessInstanceService;
@@ -40,8 +38,10 @@
 import org.jbpm.preview.client.MessageListener;
 import org.jbpm.preview.client.ProcessAsync;
 import org.jbpm.preview.model.Message;
+import org.jbpm.preview.model.Event.EventDetailType;
+import org.jbpm.preview.model.Task.TaskType;
 import org.jbpm.preview.model.builder.MessageBuilder;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 import org.jbpm.preview.service.MessageBuilderService;
 import org.jbpm.preview.service.MessageService;
 
@@ -87,14 +87,15 @@
 
   protected ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("UserTaskTest");
     procBuilder.addProcessMessage("OutMessage").addToRef(MSG_LISTENER_ID).addProperty("foo", null, true);
     procBuilder.addProcessMessage("InMessage").addProperty("bar", null, true);
     procBuilder.addProcessMessage("EndMessage").addToRef(getTestID()).addProperty("bar", null, true);
     procBuilder.addStartEvent("Start").addSequenceFlow("UserTask");
-    procBuilder.addTask("UserTask", TaskType.User).addOutMessageRef("OutMessage").addInMessageRef("InMessage");
-    procBuilder.addSequenceFlow("End").addEndEvent("End", EventDetailType.Message).addMessageRef("EndMessage");
+    procBuilder.addTaskExt("UserTask", TaskType.User).addOutMessageRef("OutMessage").addInMessageRef("InMessage");
+    procBuilder.addSequenceFlow("End");
+    procBuilder.addEndEventExt("End", EventDetailType.Message).addMessageRef("EndMessage");
     return procBuilder.getProcessDefinition();
   }
   

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredMarshallerTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredMarshallerTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredMarshallerTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,7 +25,7 @@
 
 import java.io.IOException;
 
-import org.jbpm.api.client.ProcessDefinition;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessDefinitionService;
 
 /**

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/preview/transaction/TxRequiredTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -29,11 +29,9 @@
 import org.hibernate.Transaction;
 import org.jbpm.api.Constants;
 import org.jbpm.api.Constants.TxType;
-import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.Token;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.Task.TaskType;
-import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.runtime.BasicAttachments;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
@@ -41,6 +39,8 @@
 import org.jbpm.preview.model.Group;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Group.GroupType;
+import org.jbpm.preview.model.Task.TaskType;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 import org.jbpm.preview.runtime.ExecutionHandler;
 import org.jbpm.ri.runtime.TransactionAssociation;
 
@@ -92,11 +92,12 @@
 
   protected ProcessDefinition getProcessDefinition() throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess("RequiresTxTest");
     procBuilder.addStartEvent("Start").addSequenceFlow("TaskA");
-    procBuilder.addTask("TaskA", TaskType.Send).addOutMessageRef("TaskAMessage").addGroupRef("TxRequired").addSequenceFlow("TaskB");
-    procBuilder.addTask("TaskB").addGroupRef("TxRequired").addSequenceFlow("End").addExecutionHandler(TextExecutionHandler.class);
+    procBuilder.addTaskExt("TaskA", TaskType.Send).addOutMessageRef("TaskAMessage").addGroupRef("TxRequired").addSequenceFlow("TaskB");
+    procBuilder.addTaskExt("TaskB").addGroupRef("TxRequired").addSequenceFlow("End");
+    procBuilder.addExecutionHandler(TextExecutionHandler.class);
     procBuilder.addEndEvent("End");
     procBuilder.addGroup(GroupType.Transaction, "TxRequired").addProperty(Constants.PROP_TX_TYPE, TxType.REQUIRED);
     procBuilder.addProcessMessage("TaskAMessage").addToRef(getTestID()).addProperty("msgProp", "msgA");

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/DialectHandlerImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -33,7 +33,7 @@
 import javax.xml.bind.JAXBException;
 
 import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.ProcessDefinition;
+import org.jbpm.api.model.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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -31,17 +31,9 @@
 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;
-import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.api.model.SequenceFlow.ConditionType;
 import org.jbpm.dialect.api10.model.JAXBAssignment;
 import org.jbpm.dialect.api10.model.JAXBComplexGateway;
@@ -73,6 +65,11 @@
 import org.jbpm.dialect.api10.model.ObjectFactory;
 import org.jbpm.preview.model.Assignment;
 import org.jbpm.preview.model.ComplexGateway;
+import org.jbpm.preview.model.EndEvent;
+import org.jbpm.preview.model.Event;
+import org.jbpm.preview.model.ExclusiveGateway;
+import org.jbpm.preview.model.Expression;
+import org.jbpm.preview.model.Gateway;
 import org.jbpm.preview.model.Group;
 import org.jbpm.preview.model.InclusiveGateway;
 import org.jbpm.preview.model.InputSet;
@@ -84,6 +81,9 @@
 import org.jbpm.preview.model.ReceiveTask;
 import org.jbpm.preview.model.SendTask;
 import org.jbpm.preview.model.Signal;
+import org.jbpm.preview.model.StartEvent;
+import org.jbpm.preview.model.Task;
+import org.jbpm.preview.model.Event.EventDetailType;
 import org.jbpm.preview.runtime.ExecutionHandler;
 import org.jbpm.preview.runtime.FlowHandler;
 import org.jbpm.preview.runtime.SignalHandler;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -32,13 +32,10 @@
 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.GatewayBuilder;
-import org.jbpm.api.model.builder.ProcessBuilder;
-import org.jbpm.api.model.builder.TaskBuilder;
+import org.jbpm.api.model.builder.ObjectNameFactory;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.dialect.api10.model.JAXBAssignment;
 import org.jbpm.dialect.api10.model.JAXBCancelEventDetail;
@@ -75,10 +72,13 @@
 import org.jbpm.dialect.api10.model.JAXBTerminateEventDetail;
 import org.jbpm.dialect.api10.model.JAXBTimerEventDetail;
 import org.jbpm.dialect.api10.model.ObjectFactory;
+import org.jbpm.preview.model.Gateway;
+import org.jbpm.preview.model.Task.TaskType;
 import org.jbpm.preview.model.builder.EventBuilder;
 import org.jbpm.preview.model.builder.GroupBuilder;
 import org.jbpm.preview.model.builder.MessageBuilder;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
+import org.jbpm.preview.model.builder.TaskBuilder;
 import org.jbpm.preview.runtime.ExecutionHandler;
 import org.jbpm.preview.runtime.FlowHandler;
 import org.jbpm.preview.runtime.NodeHandler;
@@ -104,7 +104,7 @@
 
   private ProcessDefinition adaptProcess(JAXBProcess jaxbProc) throws IOException
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess(jaxbProc.getName());
 
     // Process Messages
@@ -196,12 +196,12 @@
     return ObjectNameFactory.create(objName);
   }
 
-  private void adaptJAXBEvent(ProcessBuilder procBuilder, JAXBProcess jaxbProc, JAXBEvent jaxbEvent)
+  private void adaptJAXBEvent(ProcessBuilderExt procBuilder, JAXBProcess jaxbProc, JAXBEvent jaxbEvent)
   {
     if (jaxbEvent instanceof JAXBStartEvent)
     {
       JAXBStartEvent jaxbStart = (JAXBStartEvent)jaxbEvent;
-      EventBuilder eventBuilder = procBuilder.addStartEvent(jaxbStart.getName());
+      EventBuilder eventBuilder = procBuilder.addStartEventExt(jaxbStart.getName());
       addOutFlow(procBuilder, jaxbStart.getOutFlow());
 
       if (jaxbStart.getTrigger().size() > 1)
@@ -240,7 +240,7 @@
     else if (jaxbEvent instanceof JAXBEndEvent)
     {
       JAXBEndEvent jaxbEnd = (JAXBEndEvent)jaxbEvent;
-      EventBuilder eventBuilder = procBuilder.addEndEvent(jaxbEnd.getName());
+      EventBuilder eventBuilder = procBuilder.addEndEventExt(jaxbEnd.getName());
 
       if (jaxbEnd.getResult().size() > 1)
         throw new NotImplementedException("JBPM-1683", "EndEvent Multiple Result");
@@ -288,10 +288,10 @@
     procBuilder.addSignalHandler(loadHandler(SignalHandler.class, jaxbEvent.getSignalHandler()));
   }
 
-  private void adaptTask(ProcessBuilder procBuilder, JAXBProcess jaxbProc, JAXBTask jaxbTask)
+  private void adaptTask(ProcessBuilderExt procBuilder, JAXBProcess jaxbProc, JAXBTask jaxbTask)
   {
     TaskType taskType = jaxbTask.getTaskType();
-    TaskBuilder taskBuilder = procBuilder.addTask(jaxbTask.getName(), taskType);
+    TaskBuilder taskBuilder = procBuilder.addTaskExt(jaxbTask.getName(), taskType);
     addOutFlow(taskBuilder, jaxbTask.getOutFlow());
     
     for (JAXBInputSet jaxbSet : jaxbTask.getInputSets())
@@ -328,7 +328,7 @@
     procBuilder.addSignalHandler(loadHandler(SignalHandler.class, jaxbTask.getSignalHandler()));
   }
 
-  private void adaptJAXBGateway(ProcessBuilder procBuilder, JAXBProcess jaxbProc, JAXBGateway jaxb)
+  private void adaptJAXBGateway(ProcessBuilderExt procBuilder, JAXBProcess jaxbProc, JAXBGateway jaxb)
   {
     GatewayBuilder gwBuilder;
     if (jaxb instanceof JAXBExclusiveGateway)
@@ -384,7 +384,7 @@
     procBuilder.addSignalHandler(loadHandler(SignalHandler.class, jaxb.getSignalHandler()));
   }
 
-  private void addOutFlow(ProcessBuilder procBuilder, JAXBFlow jaxbFlow)
+  private void addOutFlow(ProcessBuilderExt procBuilder, JAXBFlow jaxbFlow)
   {
     if (jaxbFlow != null)
     {

Modified: projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBExpression.java
===================================================================
--- projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBExpression.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBExpression.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -27,7 +27,7 @@
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlValue;
 
-import org.jbpm.api.model.Expression;
+import org.jbpm.preview.model.Expression;
 
 /**
  * An Expression, which is used in the definition of attributes for @{link StartEvent},

Modified: projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBTask.java
===================================================================
--- projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBTask.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBTask.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -32,7 +32,7 @@
 import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
-import org.jbpm.api.model.Task;
+import org.jbpm.preview.model.Task;
 
 /**
  * A Task is an Atomic Activity that is included within a Process.

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jbpm/dialect/jpdl32/DialectHandlerImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -34,7 +34,7 @@
 
 import org.jbpm.api.InvalidProcessException;
 import org.jbpm.api.NotImplementedException;
-import org.jbpm.api.client.ProcessDefinition;
+import org.jbpm.api.model.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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jbpm/dialect/jpdl32/ProcessDefinitionAdapter.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,10 +26,7 @@
 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.Task;
-import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.dialect.jpdl32.model.JPDL32Action;
 import org.jbpm.dialect.jpdl32.model.JPDL32EndState;
@@ -39,6 +36,9 @@
 import org.jbpm.dialect.jpdl32.model.JPDL32StartState;
 import org.jbpm.dialect.jpdl32.model.JPDL32State;
 import org.jbpm.dialect.jpdl32.model.JPDL32Transition;
+import org.jbpm.preview.model.Gateway;
+import org.jbpm.preview.model.Task;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 import org.jbpm.preview.runtime.ExecutionHandler;
 
 /**
@@ -51,7 +51,7 @@
 {
   public ProcessDefinition adaptProcessDefinition(JPDL32ProcessDefinition jpdlProcDef)
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess(jpdlProcDef.getName());
     
     for (Object jpdlObj : jpdlProcDef.getDescriptionOrSwimlaneOrStartState())
@@ -82,20 +82,20 @@
     return procDef;
   }
 
-  private void adaptStartState(ProcessBuilder builder, JPDL32StartState jpdlStart)
+  private void adaptStartState(ProcessBuilderExt builder, JPDL32StartState jpdlStart)
   {
-    builder.addStartEvent("Start");
+    builder.addStartEventExt("Start");
     adaptTransitions(builder, jpdlStart.getDescriptionOrTaskOrTransition());
   }
 
-  private void adaptEndState(ProcessBuilder builder, JPDL32EndState jpdlEnd)
+  private void adaptEndState(ProcessBuilderExt builder, JPDL32EndState jpdlEnd)
   {
-    builder.addEndEvent(jpdlEnd.getName());
+    builder.addEndEventExt(jpdlEnd.getName());
   }
 
-  private void adaptState(ProcessBuilder builder, JPDL32State jpdlState)
+  private void adaptState(ProcessBuilderExt builder, JPDL32State jpdlState)
   {
-    builder.addTask(jpdlState.getName(), Task.TaskType.None);
+    builder.addTaskExt(jpdlState.getName(), Task.TaskType.None);
     adaptTransitions(builder, jpdlState.getDescriptionOrEventOrExceptionHandler());
     
     for (Object jpdlObj : jpdlState.getDescriptionOrEventOrExceptionHandler())
@@ -122,13 +122,13 @@
     }
   }
 
-  private void adaptFork(ProcessBuilder builder, JPDL32Fork jpdlObj)
+  private void adaptFork(ProcessBuilderExt builder, JPDL32Fork jpdlObj)
   {
     builder.addGateway(jpdlObj.getName(), Gateway.GatewayType.Parallel);
     adaptTransitions(builder, jpdlObj.getScriptOrDescriptionOrEvent());
   }
 
-  private void adaptTransitions(ProcessBuilder builder, List<Object> list)
+  private void adaptTransitions(ProcessBuilderExt builder, List<Object> list)
   {
     for (Object subEl : list)
     {

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/dialects/stp/src/main/java/org/jbpm/dialect/stp/DialectHandlerImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -33,7 +33,7 @@
 
 import org.jbpm.api.InvalidProcessException;
 import org.jbpm.api.NotImplementedException;
-import org.jbpm.api.client.ProcessDefinition;
+import org.jbpm.api.model.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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/dialects/stp/src/main/java/org/jbpm/dialect/stp/ProcessUnmarshaller.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -37,10 +37,7 @@
 
 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.Task;
-import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.dialect.stp.model.Activity;
 import org.jbpm.dialect.stp.model.ActivityType;
@@ -48,6 +45,9 @@
 import org.jbpm.dialect.stp.model.ObjectFactory;
 import org.jbpm.dialect.stp.model.Pool;
 import org.jbpm.dialect.stp.model.SequenceEdge;
+import org.jbpm.preview.model.Gateway;
+import org.jbpm.preview.model.Task;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -90,7 +90,7 @@
 
     Element root = doc.getDocumentElement();
     diagram = unmarshaller.unmarshal(root, BpmnDiagram.class).getValue();
-    ProcessBuilder procBuilder = adaptDiagram(diagram);
+    ProcessBuilderExt procBuilder = adaptDiagram(diagram);
 
     // Initialize the list of sequence edges
     Element poolEl = (Element)DOMUtils.getChildElements(root, "pools").next();
@@ -137,7 +137,7 @@
     return procDef;
   }
 
-  private ProcessBuilder adaptDiagram(BpmnDiagram bpmnDiagram)
+  private ProcessBuilderExt adaptDiagram(BpmnDiagram bpmnDiagram)
   {
     List<Pool> stpPools = bpmnDiagram.getPools();
     if (stpPools == null || stpPools.size() == 0)
@@ -146,24 +146,24 @@
       throw new IllegalStateException("Multiple Pools not supported");
 
     Pool stpPool = stpPools.get(0);
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess(stpPool.getId());
 
     return procBuilder;
   }
 
-  private void adaptActivity(ProcessBuilder builder, Activity stpActivity)
+  private void adaptActivity(ProcessBuilderExt builder, Activity stpActivity)
   {
     ActivityType activityType = stpActivity.getActivityType();
     if (activityType == ActivityType.EVENT_START_EMPTY)
     {
-      builder.addStartEvent("Start");
+      builder.addStartEventExt("Start");
       adaptOutgoingEdges(builder, stpActivity);
     }
     else if (activityType == ActivityType.EVENT_END_EMPTY)
     {
       String name = stpActivity.getLabel();
-      builder.addEndEvent(name);
+      builder.addEndEventExt(name);
     }
     else if (activityType == ActivityType.TASK)
     {
@@ -175,7 +175,7 @@
       if (name.startsWith("Receive"))
         taskType = Task.TaskType.Receive;
       
-      builder.addTask(name, taskType);
+      builder.addTaskExt(name, taskType);
       adaptOutgoingEdges(builder, stpActivity);
     }
     else if (activityType == ActivityType.GATEWAY_DATA_BASED_EXCLUSIVE)
@@ -196,7 +196,7 @@
     }
   }
 
-  private void adaptOutgoingEdges(ProcessBuilder builder, Activity stpActivity)
+  private void adaptOutgoingEdges(ProcessBuilderExt builder, Activity stpActivity)
   {
     for (String edgeIds : stpActivity.getOutgoingEdges())
     {

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jbpm/dialect/xpdl21/DialectHandlerImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -34,7 +34,7 @@
 
 import org.jbpm.api.InvalidProcessException;
 import org.jbpm.api.NotImplementedException;
-import org.jbpm.api.client.ProcessDefinition;
+import org.jbpm.api.model.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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jbpm/dialect/xpdl21/WorkflowProcessAdapter.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -24,13 +24,13 @@
 // $Id$
 
 import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.ProcessDefinition;
-import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.dialect.xpdl21.model.XPDLActivities;
 import org.jbpm.dialect.xpdl21.model.XPDLActivity;
 import org.jbpm.dialect.xpdl21.model.XPDLEvent;
 import org.jbpm.dialect.xpdl21.model.XPDLWorkflowProcess;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 
 /**
  * Adapt the jpdl-3.2 ProcessDefinition to the API Process
@@ -42,7 +42,7 @@
 {
   public ProcessDefinition adaptWorkflowProcess(XPDLWorkflowProcess xpdlProc)
   {
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess(xpdlProc.getName());
     
     XPDLActivities xpdlActivities = xpdlProc.getActivities();
@@ -53,11 +53,11 @@
       {
         if (xpdlEvent.getStartEvent() != null)
         {
-          procBuilder.addStartEvent("Start");
+          procBuilder.addStartEventExt("Start");
         }
         else if (xpdlEvent.getEndEvent() != null)
         {
-          procBuilder.addEndEvent(xpdlActivity.getName());
+          procBuilder.addEndEventExt(xpdlActivity.getName());
         }
         else
         {

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -29,10 +29,10 @@
 import javax.persistence.MappedSuperclass;
 
 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.AbstractElement;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
 
 /**
  * The parrent of all Elements

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AssignmentImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AssignmentImpl.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AssignmentImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -31,8 +31,8 @@
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 
-import org.jbpm.api.model.Expression;
 import org.jbpm.preview.model.Assignment;
+import org.jbpm.preview.model.Expression;
 import org.jbpm.preview.model.Property;
 
 /**

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ComplexGatewayImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,9 +26,9 @@
 import javax.persistence.Entity;
 
 import org.jbpm.api.NotImplementedException;
-import org.jbpm.api.model.Expression;
 import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.preview.model.ComplexGateway;
+import org.jbpm.preview.model.Expression;
 
 /**
  * A Complex Gateway handles situations that are not easily handled through the other types of Gateways. Complex

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -30,13 +30,13 @@
 import org.jbpm.api.InvalidProcessException;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.Token;
-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.ObjectNameFactory;
 import org.jbpm.api.runtime.Attachments;
+import org.jbpm.preview.model.EndEvent;
 import org.jbpm.preview.model.Signal;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
 import org.jbpm.preview.runtime.FlowHandler;
 import org.jbpm.preview.runtime.SignalHandler;
 import org.jbpm.preview.runtime.TokenExecutor;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -32,16 +32,16 @@
 
 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.client.Token;
-import org.jbpm.api.model.Event;
 import org.jbpm.api.model.Node;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.ProcessStructure;
+import org.jbpm.api.model.builder.ObjectNameFactory;
+import org.jbpm.preview.model.Event;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Signal;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
 import org.jbpm.preview.runtime.ExecutionHandler;
 import org.jbpm.preview.runtime.SignalHandler;
 import org.jbpm.preview.service.SignalService;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -30,12 +30,12 @@
 import javax.persistence.Transient;
 
 import org.jbpm.api.client.Token;
-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.preview.model.ExclusiveGateway;
+import org.jbpm.preview.model.Expression;
 import org.jbpm.preview.runtime.ExecutionHandler;
 import org.jbpm.preview.runtime.FlowHandler;
 import org.jbpm.preview.runtime.TokenExecutor;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExpressionImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExpressionImpl.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExpressionImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -28,7 +28,7 @@
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 
-import org.jbpm.api.model.Expression;
+import org.jbpm.preview.model.Expression;
 
 /**
  * An Expression, which is used in the definition of attributes for @{link StartEvent},

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -35,9 +35,9 @@
 import javax.persistence.OneToOne;
 
 import org.hibernate.annotations.IndexColumn;
-import org.jbpm.api.model.Gate;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.preview.model.Assignment;
+import org.jbpm.preview.model.Gate;
 
 /**
  * There MAY be zero or more Gates (except where noted below). Zero Gates are allowed if the Gateway is last object in a

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -36,13 +36,13 @@
 import org.jbpm.api.Constants;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.Token;
-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.ObjectNameFactory;
+import org.jbpm.preview.model.Gateway;
 import org.jbpm.preview.model.Signal;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
 import org.jbpm.preview.runtime.ExecutionHandler;
 import org.jbpm.preview.runtime.SignalHandler;
 import org.jbpm.preview.service.SignalService;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -31,15 +31,15 @@
 import javax.persistence.Entity;
 
 import org.jbpm.api.client.Token;
-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.runtime.Attachments;
 import org.jbpm.api.runtime.Attachments.Key;
+import org.jbpm.preview.model.Expression;
 import org.jbpm.preview.model.InclusiveGateway;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
 import org.jbpm.preview.runtime.FlowHandler;
 import org.jbpm.preview.runtime.TokenExecutor;
 import org.jbpm.ri.runtime.MutableToken;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -43,20 +43,20 @@
 import org.hibernate.annotations.IndexColumn;
 import org.jbpm.api.InvalidProcessException;
 import org.jbpm.api.NameNotUniqueException;
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.Token;
 import org.jbpm.api.client.Token.TokenStatus;
-import org.jbpm.api.model.EndEvent;
 import org.jbpm.api.model.Node;
+import org.jbpm.api.model.Process;
+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.preview.model.Assignment;
+import org.jbpm.preview.model.EndEvent;
 import org.jbpm.preview.model.Group;
 import org.jbpm.preview.model.Property;
 import org.jbpm.preview.model.PropertySupport;
+import org.jbpm.preview.model.StartEvent;
 import org.jbpm.preview.runtime.ExecutionHandler;
 import org.jbpm.preview.runtime.FlowHandler;
 import org.jbpm.preview.runtime.NodeHandler;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParticipantImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParticipantImpl.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParticipantImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -29,8 +29,8 @@
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 
+import org.jbpm.api.model.builder.ObjectNameFactory;
 import org.jbpm.preview.model.Participant;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
 
 /**
  * A Participant, which is used in the definition of attributes for a @{link Pool}, @{link Message}, and @{link

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -41,16 +41,16 @@
 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.Process;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.ProcessStructure;
+import org.jbpm.api.model.builder.ObjectNameFactory;
 import org.jbpm.preview.model.Assignment;
 import org.jbpm.preview.model.Group;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Property;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -39,14 +39,13 @@
 import org.hibernate.Session;
 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.client.Token;
 import org.jbpm.api.client.Token.TokenStatus;
 import org.jbpm.api.model.Node;
-import org.jbpm.api.model.StartEvent;
-import org.jbpm.api.model.Event.EventDetailType;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.builder.ObjectNameFactory;
 import org.jbpm.api.runtime.Attachments;
 import org.jbpm.api.service.ExecutionService;
 import org.jbpm.api.service.ProcessInstanceService;
@@ -55,7 +54,8 @@
 import org.jbpm.preview.model.Group;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Property;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
+import org.jbpm.preview.model.StartEvent;
+import org.jbpm.preview.model.Event.EventDetailType;
 import org.jbpm.ri.runtime.TokenImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -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.Process;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.ProcessStructure;
-import org.jbpm.api.model.StartEvent;
+import org.jbpm.api.model.builder.ObjectNameFactory;
 import org.jbpm.preview.model.Assignment;
+import org.jbpm.preview.model.EndEvent;
 import org.jbpm.preview.model.Group;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Property;
 import org.jbpm.preview.model.PropertySupport;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
+import org.jbpm.preview.model.StartEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ReceiveTaskImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -31,9 +31,9 @@
 
 import org.jbpm.api.InvalidProcessException;
 import org.jbpm.api.NotImplementedException;
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.Token;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.runtime.Attachments;
 import org.jbpm.preview.client.MessageListener;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SendTaskImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -27,10 +27,10 @@
 import javax.persistence.Transient;
 
 import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.Token;
 import org.jbpm.api.model.Node;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.SendTask;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SequenceFlowImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SequenceFlowImpl.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SequenceFlowImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -32,8 +32,8 @@
 import javax.persistence.Id;
 import javax.persistence.OneToOne;
 
-import org.jbpm.api.model.Expression;
 import org.jbpm.api.model.SequenceFlow;
+import org.jbpm.preview.model.Expression;
 
 /**
  * A Sequence Flow is a solid graphical line that is used to show the order that Activities will be performed in a

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SignalImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SignalImpl.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SignalImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -31,8 +31,8 @@
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 
+import org.jbpm.api.model.builder.ObjectNameFactory;
 import org.jbpm.preview.model.Signal;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
 
 /**
  * A Signal thrown by the ProcessEngine

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -29,19 +29,19 @@
 
 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.client.Token;
 import org.jbpm.api.model.Node;
+import org.jbpm.api.model.Process;
+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.ObjectNameFactory;
 import org.jbpm.api.service.ExecutionService;
 import org.jbpm.preview.client.SignalListener;
 import org.jbpm.preview.model.Signal;
+import org.jbpm.preview.model.StartEvent;
 import org.jbpm.preview.model.Signal.SignalType;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
 import org.jbpm.preview.runtime.SignalHandler;
 import org.jbpm.preview.service.SignalService;
 import org.jbpm.ri.model.builder.SingleOutFlowSupport;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -41,17 +41,17 @@
 import org.jbpm.api.NotImplementedException;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.Token;
-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.ObjectNameFactory;
 import org.jbpm.api.runtime.Attachments;
+import org.jbpm.preview.model.Expression;
 import org.jbpm.preview.model.InputSet;
 import org.jbpm.preview.model.OutputSet;
 import org.jbpm.preview.model.Property;
 import org.jbpm.preview.model.Signal;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
+import org.jbpm.preview.model.Task;
 import org.jbpm.preview.runtime.ExecutionHandler;
 import org.jbpm.preview.runtime.SignalHandler;
 import org.jbpm.preview.service.SignalService;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -33,9 +33,9 @@
 import javax.persistence.Transient;
 
 import org.jbpm.api.InvalidProcessException;
-import org.jbpm.api.client.Process;
-import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.Token;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.ProcessStructure;
 import org.jbpm.api.runtime.Attachments;
 import org.jbpm.preview.client.MessageListener;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/WaitStateImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/WaitStateImpl.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/WaitStateImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -28,7 +28,7 @@
 import org.jbpm.api.client.Token;
 import org.jbpm.api.model.Node;
 import org.jbpm.api.model.ProcessStructure;
-import org.jbpm.api.model.WaitState;
+import org.jbpm.preview.model.WaitState;
 import org.jbpm.preview.runtime.FlowHandler;
 import org.jbpm.preview.runtime.TokenExecutor;
 import org.jbpm.ri.model.builder.SingleInFlowSupport;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/EventBuilderImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/EventBuilderImpl.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/EventBuilderImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -23,7 +23,7 @@
 
 //$Id$
 
-import org.jbpm.api.model.Event;
+import org.jbpm.preview.model.Event;
 import org.jbpm.preview.model.Signal.SignalType;
 import org.jbpm.preview.model.builder.EventBuilder;
 import org.jbpm.ri.model.EventImpl;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/GatewayBuilderImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/GatewayBuilderImpl.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/GatewayBuilderImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -23,10 +23,10 @@
 
 //$Id$
 
-import org.jbpm.api.model.Gateway;
-import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.model.SequenceFlow.ConditionType;
 import org.jbpm.api.model.builder.GatewayBuilder;
+import org.jbpm.preview.model.Gateway;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
 import org.jbpm.ri.model.ExpressionImpl;
 import org.jbpm.ri.model.GatewayImpl;
 import org.jbpm.ri.model.SequenceFlowImpl;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -24,21 +24,21 @@
 //$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.Event.EventDetailType;
-import org.jbpm.api.model.Expression.ExpressionLanguage;
-import org.jbpm.api.model.Gateway.GatewayType;
-import org.jbpm.api.model.Task.TaskType;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.builder.GatewayBuilder;
-import org.jbpm.api.model.builder.ProcessBuilder;
-import org.jbpm.api.model.builder.TaskBuilder;
 import org.jbpm.preview.model.Assignment.AssignTime;
+import org.jbpm.preview.model.Event.EventDetailType;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
+import org.jbpm.preview.model.Gateway.GatewayType;
 import org.jbpm.preview.model.Group.GroupType;
+import org.jbpm.preview.model.Task.TaskType;
 import org.jbpm.preview.model.builder.EventBuilder;
 import org.jbpm.preview.model.builder.GroupBuilder;
 import org.jbpm.preview.model.builder.MessageBuilder;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
+import org.jbpm.preview.model.builder.TaskBuilder;
 import org.jbpm.preview.runtime.ExecutionHandler;
 import org.jbpm.preview.runtime.FlowHandler;
 import org.jbpm.preview.runtime.SignalHandler;
@@ -69,7 +69,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public class ProcessBuilderImpl implements ProcessBuilder
+public class ProcessBuilderImpl implements ProcessBuilderExt
 {
   protected ProcessEngine engine;
   protected ProcessStructureImpl procStruct;
@@ -87,7 +87,7 @@
     this.node = procBuilder.node;
   }
 
-  public ProcessBuilder addProcess(String procName)
+  public ProcessBuilderExt addProcess(String procName)
   {
     procStruct = new ProcessStructureImpl(engine, procName);
     return this;
@@ -99,7 +99,7 @@
     return new ProcessDefinitionImpl(engine, procStruct);
   }
 
-  public ProcessBuilder addSequenceFlow(String targetName)
+  public ProcessBuilderExt addSequenceFlow(String targetName)
   {
     if (node instanceof SingleOutFlowSupport)
     {
@@ -118,13 +118,18 @@
     return this;
   }
 
-  public EventBuilder addStartEvent(String name)
+  public ProcessBuilderExt addStartEvent(String name)
   {
+    return addStartEventExt(name);
+  }
+
+  public EventBuilder addStartEventExt(String name)
+  {
     addNode(node = new StartEventImpl(procStruct, name));
     return new EventBuilderImpl(this);
   }
 
-  public EventBuilder addStartEvent(String name, EventDetailType ResultType)
+  public EventBuilder addStartEventExt(String name, EventDetailType ResultType)
   {
     StartEventImpl startImpl = new StartEventImpl(procStruct, name);
     startImpl.setTriggerType(ResultType);
@@ -132,19 +137,24 @@
     return new EventBuilderImpl(this);
   }
 
-  public EventBuilder addEvent(String name)
+  public EventBuilder addEventExt(String name)
   {
     addNode(node = new EventImpl(procStruct, name));
     return new EventBuilderImpl(this);
   }
 
-  public EventBuilder addEndEvent(String name)
+  public ProcessBuilderExt addEndEvent(String name)
   {
+    return addEndEventExt(name);
+  }
+
+  public EventBuilder addEndEventExt(String name)
+  {
     addNode(node = new EndEventImpl(procStruct, name));
     return new EventBuilderImpl(this);
   }
 
-  public EventBuilder addEndEvent(String name, EventDetailType resultType)
+  public EventBuilder addEndEventExt(String name, EventDetailType resultType)
   {
     EndEventImpl endImpl = new EndEventImpl(procStruct, name);
     endImpl.setResultType(resultType);
@@ -152,13 +162,23 @@
     return new EventBuilderImpl(this);
   }
 
-  public TaskBuilder addTask(String name)
+  public ProcessBuilderExt addTask(String name)
   {
-    addTask(name, TaskType.None);
+    return addTaskExt(name);
+  }
+
+  public ProcessBuilderExt addTask(String name, TaskType type)
+  {
+    return addTaskExt(name, type);
+  }
+  
+  public TaskBuilder addTaskExt(String name)
+  {
+    addTaskExt(name, TaskType.None);
     return new TaskBuilderImpl(this);
   }
 
-  public TaskBuilder addTask(String name, TaskType type)
+  public TaskBuilder addTaskExt(String name, TaskType type)
   {
     if (type == TaskType.None || type == null)
     {
@@ -226,14 +246,14 @@
     return new GatewayBuilderImpl(this);
   }
 
-  public ProcessBuilder addProcessAssignment(AssignTime time, ExpressionLanguage lang, String fromExpr, String toProp)
+  public ProcessBuilderExt addProcessAssignment(AssignTime time, ExpressionLanguage lang, String fromExpr, String toProp)
   {
     AssignmentImpl assignment = getAssignment(time, lang, fromExpr, toProp);
     getProcessStructure().addAssignment(assignment);
     return this;
   }
 
-  public ProcessBuilder addNodeAssignment(AssignTime time, ExpressionLanguage lang, String fromExpr, String toProp)
+  public ProcessBuilderExt addNodeAssignment(AssignTime time, ExpressionLanguage lang, String fromExpr, String toProp)
   {
     AssignmentImpl assignment = getAssignment(time, lang, fromExpr, toProp);
     getNodeInternal().addAssignment(assignment);
@@ -248,19 +268,19 @@
     return assignment;
   }
 
-  public <T extends ExecutionHandler> ProcessBuilder addExecutionHandler(Class<T> clazz)
+  public <T extends ExecutionHandler> ProcessBuilderExt addExecutionHandler(Class<T> clazz)
   {
     getNodeInternal().setExecutionHandler(clazz);
     return this;
   }
 
-  public <T extends FlowHandler> ProcessBuilder addFlowHandler(Class<T> clazz)
+  public <T extends FlowHandler> ProcessBuilderExt addFlowHandler(Class<T> clazz)
   {
     getNodeInternal().setFlowHandler(clazz);
     return this;
   }
 
-  public <T extends SignalHandler> ProcessBuilder addSignalHandler(Class<T> clazz)
+  public <T extends SignalHandler> ProcessBuilderExt addSignalHandler(Class<T> clazz)
   {
     getNodeInternal().setSignalHandler(clazz);
     return this;
@@ -273,14 +293,14 @@
     return msgBuilder;
   }
 
-  public ProcessBuilder addProcessProperty(String name, String value)
+  public ProcessBuilderExt addProcessProperty(String name, String value)
   {
     PropertyImpl prop = new PropertyImpl(name, value);
     getProcessStructure().addProperty(prop);
     return this;
   }
 
-  public ProcessBuilder addNodeProperty(String name, String value)
+  public ProcessBuilderExt addNodeProperty(String name, String value)
   {
     PropertyImpl prop = new PropertyImpl(name, value);
     getNodeInternal().addProperty(prop);
@@ -296,13 +316,13 @@
   }
 
   @Override
-  public ProcessBuilder addGroupRef(String grpName)
+  public ProcessBuilderExt addGroupRef(String grpName)
   {
     getNodeInternal().setGroupRef(new GroupImpl(GroupType.None, grpName));
     return this;
   }
 
-  private ProcessBuilder addNode(NodeImpl nodeImpl)
+  private ProcessBuilderExt addNode(NodeImpl nodeImpl)
   {
     getProcessStructure().addNode(nodeImpl);
     return this;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/TaskBuilderImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/TaskBuilderImpl.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/builder/TaskBuilderImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -23,10 +23,10 @@
 
 //$Id$
 
-import org.jbpm.api.model.Task;
-import org.jbpm.api.model.Expression.ExpressionLanguage;
-import org.jbpm.api.model.builder.TaskBuilder;
 import org.jbpm.preview.model.Property;
+import org.jbpm.preview.model.Task;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
+import org.jbpm.preview.model.builder.TaskBuilder;
 import org.jbpm.ri.model.ExpressionImpl;
 import org.jbpm.ri.model.InputSetImpl;
 import org.jbpm.ri.model.MessageImpl;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/AssignmentInterceptor.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -24,10 +24,10 @@
 //$Id$
 
 import org.jbpm.api.client.Token;
-import org.jbpm.api.model.Expression;
 import org.jbpm.api.model.Node;
 import org.jbpm.api.runtime.Attachments;
 import org.jbpm.preview.model.Assignment;
+import org.jbpm.preview.model.Expression;
 import org.jbpm.preview.model.Assignment.AssignTime;
 
 /**

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingAttachments.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingAttachments.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingAttachments.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -28,9 +28,9 @@
 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.Process;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.runtime.Attachments;
 import org.jbpm.preview.model.Property;
 

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,10 +26,10 @@
 import java.util.Set;
 
 import org.hibernate.Session;
-import org.jbpm.api.client.Process;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.Token;
 import org.jbpm.api.model.Node;
+import org.jbpm.api.model.Process;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.api.runtime.Attachments;
 

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ExpressionEvaluator.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -27,10 +27,10 @@
 import java.util.Map;
 
 import org.jbpm.api.client.Token;
-import org.jbpm.api.model.Expression;
-import org.jbpm.api.model.Expression.ExpressionLanguage;
 import org.jbpm.api.runtime.Attachments;
 import org.jbpm.api.runtime.Attachments.Key;
+import org.jbpm.preview.model.Expression;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
 import org.mvel.MVEL;
 
 /**

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/InProcessTokenExecutor.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -23,9 +23,9 @@
 
 //$Id$
 
-import org.jbpm.api.client.Process;
 import org.jbpm.api.client.Token;
 import org.jbpm.api.client.Token.TokenStatus;
+import org.jbpm.api.model.Process;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.preview.runtime.TokenExecutor;
 import org.slf4j.Logger;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -21,11 +21,11 @@
  */
 package org.jbpm.ri.runtime;
 
-import org.jbpm.api.client.Process;
 import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process.ProcessStatus;
 import org.jbpm.api.client.Token.TokenStatus;
 import org.jbpm.api.model.Node;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.Process.ProcessStatus;
 import org.jbpm.api.service.ProcessInstanceService;
 import org.jbpm.ri.model.ProcessImpl;
 import org.jbpm.ri.service.ProcessServiceImpl;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcess.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -23,7 +23,7 @@
 
 //$Id$
 
-import org.jbpm.api.client.Process;
+import org.jbpm.api.model.Process;
 import org.jbpm.preview.runtime.TokenExecutor;
 
 /**

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeProcessImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -23,7 +23,7 @@
 
 //$Id$
 
-import org.jbpm.api.client.Process;
+import org.jbpm.api.model.Process;
 
 /**
  * A RuntimeProcess add runtime behaviour to the {@link Process}

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/ThreadingTokenExecutor.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -32,9 +32,9 @@
 import java.util.concurrent.Executors;
 
 import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process.ProcessStatus;
 import org.jbpm.api.client.Token.TokenStatus;
 import org.jbpm.api.model.SequenceFlow;
+import org.jbpm.api.model.Process.ProcessStatus;
 import org.jbpm.preview.runtime.FlowHandler;
 import org.jbpm.preview.runtime.TokenExecutor;
 import org.slf4j.Logger;

Modified: 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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -29,17 +29,17 @@
 
 import org.hibernate.Session;
 import org.jboss.util.id.UID;
-import org.jbpm.api.client.Process;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process.ProcessStatus;
 import org.jbpm.api.model.Node;
+import org.jbpm.api.model.Process;
 import org.jbpm.api.model.SequenceFlow;
-import org.jbpm.api.model.WaitState;
+import org.jbpm.api.model.Process.ProcessStatus;
 import org.jbpm.api.runtime.Attachments;
 import org.jbpm.api.runtime.BasicAttachments;
 import org.jbpm.api.runtime.Attachments.Key;
 import org.jbpm.api.service.ProcessInstanceService;
+import org.jbpm.preview.model.WaitState;
 import org.jbpm.preview.runtime.TokenExecutor;
 import org.jbpm.ri.service.ProcessServiceImpl;
 import org.jbpm.ri.model.ProcessImpl;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -30,16 +30,16 @@
 
 import org.jbpm.api.BPMException;
 import org.jbpm.api.ProcessTimeoutException;
-import org.jbpm.api.client.Process;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.Token;
-import org.jbpm.api.client.Process.ProcessStatus;
-import org.jbpm.api.model.Expression;
-import org.jbpm.api.model.StartEvent;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.Process.ProcessStatus;
 import org.jbpm.api.runtime.Attachments;
 import org.jbpm.api.service.ExecutionService;
 import org.jbpm.api.service.ProcessInstanceService;
 import org.jbpm.preview.model.Assignment;
+import org.jbpm.preview.model.Expression;
+import org.jbpm.preview.model.StartEvent;
 import org.jbpm.preview.model.Assignment.AssignTime;
 import org.jbpm.preview.model.Signal.SignalType;
 import org.jbpm.preview.runtime.TokenExecutor;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -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.Process;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.Service;
 import org.jbpm.preview.service.PersistenceService;
 import org.jbpm.ri.model.AbstractElementImpl;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/InMemoryPersistenceServiceImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -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.Process;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.preview.service.PersistenceService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -23,10 +23,10 @@
 
 // $Id$
 
-import org.jbpm.api.client.Process;
 import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.api.model.Process;
 import org.jbpm.api.service.ProcessBuilderService;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
 import org.jbpm.ri.model.builder.ProcessBuilderImpl;
 
 /**
@@ -44,7 +44,7 @@
   }
   
   @Override
-  public ProcessBuilder getProcessBuilder()
+  public ProcessBuilderExt getProcessBuilder()
   {
     return new ProcessBuilderImpl(getProcessEngine());
   }

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessDefinitionServiceImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -29,9 +29,9 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.client.Process;
 import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.client.Process.ProcessStatus;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.Process.ProcessStatus;
 import org.jbpm.api.service.ProcessInstanceService;
 import org.jbpm.preview.service.PersistenceService;
 import org.jbpm.ri.model.ProcessImpl;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/dialect/stp/sequence/SequenceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,7 +25,7 @@
 
 import java.net.URL;
 
-import org.jbpm.api.client.ProcessDefinition;
+import org.jbpm.api.model.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/ComplexGatewayPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ComplexGatewayPersistenceTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ComplexGatewayPersistenceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,8 +25,8 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.model.Gateway.GatewayType;
 import org.jbpm.preview.model.ComplexGateway;
+import org.jbpm.preview.model.Gateway.GatewayType;
 import org.jbpm.ri.model.ComplexGatewayImpl;
 
 /**

Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/EndEventPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/EndEventPersistenceTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/EndEventPersistenceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,10 +25,10 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.model.EndEvent;
-import org.jbpm.api.model.Event.EventDetailType;
+import org.jbpm.preview.model.EndEvent;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Signal;
+import org.jbpm.preview.model.Event.EventDetailType;
 import org.jbpm.preview.model.Signal.SignalType;
 import org.jbpm.ri.model.EndEventImpl;
 import org.jbpm.ri.model.MessageImpl;

Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ExclusiveGatewayPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ExclusiveGatewayPersistenceTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ExclusiveGatewayPersistenceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,8 +25,8 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.model.ExclusiveGateway;
-import org.jbpm.api.model.Gateway.GatewayType;
+import org.jbpm.preview.model.ExclusiveGateway;
+import org.jbpm.preview.model.Gateway.GatewayType;
 import org.jbpm.ri.model.ExclusiveGatewayImpl;
 
 /**

Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/InclusiveGatewayPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/InclusiveGatewayPersistenceTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/InclusiveGatewayPersistenceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,8 +25,8 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.model.Gateway.GatewayType;
 import org.jbpm.preview.model.InclusiveGateway;
+import org.jbpm.preview.model.Gateway.GatewayType;
 import org.jbpm.ri.model.InclusiveGatewayImpl;
 
 /**

Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ParallelGatewayPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ParallelGatewayPersistenceTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ParallelGatewayPersistenceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,8 +25,8 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.model.Gateway.GatewayType;
 import org.jbpm.preview.model.ParallelGateway;
+import org.jbpm.preview.model.Gateway.GatewayType;
 import org.jbpm.ri.model.ParallelGatewayImpl;
 
 /**

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessDefinitionPersistenceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,13 +26,13 @@
 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.StartEvent;
-import org.jbpm.api.model.Task;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.api.test.ProcessCatalog;
+import org.jbpm.preview.model.EndEvent;
+import org.jbpm.preview.model.StartEvent;
+import org.jbpm.preview.model.Task;
 import org.jbpm.preview.service.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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -26,15 +26,15 @@
 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.StartEvent;
-import org.jbpm.api.model.Task;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.service.ProcessDefinitionService;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.api.test.ProcessCatalog;
+import org.jbpm.preview.model.EndEvent;
+import org.jbpm.preview.model.StartEvent;
+import org.jbpm.preview.model.Task;
 import org.jbpm.preview.service.PersistenceService;
 
 /**

Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/StartEventPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/StartEventPersistenceTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/StartEventPersistenceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,10 +25,10 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.model.StartEvent;
-import org.jbpm.api.model.Event.EventDetailType;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Signal;
+import org.jbpm.preview.model.StartEvent;
+import org.jbpm.preview.model.Event.EventDetailType;
 import org.jbpm.preview.model.Signal.SignalType;
 import org.jbpm.ri.model.MessageImpl;
 import org.jbpm.ri.model.SignalImpl;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -28,15 +28,15 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.model.Expression;
 import org.jbpm.api.model.SequenceFlow;
-import org.jbpm.api.model.Task;
 import org.jbpm.api.model.SequenceFlow.ConditionType;
-import org.jbpm.api.model.Task.TaskType;
 import org.jbpm.preview.model.Assignment;
+import org.jbpm.preview.model.Expression;
 import org.jbpm.preview.model.InputSet;
 import org.jbpm.preview.model.OutputSet;
+import org.jbpm.preview.model.Task;
 import org.jbpm.preview.model.Assignment.AssignTime;
+import org.jbpm.preview.model.Task.TaskType;
 import org.jbpm.ri.model.AssignmentImpl;
 import org.jbpm.ri.model.ExpressionImpl;
 import org.jbpm.ri.model.InputSetImpl;

Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/UserTaskPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/UserTaskPersistenceTest.java	2008-11-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/UserTaskPersistenceTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,9 +25,9 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.model.Task.TaskType;
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.UserTask;
+import org.jbpm.preview.model.Task.TaskType;
 import org.jbpm.ri.model.MessageImpl;
 import org.jbpm.ri.model.UserTaskImpl;
 

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/AirticketProcessBuilder.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,16 +25,16 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.client.ProcessDefinition;
-import org.jbpm.api.model.Expression;
-import org.jbpm.api.model.Expression.ExpressionLanguage;
-import org.jbpm.api.model.Gateway.GatewayType;
-import org.jbpm.api.model.Task.TaskType;
+import org.jbpm.api.model.ProcessDefinition;
 import org.jbpm.api.model.builder.GatewayBuilder;
-import org.jbpm.api.model.builder.ProcessBuilder;
-import org.jbpm.api.model.builder.TaskBuilder;
 import org.jbpm.api.service.ProcessBuilderService;
+import org.jbpm.preview.model.Expression;
 import org.jbpm.preview.model.Assignment.AssignTime;
+import org.jbpm.preview.model.Expression.ExpressionLanguage;
+import org.jbpm.preview.model.Gateway.GatewayType;
+import org.jbpm.preview.model.Task.TaskType;
+import org.jbpm.preview.model.builder.ProcessBuilderExt;
+import org.jbpm.preview.model.builder.TaskBuilder;
 
 /**
  * Test the Airticket sample application
@@ -94,14 +94,14 @@
   public ProcessDefinition buildProcessDefinition()
   {
     // Create a Process through the ProcessBuilder
-    ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
+    ProcessBuilderExt procBuilder = (ProcessBuilderExt)ProcessBuilderService.locateProcessBuilder();
     procBuilder.addProcess(PROCESS_NAME);
     
     // Add Start Event
-    procBuilder.addStartEvent("Start").addSequenceFlow(TASK_RECEIVE_REQUEST);
+    procBuilder.addStartEventExt("Start").addSequenceFlow(TASK_RECEIVE_REQUEST);
 
     // Build the ReceiveReqTask
-    TaskBuilder taskBuilder = procBuilder.addTask(TASK_RECEIVE_REQUEST, TaskType.Receive);
+    TaskBuilder taskBuilder = procBuilder.addTaskExt(TASK_RECEIVE_REQUEST, TaskType.Receive);
     taskBuilder.addInMessageRef(MESSAGE_REQ_DATA).
     addNodeAssignment(AssignTime.End, ExpressionLanguage.MVEL, getValidationExpression(), PROPERTY_IS_VALID_REQUEST).
     addSequenceFlow(GATEWAY_IS_VALID);
@@ -112,13 +112,13 @@
     addDefaultGate(TASK_SEND_INVALID);
 
     // Build the CheckAvailabilityTask
-    taskBuilder = procBuilder.addTask(TASK_CHECK_AVAILABLE);
+    taskBuilder = procBuilder.addTaskExt(TASK_CHECK_AVAILABLE);
     taskBuilder.addNodeAssignment(AssignTime.End, ExpressionLanguage.MVEL, PROPERTY_SEATS + " < 10", PROPERTY_IS_AVAILABLE).
     addNodeAssignment(AssignTime.End, ExpressionLanguage.MVEL, PROPERTY_SEATS + " * 111", PROPERTY_PRICE).
     addSequenceFlow(GATEWAY_IS_AVAILABLE);
 
     // Build the SendInvalidTask
-    taskBuilder = procBuilder.addTask(TASK_SEND_INVALID, TaskType.Send);
+    taskBuilder = procBuilder.addTaskExt(TASK_SEND_INVALID, TaskType.Send);
     taskBuilder.addOutMessageRef(MESSAGE_INVALID_DATA).
     addSequenceFlow(TASK_RECEIVE_REQUEST);
 
@@ -128,12 +128,12 @@
     addDefaultGate(TASK_SEND_NOT_AVAILABLE);
     
     // Build the SendOfferTask
-    taskBuilder = procBuilder.addTask(TASK_MAKE_OFFER, TaskType.User);
+    taskBuilder = procBuilder.addTaskExt(TASK_MAKE_OFFER, TaskType.User);
     taskBuilder.addOutMessageRef(MESSAGE_OFFER).addInMessageRef(MESSAGE_ACCEPT_OFFER).
     addSequenceFlow(GATEWAY_IS_ACCEPTED);
 
     // Build the SendNotAvailableTask
-    taskBuilder = procBuilder.addTask(TASK_SEND_NOT_AVAILABLE, TaskType.Send);
+    taskBuilder = procBuilder.addTaskExt(TASK_SEND_NOT_AVAILABLE, TaskType.Send);
     taskBuilder.addOutMessageRef(MESSAGE_NOT_AVAILABLE).
     addSequenceFlow(TASK_RECEIVE_REQUEST);
 
@@ -148,7 +148,7 @@
     addGate(TASK_BOOKING);
     
     // Build the CreditCardTask
-    taskBuilder = procBuilder.addTask(TASK_CREDIT_CARD);
+    taskBuilder = procBuilder.addTaskExt(TASK_CREDIT_CARD);
     taskBuilder.addInputSet().
     addPropertyInput(PROPERTY_CREDIT_CARD).
     addPropertyInput(PROPERTY_EXPIRE).
@@ -156,7 +156,7 @@
     addSequenceFlow(GATEWAY_SYNC_JOIN);
     
     // Build the BookingTask
-    taskBuilder = procBuilder.addTask(TASK_BOOKING);
+    taskBuilder = procBuilder.addTaskExt(TASK_BOOKING);
     taskBuilder.addInputSet().
     addPropertyInput(PROPERTY_NAME).
     addPropertyInput(PROPERTY_FROM).
@@ -170,12 +170,12 @@
     gatewayBuilder.addGate(TASK_SEND_CONFIRM);
     
     // Build the SendConfirmTask
-    taskBuilder = procBuilder.addTask(TASK_SEND_CONFIRM, TaskType.Send);
+    taskBuilder = procBuilder.addTaskExt(TASK_SEND_CONFIRM, TaskType.Send);
     taskBuilder.addOutMessageRef(MESSAGE_CONFIRM).
     addSequenceFlow(EVENT_END);
     
     // Add the EndEvent
-    procBuilder.addEndEvent(EVENT_END);
+    procBuilder.addEndEventExt(EVENT_END);
 
     // Add ReqDataMsg 
     procBuilder.addProcessMessage(MESSAGE_REQ_DATA).

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -15,7 +15,8 @@
 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.ProcessDefinition;
+import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.builder.ObjectNameFactory;
 import org.jbpm.api.service.ProcessInstanceService;
 import org.jbpm.preview.client.MessageListener;
 import org.jbpm.preview.client.ProcessAsync;
@@ -23,7 +24,6 @@
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.Signal;
 import org.jbpm.preview.model.builder.MessageBuilder;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
 import org.jbpm.preview.service.MessageBuilderService;
 import org.jbpm.preview.service.MessageService;
 import org.jbpm.preview.service.SignalService;

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-14 09:11:15 UTC (rev 2921)
+++ projects/spec/trunk/modules/samples/airticket/server/src/test/java/org/jboss/bpm/samples/airticket/AirticketTest.java	2008-11-14 10:11:29 UTC (rev 2922)
@@ -25,7 +25,8 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.client.ProcessDefinition;
+import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.builder.ObjectNameFactory;
 import org.jbpm.api.runtime.Attachments;
 import org.jbpm.api.test.CTSTestCase;
 import org.jbpm.preview.client.MessageListener;
@@ -34,7 +35,6 @@
 import org.jbpm.preview.model.Message;
 import org.jbpm.preview.model.UserTask;
 import org.jbpm.preview.model.builder.MessageBuilder;
-import org.jbpm.preview.model.builder.ObjectNameFactory;
 import org.jbpm.preview.service.MessageBuilderService;
 import org.jbpm.preview.service.MessageService;
 import org.slf4j.Logger;




More information about the jbpm-commits mailing list