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

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Nov 13 09:28:07 EST 2008


Author: thomas.diesler at jboss.com
Date: 2008-11-13 09:28:05 -0500 (Thu, 13 Nov 2008)
New Revision: 2911

Added:
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ConfigurationProvider.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfigurationProvider.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/PersistenceToken.java
   projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.ConfigurationProvider
Removed:
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/PersistenceToken.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfiguration.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/ProcessEngineRegistry.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestCase.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestSetup.java
   projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.Configuration
Modified:
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Configuration.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessEngine.java
   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/preview/UserTaskCallback.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/AbstractElement.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageBuilderService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalBuilderService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestCase.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/processengine/ProcessEngineTest.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/NodeImpl.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/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/runtime/DelegatingToken.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/PersistenceSessionInterceptor.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
   projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java
Log:
Add ConfigurationProvider

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Configuration.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Configuration.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Configuration.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -21,27 +21,99 @@
  */
 package org.jbpm.api.client;
 
+//$Id$
 
-// $Id$
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
 
 /**
- * The Configuration provides a ProcessEngine through a given 
- * configuration method
+ * The Configuration provides a ProcessEngine through a ConfigurationProvider
+ * </p>
+ * A ConfigurationProvider is discovered in two stages
+ * <p/>
  * 
+ * <ol>
+ * <li>Read the configuration provider class name from a system property 
+ * <li>Read the configuration provider class name from a resource file 
+ * </ol> 
+ * 
+ * In both cases the key is the fully qalified name of the {@link ConfigurationProvider} interface.
+ * 
  * @author thomas.diesler at jboss.com
  * @since 18-Jun-2008
  */
-public interface Configuration
+public abstract class Configuration
 {
+  private static ConfigurationProvider provider;
+
   /**
    * Create a new instance of ProcessEngine for this configuration
+   * 
    * @return The configured instance of a process engine
    */
-  ProcessEngine getProcessEngine();
-  
+  public static ProcessEngine getProcessEngine()
+  {
+    return getConfigurationProvider().getProcessEngine();
+  }
+
   /**
    * Get a ProcessEngine with a given name from this configuration
+   * 
    * @return The configured instance of a process engine
    */
-  ProcessEngine getProcessEngine(String engineName);
+  public static ProcessEngine getProcessEngine(URL cfgURL)
+  {
+    return getConfigurationProvider().getProcessEngine(cfgURL);
+  }
+
+  /**
+   * Get a ProcessEngine with a given name from this configuration
+   * 
+   * @return The configured instance of a process engine
+   */
+  public static ProcessEngine getProcessEngine(String cfgXML)
+  {
+    return getConfigurationProvider().getProcessEngine(cfgXML);
+  }
+
+  private static ConfigurationProvider getConfigurationProvider()
+  {
+    if (provider == null)
+    {
+      // Get the provider name from the System property
+      String providerName = System.getProperty(ConfigurationProvider.class.getName());
+      
+      // Get the provider name from the resource file
+      if (providerName == null)
+      {
+        ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
+        URL providerURL = ctxLoader.getResource(ConfigurationProvider.class.getName());
+        if (providerURL == null)
+          throw new IllegalStateException("Cannot find resource: " + ConfigurationProvider.class.getName());
+
+        try
+        {
+          providerName = new BufferedReader(new InputStreamReader(providerURL.openStream())).readLine();
+        }
+        catch (Exception e)
+        {
+          throw new IllegalStateException("Cannot read configuration provider name from: " + providerURL);
+        }
+      }
+
+      // Load the config provider
+      try
+      {
+        ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
+        Class<?> providerClass = ctxLoader.loadClass(providerName);
+        provider = (ConfigurationProvider)providerClass.newInstance();
+      }
+      catch (Exception e)
+      {
+        throw new IllegalStateException("Cannot load configuration provider: " + providerName);
+      }
+    }
+    return provider;
+  }
 }
\ No newline at end of file

Added: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ConfigurationProvider.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ConfigurationProvider.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ConfigurationProvider.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -0,0 +1,53 @@
+/*
+ * 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 java.net.URL;
+
+/**
+ * The ConfigurationProvider provides a ProcessEngine
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 18-Jun-2008
+ */
+public interface ConfigurationProvider
+{
+  /**
+   * Get a ProcessEngine from this ConfigurationProvider
+   * @return The configured instance of a process engine
+   */
+  ProcessEngine getProcessEngine();
+  
+  /**
+   * Get a ProcessEngine that is configured with a given config file
+   * @return The configured instance of a process engine
+   */
+  ProcessEngine getProcessEngine(URL cfgURL);
+  
+  /**
+   * Get a ProcessEngine that is configured with a given config string
+   * @return The configured instance of a process engine
+   */
+  ProcessEngine getProcessEngine(String cfgXML);
+}
\ No newline at end of file


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

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/PersistenceToken.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/PersistenceToken.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/PersistenceToken.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -1,40 +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.hibernate.Session;
-
-/**
- * A Token that gives access to the persistence context
- * 
- * @author Thomas.Diesler at jboss.com
- * @since 20-Apr-2007
- */
-public interface PersistenceToken extends Token
-{
-  /**
-   * Get the associated persistence session
-   */
-  Session getSession();
-}
\ No newline at end of file

Modified: 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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Process.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -45,6 +45,11 @@
   }
 
   /**
+   * Get the associated ProcessEngine
+   */
+  ProcessEngine getProcessEngine();
+  
+  /**
    * Get the associated ProcessDefinition
    */
   ProcessDefinition getProcessDefinition();

