[jbpm-commits] JBoss JBPM SVN: r3162 - in projects/spec/trunk/modules: api/src/main/java/org/jboss/bpm/api/service and 21 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Dec 2 10:38:38 EST 2008


Author: thomas.diesler at jboss.com
Date: 2008-12-02 10:38:37 -0500 (Tue, 02 Dec 2008)
New Revision: 3162

Added:
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractDeploymentService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractDialectHandler.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractDialectHandlerService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractIdentityService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractProcessDefinitionService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractProcessService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractTaskService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/PersistenceService.java
Removed:
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/AbstractDialectHandler.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/AbstractService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/PersistenceService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/client/Deployment.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/DeploymentService.java
Modified:
   projects/spec/trunk/modules/api/.classpath
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/DialectHandlerService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ExecutionService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/IdentityService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ProcessBuilderService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ProcessDefinitionService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ProcessService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/TaskService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/MessageBuilderService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/MessageService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/SignalBuilderService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/SignalService.java
   projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/ThreadingService.java
   projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitMarshallerTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/service/process/ProcessDefinitionServiceTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/service/process/ProcessServiceTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/task/waitstate/WaitStateMarshallerTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/startevent/StartEventSignalTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/task/receive/ReceiveTaskTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/task/user/UserTaskTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/transaction/TxRequiredMarshallerTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/pattern/control/sequence/SequencePersistenceTest.java
   projects/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java
   projects/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java
   projects/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java
   projects/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/model/ProcessImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/runtime/PersistenceSessionInterceptor.java
   projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/runtime/TransactionInterceptor.java
   projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/DialectHandlerServiceImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/HibernatePersistenceServiceImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/InMemoryPersistenceServiceImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/ProcessDefinitionServiceImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/ProcessServiceImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/ThreadingServiceImpl.java
   projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/dialect/stp/sequence/SequenceTest.java
   projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/service/persistence/NodePersistenceTest.java
   projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/service/persistence/ProcessDefinitionPersistenceTest.java
   projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/service/persistence/ProcessPersistenceTest.java
   projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java
Log:
Use interfaces for services

Modified: projects/spec/trunk/modules/api/.classpath
===================================================================
--- projects/spec/trunk/modules/api/.classpath	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/.classpath	2008-12-02 15:38:37 UTC (rev 3162)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/AbstractDialectHandler.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/AbstractDialectHandler.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/AbstractDialectHandler.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -1,48 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.api.service;
-
-import org.jboss.bpm.api.client.ProcessEngine;
-
-//$Id$
-
-/**
- * The DialectHandler converts a supported dialect to the ProcessDefinition model.
- * 
- * @author thomas.diesler at jboss.com
- * @since 18-Jun-2008
- */
-public abstract class AbstractDialectHandler implements DialectHandler
-{
-  private ProcessEngine engine;
-
-  public ProcessEngine getProcessEngine()
-  {
-    return engine;
-  }
-
-  // Do not expose through the API
-  protected void setProcessEngine(ProcessEngine engine)
-  {
-    this.engine = engine;
-  }
-}

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/AbstractService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/AbstractService.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/AbstractService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -1,48 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.api.service;
-
-// $Id$
-
-import org.jboss.bpm.api.client.ProcessEngine;
-
-/**
- * An abstract Service that gives access to the ProcessEngine
- * 
- * @author thomas.diesler at jboss.com
- * @since 18-Jun-2008
- */
-public class AbstractService implements Service
-{
-  private ProcessEngine engine;
-
-  public ProcessEngine getProcessEngine()
-  {
-    return engine;
-  }
-
-  // Do not expose through the API
-  protected void setProcessEngine(ProcessEngine engine)
-  {
-    this.engine = engine;
-  }
-}

Modified: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/DialectHandlerService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/DialectHandlerService.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/DialectHandlerService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -24,35 +24,18 @@
 //$Id$
 
 import java.net.URI;
-import java.util.Map;
 
-
 /**
  * A registry that maps namespaceURI to a {@link DialectHandler}
  * 
  * @author thomas.diesler at jboss.com
  * @since 18-Jul-2008
  */
-public abstract class DialectHandlerService extends AbstractService
+public interface DialectHandlerService
 {
-  // Maps namespaceURI to a DialectHandler
-  protected Map<URI, DialectHandler> dialectHandlers;
 
   /**
    * Get the handler for the dialect with the given namespace URI
    */
-  public DialectHandler getDialectHandler(URI nsURI)
-  {
-    DialectHandler dialectHandler = dialectHandlers.get(nsURI);
-    if (dialectHandler == null)
-      throw new IllegalStateException("No dialect handler registered for: " + nsURI);
-
-    if (dialectHandler instanceof AbstractDialectHandler)
-    {
-      AbstractDialectHandler absHandler = (AbstractDialectHandler)dialectHandler;
-      absHandler.setProcessEngine(getProcessEngine());
-    }
-    	
-    return dialectHandler;
-  }
-}
+  DialectHandler getDialectHandler(URI nsURI);
+}
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ExecutionService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ExecutionService.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ExecutionService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -28,6 +28,7 @@
 import javax.management.ObjectName;
 
 import org.jboss.bpm.api.runtime.Token;
+import org.jboss.bpm.api.service.internal.AbstractService;
 
 
 /**

Modified: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/IdentityService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/IdentityService.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/IdentityService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -25,37 +25,33 @@
 
 import java.util.List;
 
-
 /**
  * The IdentityService manages identities
  * 
  * @author thomas.diesler at jboss.com
  * @since 28-Nov-2008
  */
