[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