Modified: 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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessDefinition.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -38,4 +38,8 @@
    */
   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/ProcessEngine.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessEngine.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/ProcessEngine.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -23,15 +23,11 @@
 
 //$Id$
 
-import java.io.BufferedReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.jbpm.api.client.internal.MicrocontainerConfiguration;
+import org.jbpm.api.client.internal.MicrocontainerConfigurationProvider;
 import org.jbpm.api.service.Service;
-import org.jbpm.api.service.preview.ProcessEngineRegistry;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -41,7 +37,7 @@
  * A ProcessEngine is always created via one of the available {@link Configuration} objects. Every implementation of the API has one default
  * {@link Configuration} which is configured via a resource file with the fully qualified class name of {@link Configuration}. 
  * <p/> 
- * The API natively supports {@link MicrocontainerConfiguration}. To create and register a ProcessEngine explicitly, you would do
+ * The API natively supports {@link MicrocontainerConfigurationProvider}. To create and register a ProcessEngine explicitly, you would do
  * 
  * <pre>
  *      MicrocontainerConfiguration config = new MicrocontainerConfiguration();
@@ -88,41 +84,6 @@
   }
 
   /**
-   * Get the registered default ProcessEngine 
-   * <p/> 
-   * If there is no ProcessEngine registered, a call to this method will
-   * register the default engine automatically.
-   * 
-   * @return The configured instance of a process engine
-   */
-  public static ProcessEngine getProcessEngine()
-  {
-    return getProcessEngine(null);
-  }
-
-  /**
-   * Get a registered ProcessEngine
-   * 
-   * @return null, if there is no ProcessEngine registered by this name
-   */
-  public static ProcessEngine getProcessEngine(String engineName)
-  {
-    Set<String> registeredEngines = ProcessEngineRegistry.getEngineNames();
-    if (registeredEngines.size() == 0)
-    {
-      ProcessEngine engine = loadDefaultEngine();
-      ProcessEngineRegistry.registerEngine(engine);
-      return engine;
-    }
-
-    if (engineName == null && registeredEngines.size() == 1)
-      engineName = registeredEngines.iterator().next();
-
-    ProcessEngine engine = ProcessEngineRegistry.getEngine(engineName);
-    return engine;
-  }
-
-  /**
    * Get the name of this engine
    */
   public String getName()
@@ -136,33 +97,6 @@
     this.name = name;
   }
 
-  private static ProcessEngine loadDefaultEngine()
-  {
-    ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
-    InputStream instream = ctxLoader.getResourceAsStream(Configuration.class.getName());
-    if (instream == null)
-      throw new IllegalStateException("Cannot find resource: " + Configuration.class.getName());
-
-    Configuration config;
-    try
-    {
-      BufferedReader br = new BufferedReader(new InputStreamReader(instream));
-      String configurationClassName = br.readLine();
-      Class<?> configurationClass = ctxLoader.loadClass(configurationClassName);
-      config = (Configuration)configurationClass.newInstance();
-    }
-    catch (Exception ex)
-    {
-      throw new IllegalStateException("Cannot obtain configuration", ex);
-    }
-
-    ProcessEngine engine = config.getProcessEngine();
-    if (engine == null)
-      throw new IllegalStateException("Cannot obtain engine from configuration: " + config);
-
-    return engine;
-  }
-
   @Override
   public String toString()
   {

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Token.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -47,6 +47,11 @@
   }
 
   /**
+   * Get the associated ProcessEngine
+   */
+  ProcessEngine getProcessEngine();
+  
+  /**
    * Get the unique token identity
    */
   String getTokenID();

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfiguration.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfiguration.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfiguration.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -1,109 +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.internal;
-
-//$Id$
-
-import java.net.URL;
-
-import org.jboss.kernel.Kernel;
-import org.jboss.kernel.plugins.util.KernelLocator;
-import org.jboss.kernel.spi.registry.KernelRegistryEntry;
-import org.jbpm.api.client.Configuration;
-import org.jbpm.api.client.ProcessEngine;
-
-/**
- * The ProcessEngineProvider provides a ProcessEngine through a given configuration method
- * 
- * @author thomas.diesler at jboss.com
- * @since 18-Jun-2008
- */
-public class MicrocontainerConfiguration implements Configuration
-{
-  /** The process engine bean name - jBPMEngine */
-  public static final String BEAN_NAME = "jBPMProcessEngine";
-  /** The default bean config: jbpm-cfg-beans.xml */
-  public static final String JBPM_ENGINE_CONFIG = "jbpm-cfg-beans.xml";
-
-  // Everything gets deployed through one deployer
-  private static EmbeddedBeansDeployer beansDeployer = new EmbeddedBeansDeployer();
-
-  public Configuration deployDefaultConfig()
-  {
-    URL cfgURL = getDefaultConfigURL();
-    beansDeployer.deploy(cfgURL);
-    return this;
-  }
-
-  public void undeployDefaultConfig()
-  {
-    URL cfgURL = getDefaultConfigURL();
-    beansDeployer.undeploy(cfgURL);
-  }
-
-  public Configuration deployBeansConfig(URL cfgURL)
-  {
-    beansDeployer.deploy(cfgURL);
-    return this;
-  }
-
-  public void undeployBeansConfig(URL cfgURL)
-  {
-    beansDeployer.undeploy(cfgURL);
-  }
-
-  /**
-   * Get the default ProcessEngine from this configuration
-   * @return The configured instance of a process engine
-   */
-  public ProcessEngine getProcessEngine()
-  {
-    return getProcessEngine(BEAN_NAME);
-  }
-  
-  /**
-   * Get a ProcessEngine with a given name from this configuration
-   * @return The configured instance of a process engine
-   */
-  @SuppressWarnings("deprecation")
-  public ProcessEngine getProcessEngine(String beanName)
-  {
-    Kernel kernel = KernelLocator.getKernel();
-    if (kernel == null)
-    {
-      deployDefaultConfig();
-      kernel = KernelLocator.getKernel();
-    }
-    
-    KernelRegistryEntry entry = kernel.getRegistry().getEntry(beanName);
-    ProcessEngine engine = (ProcessEngine)entry.getTarget();
-    return engine;
-  }
-  
-  private URL getDefaultConfigURL()
-  {
-    URL cfgURL = Thread.currentThread().getContextClassLoader().getResource(JBPM_ENGINE_CONFIG);
-    if (cfgURL == null)
-      throw new IllegalStateException("Cannot find resource: " + JBPM_ENGINE_CONFIG);
-    return cfgURL;
-  }
-}
\ No newline at end of file