-public abstract class IdentityService extends AbstractService
+public interface IdentityService
 {
-  // Hide public constructor
-  protected IdentityService()
-  {
-  }
 
   /**
    * Get a list of groups.
    */
-  public abstract List<String> getGroups();
-  
+  List<String> getGroups();
+
   /**
    * Get a list of groups a given actor belongs to.
    */
-  public abstract List<String> getGroupsByActor(String actor);
-  
+  List<String> getGroupsByActor(String actor);
+
   /**
    * Get a list of groups.
    */
-  public abstract List<String> getActors();
-  
+  List<String> getActors();
+
   /**
    * Get a list of actors that belong to a given group.
    */
-  public abstract List<String> getActorsByGroup(String group);
-}
+  List<String> getActorsByGroup(String group);
+
+}
\ No newline at end of file

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/PersistenceService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/PersistenceService.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/PersistenceService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -1,85 +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.jboss.bpm.api.service;
-
-// $Id$
-
-import javax.management.ObjectName;
-
-import org.hibernate.Session;
-import org.jboss.bpm.api.model.Node;
-import org.jboss.bpm.api.model.Process;
-import org.jboss.bpm.api.model.ProcessDefinition;
-
-/**
- * The persistence service.
- * 
- * @author thomas.diesler at jboss.com
- * @since 17-Sep-2008
- */
-public abstract class PersistenceService extends AbstractService
-{
-  /**
-   * Create a new persistence session
-   */
-  public abstract Session createSession();
-
-  /**
-   * Save the ProcessDefinition to persistent storage
-   */
-  public abstract ObjectName saveProcessDefinition(ProcessDefinition procDef);
-
-  /**
-   * Load the ProcessDefinition from persistent storage
-   */
-  public abstract ProcessDefinition loadProcessDefinition(ObjectName procDefID);
-
-  /**
-   * Delete the ProcessDefinition from persistent storage
-   */
-  public abstract void deleteProcessDefinition(ProcessDefinition procDef);
-
-  /**
-   * Save the Process to persistent storage
-   */
-  public abstract ObjectName saveProcess(Process proc);
-
-  /**
-   * Load the Process from persistent storage
-   */
-  public abstract Process loadProcess(ObjectName procID);
-
-  /**
-   * Delete the Process from persistent storage
-   */
-  public abstract void deleteProcess(Process proc);
-
-  /**
-   * Save the Node to persistent storage
-   */
-  public abstract ObjectName saveNode(Session session, Node node);
-
-  /**
-   * Load the Node from persistent storage
-   */
-  public abstract <T extends Node> T loadNode(Session session, Class<T> clazz, ObjectName nodeID);
-}
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ProcessBuilderService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ProcessBuilderService.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ProcessBuilderService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -25,6 +25,7 @@
 
 import org.jboss.bpm.api.model.Process;
 import org.jboss.bpm.api.model.builder.ProcessBuilder;
+import org.jboss.bpm.api.service.internal.AbstractService;
 
 /**
  * The ProcessBuilder can be used to build a {@link Process} dynamically.

Modified: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ProcessDefinitionService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ProcessDefinitionService.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ProcessDefinitionService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -23,22 +23,13 @@
 
 //$Id$
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
 import java.net.URL;
 import java.util.Set;
 
 import javax.management.ObjectName;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
 
 import org.jboss.bpm.api.model.ProcessDefinition;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
 
 /**
  * The ProcessDefinitionService is the entry point to create, find and otherwise manage process definitions.
@@ -46,86 +37,36 @@
  * @author thomas.diesler at jboss.com
  * @since 25-Sep-2008
  */
-public abstract class ProcessDefinitionService extends AbstractService
+public interface ProcessDefinitionService
 {
-  // Provide logging
-  final static Logger log = LoggerFactory.getLogger(ProcessDefinitionService.class);
-
-  // Hide public constructor
-  protected ProcessDefinitionService()
-  {
-  }
-
   /**
    * Register a ProcessDefinition.
    */
-  public abstract ObjectName registerProcessDefinition(ProcessDefinition procDef);
+  ProcessDefinition registerProcessDefinition(ProcessDefinition procDef);
 
   /**
    * Unregister a ProcessDefinition.
    */
-  public abstract boolean unregisterProcessDefinition(ObjectName procDefID);
+  boolean unregisterProcessDefinition(ObjectName procDefID);
 
   /**
    * Get a ProcessDefinition for a given id
    */
-  public abstract ProcessDefinition getProcessDefinition(ObjectName procDefID);
+  ProcessDefinition getProcessDefinition(ObjectName procDefID);
 
   /**
    * Get the set of registered ProcessDefinition names
    */
-  public abstract Set<ObjectName> getProcessDefinitions();
+  Set<ObjectName> getProcessDefinitions();
 
   /**
    * Create a ProcessDefinition from a XML string in one of the supported formats
    */
-  public final ProcessDefinition parseProcessDefinition(String pXML)
-  {
-    URI nsURI = getNamespaceURI(new ByteArrayInputStream(pXML.getBytes()));
-    DialectHandlerService dhService = getProcessEngine().getService(DialectHandlerService.class);
-    DialectHandler dialectHandler = dhService.getDialectHandler(nsURI);
-    if (dialectHandler == null)
-      throw new IllegalStateException("Cannot obtain DialectHandler for: " + nsURI);
-    
-    ProcessDefinition procDef = dialectHandler.parseProcessDefinition(pXML);
-    return procDef;
-  }
+  ProcessDefinition parseProcessDefinition(String pXML);
 
   /**
    * Create a ProcessDefinition from an URL to a XML descritor in one of the supported formats
    */
-  public final ProcessDefinition parseProcessDefinition(URL pURL) throws IOException
-  {
-    URI nsURI = getNamespaceURI(pURL.openStream());
-    DialectHandlerService dhService = getProcessEngine().getService(DialectHandlerService.class);
-    DialectHandler dialectHandler = dhService.getDialectHandler(nsURI);
-    if (dialectHandler == null)
-      throw new IllegalStateException("Cannot obtain DialectHandler for: " + nsURI);
-    
-    ProcessDefinition procDef = dialectHandler.parseProcessDefinition(pURL);
-    return procDef;
-  }
-  
-  private URI getNamespaceURI(InputStream procXML)
-  {
-    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-    dbf.setNamespaceAware(true);
-    Document doc;
-    try
-    {
-      DocumentBuilder db = dbf.newDocumentBuilder();
-      doc = db.parse(procXML);
-    }
-    catch (Exception ex)
-    {
-      throw new IllegalStateException("Cannot parse process descriptor", ex);
-    }
+  ProcessDefinition parseProcessDefinition(URL pURL) throws IOException;
 
-    Element root = doc.getDocumentElement();
-    String nsURI = root.getNamespaceURI();
-    if (nsURI == null)
-      throw new IllegalStateException("Cannot get namespace URI from root element");
-
-    return URI.create(nsURI);
-  }
 }
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ProcessService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ProcessService.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/ProcessService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -36,32 +36,28 @@
  * @author thomas.diesler at jboss.com
  * @since 25-Sep-2008
  */