Copied: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfigurationProvider.java (from rev 2897, projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfiguration.java)
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfigurationProvider.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/internal/MicrocontainerConfigurationProvider.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -0,0 +1,91 @@
+/*
+ * 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.internal;
+
+//$Id$
+
+import java.net.URL;
+
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.plugins.util.KernelLocator;
+import org.jboss.kernel.spi.registry.KernelRegistryEntry;
+import org.jbpm.api.NotImplementedException;
+import org.jbpm.api.client.ConfigurationProvider;
+import org.jbpm.api.client.ProcessEngine;
+
+/**
+ * The ProcessEngineProvider provides a ProcessEngine through a given configuration method
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 18-Jun-2008
+ */
+public class MicrocontainerConfigurationProvider implements ConfigurationProvider
+{
+  /** The process engine bean name - jBPMEngine */
+  public static final String BEAN_NAME = "jBPMProcessEngine";
+  /** The default bean config: jbpm-cfg-beans.xml */
+  public static final String JBPM_ENGINE_CONFIG = "jbpm-cfg-beans.xml";
+
+  private ProcessEngine engine;
+
+  @Override
+  public ProcessEngine getProcessEngine()
+  {
+    if (engine == null)
+    {
+      URL cfgURL = getDefaultConfigURL();
+      engine = getProcessEngine(cfgURL);
+    }
+    return engine;
+  }
+  
+  @Override
+  public ProcessEngine getProcessEngine(URL cfgURL)
+  {
+    EmbeddedBeansDeployer deployer = new EmbeddedBeansDeployer();
+    deployer.deploy(cfgURL);
+    return getProcessEngineBean();
+  }
+  
+  @Override
+  public ProcessEngine getProcessEngine(String cfgXML)
+  {
+    throw new NotImplementedException();
+  }
+  
+  @SuppressWarnings("deprecation")
+  private ProcessEngine getProcessEngineBean()
+  {
+    Kernel kernel = KernelLocator.getKernel();
+    KernelRegistryEntry entry = kernel.getRegistry().getEntry(BEAN_NAME);
+    ProcessEngine engine = (ProcessEngine)entry.getTarget();
+    return engine;
+  }
+  
+  private URL getDefaultConfigURL()
+  {
+    URL cfgURL = Thread.currentThread().getContextClassLoader().getResource(JBPM_ENGINE_CONFIG);
+    if (cfgURL == null)
+      throw new IllegalStateException("Cannot find resource: " + JBPM_ENGINE_CONFIG);
+    return cfgURL;
+  }
+}
\ No newline at end of file

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

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/UserTaskCallback.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/UserTaskCallback.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/preview/UserTaskCallback.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -25,6 +25,7 @@
 
 import javax.management.ObjectName;
 
+import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.builder.preview.MessageBuilder;
 import org.jbpm.api.model.builder.preview.ObjectNameFactory;
 import org.jbpm.api.model.preview.Message;
@@ -65,7 +66,8 @@
     
     messageListener = new CallbackMessageListener(userTask);
     
-    MessageService msgService = userTask.getProcessEngine().getService(MessageService.class);
+    ProcessEngine engine = userTask.getProcessDefinition().getProcessEngine();
+    MessageService msgService = engine.getService(MessageService.class);
     msgService.addMessageListener(messageListener);
   }
 
@@ -74,7 +76,8 @@
    */
   public void detach(UserTask userTask)
   {
-    MessageService msgService = userTask.getProcessEngine().getService(MessageService.class);
+    ProcessEngine engine = userTask.getProcessDefinition().getProcessEngine();
+    MessageService msgService = engine.getService(MessageService.class);
     msgService.removeMessageListener(messageListener.getKey());
   }
   

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/AbstractElement.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/AbstractElement.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/AbstractElement.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -27,8 +27,6 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.client.ProcessEngine;
-
 /**
  * The parrent of all Elements
  * 
@@ -41,9 +39,4 @@
    * Get the ID of this element
    */
   ObjectName getKey();
-  
-  /**
-   * Get the associated ProcessEngine
-   */
-  ProcessEngine getProcessEngine();
 }
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessBuilderService.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -23,6 +23,7 @@
 
 //$Id$
 
+import org.jbpm.api.client.Configuration;
 import org.jbpm.api.client.Process;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.builder.ProcessBuilder;