-public abstract class ProcessService extends AbstractService
+public interface ProcessService
 {
-  // Hide public constructor
-  protected ProcessService()
-  {
-  }
 
   /**
    * Register a Process.
    */
-  public abstract ObjectName registerProcess(Process proc);
+  ObjectName registerProcess(Process proc);
 
   /**
    * Unregister a Process.
    */
-  public abstract boolean unregisterProcess(ObjectName procID);
+  boolean unregisterProcess(ObjectName procID);
 
   /**
    * Get a Process for a given id
    */
-  public abstract Process getProcess(ObjectName procID);
+  Process getProcess(ObjectName procID);
 
   /**
    * Get the set of registered Processes
    */
-  public abstract Set<ObjectName> getProcesses();
+  Set<ObjectName> getProcesses();
 
   /**
    * Get the set of Processes for a given ProcessDefinition
@@ -70,5 +66,6 @@
    * @param status The optional process status
    * @return An empty set if the process cannot be found
    */
-  public abstract Set<ObjectName> getProcesses(ObjectName procDefID, ProcessStatus status);
+  Set<ObjectName> getProcesses(ObjectName procDefID, ProcessStatus status);
+
 }
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/TaskService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/TaskService.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/TaskService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -21,7 +21,7 @@
  */
 package org.jboss.bpm.api.service;
 
-// $Id$
+//$Id$
 
 import java.util.List;
 
@@ -29,25 +29,21 @@
 
 import org.jboss.bpm.api.task.Task;
 
-
 /**
  * The TaskService manages Tasks.
  * 
  * @author thomas.diesler at jboss.com
  * @since 28-Nov-2008
  */
-public abstract class TaskService extends AbstractService
+public interface TaskService
 {
-  // Hide public constructor
-  protected TaskService()
-  {
-  }
 
-  public abstract Task getTask(ObjectName taskID);
+  Task getTask(ObjectName taskID);
 
-  public abstract List<Task> getTasksByActor(String actor);
+  List<Task> getTasksByActor(String actor);
 
-  public abstract void reassignTask(ObjectName taskID, String actor);
-  
-  public abstract void closeTask(ObjectName taskID, String signalName);
-}
+  void reassignTask(ObjectName taskID, String actor);
+
+  void closeTask(ObjectName taskID, String signalName);
+
+}
\ No newline at end of file

Added: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractDeploymentService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractDeploymentService.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractDeploymentService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -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.jboss.bpm.api.service.internal;
+
+import org.jboss.bpm.api.service.DeploymentService;
+
+//$Id$
+
+
+/**
+ * The DeploymentService creates, deployes and undeployes ProcessDefinitions.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 25-Sep-2008
+ */
+public abstract class AbstractDeploymentService extends AbstractService implements DeploymentService
+{
+}
\ No newline at end of file