@@ -40,7 +41,7 @@
    */
   public static ProcessBuilder locateProcessBuilder()
   {
-    ProcessEngine engine = ProcessEngine.getProcessEngine();
+    ProcessEngine engine = Configuration.getProcessEngine();
     ProcessBuilderService builderService = engine.getService(ProcessBuilderService.class);
     return builderService.getProcessBuilder();
   }

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -37,6 +37,7 @@
 import javax.xml.parsers.DocumentBuilder;
 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.api.client.preview.Deployment;
@@ -70,7 +71,7 @@
    */
   public static ProcessDefinitionService locateProcessDefinitionService()
   {
-    ProcessEngine engine = ProcessEngine.getProcessEngine();
+    ProcessEngine engine = Configuration.getProcessEngine();
     return engine.getService(ProcessDefinitionService.class);
   }
 

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessInstanceService.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -31,6 +31,7 @@
 
 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;
@@ -63,7 +64,7 @@
    */
   public static ProcessInstanceService locateProcessService()
   {
-    ProcessEngine engine = ProcessEngine.getProcessEngine();
+    ProcessEngine engine = Configuration.getProcessEngine();
     return engine.getService(ProcessInstanceService.class);
   }
 

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageBuilderService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageBuilderService.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageBuilderService.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -23,6 +23,7 @@
 
 //$Id$
 
+import org.jbpm.api.client.Configuration;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.builder.preview.MessageBuilder;
 import org.jbpm.api.model.preview.Message;
@@ -41,7 +42,7 @@
    */
   public static MessageBuilder locateMessageBuilder()
   {
-    ProcessEngine engine = ProcessEngine.getProcessEngine();
+    ProcessEngine engine = Configuration.getProcessEngine();
     MessageBuilderService builderService = engine.getService(MessageBuilderService.class);
     return builderService.getMessageBuilder();
   }

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/MessageService.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -31,6 +31,7 @@
 
 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.client.preview.MessageListener;
@@ -66,7 +67,7 @@
    */
   public static MessageService locateMessageService()
   {
-    ProcessEngine engine = ProcessEngine.getProcessEngine();
+    ProcessEngine engine = Configuration.getProcessEngine();
     return engine.getService(MessageService.class);
   }
 

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/PersistenceService.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -26,6 +26,7 @@
 import javax.management.ObjectName;
 
 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;
@@ -45,7 +46,7 @@
    */
   public static PersistenceService locatePersistenceService()
   {
-    ProcessEngine engine = ProcessEngine.getProcessEngine();
+    ProcessEngine engine = Configuration.getProcessEngine();
     return engine.getService(PersistenceService.class);
   }
 

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/ProcessEngineRegistry.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/ProcessEngineRegistry.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/ProcessEngineRegistry.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -1,94 +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.service.preview;
-
-//$Id$
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.jbpm.api.client.ProcessEngine;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A registry of ProcessEngine instances per VM
- * 
- * @author thomas.diesler at jboss.com
- * @since 25-Sep-2008
- */
-public final class ProcessEngineRegistry
-{
-  // Provide logging
-  final static Logger log = LoggerFactory.getLogger(ProcessEngineRegistry.class);
-  
-  // The process engine registry
-  static Map<String, ProcessEngine> engineRegistry = new HashMap<String, ProcessEngine>();
-  
-  // Hide constructor
-  private ProcessEngineRegistry()
-  {
-  }
-
-  /**
-   * Get the set of registered engine names
-   */
-  public static Set<String> getEngineNames()
-  {
-    return engineRegistry.keySet();
-  }
-  
-  /**
-   * Get a process engine by name
-   * @return null, if there is no engine registered under the given name
-   */
-  public static ProcessEngine getEngine(String engineName)
-  {
-    return engineRegistry.get(engineName);
-  }
-  
-  /**
-   * Register a ProcessEngine
-   * @throws IllegalStateException If a ProcessEngine with that name is already registered
-   */
-  public static void registerEngine(ProcessEngine engine)
-  {
-    if (engineRegistry.get(engine.getName()) != null)
-      throw new IllegalStateException("Process engine already registered: " + engine.getName());
-    
-    log.debug("Register: " + engine);
-    engineRegistry.put(engine.getName(), engine);
-  }
-
-  /**
-   * Unregister a ProcessEngine for a given name
-   */
-  public static ProcessEngine unregisterEngine(String name)
-  {
-    ProcessEngine pe = engineRegistry.remove(name);
-    log.debug("Unregister: " + name + "=" + pe);
-    return pe;
-  }
-
-  
-}
\ No newline at end of file

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalBuilderService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalBuilderService.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalBuilderService.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -23,6 +23,7 @@
 
 //$Id$
 
+import org.jbpm.api.client.Configuration;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.builder.preview.SignalBuilder;
 import org.jbpm.api.model.preview.Signal;
@@ -41,7 +42,7 @@
    */
   public static SignalBuilder locateSignalBuilder()
   {
-    ProcessEngine engine = ProcessEngine.getProcessEngine();
+    ProcessEngine engine = Configuration.getProcessEngine();
     SignalBuilderService builderService = engine.getService(SignalBuilderService.class);
     return builderService.getSignalBuilder();
   }

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalService.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/preview/SignalService.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -27,6 +27,7 @@
 import java.util.HashSet;
 import java.util.Set;
 
+import org.jbpm.api.client.Configuration;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.preview.SignalListener;
 import org.jbpm.api.model.preview.Signal;
@@ -54,7 +55,7 @@
    */
   public static SignalService locateSignalService()
   {
-    ProcessEngine engine = ProcessEngine.getProcessEngine();
+    ProcessEngine engine = Configuration.getProcessEngine();
     return engine.getService(SignalService.class);
   }
   

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestCase.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -35,6 +35,7 @@
 import javax.management.ObjectName;
 
 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.client.preview.MessageListener;
@@ -76,7 +77,7 @@
   
   protected ProcessEngine getProcessEngine()
   {
-    return ProcessEngine.getProcessEngine();
+    return Configuration.getProcessEngine();
   }
   
   protected ProcessDefinition unregisterOnTearDown(ProcessDefinition procDef)

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestCase.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestCase.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestCase.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -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.test;
-
-import org.jbpm.api.client.ProcessEngine;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A CTS test case
- * 
- * @author Thomas.Diesler at jboss.org
- * @since 25-Sep-2008
- */
-public class ConfigurationTestCase extends CTSTestCase
-{
-  // Provide logging
-  final Logger log = LoggerFactory.getLogger(ConfigurationTestCase.class);
-
-  // By convention a this test case should have a setup that deployes 
-  // and registers an engine named CTSTestEngine
-  protected ProcessEngine getProcessEngine()
-  {
-    ProcessEngine engine = ProcessEngine.getProcessEngine(ConfigurationTestSetup.CTS_TEST_ENGINE);
-    if (engine == null)
-      throw new IllegalStateException("Cannot obtain process engine: " + ConfigurationTestSetup.CTS_TEST_ENGINE);
-
-    return engine;
-  }
-}

Deleted: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestSetup.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestSetup.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ConfigurationTestSetup.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -1,77 +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.test;
-
-import java.net.URL;
-
-import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.client.internal.MicrocontainerConfiguration;
-import org.jbpm.api.service.preview.ProcessEngineRegistry;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A CTS test setup
- * 
- * @author Thomas.Diesler at jboss.org
- * @since 25-Sep-2008
- */
-public class ConfigurationTestSetup extends APITestSetup
-{
-  public static final String CTS_TEST_ENGINE = "CTSTestEngine";
-
-  // Provide logging
-  final Logger log = LoggerFactory.getLogger(ConfigurationTestSetup.class);
-  
-  private APITestHelper helper = new APITestHelper();
-  private String beansConfig;
-  
-
-  public ConfigurationTestSetup(Class<?> testCase, String beansConfig)
-  {
-    super(testCase);
-    this.beansConfig = beansConfig;
-  }
-
-  @Override
-  protected void setUp() throws Exception
-  {
-    super.setUp();
-    
-    // deploy the provided beans config and register the engine 
-    URL cfgURL = helper.getResourceURL(beansConfig);
-    MicrocontainerConfiguration configuration = new MicrocontainerConfiguration();
-    configuration.deployBeansConfig(cfgURL);
-    ProcessEngine engine = configuration.getProcessEngine(CTS_TEST_ENGINE);
-    ProcessEngineRegistry.registerEngine(engine);
-  }
-
-  @Override
-  protected void tearDown() throws Exception
-  {
-    URL cfgURL = helper.getResourceURL(beansConfig);
-    ProcessEngineRegistry.unregisterEngine(CTS_TEST_ENGINE);
-    new MicrocontainerConfiguration().undeployBeansConfig(cfgURL);
-    super.tearDown();
-  }
-
-}

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/processengine/ProcessEngineTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/processengine/ProcessEngineTest.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/processengine/ProcessEngineTest.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -23,11 +23,8 @@
 
 // $Id$
 
-import java.net.URL;
-
+import org.jbpm.api.client.Configuration;
 import org.jbpm.api.client.ProcessEngine;
-import org.jbpm.api.client.internal.MicrocontainerConfiguration;
-import org.jbpm.api.service.preview.ProcessEngineRegistry;
 import org.jbpm.api.test.CTSTestCase;
 
 /**
@@ -40,56 +37,7 @@
 {
   public void testDefaultProcessEngine() throws Exception
   {
-    ProcessEngine engine = ProcessEngine.getProcessEngine();
+    ProcessEngine engine = Configuration.getProcessEngine();
     assertNotNull("ProcessEngine not null", engine);
   }
-
-  public void testUnregisteredProcessEngine() throws Exception
-  {
-    ProcessEngine engine = ProcessEngine.getProcessEngine("bogus");
-    assertNull("ProcessEngine null", engine);
-  }
-
-  public void testMicrocontainerConfiguration() throws Exception
-  {
-    // create an engine from an MC config
-    URL cfgURL = getResourceURL("cts/processengine/test-cfg-beans.xml");
-    
-    String engineName = "CTSTestEngine";
-    MicrocontainerConfiguration config = new MicrocontainerConfiguration();
-    
-    try
-    {
-      // test that we can get the engine from the configuration
-      ProcessEngine engineOne = config.deployBeansConfig(cfgURL).getProcessEngine(engineName);
-      assertNotNull("ProcessEngine not null", engineOne);
-      assertEquals("ProcessEngine name", engineName, engineOne.getName());
-
-      // the engine is not automatically registered
-      ProcessEngine engineTwo = ProcessEngine.getProcessEngine(engineName);
-      assertNull("ProcessEngine null", engineTwo);
-
-      // register the engine and do the lockup again
-      ProcessEngineRegistry.registerEngine(engineOne);
-      engineTwo = ProcessEngine.getProcessEngine(engineName);
-      assertNotNull("ProcessEngine not null", engineTwo);
-      assertSame("ProcessEngine same", engineOne, engineTwo);
-
-      // Try to register the engine twice
-      try
-      {
-        ProcessEngineRegistry.registerEngine(engineTwo);
-        fail("Expceted IllegalStateException");
-      }
-      catch (IllegalStateException e)
-      {
-        // expected
-      }
-    }
-    finally
-    {
-      ProcessEngineRegistry.unregisterEngine(engineName);
-      config.undeployBeansConfig(cfgURL);
-    }
-  }
 }

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -24,13 +24,11 @@
 //$Id$
 
 import javax.management.ObjectName;
-import javax.persistence.Basic;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.MappedSuperclass;
 
 import org.hibernate.Session;
-import org.jbpm.api.InvalidProcessException;
 import org.jbpm.api.client.Process;
 import org.jbpm.api.client.ProcessDefinition;
 import org.jbpm.api.client.ProcessEngine;
@@ -50,17 +48,6 @@
   @Id @GeneratedValue
   protected Integer id;
 
-  @Basic
-  private String engineName;
-  
-  protected AbstractElementImpl(ProcessEngine engine)
-  {
-    if (engine == null)
-      throw new InvalidProcessException("Process engine cannot be null");
-    
-    this.engineName = engine.getName();
-  }
-
   // Persistence ctor
   protected AbstractElementImpl()
   {
@@ -71,20 +58,15 @@
     return id;
   }
 
-  /**
-   * Get the key for this element
-   */
+  @Override
   public abstract ObjectName getKey();
 