Property changes on: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractDeploymentService.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Copied: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractDialectHandler.java (from rev 3150, projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/AbstractDialectHandler.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractDialectHandler.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractDialectHandler.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -0,0 +1,50 @@
+/*
+ * 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.jboss.bpm.api.service.internal;
+
+//$Id$
+
+import org.jboss.bpm.api.client.ProcessEngine;
+import org.jboss.bpm.api.service.DialectHandler;
+
+
+/**
+ * The DialectHandler converts a supported dialect to the ProcessDefinition model.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 18-Jun-2008
+ */
+public abstract class AbstractDialectHandler implements DialectHandler
+{
+  private ProcessEngine engine;
+
+  public ProcessEngine getProcessEngine()
+  {
+    return engine;
+  }
+
+  // Do not expose through the API
+  protected void setProcessEngine(ProcessEngine engine)
+  {
+    this.engine = engine;
+  }
+}

Added: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractDialectHandlerService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractDialectHandlerService.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractDialectHandlerService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -0,0 +1,58 @@
+/*
+ * 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.jboss.bpm.api.service.internal;
+
+//$Id$
+
+import java.net.URI;
+import java.util.Map;
+
+import org.jboss.bpm.api.service.DialectHandler;
+import org.jboss.bpm.api.service.DialectHandlerService;
+
+
+/**
+ * A registry that maps namespaceURI to a {@link DialectHandler}
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 18-Jul-2008
+ */
+public abstract class AbstractDialectHandlerService extends AbstractService implements DialectHandlerService
+{
+  // Maps namespaceURI to a DialectHandler
+  protected Map<URI, DialectHandler> dialectHandlers;
+
+  public DialectHandler getDialectHandler(URI nsURI)
+  {
+    DialectHandler dialectHandler = dialectHandlers.get(nsURI);
+    if (dialectHandler == null)
+      throw new IllegalStateException("No dialect handler registered for: " + nsURI);
+
+    if (dialectHandler instanceof AbstractDialectHandler)
+    {
+      AbstractDialectHandler absHandler = (AbstractDialectHandler)dialectHandler;
+      absHandler.setProcessEngine(getProcessEngine());
+    }
+    	
+    return dialectHandler;
+  }
+}


Property changes on: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractDialectHandlerService.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractIdentityService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractIdentityService.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractIdentityService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -0,0 +1,40 @@
+/*
+ * 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.jboss.bpm.api.service.internal;
+
+// $Id$
+
+import org.jboss.bpm.api.service.IdentityService;
+
+/**
+ * The IdentityService manages identities
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 28-Nov-2008
+ */
+public abstract class AbstractIdentityService extends AbstractService implements IdentityService
+{
+  // Hide public constructor
+  protected AbstractIdentityService()
+  {
+  }
+}


Property changes on: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractIdentityService.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractProcessDefinitionService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractProcessDefinitionService.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractProcessDefinitionService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -0,0 +1,108 @@
+/*
+ * 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.jboss.bpm.api.service.internal;
+
+//$Id$
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.URL;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.jboss.bpm.api.model.ProcessDefinition;
+import org.jboss.bpm.api.service.DialectHandler;
+import org.jboss.bpm.api.service.DialectHandlerService;
+import org.jboss.bpm.api.service.ProcessDefinitionService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ * The ProcessDefinitionService is the entry point to create, find and otherwise manage process definitions.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 25-Sep-2008
+ */
+public abstract class AbstractProcessDefinitionService extends AbstractService implements ProcessDefinitionService
+{
+  // Provide logging
+  final static Logger log = LoggerFactory.getLogger(AbstractProcessDefinitionService.class);
+
+  // Hide public constructor
+  protected AbstractProcessDefinitionService()
+  {
+  }
+
+  @Override
+  public final ProcessDefinition parseProcessDefinition(String pXML)
+  {
+    URI nsURI = getNamespaceURI(new ByteArrayInputStream(pXML.getBytes()));
+    DialectHandlerService dhService = getProcessEngine().getService(DialectHandlerService.class);
+    DialectHandler dialectHandler = dhService.getDialectHandler(nsURI);
+    if (dialectHandler == null)
+      throw new IllegalStateException("Cannot obtain DialectHandler for: " + nsURI);
+
+    ProcessDefinition procDef = dialectHandler.parseProcessDefinition(pXML);
+    return procDef;
+  }
+
+  @Override
+  public final ProcessDefinition parseProcessDefinition(URL pURL) throws IOException
+  {
+    URI nsURI = getNamespaceURI(pURL.openStream());
+    DialectHandlerService dhService = getProcessEngine().getService(DialectHandlerService.class);
+    DialectHandler dialectHandler = dhService.getDialectHandler(nsURI);
+    if (dialectHandler == null)
+      throw new IllegalStateException("Cannot obtain DialectHandler for: " + nsURI);
+
+    ProcessDefinition procDef = dialectHandler.parseProcessDefinition(pURL);
+    return procDef;
+  }
+
+  private URI getNamespaceURI(InputStream procXML)
+  {
+    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+    dbf.setNamespaceAware(true);
+    Document doc;
+    try
+    {
+      DocumentBuilder db = dbf.newDocumentBuilder();
+      doc = db.parse(procXML);
+    }
+    catch (Exception ex)
+    {
+      throw new IllegalStateException("Cannot parse process descriptor", ex);
+    }
+
+    Element root = doc.getDocumentElement();
+    String nsURI = root.getNamespaceURI();
+    if (nsURI == null)
+      throw new IllegalStateException("Cannot get namespace URI from root element");
+
+    return URI.create(nsURI);
+  }
+}
\ No newline at end of file


Property changes on: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractProcessDefinitionService.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractProcessService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractProcessService.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractProcessService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -0,0 +1,71 @@
+/*
+ * 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.jboss.bpm.api.service.internal;
+
+//$Id$
+
+import java.util.Set;
+
+import javax.management.ObjectName;
+
+import org.jboss.bpm.api.model.Process;
+import org.jboss.bpm.api.model.Process.ProcessStatus;
+import org.jboss.bpm.api.service.ProcessService;
+
+/**
+ * The ProcessService is the entry point to create, find and otherwise manage processes.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 25-Sep-2008
+ */
+public abstract class AbstractProcessService extends AbstractService implements ProcessService
+{
+  // Hide public constructor
+  protected AbstractProcessService()
+  {
+  }
+
+  /* (non-Javadoc)
+   * @see org.jboss.bpm.api.service.internal.ProcessService#registerProcess(org.jboss.bpm.api.model.Process)
+   */
+  public abstract ObjectName registerProcess(Process proc);
+
+  /* (non-Javadoc)
+   * @see org.jboss.bpm.api.service.internal.ProcessService#unregisterProcess(javax.management.ObjectName)
+   */
+  public abstract boolean unregisterProcess(ObjectName procID);
+
+  /* (non-Javadoc)
+   * @see org.jboss.bpm.api.service.internal.ProcessService#getProcess(javax.management.ObjectName)
+   */
+  public abstract Process getProcess(ObjectName procID);
+
+  /* (non-Javadoc)
+   * @see org.jboss.bpm.api.service.internal.ProcessService#getProcesses()
+   */
+  public abstract Set<ObjectName> getProcesses();
+
+  /* (non-Javadoc)
+   * @see org.jboss.bpm.api.service.internal.ProcessService#getProcesses(javax.management.ObjectName, org.jboss.bpm.api.model.Process.ProcessStatus)
+   */
+  public abstract Set<ObjectName> getProcesses(ObjectName procDefID, ProcessStatus status);
+}
\ No newline at end of file


Property changes on: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractProcessService.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Copied: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractService.java (from rev 3150, projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/AbstractService.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractService.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.api.service.internal;
+
+// $Id$
+
+import org.jboss.bpm.api.client.ProcessEngine;
+import org.jboss.bpm.api.service.Service;
+
+/**
+ * An abstract Service that gives access to the ProcessEngine
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 18-Jun-2008
+ */
+public class AbstractService implements Service
+{
+  private ProcessEngine engine;
+
+  public ProcessEngine getProcessEngine()
+  {
+    return engine;
+  }
+
+  // Do not expose through the API
+  protected void setProcessEngine(ProcessEngine engine)
+  {
+    this.engine = engine;
+  }
+}

Added: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractTaskService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractTaskService.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractTaskService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -0,0 +1,40 @@
+/*
+ * 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.jboss.bpm.api.service.internal;
+
+import org.jboss.bpm.api.service.TaskService;
+
+// $Id$
+
+/**
+ * The TaskService manages Tasks.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 28-Nov-2008
+ */
+public abstract class AbstractTaskService extends AbstractService implements TaskService
+{
+  // Hide public constructor
+  protected AbstractTaskService()
+  {
+  }
+}


Property changes on: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/internal/AbstractTaskService.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/client/Deployment.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/client/Deployment.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/client/Deployment.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -1,126 +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.jboss.bpm.incubator.client;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Serializable;
-import java.net.URI;
-import java.net.URL;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.jboss.bpm.api.client.ProcessEngine;
-import org.jboss.bpm.api.model.ProcessDefinition;
-import org.jboss.bpm.api.service.DialectHandler;
-import org.jboss.bpm.api.service.DialectHandlerService;
-import org.jboss.bpm.api.service.ProcessService;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * A deployment, containing all information to create a process that will be deployed to the {@link ProcessService}
- * 
- * @author Tom Baeyens
- * @author thomas.diesler at jboss.com
- * @since 25-Sep-2008
- */
-public class Deployment implements Serializable
-{
-  private static final long serialVersionUID = 1L;
-  
-  private String procXML;
-  private ProcessDefinition process;
-
-  public Deployment(String procXML)
-  {
-    if (procXML == null)
-      throw new IllegalArgumentException("Null process definition");
-    
-    this.procXML = procXML;
-  }
-  
-  public Deployment(URL procURL) throws IOException
-  {
-    if (procURL == null)
-      throw new IllegalArgumentException("Null process definition");
-    
-    StringBuilder strBuilder = new StringBuilder();
-    BufferedReader br = new BufferedReader(new InputStreamReader(procURL.openStream()));
-    String line = br.readLine();
-    while (line != null)
-    {
-      strBuilder.append(line);
-      line = br.readLine();
-    }
-    procXML = strBuilder.toString();
-  }
-
-  public Deployment(ProcessDefinition procDef)
-  {
-    this.process = procDef;
-  }
-
-  public ProcessDefinition getProcessDefinition(ProcessEngine engine)
-  {
-    if (process == null)
-    {
-      DialectHandlerService dhService = engine.getService(DialectHandlerService.class);
-      if (dhService == null)
-        throw new IllegalStateException("DialectHandlerService not registered");
-      
-      URI nsURI = getNamespaceURI();
-      DialectHandler dialectHandler = dhService.getDialectHandler(nsURI);
-      if (dialectHandler == null)
-        throw new IllegalStateException("Cannot obtain DialectHandler for: " + nsURI);
-      
-      process = dialectHandler.parseProcessDefinition(procXML);
-    }
-    return process;
-  }
-  
-  private URI getNamespaceURI()
-  {
-    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-    dbf.setNamespaceAware(true);
-    Document doc;
-    try
-    {
-      DocumentBuilder db = dbf.newDocumentBuilder();
-      doc = db.parse(new ByteArrayInputStream(procXML.getBytes()));
-    }
-    catch (Exception ex)
-    {
-      throw new IllegalStateException("Cannot parse process descriptor", ex);
-    }
-
-    Element root = doc.getDocumentElement();
-    String nsURI = root.getNamespaceURI();
-    if (nsURI == null)
-      throw new IllegalStateException("Cannot get namespace URI from root element");
-
-    return URI.create(nsURI);
-  }
-}

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/DeploymentService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/DeploymentService.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/DeploymentService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -1,51 +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.jboss.bpm.incubator.service;
-
-//$Id$
-
-import javax.management.ObjectName;
-
-import org.jboss.bpm.api.service.Service;
-import org.jboss.bpm.incubator.client.Deployment;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The marker interface for all Services
- * 
- * @author thomas.diesler at jboss.com
- * @since 25-Sep-2008
- */
-public abstract class DeploymentService implements Service
-{
-  // Provide logging
-  final static Logger log = LoggerFactory.getLogger(DeploymentService.class);
-
-  /**
-   * Deploy a new process to the process service.
-   */
-  ObjectName deploy(Deployment deployment)
-  {
-    return null;
-  }
-}
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/MessageBuilderService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/MessageBuilderService.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/MessageBuilderService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -25,7 +25,7 @@
 
 import org.jboss.bpm.api.client.Configuration;
 import org.jboss.bpm.api.client.ProcessEngine;
-import org.jboss.bpm.api.service.AbstractService;
+import org.jboss.bpm.api.service.internal.AbstractService;
 import org.jboss.bpm.incubator.model.Message;
 import org.jboss.bpm.incubator.model.builder.MessageBuilder;
 

Modified: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/MessageService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/MessageService.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/MessageService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -37,8 +37,9 @@
 import org.jboss.bpm.api.model.Node;
 import org.jboss.bpm.api.model.Process;
 import org.jboss.bpm.api.model.Task;
-import org.jboss.bpm.api.service.AbstractService;
 import org.jboss.bpm.api.service.ProcessService;
+import org.jboss.bpm.api.service.internal.AbstractProcessService;
+import org.jboss.bpm.api.service.internal.AbstractService;
 import org.jboss.bpm.incubator.client.MessageListener;
 import org.jboss.bpm.incubator.model.Message;
 import org.jboss.bpm.incubator.model.Participant;

Copied: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/PersistenceService.java (from rev 3150, projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/api/service/PersistenceService.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/PersistenceService.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/PersistenceService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -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.jboss.bpm.incubator.service;
+
+// $Id$
+
+import javax.management.ObjectName;
+
+import org.hibernate.Session;
+import org.jboss.bpm.api.model.Node;
+import org.jboss.bpm.api.model.Process;
+import org.jboss.bpm.api.model.ProcessDefinition;
+import org.jboss.bpm.api.service.internal.AbstractService;
+
+/**
+ * The persistence service.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 17-Sep-2008
+ */
+public abstract class PersistenceService extends AbstractService
+{
+  /**
+   * Create a new persistence session
+   */
+  public abstract Session createSession();
+
+  /**
+   * Save the ProcessDefinition to persistent storage
+   */
+  public abstract ObjectName saveProcessDefinition(ProcessDefinition procDef);
+
+  /**
+   * Load the ProcessDefinition from persistent storage
+   */
+  public abstract ProcessDefinition loadProcessDefinition(ObjectName procDefID);
+
+  /**
+   * Delete the ProcessDefinition from persistent storage
+   */
+  public abstract void deleteProcessDefinition(ProcessDefinition procDef);
+
+  /**
+   * Save the Process to persistent storage
+   */
+  public abstract ObjectName saveProcess(Process proc);
+
+  /**
+   * Load the Process from persistent storage
+   */
+  public abstract Process loadProcess(ObjectName procID);
+
+  /**
+   * Delete the Process from persistent storage
+   */
+  public abstract void deleteProcess(Process proc);
+
+  /**
+   * Save the Node to persistent storage
+   */
+  public abstract ObjectName saveNode(Session session, Node node);
+
+  /**
+   * Load the Node from persistent storage
+   */
+  public abstract <T extends Node> T loadNode(Session session, Class<T> clazz, ObjectName nodeID);
+}
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/SignalBuilderService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/SignalBuilderService.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/SignalBuilderService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -25,7 +25,7 @@
 
 import org.jboss.bpm.api.client.Configuration;
 import org.jboss.bpm.api.client.ProcessEngine;
-import org.jboss.bpm.api.service.AbstractService;
+import org.jboss.bpm.api.service.internal.AbstractService;
 import org.jboss.bpm.incubator.model.Signal;
 import org.jboss.bpm.incubator.model.builder.SignalBuilder;
 

Modified: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/SignalService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/SignalService.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/SignalService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -29,7 +29,7 @@
 
 import org.jboss.bpm.api.client.Configuration;
 import org.jboss.bpm.api.client.ProcessEngine;
-import org.jboss.bpm.api.service.AbstractService;
+import org.jboss.bpm.api.service.internal.AbstractService;
 import org.jboss.bpm.incubator.client.SignalListener;
 import org.jboss.bpm.incubator.model.Signal;
 import org.slf4j.Logger;

Modified: projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/ThreadingService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/ThreadingService.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/api/src/main/java/org/jboss/bpm/incubator/service/ThreadingService.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -30,7 +30,7 @@
 import org.jboss.bpm.api.model.StartEvent;
 import org.jboss.bpm.api.model.Process.ProcessStatus;
 import org.jboss.bpm.api.runtime.Attachments;
-import org.jboss.bpm.api.service.AbstractService;
+import org.jboss.bpm.api.service.internal.AbstractService;
 
 /**
  * The ThreadingService executes processes

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitMarshallerTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitMarshallerTest.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitMarshallerTest.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -27,6 +27,7 @@
 
 import org.jboss.bpm.api.model.ProcessDefinition;
 import org.jboss.bpm.api.service.ProcessDefinitionService;
+import org.jboss.bpm.api.service.internal.AbstractProcessDefinitionService;
 
 
 /**

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/service/process/ProcessDefinitionServiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/service/process/ProcessDefinitionServiceTest.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/service/process/ProcessDefinitionServiceTest.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -32,6 +32,8 @@
 import org.jboss.bpm.api.model.ProcessDefinition;
 import org.jboss.bpm.api.service.ProcessDefinitionService;
 import org.jboss.bpm.api.service.ProcessService;
+import org.jboss.bpm.api.service.internal.AbstractProcessDefinitionService;
+import org.jboss.bpm.api.service.internal.AbstractProcessService;
 import org.jboss.bpm.api.test.CTSTestCase;
 import org.jboss.bpm.api.test.ProcessCatalog;
 
@@ -79,9 +81,8 @@
     ProcessEngine engine = procDef.getProcessEngine();
     ProcessDefinitionService procDefService = engine.getService(ProcessDefinitionService.class);
     
-    ObjectName procDefID = procDefService.registerProcessDefinition(procDef);
-    assertSame(procDef, procDefService.getProcessDefinition(procDefID));
-    assertEquals(procDefID, procDef.getKey());
+    procDef = procDefService.registerProcessDefinition(procDef);
+    assertNotNull("Registered ProcessDefinition not null", procDef);
     
     boolean success = procDefService.unregisterProcessDefinition(procDef.getKey());
     assertTrue("ProcessDefinition unregistered", success);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/service/process/ProcessServiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/service/process/ProcessServiceTest.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/service/process/ProcessServiceTest.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -28,6 +28,7 @@
 import org.jboss.bpm.api.model.Process;
 import org.jboss.bpm.api.model.ProcessDefinition;
 import org.jboss.bpm.api.model.builder.ProcessBuilder;
+import org.jboss.bpm.api.runtime.Token;
 import org.jboss.bpm.api.service.ProcessBuilderService;
 import org.jboss.bpm.api.service.ProcessDefinitionService;
 import org.jboss.bpm.api.service.ProcessService;
@@ -67,6 +68,29 @@
     assertNull("ProcessDefinition unregistered", procDefService.getProcessDefinition(procDef.getKey()));
   }
   
+  public void testStartProcess() throws Exception
+  {
+    ProcessDefinitionService procDefService = getProcessEngine().getService(ProcessDefinitionService.class);
+    ProcessService procService = getProcessEngine().getService(ProcessService.class);
+    
+    ProcessDefinition procDef = getProcessDefinition();
+    Process proc = procDef.newInstance();
+    
+    Token token = proc.startProcess();
+    assertNotNull("Token not null", token);
+
+    ObjectName procID = proc.getKey();
+    assertNotNull("Process registered", procService.getProcess(procID));
+
+    // Unregister the process
+    procService.unregisterProcess(procID);
+    assertNull("Process unregistered", procService.getProcess(procID));
+    assertNotNull("ProcessDefinition still registered", procDefService.getProcessDefinition(procDef.getKey()));
+    
+    procDefService.unregisterProcessDefinition(procDef.getKey());
+    assertNull("ProcessDefinition unregistered", procDefService.getProcessDefinition(procDef.getKey()));
+  }
+  
   private ProcessDefinition getProcessDefinition()
   {
     ProcessBuilderService pbService = getProcessEngine().getService(ProcessBuilderService.class);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/task/waitstate/WaitStateMarshallerTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/task/waitstate/WaitStateMarshallerTest.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/cts/task/waitstate/WaitStateMarshallerTest.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -25,6 +25,7 @@
 
 import org.jboss.bpm.api.model.ProcessDefinition;
 import org.jboss.bpm.api.service.ProcessDefinitionService;
+import org.jboss.bpm.api.service.internal.AbstractProcessDefinitionService;
 
 // $Id$
 

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/startevent/StartEventSignalTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/startevent/StartEventSignalTest.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/startevent/StartEventSignalTest.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -34,6 +34,8 @@
 import org.jboss.bpm.api.service.ProcessBuilderService;
 import org.jboss.bpm.api.service.ProcessDefinitionService;
 import org.jboss.bpm.api.service.ProcessService;
+import org.jboss.bpm.api.service.internal.AbstractProcessDefinitionService;
+import org.jboss.bpm.api.service.internal.AbstractProcessService;
 import org.jboss.bpm.api.test.CTSTestCase;
 import org.jboss.bpm.incubator.client.ProcessExt;
 import org.jboss.bpm.incubator.client.SignalListener;

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/task/receive/ReceiveTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/task/receive/ReceiveTaskTest.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/task/receive/ReceiveTaskTest.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -34,6 +34,8 @@
 import org.jboss.bpm.api.service.ProcessBuilderService;
 import org.jboss.bpm.api.service.ProcessDefinitionService;
 import org.jboss.bpm.api.service.ProcessService;
+import org.jboss.bpm.api.service.internal.AbstractProcessDefinitionService;
+import org.jboss.bpm.api.service.internal.AbstractProcessService;
 import org.jboss.bpm.api.test.CTSTestCase;
 import org.jboss.bpm.incubator.client.ProcessExt;
 import org.jboss.bpm.incubator.client.SignalListener;

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/task/user/UserTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/task/user/UserTaskTest.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/task/user/UserTaskTest.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -36,6 +36,7 @@
 import org.jboss.bpm.api.runtime.BasicAttachments;
 import org.jboss.bpm.api.service.ProcessBuilderService;
 import org.jboss.bpm.api.service.ProcessService;
+import org.jboss.bpm.api.service.internal.AbstractProcessService;
 import org.jboss.bpm.api.test.CTSTestCase;
 import org.jboss.bpm.incubator.client.MessageListener;
 import org.jboss.bpm.incubator.client.ProcessExt;

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/transaction/TxRequiredMarshallerTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/transaction/TxRequiredMarshallerTest.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/incubator/transaction/TxRequiredMarshallerTest.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -27,6 +27,7 @@
 
 import org.jboss.bpm.api.model.ProcessDefinition;
 import org.jboss.bpm.api.service.ProcessDefinitionService;
+import org.jboss.bpm.api.service.internal.AbstractProcessDefinitionService;
 
 /**
  * Test two tasks with Tx attribute REQUIRED

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/pattern/control/sequence/SequencePersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/pattern/control/sequence/SequencePersistenceTest.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jboss/bpm/test/pattern/control/sequence/SequencePersistenceTest.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -28,7 +28,7 @@
 import javax.management.ObjectName;
 
 import org.jboss.bpm.api.model.ProcessDefinition;
-import org.jboss.bpm.api.service.PersistenceService;
+import org.jboss.bpm.incubator.service.PersistenceService;
 
 /**
  * Test the basic execution sequence

Modified: projects/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java
===================================================================
--- projects/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jboss/bpm/dialect/api10/DialectHandlerImpl.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -34,7 +34,7 @@
 
 import org.jboss.bpm.api.InvalidProcessException;
 import org.jboss.bpm.api.model.ProcessDefinition;
-import org.jboss.bpm.api.service.AbstractDialectHandler;
+import org.jboss.bpm.api.service.internal.AbstractDialectHandler;
 
 /**
  * The DialectHandler converts a supported dialect to the internal Process model.

Modified: projects/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java
===================================================================
--- projects/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/dialects/jpdl32/src/main/java/org/jboss/bpm/dialect/jpdl32/DialectHandlerImpl.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -35,7 +35,7 @@
 import org.jboss.bpm.api.InvalidProcessException;
 import org.jboss.bpm.api.NotImplementedException;
 import org.jboss.bpm.api.model.ProcessDefinition;
-import org.jboss.bpm.api.service.AbstractDialectHandler;
+import org.jboss.bpm.api.service.internal.AbstractDialectHandler;
 import org.jboss.bpm.dialect.jpdl32.model.JPDL32ProcessDefinition;
 
 

Modified: projects/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java
===================================================================
--- projects/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/dialects/stp/src/main/java/org/jboss/bpm/dialect/stp/DialectHandlerImpl.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -34,7 +34,7 @@
 import org.jboss.bpm.api.InvalidProcessException;
 import org.jboss.bpm.api.NotImplementedException;
 import org.jboss.bpm.api.model.ProcessDefinition;
-import org.jboss.bpm.api.service.AbstractDialectHandler;
+import org.jboss.bpm.api.service.internal.AbstractDialectHandler;
 
 /**
  * The DialectHandler converts a supported dialect to the internal Process model.

Modified: projects/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java
===================================================================
--- projects/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/dialects/xpdl21/src/main/java/org/jboss/bpm/dialect/xpdl21/DialectHandlerImpl.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -35,7 +35,7 @@
 import org.jboss.bpm.api.InvalidProcessException;
 import org.jboss.bpm.api.NotImplementedException;
 import org.jboss.bpm.api.model.ProcessDefinition;
-import org.jboss.bpm.api.service.AbstractDialectHandler;
+import org.jboss.bpm.api.service.internal.AbstractDialectHandler;
 import org.jboss.bpm.dialect.xpdl21.model.XPDLWorkflowProcess;
 
 /**

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/model/ProcessImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/model/ProcessImpl.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/model/ProcessImpl.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -53,6 +53,7 @@
 import org.jboss.bpm.api.runtime.Token;
 import org.jboss.bpm.api.runtime.Token.TokenStatus;
 import org.jboss.bpm.api.service.ProcessService;
+import org.jboss.bpm.api.service.internal.AbstractProcessService;
 import org.jboss.bpm.incubator.client.ProcessExt;
 import org.jboss.bpm.incubator.model.Assignment;
 import org.jboss.bpm.incubator.model.Group;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/runtime/PersistenceSessionInterceptor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/runtime/PersistenceSessionInterceptor.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/runtime/PersistenceSessionInterceptor.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -26,7 +26,7 @@
 import org.hibernate.Session;
 import org.jboss.bpm.api.client.ProcessEngine;
 import org.jboss.bpm.api.runtime.Token.TokenStatus;
-import org.jboss.bpm.api.service.PersistenceService;
+import org.jboss.bpm.incubator.service.PersistenceService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/runtime/TransactionInterceptor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/runtime/TransactionInterceptor.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/runtime/TransactionInterceptor.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -30,11 +30,11 @@
 import org.jboss.bpm.api.Constants.TxType;
 import org.jboss.bpm.api.client.ProcessEngine;
 import org.jboss.bpm.api.model.Node;
-import org.jboss.bpm.api.service.PersistenceService;
 import org.jboss.bpm.incubator.model.Group;
 import org.jboss.bpm.incubator.model.NodeExt;
 import org.jboss.bpm.incubator.model.Property;
 import org.jboss.bpm.incubator.model.Group.GroupType;
+import org.jboss.bpm.incubator.service.PersistenceService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/DialectHandlerServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/DialectHandlerServiceImpl.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/DialectHandlerServiceImpl.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -28,7 +28,7 @@
 
 import org.jboss.bpm.api.client.ProcessEngine;
 import org.jboss.bpm.api.service.DialectHandler;
-import org.jboss.bpm.api.service.DialectHandlerService;
+import org.jboss.bpm.api.service.internal.AbstractDialectHandlerService;
 
 /**
  * A registry that maps namespaceURI to a {@link DialectHandler}
@@ -36,7 +36,7 @@
  * @author thomas.diesler at jboss.com
  * @since 18-Jun-2008
  */
-public class DialectHandlerServiceImpl extends DialectHandlerService implements MutableService
+public class DialectHandlerServiceImpl extends AbstractDialectHandlerService implements MutableService
 {
   @Override
   public void setProcessEngine(ProcessEngine engine)

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/HibernatePersistenceServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/HibernatePersistenceServiceImpl.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/HibernatePersistenceServiceImpl.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -40,8 +40,8 @@
 import org.jboss.bpm.api.model.Node;
 import org.jboss.bpm.api.model.Process;
 import org.jboss.bpm.api.model.ProcessDefinition;
-import org.jboss.bpm.api.service.PersistenceService;
 import org.jboss.bpm.api.service.Service;
+import org.jboss.bpm.incubator.service.PersistenceService;
 import org.jboss.bpm.ri.model.AbstractElementImpl;
 import org.jboss.bpm.ri.model.ProcessDefinitionImpl;
 import org.jboss.bpm.ri.model.ProcessImpl;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/InMemoryPersistenceServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/InMemoryPersistenceServiceImpl.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/InMemoryPersistenceServiceImpl.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -34,7 +34,7 @@
 import org.jboss.bpm.api.model.Node;
 import org.jboss.bpm.api.model.Process;
 import org.jboss.bpm.api.model.ProcessDefinition;
-import org.jboss.bpm.api.service.PersistenceService;
+import org.jboss.bpm.incubator.service.PersistenceService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/ProcessDefinitionServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/ProcessDefinitionServiceImpl.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/ProcessDefinitionServiceImpl.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -32,9 +32,10 @@
 
 import org.jboss.bpm.api.client.ProcessEngine;
 import org.jboss.bpm.api.model.ProcessDefinition;
-import org.jboss.bpm.api.service.PersistenceService;
-import org.jboss.bpm.api.service.ProcessDefinitionService;
 import org.jboss.bpm.api.service.ProcessService;
+import org.jboss.bpm.api.service.internal.AbstractProcessDefinitionService;
+import org.jboss.bpm.api.service.internal.AbstractProcessService;
+import org.jboss.bpm.incubator.service.PersistenceService;
 import org.jboss.bpm.ri.model.ProcessDefinitionImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -45,7 +46,7 @@
  * @author thomas.diesler at jboss.com
  * @since 18-Jun-2008
  */
-public class ProcessDefinitionServiceImpl extends ProcessDefinitionService implements MutableService
+public class ProcessDefinitionServiceImpl extends AbstractProcessDefinitionService implements MutableService
 {
   // Provide logging
   final static Logger log = LoggerFactory.getLogger(ProcessDefinitionServiceImpl.class);
@@ -72,7 +73,7 @@
   }
 
   @Override
-  public ObjectName registerProcessDefinition(ProcessDefinition procDef)
+  public ProcessDefinition registerProcessDefinition(ProcessDefinition procDef)
   {
     if (getProcessDefinition(procDef.getKey()) != null)
       throw new IllegalStateException("Process definition already registered: " + procDef);
@@ -87,7 +88,7 @@
     ProcessDefinitionImpl procDefImpl = (ProcessDefinitionImpl)procDef;
     procDefImpl.register(procDef);
 
-    return procDefID;
+    return procDef;
   }
 
   @Override

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/ProcessServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/ProcessServiceImpl.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/ProcessServiceImpl.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -37,9 +37,10 @@
 import org.jboss.bpm.api.model.Process;
 import org.jboss.bpm.api.model.ProcessDefinition;
 import org.jboss.bpm.api.model.Process.ProcessStatus;
-import org.jboss.bpm.api.service.PersistenceService;
 import org.jboss.bpm.api.service.ProcessDefinitionService;
-import org.jboss.bpm.api.service.ProcessService;
+import org.jboss.bpm.api.service.internal.AbstractProcessDefinitionService;
+import org.jboss.bpm.api.service.internal.AbstractProcessService;
+import org.jboss.bpm.incubator.service.PersistenceService;
 import org.jboss.bpm.ri.model.ProcessImpl;
 import org.jboss.bpm.ri.runtime.NodeInterceptor;
 import org.slf4j.Logger;
@@ -51,7 +52,7 @@
  * @author thomas.diesler at jboss.com
  * @since 18-Jun-2008
  */
-public class ProcessServiceImpl extends ProcessService implements MutableService
+public class ProcessServiceImpl extends AbstractProcessService implements MutableService
 {
   // Provide logging
   final static Logger log = LoggerFactory.getLogger(ProcessServiceImpl.class);

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/ThreadingServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/ThreadingServiceImpl.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jboss/bpm/ri/service/ThreadingServiceImpl.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -38,6 +38,7 @@
 import org.jboss.bpm.api.runtime.Attachments;
 import org.jboss.bpm.api.runtime.Token;
 import org.jboss.bpm.api.service.ProcessService;
+import org.jboss.bpm.api.service.internal.AbstractProcessService;
 import org.jboss.bpm.incubator.client.ProcessExt;
 import org.jboss.bpm.incubator.model.Assignment;
 import org.jboss.bpm.incubator.model.Assignment.AssignTime;

Modified: projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/dialect/stp/sequence/SequenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/dialect/stp/sequence/SequenceTest.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/dialect/stp/sequence/SequenceTest.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -27,6 +27,7 @@
 
 import org.jboss.bpm.api.model.ProcessDefinition;
 import org.jboss.bpm.api.service.ProcessDefinitionService;
+import org.jboss.bpm.api.service.internal.AbstractProcessDefinitionService;
 import org.jboss.bpm.api.test.APITestCase;
 
 /**

Modified: projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/service/persistence/NodePersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/service/persistence/NodePersistenceTest.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/service/persistence/NodePersistenceTest.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -27,8 +27,8 @@
 
 import org.hibernate.Session;
 import org.jboss.bpm.api.model.Node;
-import org.jboss.bpm.api.service.PersistenceService;
 import org.jboss.bpm.api.test.CTSTestCase;
+import org.jboss.bpm.incubator.service.PersistenceService;
 import org.jboss.bpm.ri.service.HibernatePersistenceServiceImpl;
 
 /**

Modified: projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/service/persistence/ProcessDefinitionPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/service/persistence/ProcessDefinitionPersistenceTest.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/service/persistence/ProcessDefinitionPersistenceTest.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -31,9 +31,9 @@
 import org.jboss.bpm.api.model.ProcessDefinition;
 import org.jboss.bpm.api.model.StartEvent;
 import org.jboss.bpm.api.model.Task;
-import org.jboss.bpm.api.service.PersistenceService;
 import org.jboss.bpm.api.test.CTSTestCase;
 import org.jboss.bpm.api.test.ProcessCatalog;
+import org.jboss.bpm.incubator.service.PersistenceService;
 
 /**
  * Test the PersistenceService

Modified: projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/service/persistence/ProcessPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/service/persistence/ProcessPersistenceTest.java	2008-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jboss/bpm/test/ri/service/persistence/ProcessPersistenceTest.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -32,10 +32,11 @@
 import org.jboss.bpm.api.model.ProcessDefinition;
 import org.jboss.bpm.api.model.StartEvent;
 import org.jboss.bpm.api.model.Task;
-import org.jboss.bpm.api.service.PersistenceService;
 import org.jboss.bpm.api.service.ProcessDefinitionService;
+import org.jboss.bpm.api.service.internal.AbstractProcessDefinitionService;
 import org.jboss.bpm.api.test.CTSTestCase;
 import org.jboss.bpm.api.test.ProcessCatalog;
+import org.jboss.bpm.incubator.service.PersistenceService;
 
 /**
  * Test the PersistenceService

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-12-02 10:16:43 UTC (rev 3161)
+++ projects/spec/trunk/modules/samples/airticket/server/src/main/java/org/jboss/bpm/samples/airticket/server/AirticketServiceImpl.java	2008-12-02 15:38:37 UTC (rev 3162)
@@ -11,6 +11,7 @@
 import org.jboss.bpm.api.model.ProcessDefinition;
 import org.jboss.bpm.api.model.builder.ObjectNameFactory;
 import org.jboss.bpm.api.service.ProcessService;
+import org.jboss.bpm.api.service.internal.AbstractProcessService;
 import org.jboss.bpm.incubator.client.MessageListener;
 import org.jboss.bpm.incubator.client.ProcessExt;
 import org.jboss.bpm.incubator.client.SignalListener;




More information about the jbpm-commits mailing list