-  @Override
-  public ProcessEngine getProcessEngine()
+  /** Initializes the persistent object */
+  public void initialize(ProcessEngine engine, Session session)
   {
-    return ProcessEngine.getProcessEngine(engineName);
+    // nothing to do
   }
   
-  /** Initializes the persistent object */
-  public abstract void initialize(Session session);
-  
   protected void create(ProcessDefinition procDef)
   {
     // nothing to do

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -43,9 +43,10 @@
 import org.hibernate.annotations.IndexColumn;
 import org.jbpm.api.InvalidProcessException;
 import org.jbpm.api.NameNotUniqueException;
-import org.jbpm.api.client.Token;
 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;
@@ -381,7 +382,7 @@
       }
       catch (Exception ex)
       {
-        log.error("Cannot load handler instance: " + className, ex);
+        throw new IllegalStateException("Cannot load handler instance: " + className, ex);
       }
     }
     return handler;
@@ -404,8 +405,10 @@
   }
 
   @Override
-  public void initialize(Session session)
+  public void initialize(ProcessEngine engine, Session session)
   {
+    super.initialize(engine, session);
+
     Hibernate.initialize(this);
     Hibernate.initialize(propSupport);
     Hibernate.initialize(assignments);

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -73,10 +73,13 @@
   
   @Lob
   private byte[] rawProcStruct;
-
+  
+  @Transient
+  private transient ProcessEngine engine;
+  
   public ProcessDefinitionImpl(ProcessEngine engine, ProcessStructureImpl procStruct)
   {
-    super(engine);
+    this.engine = engine;
     this.procStruct = procStruct;
     create(this);
   }
@@ -87,6 +90,17 @@
   }
 
   @Override
+  public ProcessEngine getProcessEngine()
+  {
+    return engine;
+  }
+
+  public void setProcessEngine(ProcessEngine engine)
+  {
+    this.engine = engine;
+  }
+
+  @Override
   public Process newInstance()
   {
     // Create a copy of the process structure from raw data
@@ -233,11 +247,14 @@
   }
 
   @Override
-  public void initialize(Session session)
+  public void initialize(ProcessEngine engine, Session session)
   {
+    super.initialize(engine, session);
+    setProcessEngine(engine);
+    
     Hibernate.initialize(this);
     ProcessStructureImpl procStructImpl = (ProcessStructureImpl)procStruct;
-    procStructImpl.initialize(session);
+    procStructImpl.initialize(engine, session);
   }
   
   @Override
@@ -246,17 +263,20 @@
     super.create(procDef);
     
     // Save the raw process structure
-    try
+    if (rawProcStruct == null)
     {
-      ByteArrayOutputStream baos = new ByteArrayOutputStream();
-      ObjectOutputStream oos = new ObjectOutputStream(baos);
-      oos.writeObject(procStruct);
-      rawProcStruct = baos.toByteArray();
+      try
+      {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        ObjectOutputStream oos = new ObjectOutputStream(baos);
+        oos.writeObject(procStruct);
+        rawProcStruct = baos.toByteArray();
+      }
+      catch (IOException ex)
+      {
+        throw new IllegalStateException("Cannot serialize process structure", ex);
+      }
     }
-    catch (IOException ex)
-    {
-      throw new IllegalStateException("Cannot serialize process structure", ex);
-    }
 
     ProcessStructureImpl procStructImpl = (ProcessStructureImpl)procStruct;
     procStructImpl.create(this);

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -87,7 +87,7 @@
 
   public ProcessImpl(ProcessEngine engine, ProcessDefinitionImpl procDef, ProcessStructureImpl procStruct)
   {
-    super(engine);
+    super();
     this.procStruct = procStruct;
     this.procDef = procDef;
     create(this);
@@ -109,6 +109,12 @@
   }
 
   @Override
+  public ProcessEngine getProcessEngine()
+  {
+    return procDef.getProcessEngine();
+  }
+
+  @Override
   public ProcessDefinition getProcessDefinition()
   {
     return procDef;
@@ -354,11 +360,13 @@
   }
 
   @Override
-  public void initialize(Session session)
+  public void initialize(ProcessEngine engine, Session session)
   {
+    super.initialize(engine, session);
+    
     Hibernate.initialize(this);
-    procDef.initialize(session);
-    procStruct.initialize(session);
+    procDef.initialize(engine, session);
+    procStruct.initialize(engine, session);
   }
   
   @Override

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -95,7 +95,6 @@
 
   public ProcessStructureImpl(ProcessEngine engine, String name)
   {
-    super(engine);
     this.name = name;
 
     if (name == null)
@@ -287,18 +286,20 @@
   }
 
   @Override
-  public void initialize(Session session)
+  public void initialize(ProcessEngine engine, Session session)
   {
+    super.initialize(engine, session);
+
     Hibernate.initialize(this);
     Hibernate.initialize(propSupport);
     Hibernate.initialize(messages);
     Hibernate.initialize(assignments);
     Hibernate.initialize(groups);
-    
+
     for (Node node : getNodes())
     {
       AbstractElementImpl elImpl = (AbstractElementImpl)node;
-      elImpl.initialize(session);
+      elImpl.initialize(engine, session);
     }
   }
 

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -153,7 +153,7 @@
   {
     super.register(procDef);
     
-    final ProcessEngine engine = getProcessEngine();
+    final ProcessEngine engine = procDef.getProcessEngine();
     final SignalService sigService = engine.getService(SignalService.class);
 
     if (getTriggerType() == EventDetailType.Signal)

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -306,7 +306,7 @@
     {
       private static final long serialVersionUID = 1L;
       
-      ProcessEngine engine = getProcessEngine();
+      ProcessEngine engine = getProcessDefinition().getProcessEngine();
       SignalService sigService = engine.getService(SignalService.class);
       public void throwEnterSignal(Token token)
       {

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -24,6 +24,7 @@
 //$Id$
 
 import org.hibernate.Session;
+import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.Token;
 import org.jbpm.api.client.Process;
 import org.jbpm.api.model.Node;
@@ -51,6 +52,12 @@
   }
 
   @Override
+  public ProcessEngine getProcessEngine()
+  {
+    return delegateToken.getProcessEngine();
+  }
+
+  @Override
   public ExecutionContext getExecutionContext()
   {
     return delegateContext;

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -24,8 +24,8 @@
 //$Id$
 
 import org.hibernate.Session;
-import org.jbpm.api.client.PersistenceToken;
 import org.jbpm.api.client.Token;
+import org.jbpm.api.client.preview.PersistenceToken;
 import org.jbpm.api.model.SequenceFlow;
 
 /**

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/PersistenceSessionInterceptor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/PersistenceSessionInterceptor.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/PersistenceSessionInterceptor.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -26,7 +26,6 @@
 import org.hibernate.Session;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.client.Token.TokenStatus;
-import org.jbpm.api.model.Node;
 import org.jbpm.api.service.preview.PersistenceService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -45,7 +44,6 @@
   public void execute(RuntimeContext rtContext)
   {
     MutableToken token = (MutableToken)rtContext.getToken();
-    Node node = token.getCurrentNode();
     
     Session session = token.getSession();
     try
@@ -53,7 +51,7 @@
       // Create the session if needed
       if (session == null)
       {
-        ProcessEngine engine = node.getProcessEngine();
+        ProcessEngine engine = token.getProcessEngine();
         PersistenceService service = engine.getService(PersistenceService.class);
         session = service.createSession();
         token.setSession(session);

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -77,7 +77,7 @@
       RuntimeContext rtContext = new RuntimeContext(tokenExecutor);
       
       // Add the interceptors that are defined on the ProcessService
-      ProcessServiceImpl procService = (ProcessServiceImpl)node.getProcessEngine().getService(ProcessInstanceService.class);
+      ProcessServiceImpl procService = (ProcessServiceImpl)proc.getProcessEngine().getService(ProcessInstanceService.class);
       for (NodeInterceptor itor : procService.getNodeInterceptors())
         rtContext.addInterceptor(itor);
       

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -26,6 +26,7 @@
 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;
@@ -63,15 +64,21 @@
   /**
    * Construct a Token with given {@link Attachments}
    */
-  public TokenImpl(Process process, Attachments att)
+  public TokenImpl(Process proc, Attachments att)
   {
     this.context = new BasicExecutionContext(att);
     this.id = new UID().toString();
     this.status = TokenStatus.Created;
-    this.proc = process;
+    this.proc = proc;
   }
 
   @Override
+  public ProcessEngine getProcessEngine()
+  {
+    return proc.getProcessEngine();
+  }
+
+  @Override
   public String getTokenID()
   {
     return id;
@@ -131,7 +138,7 @@
     RuntimeContext rtContext = new RuntimeContext(tokenExecutor);
 
     // Add the interceptors that are defined on the ProcessService
-    ProcessServiceImpl procService = (ProcessServiceImpl)node.getProcessEngine().getService(ProcessInstanceService.class);
+    ProcessServiceImpl procService = (ProcessServiceImpl)proc.getProcessEngine().getService(ProcessInstanceService.class);
     for (NodeInterceptor itor : procService.getNodeInterceptors())
       rtContext.addInterceptor(itor);
 

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -82,7 +82,7 @@
     try
     {
       // Load the node
-      ProcessEngine engine = node.getProcessEngine();
+      ProcessEngine engine = token.getProcessEngine();
       PersistenceService service = engine.getService(PersistenceService.class);
       node = service.loadNode(session, node.getClass(), node.getKey());
 

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -115,7 +115,7 @@
       Integer id = Integer.valueOf(procDefID.getKeyProperty("id"));
       procDef = (ProcessDefinition)session.load(ProcessDefinitionImpl.class, id);
       AbstractElementImpl elImpl = (AbstractElementImpl)procDef;
-      elImpl.initialize(session);
+      elImpl.initialize(getProcessEngine(), session);
     }
     catch (ObjectNotFoundException ex)
     {
@@ -180,7 +180,7 @@
       Integer id = Integer.valueOf(procID.getKeyProperty("id"));
       proc = (Process)session.load(ProcessImpl.class, id);
       AbstractElementImpl elImpl = (AbstractElementImpl)proc;
-      elImpl.initialize(session);
+      elImpl.initialize(getProcessEngine(), session);
     }
     catch (ObjectNotFoundException ex)
     {

Deleted: projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.Configuration
===================================================================
--- projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.Configuration	2008-11-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.Configuration	2008-11-13 14:28:05 UTC (rev 2911)
@@ -1 +0,0 @@
-org.jbpm.api.client.internal.MicrocontainerConfiguration
\ No newline at end of file

Copied: projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.ConfigurationProvider (from rev 2897, projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.Configuration)
===================================================================
--- projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.ConfigurationProvider	                        (rev 0)
+++ projects/spec/trunk/modules/ri/src/main/resources/org.jbpm.api.client.ConfigurationProvider	2008-11-13 14:28:05 UTC (rev 2911)
@@ -0,0 +1 @@
+org.jbpm.api.client.internal.MicrocontainerConfigurationProvider
\ No newline at end of file

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-13 14:08:35 UTC (rev 2910)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java	2008-11-13 14:28:05 UTC (rev 2911)
@@ -28,9 +28,7 @@
 
 import javax.management.ObjectName;
 
-import org.jbpm.api.client.Token;
 import org.jbpm.api.model.Expression;
-import org.jbpm.api.model.Node;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.api.model.Task;
 import org.jbpm.api.model.SequenceFlow.ConditionType;
@@ -39,10 +37,6 @@
 import org.jbpm.api.model.preview.InputSet;
 import org.jbpm.api.model.preview.OutputSet;
 import org.jbpm.api.model.preview.Assignment.AssignTime;
-import org.jbpm.api.runtime.preview.ExecutionHandler;
-import org.jbpm.api.runtime.preview.FlowHandler;
-import org.jbpm.api.runtime.preview.SignalHandler;
-import org.jbpm.api.runtime.preview.TokenExecutor;
 import org.jbpm.ri.model.AssignmentImpl;
 import org.jbpm.ri.model.ExpressionImpl;
 import org.jbpm.ri.model.InputSetImpl;
@@ -158,122 +152,6 @@
     deleteNode(wasB);
   }
 
-  public void testExecHandler() throws Exception
-  {
-    class ExecHandler implements ExecutionHandler
-    {
-      private static final long serialVersionUID = 1L;
-
-      @Override
-      public void execute(Token token)
-      {
-      }
-
-      @Override
-      public Node getNode()
-      {
-        return null;
-      }
-
-      @Override
-      public void setNode(Node node)
-      {
-      }
-    }
-    
-    TaskImpl orgNode = new TaskImpl(null, TaskType.None, "Task");
-    orgNode.setExecutionHandler(ExecHandler.class);
-    
-    ObjectName nodeID = saveNode(orgNode);
-    
-    Task wasNode = loadNode(TaskImpl.class, nodeID);
-    
-    ExecutionHandler execHandler = wasNode.getExecutionHandler();
-    assertNotNull(execHandler);
-    assertTrue(execHandler instanceof ExecutionHandler);
-    
-    deleteNode(wasNode);
-  }
-
-  public void testSignalHandler() throws Exception
-  {
-    class SigHandler implements SignalHandler
-    {
-      private static final long serialVersionUID = 1L;
-
-      @Override
-      public Node getNode()
-      {
-        return null;
-      }
-
-      @Override
-      public void setNode(Node node)
-      {
-      }
-
-      @Override
-      public void throwEnterSignal(Token token)
-      {
-      }
-
-      @Override
-      public void throwExitSignal(Token token)
-      {
-      }
-    }
-    
-    TaskImpl orgNode = new TaskImpl(null, TaskType.None, "Task");
-    orgNode.setSignalHandler(SigHandler.class);
-    
-    ObjectName nodeID = saveNode(orgNode);
-    
-    Task wasNode = loadNode(TaskImpl.class, nodeID);
-    
-    SignalHandler sigHandler = wasNode.getSignalHandler();
-    assertNotNull(sigHandler);
-    assertTrue(sigHandler instanceof SignalHandler);
-    
-    deleteNode(wasNode);
-  }
-
-  public void testFlowHandler() throws Exception
-  {
-    class FlowHandlerImpl implements FlowHandler
-    {
-      private static final long serialVersionUID = 1L;
-
-      @Override
-      public Node getNode()
-      {
-        return null;
-      }
-
-      @Override
-      public void setNode(Node node)
-      {
-      }
-
-      @Override
-      public void execute(TokenExecutor tokenExecutor, Token token)
-      {
-      }
-    }
-    
-    TaskImpl orgNode = new TaskImpl(null, TaskType.None, "Task");
-    orgNode.setFlowHandler(FlowHandlerImpl.class);
-    
-    ObjectName nodeID = saveNode(orgNode);
-    
-    Task wasNode = loadNode(TaskImpl.class, nodeID);
-    
-    FlowHandler flowHandler = wasNode.getFlowHandler();
-    assertNotNull(flowHandler);
-    assertTrue(flowHandler instanceof FlowHandler);
-    
-    deleteNode(wasNode);
-  }
-
   public void testInputSet() throws Exception
   {
     TaskImpl orgNode = new TaskImpl(null, TaskType.None, "Task");




More information about the jbpm-commits mailing list