Author: alex.guizar(a)jboss.com
Date: 2008-11-30 23:47:28 -0500 (Sun, 30 Nov 2008)
New Revision: 3158
Modified:
jbpm3/trunk/modules/core/pom.xml
jbpm3/trunk/modules/core/src/main/java/org/jbpm/JbpmConfiguration.java
jbpm3/trunk/modules/core/src/main/java/org/jbpm/JbpmContext.java
jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/AntHelper.java
jbpm3/trunk/modules/core/src/main/java/org/jbpm/context/exe/TokenVariableMap.java
jbpm3/trunk/modules/core/src/main/java/org/jbpm/context/exe/variableinstance/ByteArrayInstance.java
jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/AbstractDbTestCase.java
jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/JbpmSchema.java
jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/hibernate/HibernateHelper.java
jbpm3/trunk/modules/core/src/main/java/org/jbpm/persistence/db/DbPersistenceServiceFactory.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/SerializabilityTest.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableLongIdDbTest.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableStringIdDbTest.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/DeleteProcessInstanceDbTest.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/GraphSessionDbTest.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/graph/exe/SubProcessPlusConcurrencyDbTest.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/graph/node/ProcessStateDbTest.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/jbpm1452/JBPM1452Test.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/jbpm522/JBPM522Test.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/jbpm983/JBPM983Test.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/job/executor/JobExecutorDbTest.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/logging/exe/LoggingConfigDbTest.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/seam/JobExecutorCustomizationTest.java
jbpm3/trunk/pom.xml
Log:
[JBPM-1816] merged back revisions 2833 and 2788, sans the schema creation in advance
Modified: jbpm3/trunk/modules/core/pom.xml
===================================================================
--- jbpm3/trunk/modules/core/pom.xml 2008-11-28 17:06:35 UTC (rev 3157)
+++ jbpm3/trunk/modules/core/pom.xml 2008-12-01 04:47:28 UTC (rev 3158)
@@ -342,21 +342,16 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
- <!-- [JBPM-1764] JobExecutorDbTest does not work on Sybase -->
- <exclude>org/jbpm/job/executor/JobExecutorDbTest</exclude>
- <!-- [JBPM-1810] Fix clean, drop, create schema with JbpmSchema
-->
- <exclude>org/jbpm/db/JbpmSchemaDbTest.java</exclude>
-
- <!-- [JBPM-1824] Investigate core test failures against Sybase -->
-
<exclude>org/jbpm/db/DeleteProcessInstanceDbTest.java</exclude>
+ <!-- [JBPM-1764] Deadlocks make job execution tests fail on Sybase
-->
+
<exclude>org/jbpm/job/executor/JobExecutorDbTest.java</exclude>
<exclude>org/jbpm/graph/exe/SubProcessPlusConcurrencyDbTest.java</exclude>
<exclude>org/jbpm/jbpm1072/JBPM1072Test.java</exclude>
<exclude>org/jbpm/jbpm1755/JBPM1755Test.java</exclude>
<exclude>org/jbpm/jbpm983/JBPM983Test.java</exclude>
-
<exclude>org/jbpm/job/executor/JobExecutorDbTest.java</exclude>
<exclude>org/jbpm/optimisticlocking/LockingTest.java</exclude>
-
<exclude>org/jbpm/scheduler/exe/UnsafeSessionUsageTest.java</exclude>
<exclude>org/jbpm/seam/JobExecutorCustomizationTest.java</exclude>
+ <!-- [JBPM-1810] Fix clean, drop, create schema with JbpmSchema
-->
+ <exclude>org/jbpm/db/JbpmSchemaDbTest.java</exclude>
</excludes>
</configuration>
</plugin>
Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/JbpmConfiguration.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/JbpmConfiguration.java 2008-11-28
17:06:35 UTC (rev 3157)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/JbpmConfiguration.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -602,13 +602,12 @@
synchronized (instances)
{
- Iterator iter = instances.keySet().iterator();
+ Iterator iter = instances.values().iterator();
while (iter.hasNext())
{
- String resource = (String)iter.next();
- if (this == instances.get(resource))
+ if (this == iter.next())
{
- instances.remove(resource);
+ iter.remove();
break;
}
}
Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/JbpmContext.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/JbpmContext.java 2008-11-28 17:06:35
UTC (rev 3157)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/JbpmContext.java 2008-12-01 04:47:28
UTC (rev 3158)
@@ -524,81 +524,81 @@
/**
* gets the hibernate session factory from the default configured persistence service.
- *
- * @throws ClassCastException if another persistence service is configured then the
default.
+ * @return the hibernate session factory, or <code>null</code> if a
nonstandard
+ * persistence service is configured
*/
public SessionFactory getSessionFactory()
{
- DbPersistenceService persistenceService =
(DbPersistenceService)getPersistenceService();
- if (persistenceService == null)
- return null;
- return persistenceService.getSessionFactory();
+ PersistenceService persistenceService = getPersistenceService();
+ return persistenceService instanceof DbPersistenceService
+ ? ((DbPersistenceService) persistenceService).getSessionFactory()
+ : null;
}
/**
* sets the hibernate session factory into the default configured persistence service,
overwriting the configured session factory (if there is one configured).
- *
- * @throws ClassCastException if another persistence service is configured then the
default.
+ * if a nonstandard persistence service is configured, then this call has no effect.
*/
public void setSessionFactory(SessionFactory sessionFactory)
{
- DbPersistenceService persistenceService =
(DbPersistenceService)getPersistenceService();
- if (persistenceService == null)
- return;
- persistenceService.setSessionFactory(sessionFactory);
+ PersistenceService persistenceService = getPersistenceService();
+ if (persistenceService instanceof DbPersistenceService) {
+ DbPersistenceService dbPersistenceService = (DbPersistenceService)
persistenceService;
+ dbPersistenceService.setSessionFactory(sessionFactory);
+ }
}
/**
* gets the hibernate session from the default configured persistence service.
- *
- * @throws ClassCastException if another persistence service is configured then the
default.
+ * @return the hibernate session, or <code>null</code> if a nonstandard
+ * persistence service is configured.
*/
public Session getSession()
{
- DbPersistenceService persistenceService =
(DbPersistenceService)getPersistenceService();
- if (persistenceService == null)
- return null;
- return persistenceService.getSession();
+ PersistenceService persistenceService = getPersistenceService();
+ return persistenceService instanceof DbPersistenceService
+ ? ((DbPersistenceService) persistenceService).getSession()
+ : null;
}
/**
* sets the hibernate session into the default configured persistence service,
preventing the creation of a session from the configured session factory (if there is
* one configured).
- *
- * @throws ClassCastException if another persistence service is configured then the
default.
+ * if a nonstandard persistence service is configured, then this call has no effect.
*/
public void setSession(Session session)
{
- DbPersistenceService persistenceService =
(DbPersistenceService)getPersistenceService();
- if (persistenceService == null)
- return;
- persistenceService.setSession(session);
+ PersistenceService persistenceService = getPersistenceService();
+ if (persistenceService instanceof DbPersistenceService) {
+ DbPersistenceService dbPersistenceService = (DbPersistenceService)
persistenceService;
+ dbPersistenceService.setSession(session);
+ }
}
/**
* gets the jdbc connection from the default configured persistence service.
- *
- * @throws ClassCastException if another persistence service is configured then the
default.
+ * @return the jdbc connectoin, or <code>null</code> if a nonstandard
+ * persistence service is configured.
*/
public Connection getConnection()
{
- DbPersistenceService persistenceService =
(DbPersistenceService)getPersistenceService();
- if (persistenceService == null)
- return null;
- return persistenceService.getConnection();
+ PersistenceService persistenceService = getPersistenceService();
+ return persistenceService instanceof DbPersistenceService
+ ? ((DbPersistenceService) persistenceService).getConnection()
+ : null;
}
/**
* allows users to provide a jdbc connection to be used when the hibernate session is
created.
- *
- * @throws ClassCastException if another persistence service is configured then the
default.
+ * if a nonstandard persistence service is configured, then this call has no effect.
*/
public void setConnection(Connection connection)
{
- DbPersistenceService persistenceService =
(DbPersistenceService)getPersistenceService();
- if (persistenceService == null)
- return;
- persistenceService.setConnection(connection);
+ PersistenceService persistenceService = getPersistenceService();
+ if (persistenceService instanceof DbPersistenceService) {
+ DbPersistenceService dbPersistenceService = (DbPersistenceService)
persistenceService;
+ dbPersistenceService.setConnection(connection);
+ }
}
// jbpm database access sessions
@@ -704,9 +704,7 @@
PersistenceService getPersistenceService()
{
- if (services == null)
- return null;
- return services.getPersistenceService();
+ return services != null ? services.getPersistenceService() : null;
}
public JbpmConfiguration getJbpmConfiguration()
Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/AntHelper.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/AntHelper.java 2008-11-28 17:06:35
UTC (rev 3157)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/AntHelper.java 2008-12-01 04:47:28
UTC (rev 3158)
@@ -37,12 +37,16 @@
/**
* common strategy for jbpm ant tasks to obtain a hibernate SessionFactory.
*/
-public abstract class AntHelper
+public class AntHelper
{
final static Map configurations = new HashMap();
final static Map jbpmConfigurations = new HashMap();
+ private AntHelper() {
+ // prevent instantiation
+ }
+
public static Configuration getConfiguration(String hibernateCfgResource, String
hibernatePropertiesResource)
{
Object key = getKey(hibernateCfgResource, hibernatePropertiesResource);
Modified:
jbpm3/trunk/modules/core/src/main/java/org/jbpm/context/exe/TokenVariableMap.java
===================================================================
---
jbpm3/trunk/modules/core/src/main/java/org/jbpm/context/exe/TokenVariableMap.java 2008-11-28
17:06:35 UTC (rev 3157)
+++
jbpm3/trunk/modules/core/src/main/java/org/jbpm/context/exe/TokenVariableMap.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -54,7 +54,7 @@
}
public String toString() {
- return "TokenVariableMap"+( (token!=null)&&(token.getName()!=null)
? "["+token.getName()+"]" :
Integer.toHexString(System.identityHashCode(this)));
+ return "TokenVariableMap"+( (token!=null) ?
"["+token.getFullName()+"]" : "@" +
Integer.toHexString(System.identityHashCode(this)));
}
// protected ////////////////////////////////////////////////////////////////
Modified:
jbpm3/trunk/modules/core/src/main/java/org/jbpm/context/exe/variableinstance/ByteArrayInstance.java
===================================================================
---
jbpm3/trunk/modules/core/src/main/java/org/jbpm/context/exe/variableinstance/ByteArrayInstance.java 2008-11-28
17:06:35 UTC (rev 3157)
+++
jbpm3/trunk/modules/core/src/main/java/org/jbpm/context/exe/variableinstance/ByteArrayInstance.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -21,6 +21,8 @@
*/
package org.jbpm.context.exe.variableinstance;
+import org.hibernate.Session;
+import org.jbpm.JbpmContext;
import org.jbpm.bytes.ByteArray;
import org.jbpm.context.exe.VariableInstance;
import org.jbpm.context.log.variableinstance.ByteArrayUpdateLog;
@@ -42,6 +44,15 @@
protected void setObject(Object value) {
if (token!=null) token.addLog(new ByteArrayUpdateLog(this, this.value, (ByteArray)
value));
+ // delete old value, otherwise it will be unreachable
+ if (this.value != null) {
+ JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
+ if (jbpmContext != null) {
+ Session session = jbpmContext.getSession();
+ if (session != null) session.delete(this.value);
+ }
+ }
+ // set new value
this.value = (ByteArray) value;
}
}
Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/AbstractDbTestCase.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/AbstractDbTestCase.java 2008-11-28
17:06:35 UTC (rev 3157)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/AbstractDbTestCase.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -83,8 +83,7 @@
JbpmSchema jbpmSchema = new JbpmSchema(configuration);
Map jbpmTablesRecordCount = jbpmSchema.getJbpmTablesRecordCount();
- Iterator iter = jbpmTablesRecordCount.entrySet().iterator();
- while (iter.hasNext())
+ for (Iterator iter = jbpmTablesRecordCount.entrySet().iterator(); iter.hasNext();)
{
Map.Entry entry = (Map.Entry)iter.next();
String tableName = (String)entry.getKey();
@@ -94,7 +93,7 @@
{
hasLeftOvers = true;
// [JBPM-1812] Fix tests that don't cleanup the database
- // System.err.println("FIXME: " + getClass().getName() + "."
+ getName() + " left " + count + " records in " + tableName);
+ System.err.println("FIXME: " + getClass().getName() + "." +
getName() + " left " + count + " records in " + tableName);
}
}
Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/JbpmSchema.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/JbpmSchema.java 2008-11-28 17:06:35
UTC (rev 3157)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/JbpmSchema.java 2008-12-01 04:47:28
UTC (rev 3158)
@@ -29,7 +29,6 @@
import java.io.InputStream;
import java.io.PrintStream;
import java.io.Serializable;
-import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -44,9 +43,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.cfg.Configuration;
-import org.hibernate.cfg.Environment;
+import org.hibernate.cfg.Settings;
import org.hibernate.connection.ConnectionProvider;
-import org.hibernate.connection.ConnectionProviderFactory;
import org.hibernate.dialect.Dialect;
import org.hibernate.engine.Mapping;
import org.hibernate.mapping.ForeignKey;
@@ -64,8 +62,7 @@
private static final long serialVersionUID = 1L;
Configuration configuration = null;
- Properties properties = null;
- Dialect dialect = null;
+ Settings settings;
Mapping mapping = null;
String[] createSql = null;
String[] dropSql = null;
@@ -78,26 +75,15 @@
public JbpmSchema(Configuration configuration)
{
this.configuration = configuration;
- this.properties = configuration.getProperties();
- this.dialect = Dialect.getDialect(properties);
- try
- {
- // get the mapping field via reflection :-(
- Field mappingField = Configuration.class.getDeclaredField("mapping");
- mappingField.setAccessible(true);
- this.mapping = (Mapping)mappingField.get(configuration);
- }
- catch (Exception e)
- {
- throw new JbpmException("couldn't get the hibernate mapping", e);
- }
+ this.settings = configuration.buildSettings();
+ this.mapping = configuration.buildMapping();
}
public String[] getCreateSql()
{
if (createSql == null)
{
- createSql = configuration.generateSchemaCreationScript(dialect);
+ createSql = configuration.generateSchemaCreationScript(settings.getDialect());
}
return createSql;
}
@@ -106,7 +92,7 @@
{
if (dropSql == null)
{
- dropSql = configuration.generateDropSchemaScript(dialect);
+ dropSql = configuration.generateDropSchemaScript(settings.getDialect());
}
return dropSql;
}
@@ -116,10 +102,11 @@
if (cleanSql == null)
{
new SchemaExport(configuration);
-
- String catalog = properties.getProperty(Environment.DEFAULT_CATALOG);
- String schema = properties.getProperty(Environment.DEFAULT_SCHEMA);
+ Dialect dialect = settings.getDialect();
+ String catalog = settings.getDefaultCatalogName();
+ String schema = settings.getDefaultSchemaName();
+
// loop over all foreign key constraints
List dropForeignKeysSql = new ArrayList();
List createForeignKeysSql = new ArrayList();
@@ -351,8 +338,7 @@
public void execute(String[] sqls)
{
String sql = null;
- String showSqlText = properties.getProperty("hibernate.show_sql");
- boolean showSql = ("true".equalsIgnoreCase(showSqlText));
+ boolean showSql = settings.isShowSqlEnabled();
try
{
@@ -410,7 +396,7 @@
void createConnection() throws SQLException
{
- connectionProvider = ConnectionProviderFactory.newConnectionProvider(properties);
+ connectionProvider = settings.getConnectionProvider();
connection = connectionProvider.getConnection();
if (!connection.getAutoCommit())
{
@@ -421,7 +407,7 @@
public Properties getProperties()
{
- return properties;
+ return configuration.getProperties();
}
// sql delimiter ////////////////////////////////////////////////////////////
@@ -432,7 +418,7 @@
{
if (sqlDelimiter == null)
{
- sqlDelimiter = properties.getProperty("jbpm.sql.delimiter",
";");
+ sqlDelimiter = getProperties().getProperty("jbpm.sql.delimiter",
";");
}
return sqlDelimiter;
}
Modified:
jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/hibernate/HibernateHelper.java
===================================================================
---
jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/hibernate/HibernateHelper.java 2008-11-28
17:06:35 UTC (rev 3157)
+++
jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/hibernate/HibernateHelper.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -24,7 +24,6 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
@@ -33,17 +32,12 @@
import org.apache.commons.logging.LogFactory;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
-import org.hibernate.tool.hbm2ddl.SchemaExport;
-import org.jbpm.JbpmException;
import org.jbpm.util.ClassLoaderUtil;
-public abstract class HibernateHelper {
+public class HibernateHelper {
- /** maps SessionFactory's to Configurations. */
- /** by default, configuration lookup will be enabled */
- static Map configurations = new HashMap();
- public static void clearConfigurationsCache() {
- configurations = new HashMap();
+ private HibernateHelper() {
+ // prevent instantiation
}
public static SessionFactory createSessionFactory() {
@@ -64,11 +58,7 @@
}
public static SessionFactory createSessionFactory(Configuration configuration, boolean
isConfigLookupEnabled) {
- SessionFactory sessionFactory = configuration.buildSessionFactory();
- if (isConfigLookupEnabled) {
- configurations.put(sessionFactory, configuration);
- }
- return sessionFactory;
+ return configuration.buildSessionFactory();
}
public static Configuration createConfiguration(String cfgXmlResource, String
propertiesResource) {
@@ -102,23 +92,6 @@
return configuration;
}
- public static Configuration getConfiguration(SessionFactory sessionFactory) {
- return (Configuration) configurations.get(sessionFactory);
- }
-
- public static SchemaExport createSchemaExport(SessionFactory sessionFactory) {
- return new SchemaExport(getConfiguration(sessionFactory));
- }
-
- public static boolean createSchemaExportScript(SessionFactory sessionFactory) {
- boolean script = false;
- String showSql =
getConfiguration(sessionFactory).getProperty("hibernate.show_sql");
- if ("true".equalsIgnoreCase(showSql)) {
- script = true;
- }
- return script;
- }
-
public static void clearHibernateCache(SessionFactory sessionFactory) {
sessionFactory.evictQueries();
Modified:
jbpm3/trunk/modules/core/src/main/java/org/jbpm/persistence/db/DbPersistenceServiceFactory.java
===================================================================
---
jbpm3/trunk/modules/core/src/main/java/org/jbpm/persistence/db/DbPersistenceServiceFactory.java 2008-11-28
17:06:35 UTC (rev 3157)
+++
jbpm3/trunk/modules/core/src/main/java/org/jbpm/persistence/db/DbPersistenceServiceFactory.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -156,6 +156,11 @@
}
}
+ public void finalize() throws Throwable
+ {
+ close();
+ }
+
public String getDataSourceJndiName()
{
return dataSourceJndiName;
Modified: jbpm3/trunk/modules/core/src/test/java/org/jbpm/SerializabilityTest.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/SerializabilityTest.java 2008-11-28
17:06:35 UTC (rev 3157)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/SerializabilityTest.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -37,12 +37,7 @@
String testRootDir =
FileDefinitionFileSystemConfigTest.class.getProtectionDomain().getCodeSource().getLocation().getFile().toString();
static Set excusedClasses = new HashSet(Arrays.asList(new String[] {
- "org.jbpm.ant.DeployProcessTask",
- "org.jbpm.ant.JbpmSchemaTask",
- "org.jbpm.ant.Launcher",
- "org.jbpm.ant.ShutDownHsqldb",
- "org.jbpm.ant.StartHsqldbTask",
- "org.jbpm.ant.StartJBossTask",
+ "org.jbpm.ant",
"org.jbpm.context.exe.JbpmType",
"org.jbpm.db.hibernate.ConverterEnumType",
"org.jbpm.db.hibernate.Converters",
Modified:
jbpm3/trunk/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableLongIdDbTest.java
===================================================================
---
jbpm3/trunk/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableLongIdDbTest.java 2008-11-28
17:06:35 UTC (rev 3157)
+++
jbpm3/trunk/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableLongIdDbTest.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -21,7 +21,6 @@
*/
package org.jbpm.context.exe;
-import org.hibernate.cfg.Configuration;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.context.def.ContextDefinition;
@@ -31,49 +30,35 @@
import org.jbpm.persistence.db.DbPersistenceServiceFactory;
import org.jbpm.svc.Services;
-public class CustomVariableLongIdDbTest extends AbstractDbTestCase
-{
+public class CustomVariableLongIdDbTest extends AbstractDbTestCase {
- static JbpmConfiguration customLongJbpmConfiguration = createJbpmConfiguration();
-
- private static JbpmConfiguration createJbpmConfiguration()
- {
- // make custom jbpm configuration aware of hibernate.properties
- String configurationResource =
CustomVariableLongIdDbTest.class.getClassLoader().getResource("hibernate.properties")
!= null ? "org/jbpm/db/jbpm.db.test.cfg.xml"
- : "org/jbpm/jbpm.test.cfg.xml";
- JbpmConfiguration jbpmConfiguration =
JbpmConfiguration.parseResource(configurationResource);
-
- DbPersistenceServiceFactory dbPersistenceServiceFactory =
(DbPersistenceServiceFactory)jbpmConfiguration.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
- JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
- try
- {
- /*
- * getConfiguration() relies on JbpmConfiguration.Configs, which accesses either
the current context or the default jbpm configuration resource, but has no access
- * to a custom jbpm configuration. The context is created only to enforce the use
of the custom jbpm configuration.
- */
- Configuration configuration = dbPersistenceServiceFactory.getConfiguration();
- configuration.addClass(CustomLongClass.class);
+ protected JbpmConfiguration getJbpmConfiguration() {
+ if (jbpmConfiguration == null) {
+ jbpmConfiguration = JbpmConfiguration.parseResource(getJbpmTestConfig());
+ JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
+ try {
+ DbPersistenceServiceFactory persistenceServiceFactory =
(DbPersistenceServiceFactory) jbpmContext.getServices()
+ .getServiceFactory(Services.SERVICENAME_PERSISTENCE);
+ persistenceServiceFactory.getConfiguration().addClass(CustomLongClass.class);
+ }
+ finally {
+ jbpmContext.close();
+ }
}
- finally
- {
- jbpmContext.close();
- }
return jbpmConfiguration;
}
- protected JbpmConfiguration getJbpmConfiguration()
- {
- return customLongJbpmConfiguration;
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ jbpmConfiguration.close();
}
- public void testCustomVariableClassWithLongId()
- {
+ public void testCustomVariableClassWithLongId() {
// create and save the process definition
ProcessDefinition processDefinition = new ProcessDefinition();
processDefinition.addDefinition(new ContextDefinition());
graphSession.saveProcessDefinition(processDefinition);
- try
- {
+ try {
// create the process instance
ProcessInstance processInstance = new ProcessInstance(processDefinition);
// set the jbpmSession in the context because its used to determine the
@@ -88,12 +73,11 @@
contextInstance = processInstance.getContextInstance();
// get the custom hibernatable object from the variableInstances
- customLongObject = (CustomLongClass)contextInstance.getVariable("custom
hibernate object");
+ customLongObject = (CustomLongClass) contextInstance.getVariable("custom
hibernate object");
assertNotNull(customLongObject);
assertEquals("customname", customLongObject.getName());
}
- finally
- {
+ finally {
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
Modified:
jbpm3/trunk/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableStringIdDbTest.java
===================================================================
---
jbpm3/trunk/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableStringIdDbTest.java 2008-11-28
17:06:35 UTC (rev 3157)
+++
jbpm3/trunk/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableStringIdDbTest.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -21,7 +21,6 @@
*/
package org.jbpm.context.exe;
-import org.hibernate.cfg.Configuration;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.context.def.ContextDefinition;
@@ -31,52 +30,39 @@
import org.jbpm.persistence.db.DbPersistenceServiceFactory;
import org.jbpm.svc.Services;
-public class CustomVariableStringIdDbTest extends AbstractDbTestCase
-{
+public class CustomVariableStringIdDbTest extends AbstractDbTestCase {
- static JbpmConfiguration customStringJbpmConfiguration = createJbpmConfiguration();
-
- private static JbpmConfiguration createJbpmConfiguration()
- {
- // make custom jbpm configuration aware of hibernate.properties
- String configurationResource =
CustomVariableStringIdDbTest.class.getClassLoader().getResource("hibernate.properties")
!= null ? "org/jbpm/db/jbpm.db.test.cfg.xml"
- : "org/jbpm/jbpm.test.cfg.xml";
- JbpmConfiguration jbpmConfiguration =
JbpmConfiguration.parseResource(configurationResource);
-
- DbPersistenceServiceFactory dbPersistenceServiceFactory =
(DbPersistenceServiceFactory)jbpmConfiguration.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
- JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
- try
- {
- /*
- * getConfiguration() relies on JbpmConfiguration.Configs, which accesses either
the current context or the default jbpm configuration resource, but has no access
- * to a custom jbpm configuration. The context is created only to enforce the use
of the custom jbpm configuration.
- */
- Configuration configuration = dbPersistenceServiceFactory.getConfiguration();
- configuration.addClass(CustomStringClass.class);
+ protected JbpmConfiguration getJbpmConfiguration() {
+ if (jbpmConfiguration == null) {
+ jbpmConfiguration = JbpmConfiguration.parseResource(getJbpmTestConfig());
+ JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
+ try {
+ DbPersistenceServiceFactory persistenceServiceFactory =
(DbPersistenceServiceFactory) jbpmContext.getServices()
+ .getServiceFactory(Services.SERVICENAME_PERSISTENCE);
+ persistenceServiceFactory.getConfiguration().addClass(CustomStringClass.class);
+ }
+ finally {
+ jbpmContext.close();
+ }
}
- finally
- {
- jbpmContext.close();
- }
return jbpmConfiguration;
}
- protected JbpmConfiguration getJbpmConfiguration()
- {
- return customStringJbpmConfiguration;
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ jbpmConfiguration.close();
}
- public void testCustomVariableClassWithStringId()
- {
+ public void testCustomVariableClassWithStringId() {
// create and save the process definition
ProcessDefinition processDefinition = new ProcessDefinition();
processDefinition.addDefinition(new ContextDefinition());
graphSession.saveProcessDefinition(processDefinition);
- try
- {
+ try {
// create the process instance
ProcessInstance processInstance = new ProcessInstance(processDefinition);
- // set the jbpmSession in the context because its used to determine the jbpm-type
for the custom object.
+ // set the jbpmSession in the context because its used to determine the
+ // jbpm-type for the custom object.
ContextInstance contextInstance = processInstance.getContextInstance();
// create the custom object
@@ -87,12 +73,11 @@
contextInstance = processInstance.getContextInstance();
// get the custom hibernatable object from the variableInstances
- customStringObject = (CustomStringClass)contextInstance.getVariable("custom
hibernate object");
+ customStringObject = (CustomStringClass) contextInstance.getVariable("custom
hibernate object");
assertNotNull(customStringObject);
assertEquals("customname", customStringObject.getName());
}
- finally
- {
+ finally {
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
}
Modified:
jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/DeleteProcessInstanceDbTest.java
===================================================================
---
jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/DeleteProcessInstanceDbTest.java 2008-11-28
17:06:35 UTC (rev 3157)
+++
jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/DeleteProcessInstanceDbTest.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -6,139 +6,123 @@
import org.jbpm.graph.exe.Token;
public class DeleteProcessInstanceDbTest extends AbstractDbTestCase {
-
+
public void testDeleteProcessInstance() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='make fondue'>" +
- " <start-state>" +
- " <transition to='buy cheese' />" +
- " </start-state>" +
- " <state name='buy cheese' />" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='make
fondue'>"
+ + " <start-state>"
+ + " <transition to='buy cheese' />"
+ + " </start-state>"
+ + " <state name='buy cheese' />"
+ + "</process-definition>");
jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
+ try {
newTransaction();
-
+
ProcessInstance processInstance = jbpmContext.newProcessInstance("make
fondue");
processInstance.signal();
-
+
processInstance = saveAndReload(processInstance);
-
+
jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
-
+
newTransaction();
-
- assertEquals(0, session.createQuery("from
org.jbpm.graph.exe.ProcessInstance").list().size());
+
+ assertDeleted(processInstance);
}
- finally
- {
+ finally {
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
}
public void testDeleteProcessInstanceWithTask() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='make fondue'>" +
- " <start-state>" +
- " <transition to='buy cheese' />" +
- " </start-state>" +
- " <task-node name='buy cheese'>" +
- " <task />" +
- " </task-node>" +
- "</process-definition>"
- );
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition name='make
fondue'>"
+ + " <start-state>"
+ + " <transition to='buy cheese' />"
+ + " </start-state>"
+ + " <task-node name='buy cheese'>"
+ + " <task />"
+ + " </task-node>"
+ + "</process-definition>");
jbpmContext.deployProcessDefinition(processDefinition);
- try
- {
+ try {
newTransaction();
-
+
ProcessInstance processInstance = jbpmContext.newProcessInstance("make
fondue");
processInstance.signal();
-
+
processInstance = saveAndReload(processInstance);
-
+
jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
-
+
newTransaction();
-
- assertEquals(0, session.createQuery("from
org.jbpm.graph.exe.ProcessInstance").list().size());
+
+ assertDeleted(processInstance);
}
- finally
- {
+ finally {
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
}
public void testDeleteProcessInstanceWithSubProcessInstance() {
- ProcessDefinition buyCheese = ProcessDefinition.parseXmlString(
- "<process-definition name='buy cheese'>" +
- " <start-state>" +
- " <transition to='find shop' />" +
- " </start-state>" +
- " <state name='find shop' />" +
- "</process-definition>"
- );
+ ProcessDefinition buyCheese =
ProcessDefinition.parseXmlString("<process-definition name='buy
cheese'>"
+ + " <start-state>"
+ + " <transition to='find shop' />"
+ + " </start-state>"
+ + " <state name='find shop' />"
+ + "</process-definition>");
jbpmContext.deployProcessDefinition(buyCheese);
-
- ProcessDefinition makeFondue = ProcessDefinition.parseXmlString(
- "<process-definition name='make fondue'>" +
- " <start-state>" +
- " <transition to='buy cheese' />" +
- " </start-state>" +
- " <process-state name='buy cheese'>" +
- " <sub-process name='buy cheese' />" +
- " </process-state>" +
- "</process-definition>"
- );
+
+ ProcessDefinition makeFondue =
ProcessDefinition.parseXmlString("<process-definition name='make
fondue'>"
+ + " <start-state>"
+ + " <transition to='buy cheese' />"
+ + " </start-state>"
+ + " <process-state name='buy cheese'>"
+ + " <sub-process name='buy cheese' />"
+ + " </process-state>"
+ + "</process-definition>");
jbpmContext.deployProcessDefinition(makeFondue);
- try
- {
+ try {
newTransaction();
-
+
ProcessInstance processInstance = jbpmContext.newProcessInstance("make
fondue");
processInstance.signal();
-
+
processInstance = saveAndReload(processInstance);
-
+
jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
-
+
newTransaction();
-
- assertEquals(0, session.createQuery("from
org.jbpm.graph.exe.ProcessInstance").list().size());
+
+ assertDeleted(processInstance.getRootToken().getProcessInstance());
+ assertDeleted(processInstance);
}
- finally
- {
+ finally {
jbpmContext.getGraphSession().deleteProcessDefinition(buyCheese.getId());
jbpmContext.getGraphSession().deleteProcessDefinition(makeFondue.getId());
}
}
public void testDeleteProcessInstanceWithConcurrentPathsOfExecution() {
- ProcessDefinition makeFondue = ProcessDefinition.parseXmlString(
- "<process-definition name='make fondue'>" +
- " <start-state>" +
- " <transition to='fork' />" +
- " </start-state>" +
- " <fork name='fork'>" +
- " <transition name='cheese' to='buy cheese' />"
+
- " <transition name='bread' to='bake bread' />"
+
- " </fork>" +
- " <state name='buy cheese' />" +
- " <state name='bake bread' />" +
- "</process-definition>"
- );
+ ProcessDefinition makeFondue =
ProcessDefinition.parseXmlString("<process-definition name='make
fondue'>"
+ + " <start-state>"
+ + " <transition to='fork' />"
+ + " </start-state>"
+ + " <fork name='fork'>"
+ + " <transition name='cheese' to='buy cheese'
/>"
+ + " <transition name='bread' to='bake bread'
/>"
+ + " </fork>"
+ + " <state name='buy cheese' />"
+ + " <state name='bake bread' />"
+ + "</process-definition>");
jbpmContext.deployProcessDefinition(makeFondue);
- try
- {
+ try {
newTransaction();
-
+
ProcessInstance processInstance = jbpmContext.newProcessInstance("make
fondue");
ContextInstance contextInstance = processInstance.getContextInstance();
contextInstance.setVariable("a", "asterix");
contextInstance.setVariable("b", "obelix");
-
+
processInstance.signal();
Token cheese = processInstance.getRootToken().getChild("cheese");
contextInstance.setVariable("a", "mik", cheese);
@@ -150,21 +134,21 @@
contextInstance.setVariable("b", "janneke", bread);
processInstance = saveAndReload(processInstance);
-
+
jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
-
+
newTransaction();
-
- assertEquals(0, session.createQuery("from
org.jbpm.graph.exe.ProcessInstance").list().size());
- assertEquals(0, session.createQuery("from
org.jbpm.graph.exe.Token").list().size());
- assertEquals(0, session.createQuery("from
org.jbpm.context.exe.TokenVariableMap").list().size());
- assertEquals(0, session.createQuery("from
org.jbpm.context.exe.VariableInstance").list().size());
- assertEquals(0, session.createQuery("from
org.jbpm.logging.log.ProcessLog").list().size());
- assertEquals(0, session.createQuery("from
org.jbpm.module.exe.ModuleInstance").list().size());
+
+ assertDeleted(processInstance);
}
- finally
- {
+ finally {
jbpmContext.getGraphSession().deleteProcessDefinition(makeFondue.getId());
}
}
+
+ private void assertDeleted(ProcessInstance processInstance) {
+ long processInstanceId = processInstance.getId();
+ assertNull("process instance not deleted: " + processInstanceId,
+ graphSession.getProcessInstance(processInstanceId));
+ }
}
Modified: jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/GraphSessionDbTest.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/GraphSessionDbTest.java 2008-11-28
17:06:35 UTC (rev 3157)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/GraphSessionDbTest.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -29,17 +29,14 @@
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
-public class GraphSessionDbTest extends AbstractDbTestCase
-{
+public class GraphSessionDbTest extends AbstractDbTestCase {
- public void testProcessDefinitionSaveAndLoad()
- {
+ public void testProcessDefinitionSaveAndLoad() {
// create a process definition
ProcessDefinition processDefinition = new ProcessDefinition("auction");
// save it in the database
graphSession.saveProcessDefinition(processDefinition);
- try
- {
+ try {
// get the assigned id
long processDefinitionId = processDefinition.getId();
// start a new transaction
@@ -49,16 +46,15 @@
// check the result
assertEquals("auction", processDefinition.getName());
}
- finally
- {
- // cleanup
+ finally {
+ // cleanup
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
}
- public void testFindProcessDefinitionByNameAndVersion()
- {
- // put 3 process definitions in the database with the same name, but different
versions
+ public void testFindProcessDefinitionByNameAndVersion() {
+ // put 3 process definitions in the database with the same name, but
+ // different versions
ProcessDefinition processDefinitionOne = new ProcessDefinition("auction");
processDefinitionOne.setVersion(1);
graphSession.saveProcessDefinition(processDefinitionOne);
@@ -81,11 +77,11 @@
assertEquals(secondVersionProcessDefinitionId, processDefinitionTwo.getId());
assertEquals("auction", processDefinitionTwo.getName());
assertEquals(2, processDefinitionTwo.getVersion());
-
+
// start a new transaction
newTransaction();
- // cleanup
+ // cleanup
graphSession.deleteProcessDefinition(processDefinitionOne.getId());
newTransaction();
graphSession.deleteProcessDefinition(processDefinitionTwo.getId());
@@ -93,9 +89,9 @@
graphSession.deleteProcessDefinition(processDefinitionThree.getId());
}
- public void testFindLatestProcessDefinition() throws Exception
- {
- // put 3 process definitions in the database with the same name, but different
versions
+ public void testFindLatestProcessDefinition() throws Exception {
+ // put 3 process definitions in the database with the same name, but
+ // different versions
ProcessDefinition processDefinition = new ProcessDefinition("auction");
processDefinition.setVersion(1);
graphSession.saveProcessDefinition(processDefinition);
@@ -119,7 +115,7 @@
newTransaction();
- // cleanup
+ // cleanup
processDefinition = graphSession.findProcessDefinition("auction", 1);
graphSession.deleteProcessDefinition(processDefinition.getId());
@@ -130,9 +126,11 @@
graphSession.deleteProcessDefinition(processDefinition.getId());
}
- public void testFindAllProcessDefinitions() throws Exception
- {
- // put 3 process definitions in the database with the same name, but different
versions
+ public void testFindAllProcessDefinitions() throws Exception {
+ ensureCleanProcessDefinitionTable();
+
+ // put 3 process definitions in the database with the same name, but
+ // different versions
ProcessDefinition processDefinition = new ProcessDefinition("auction");
processDefinition.setVersion(1);
graphSession.saveProcessDefinition(processDefinition);
@@ -155,41 +153,43 @@
newTransaction();
- List allProcessDefinitions = graphSession.findAllProcessDefinitions();
- assertEquals(5, allProcessDefinitions.size());
- assertEquals(3, ((ProcessDefinition)allProcessDefinitions.get(0)).getVersion());
- assertEquals("auction",
((ProcessDefinition)allProcessDefinitions.get(0)).getName());
- assertEquals(2, ((ProcessDefinition)allProcessDefinitions.get(1)).getVersion());
- assertEquals("auction",
((ProcessDefinition)allProcessDefinitions.get(1)).getName());
- assertEquals(1, ((ProcessDefinition)allProcessDefinitions.get(2)).getVersion());
- assertEquals("auction",
((ProcessDefinition)allProcessDefinitions.get(2)).getName());
- assertEquals(2, ((ProcessDefinition)allProcessDefinitions.get(3)).getVersion());
- assertEquals("bake cake",
((ProcessDefinition)allProcessDefinitions.get(3)).getName());
- assertEquals(1, ((ProcessDefinition)allProcessDefinitions.get(4)).getVersion());
- assertEquals("bake cake",
((ProcessDefinition)allProcessDefinitions.get(4)).getName());
+ try {
+ List allProcessDefinitions = graphSession.findAllProcessDefinitions();
+ assertEquals(5, allProcessDefinitions.size());
+ assertEquals(3, ((ProcessDefinition) allProcessDefinitions.get(0)).getVersion());
+ assertEquals("auction", ((ProcessDefinition)
allProcessDefinitions.get(0)).getName());
+ assertEquals(2, ((ProcessDefinition) allProcessDefinitions.get(1)).getVersion());
+ assertEquals("auction", ((ProcessDefinition)
allProcessDefinitions.get(1)).getName());
+ assertEquals(1, ((ProcessDefinition) allProcessDefinitions.get(2)).getVersion());
+ assertEquals("auction", ((ProcessDefinition)
allProcessDefinitions.get(2)).getName());
+ assertEquals(2, ((ProcessDefinition) allProcessDefinitions.get(3)).getVersion());
+ assertEquals("bake cake", ((ProcessDefinition)
allProcessDefinitions.get(3)).getName());
+ assertEquals(1, ((ProcessDefinition) allProcessDefinitions.get(4)).getVersion());
+ assertEquals("bake cake", ((ProcessDefinition)
allProcessDefinitions.get(4)).getName());
- newTransaction();
+ newTransaction();
+ }
+ finally {
+ processDefinition = graphSession.findProcessDefinition("auction", 1);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
- // cleanup
- processDefinition = graphSession.findProcessDefinition("auction", 1);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ processDefinition = graphSession.findProcessDefinition("auction", 2);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
- processDefinition = graphSession.findProcessDefinition("auction", 2);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ processDefinition = graphSession.findProcessDefinition("auction", 3);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
- processDefinition = graphSession.findProcessDefinition("auction", 3);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ processDefinition = graphSession.findProcessDefinition("bake cake", 1);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
- processDefinition = graphSession.findProcessDefinition("bake cake", 1);
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
- processDefinition = graphSession.findProcessDefinition("bake cake", 2);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ processDefinition = graphSession.findProcessDefinition("bake cake", 2);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
+ }
}
- public void testFindAllProcessDefinitionVersions() throws Exception
- {
- // put 3 process definitions in the database with the same name, but different
versions
+ public void testFindAllProcessDefinitionVersions() throws Exception {
+ // put 3 process definitions in the database with the same name, but
+ // different versions
ProcessDefinition processDefinition = new ProcessDefinition("auction");
processDefinition.setVersion(1);
graphSession.saveProcessDefinition(processDefinition);
@@ -212,184 +212,213 @@
newTransaction();
- List allProcessDefinitionVersions =
graphSession.findAllProcessDefinitionVersions("auction");
- assertEquals(3, allProcessDefinitionVersions.size());
- assertEquals(3,
((ProcessDefinition)allProcessDefinitionVersions.get(0)).getVersion());
- assertEquals("auction",
((ProcessDefinition)allProcessDefinitionVersions.get(0)).getName());
- assertEquals(2,
((ProcessDefinition)allProcessDefinitionVersions.get(1)).getVersion());
- assertEquals("auction",
((ProcessDefinition)allProcessDefinitionVersions.get(1)).getName());
- assertEquals(1,
((ProcessDefinition)allProcessDefinitionVersions.get(2)).getVersion());
- assertEquals("auction",
((ProcessDefinition)allProcessDefinitionVersions.get(2)).getName());
+ try {
+ List allProcessDefinitionVersions =
graphSession.findAllProcessDefinitionVersions("auction");
+ assertEquals(3, allProcessDefinitionVersions.size());
+ assertEquals(3, ((ProcessDefinition)
allProcessDefinitionVersions.get(0)).getVersion());
+ assertEquals("auction", ((ProcessDefinition)
allProcessDefinitionVersions.get(0)).getName());
+ assertEquals(2, ((ProcessDefinition)
allProcessDefinitionVersions.get(1)).getVersion());
+ assertEquals("auction", ((ProcessDefinition)
allProcessDefinitionVersions.get(1)).getName());
+ assertEquals(1, ((ProcessDefinition)
allProcessDefinitionVersions.get(2)).getVersion());
+ assertEquals("auction", ((ProcessDefinition)
allProcessDefinitionVersions.get(2)).getName());
- allProcessDefinitionVersions =
graphSession.findAllProcessDefinitionVersions("bake cake");
- assertEquals(2, allProcessDefinitionVersions.size());
- assertEquals(2,
((ProcessDefinition)allProcessDefinitionVersions.get(0)).getVersion());
- assertEquals("bake cake",
((ProcessDefinition)allProcessDefinitionVersions.get(0)).getName());
- assertEquals(1,
((ProcessDefinition)allProcessDefinitionVersions.get(1)).getVersion());
- assertEquals("bake cake",
((ProcessDefinition)allProcessDefinitionVersions.get(1)).getName());
+ allProcessDefinitionVersions =
graphSession.findAllProcessDefinitionVersions("bake cake");
+ assertEquals(2, allProcessDefinitionVersions.size());
+ assertEquals(2, ((ProcessDefinition)
allProcessDefinitionVersions.get(0)).getVersion());
+ assertEquals("bake cake", ((ProcessDefinition)
allProcessDefinitionVersions.get(0)).getName());
+ assertEquals(1, ((ProcessDefinition)
allProcessDefinitionVersions.get(1)).getVersion());
+ assertEquals("bake cake", ((ProcessDefinition)
allProcessDefinitionVersions.get(1)).getName());
- newTransaction();
+ newTransaction();
+ }
+ finally {
+ processDefinition = graphSession.findProcessDefinition("auction", 1);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
- // cleanup
- processDefinition = graphSession.findProcessDefinition("auction", 1);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ processDefinition = graphSession.findProcessDefinition("auction", 2);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
- processDefinition = graphSession.findProcessDefinition("auction", 2);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ processDefinition = graphSession.findProcessDefinition("auction", 3);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
- processDefinition = graphSession.findProcessDefinition("auction", 3);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ processDefinition = graphSession.findProcessDefinition("bake cake", 1);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
- processDefinition = graphSession.findProcessDefinition("bake cake", 1);
- graphSession.deleteProcessDefinition(processDefinition.getId());
-
- processDefinition = graphSession.findProcessDefinition("bake cake", 2);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ processDefinition = graphSession.findProcessDefinition("bake cake", 2);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
+ }
}
- public void testSaveAndLoadProcessInstance()
- {
+ public void testSaveAndLoadProcessInstance() {
ProcessInstance processInstance = new ProcessInstance();
processInstance = saveAndReload(processInstance);
- assertNotNull(processInstance);
-
- // cleanup
- session.delete(processInstance);
+ try {
+ assertNotNull(processInstance);
+ }
+ finally {
+ graphSession.deleteProcessInstance(processInstance);
+ }
}
- public void testUpdateProcessInstance()
- {
- ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>" + "
<start-state name='s' />" + " <node name='n'
/>"
+ public void testUpdateProcessInstance() {
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <start-state name='s' />"
+ + " <node name='n' />"
+ "</process-definition>");
processDefinition = saveAndReload(processDefinition);
+
+ try {
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance = saveAndReload(processInstance);
+ long pid = processInstance.getId();
- processInstance = saveAndReload(processInstance);
- long pid = processInstance.getId();
+ assertEquals("s", processInstance.getRootToken().getNode().getName());
+
processInstance.getRootToken().setNode(processInstance.getProcessDefinition().getNode("n"));
- assertEquals("s", processInstance.getRootToken().getNode().getName());
-
processInstance.getRootToken().setNode(processInstance.getProcessDefinition().getNode("n"));
+ processInstance = saveAndReload(processInstance);
+ assertEquals("n", processInstance.getRootToken().getNode().getName());
+ assertEquals(pid, processInstance.getId());
- processInstance = saveAndReload(processInstance);
- assertEquals("n", processInstance.getRootToken().getNode().getName());
- assertEquals(pid, processInstance.getId());
-
- newTransaction();
-
- // cleanup
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ newTransaction();
+ }
+ finally {
+ graphSession.deleteProcessDefinition(processDefinition.getId());
+ }
}
- public void testFindProcessInstancesByProcessDefinition()
- {
- ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>" + "
<start-state name='s' />" + " <node name='n'
/>"
+ public void testFindProcessInstancesByProcessDefinition() {
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <start-state name='s' />"
+ + " <node name='n' />"
+ "</process-definition>");
graphSession.saveProcessDefinition(processDefinition);
- jbpmContext.save(new ProcessInstance(processDefinition));
- jbpmContext.save(new ProcessInstance(processDefinition));
- jbpmContext.save(new ProcessInstance(processDefinition));
+ try {
+ jbpmContext.save(new ProcessInstance(processDefinition));
+ jbpmContext.save(new ProcessInstance(processDefinition));
+ jbpmContext.save(new ProcessInstance(processDefinition));
- newTransaction();
+ newTransaction();
- List processInstances =
graphSession.findProcessInstances(processDefinition.getId());
- assertEquals(3, processInstances.size());
+ List processInstances =
graphSession.findProcessInstances(processDefinition.getId());
+ assertEquals(3, processInstances.size());
- // process instances should be ordered from recent to old
- long previousStart = System.currentTimeMillis();
- Iterator iter = processInstances.iterator();
- while (iter.hasNext())
- {
- ProcessInstance processInstance = (ProcessInstance)iter.next();
- long processStart = processInstance.getStart().getTime();
- assertTrue(previousStart >= processStart);
- previousStart = processStart;
+ // process instances should be ordered from recent to old
+ long previousStart = System.currentTimeMillis();
+ Iterator iter = processInstances.iterator();
+ while (iter.hasNext()) {
+ ProcessInstance processInstance = (ProcessInstance) iter.next();
+ long processStart = processInstance.getStart().getTime();
+ assertTrue(previousStart >= processStart);
+ previousStart = processStart;
+ }
+
+ newTransaction();
}
-
- newTransaction();
-
- // cleanup
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ finally {
+ graphSession.deleteProcessDefinition(processDefinition.getId());
+ }
}
- public void testDeleteProcessInstance()
- {
- ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>" + "
<start-state name='s' />" + " <node name='n'
/>"
+ public void testDeleteProcessInstance() {
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <start-state name='s' />"
+ + " <node name='n' />"
+ "</process-definition>");
graphSession.saveProcessDefinition(processDefinition);
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- jbpmContext.save(processInstance);
- newTransaction();
+ try {
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ jbpmContext.save(processInstance);
- graphSession.deleteProcessInstance(processInstance.getId());
+ newTransaction();
- newTransaction();
+ graphSession.deleteProcessInstance(processInstance.getId());
- assertEquals(0,
graphSession.findProcessInstances(processDefinition.getId()).size());
-
- newTransaction();
+ newTransaction();
- // cleanup
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ assertEquals(0,
graphSession.findProcessInstances(processDefinition.getId()).size());
+
+ newTransaction();
+ }
+ finally {
+ graphSession.deleteProcessDefinition(processDefinition.getId());
+ }
}
- public void testDeleteProcessInstanceWithVariables()
- {
- ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>" + "
<start-state name='start'>" + " <transition
to='fork' />"
- + " </start-state>" + " <fork
name='fork'>" + " <transition name='a' to='a'
/>" + " <transition name='b' to='b' />" +
" </fork>"
- + " <state name='a' />" + " <state
name='b' />" + "</process-definition>");
+ public void testDeleteProcessInstanceWithVariables() {
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>"
+ + " <start-state name='start'>"
+ + " <transition to='fork' />"
+ + " </start-state>"
+ + " <fork name='fork'>"
+ + " <transition name='a' to='a' />"
+ + " <transition name='b' to='b' />"
+ + " </fork>"
+ + " <state name='a' />"
+ + " <state name='b' />"
+ + "</process-definition>");
graphSession.saveProcessDefinition(processDefinition);
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- Token tokenA = processInstance.findToken("/a");
- Token tokenB = processInstance.findToken("/b");
+ try {
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
+ processInstance.signal();
+ Token tokenA = processInstance.findToken("/a");
+ Token tokenB = processInstance.findToken("/b");
- ContextInstance contextInstance = processInstance.getContextInstance();
- contextInstance.setVariable("r", "rrrrrr");
- contextInstance.createVariable("a", "aaaaaa", tokenA);
- contextInstance.createVariable("b", "bbbbbb", tokenB);
+ ContextInstance contextInstance = processInstance.getContextInstance();
+ contextInstance.setVariable("r", "rrrrrr");
+ contextInstance.createVariable("a", "aaaaaa", tokenA);
+ contextInstance.createVariable("b", "bbbbbb", tokenB);
- processInstance = saveAndReload(processInstance);
+ processInstance = saveAndReload(processInstance);
- graphSession.deleteProcessInstance(processInstance);
+ graphSession.deleteProcessInstance(processInstance);
- newTransaction();
+ newTransaction();
- List processInstances =
graphSession.findProcessInstances(processDefinition.getId());
- assertEquals(0, processInstances.size());
-
- newTransaction();
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ List processInstances =
graphSession.findProcessInstances(processDefinition.getId());
+ assertEquals(0, processInstances.size());
+
+ newTransaction();
+ }
+ finally {
+ graphSession.deleteProcessDefinition(processDefinition.getId());
+ }
}
- public void testDeleteProcessDefinition()
- {
- ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition>" + "
<start-state name='s' />" + " <node name='n'
/>"
+ public void testDeleteProcessDefinition() {
+ ProcessDefinition processDefinition =
ProcessDefinition.parseXmlString("<process-definition
name='deleteme'>"
+ + " <start-state name='s' />"
+ + " <node name='n' />"
+ "</process-definition>");
graphSession.saveProcessDefinition(processDefinition);
- jbpmContext.save(new ProcessInstance(processDefinition));
- jbpmContext.save(new ProcessInstance(processDefinition));
- jbpmContext.save(new ProcessInstance(processDefinition));
- jbpmContext.save(new ProcessInstance(processDefinition));
- newTransaction();
+ try {
+ jbpmContext.save(new ProcessInstance(processDefinition));
+ jbpmContext.save(new ProcessInstance(processDefinition));
+ jbpmContext.save(new ProcessInstance(processDefinition));
+ jbpmContext.save(new ProcessInstance(processDefinition));
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ newTransaction();
+ }
+ finally {
+ graphSession.deleteProcessDefinition(processDefinition.getId());
+ }
newTransaction();
- assertEquals(0, graphSession.findAllProcessDefinitions().size());
+ assertEquals(0,
graphSession.findAllProcessDefinitionVersions(processDefinition.getName()).size());
assertEquals(0,
graphSession.findProcessInstances(processDefinition.getId()).size());
}
- public void testLatestProcessDefinitions()
- {
+ public void testLatestProcessDefinitions() {
+ ensureCleanProcessDefinitionTable();
+
ProcessDefinition websale = new ProcessDefinition("websale");
jbpmContext.deployProcessDefinition(websale);
jbpmContext.deployProcessDefinition(websale);
@@ -413,14 +442,23 @@
graphSession.deleteProcessDefinition(changeNappy.getId());
}
- private int getVersionOfProcess(String name, List latestProcessDefinitions)
- {
+ private void ensureCleanProcessDefinitionTable() {
+ List processDefinitions = session.createCriteria(ProcessDefinition.class).list();
+ if (!processDefinitions.isEmpty()) {
+ System.err.println("FIXME: "+ getClass().getName() + "." +
getName() +
+ " found " + processDefinitions.size() + " process definitions
left over");
+ for (Iterator i = processDefinitions.iterator(); i.hasNext();) {
+ ProcessDefinition processDefinition = (ProcessDefinition) i.next();
+ graphSession.deleteProcessDefinition(processDefinition);
+ }
+ }
+ }
+
+ private int getVersionOfProcess(String name, List latestProcessDefinitions) {
Iterator iter = latestProcessDefinitions.iterator();
- while (iter.hasNext())
- {
- ProcessDefinition processDefinition = (ProcessDefinition)iter.next();
- if (name.equals(processDefinition.getName()))
- {
+ while (iter.hasNext()) {
+ ProcessDefinition processDefinition = (ProcessDefinition) iter.next();
+ if (name.equals(processDefinition.getName())) {
return processDefinition.getVersion();
}
}
Modified:
jbpm3/trunk/modules/core/src/test/java/org/jbpm/graph/exe/SubProcessPlusConcurrencyDbTest.java
===================================================================
---
jbpm3/trunk/modules/core/src/test/java/org/jbpm/graph/exe/SubProcessPlusConcurrencyDbTest.java 2008-11-28
17:06:35 UTC (rev 3157)
+++
jbpm3/trunk/modules/core/src/test/java/org/jbpm/graph/exe/SubProcessPlusConcurrencyDbTest.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -59,7 +59,7 @@
" <transition name='a' to='join' />" +
" <transition name='b' to='join' />" +
" </fork>" +
- " <join name='join'>" +
+ " <join name='join' lock='UPGRADE'>" +
" <transition to='s' />" +
" </join>" +
" <state name='s'>" +
Modified:
jbpm3/trunk/modules/core/src/test/java/org/jbpm/graph/node/ProcessStateDbTest.java
===================================================================
---
jbpm3/trunk/modules/core/src/test/java/org/jbpm/graph/node/ProcessStateDbTest.java 2008-11-28
17:06:35 UTC (rev 3157)
+++
jbpm3/trunk/modules/core/src/test/java/org/jbpm/graph/node/ProcessStateDbTest.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -21,8 +21,7 @@
*/
package org.jbpm.graph.node;
-import java.util.List;
-
+import org.hibernate.criterion.Order;
import org.jbpm.JbpmException;
import org.jbpm.context.exe.ContextInstance;
import org.jbpm.db.AbstractDbTestCase;
@@ -40,7 +39,7 @@
"<process-definition>" +
" <process-state name='subprocess' />" +
"</process-definition>");
-
+
processDefinition = saveAndReload(processDefinition);
try
{
@@ -49,8 +48,7 @@
}
finally
{
- newTransaction();
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
+ jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition);
}
}
@@ -79,76 +77,72 @@
ProcessInstance superProcessInstance = processDefinition.createProcessInstance();
superProcessInstance.signal();
superProcessInstance.signal();
-
+
superProcessInstance = saveAndReload(superProcessInstance);
-
+
Token superToken = superProcessInstance.getRootToken();
assertEquals("subprocessnode", superToken.getNode().getName());
-
+
ProcessInstance subProcessInstance = superToken.getSubProcessInstance();
assertNotNull(subProcessInstance);
assertEquals("recursive process",
subProcessInstance.getProcessDefinition().getName());
Token subToken = subProcessInstance.getRootToken();
-
+
assertEquals("first wait", subToken.getNode().getName());
-
+
subProcessInstance.signal("done");
-
+
subProcessInstance = saveAndReload(subProcessInstance);
superProcessInstance =
graphSession.loadProcessInstance(superProcessInstance.getId());
-
- assertTrue(subProcessInstance.hasEnded());
+
+ assertTrue(subProcessInstance.hasEnded());
assertTrue(superProcessInstance.hasEnded());
-
}
finally
{
- newTransaction();
- try {
-
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
- } catch (RuntimeException e) {
- e.printStackTrace();
- } finally {
- newTransaction();
- }
+ jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
}
- public void testMultipleRecursiveProcessDefinitions() {
+ public void testMultipleRecursiveProcessDefinitions()
+ {
for (int i=0; i<30; i++) {
testRecursiveProcessDefinition();
newTransaction();
}
}
-
public void testProcessStateSubProcessDefinition()
{
// create the subprocess
ProcessDefinition subProcessDefinition = new ProcessDefinition("sub");
// store the subprocess in the database
graphSession.saveProcessDefinition(subProcessDefinition);
-
- // create the super process
- ProcessDefinition superProcessDefinition = ProcessDefinition.parseXmlString(
- "<process-definition name='super'>" +
- " <process-state name='subprocess' />" +
- "</process-definition>");
- // resolve the reference to the subprocess
- ProcessState processState = (ProcessState)
superProcessDefinition.getNode("subprocess");
- processState.setSubProcessDefinition(subProcessDefinition);
-
- // save and reload the superprocess
- superProcessDefinition = saveAndReload(superProcessDefinition);
- try
+ try
{
- processState = (ProcessState)
superProcessDefinition.getNode("subprocess");
- assertNotNull("sub", processState.getSubProcessDefinition().getName());
+ // create the super process
+ ProcessDefinition superProcessDefinition = ProcessDefinition.parseXmlString(
+ "<process-definition name='super'>" +
+ " <process-state name='subprocess' />" +
+ "</process-definition>");
+ // resolve the reference to the subprocess
+ ProcessState processState = (ProcessState)
superProcessDefinition.getNode("subprocess");
+ processState.setSubProcessDefinition(subProcessDefinition);
+
+ // save and reload the superprocess
+ superProcessDefinition = saveAndReload(superProcessDefinition);
+ try
+ {
+ processState = (ProcessState)
superProcessDefinition.getNode("subprocess");
+ assertNotNull("sub",
processState.getSubProcessDefinition().getName());
+ }
+ finally
+ {
+ jbpmContext.getGraphSession().deleteProcessDefinition(superProcessDefinition);
+ }
}
finally
- {
- newTransaction();
-
jbpmContext.getGraphSession().deleteProcessDefinition(superProcessDefinition.getId());
+ {
jbpmContext.getGraphSession().deleteProcessDefinition(subProcessDefinition.getId());
}
}
@@ -171,44 +165,48 @@
}
finally
{
- newTransaction();
- jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
+ jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition);
}
}
public void testSubProcessBindingWithLatestVersion()
{
- jbpmContext.deployProcessDefinition(new ProcessDefinition("the multiversion
subprocess"));
- jbpmContext.deployProcessDefinition(new ProcessDefinition("the multiversion
subprocess"));
- jbpmContext.deployProcessDefinition(new ProcessDefinition("the multiversion
subprocess"));
-
+ final int versionCount = 3;
+ for (int i = 0; i < versionCount; i++)
+ {
+ jbpmContext.deployProcessDefinition(new ProcessDefinition("the multiversion
subprocess"));
+ }
+
newTransaction();
-
- ProcessDefinition processDefinitionTwo = ProcessDefinition.parseXmlString(
- "<process-definition>" +
- " <process-state name='the sub process state'>" +
- " <sub-process name='the multiversion subprocess'/>" +
- " </process-state>" +
- "</process-definition>"
- );
- processDefinitionTwo = saveAndReload(processDefinitionTwo);
try
{
- ProcessState processState = (ProcessState) processDefinitionTwo.getNode("the
sub process state");
- assertEquals("the multiversion subprocess",
processState.getSubProcessDefinition().getName() );
- assertEquals(3, processState.getSubProcessDefinition().getVersion() );
+ ProcessDefinition processDefinitionTwo = ProcessDefinition.parseXmlString(
+ "<process-definition>" +
+ " <process-state name='the sub process state'>" +
+ " <sub-process name='the multiversion subprocess'/>"
+
+ " </process-state>" +
+ "</process-definition>"
+ );
+ processDefinitionTwo = saveAndReload(processDefinitionTwo);
+ try
+ {
+ ProcessState processState = (ProcessState) processDefinitionTwo.getNode("the
sub process state");
+ assertEquals("the multiversion subprocess",
processState.getSubProcessDefinition().getName() );
+ assertEquals(3, processState.getSubProcessDefinition().getVersion() );
+ }
+ finally
+ {
+ graphSession.deleteProcessDefinition(processDefinitionTwo);
+ }
}
finally
{
- newTransaction();
- ProcessDefinition processDefinition = graphSession.findProcessDefinition("the
multiversion subprocess", 1);
- graphSession.deleteProcessDefinition(processDefinition.getId());
- processDefinition = graphSession.findProcessDefinition("the multiversion
subprocess", 2);
- graphSession.deleteProcessDefinition(processDefinition.getId());
- processDefinition = graphSession.findProcessDefinition("the multiversion
subprocess", 3);
- graphSession.deleteProcessDefinition(processDefinition.getId());
- graphSession.deleteProcessDefinition(processDefinitionTwo.getId());
- }
+ for (int i = 1; i <= versionCount; i++)
+ {
+ ProcessDefinition processDefinition =
graphSession.findProcessDefinition("the multiversion subprocess", i);
+ graphSession.deleteProcessDefinition(processDefinition);
+ }
+ }
}
public void testAverageSubProcess()
@@ -291,7 +289,6 @@
}
finally
{
- newTransaction();
jbpmContext.getGraphSession().deleteProcessDefinition(superProcessDefinition.getId());
jbpmContext.getGraphSession().deleteProcessDefinition(subProcessDefinition.getId());
}
@@ -320,9 +317,8 @@
}
finally
{
- newTransaction();
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinitionOne.getId());
-
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinitionTwo.getId());
+ jbpmContext.getGraphSession().deleteProcessDefinition(processDefinitionTwo);
}
}
@@ -352,46 +348,37 @@
"</process-definition>");
jbpmContext.deployProcessDefinition(superProcessDefinition);
- ProcessInstance superProcessInstance = null;
- ProcessInstance subProcessInstance = null;
-
try
{
newTransaction();
- superProcessInstance =
jbpmContext.newProcessInstanceForUpdate("superprocess");
+ ProcessInstance superProcessInstance =
jbpmContext.newProcessInstanceForUpdate("superprocess");
superProcessInstance.signal();
newTransaction();
long subProcessInstanceId =
superProcessInstance.getRootToken().getSubProcessInstance().getId();
- subProcessInstance = jbpmContext.loadProcessInstance(subProcessInstanceId);
+ ProcessInstance subProcessInstance =
jbpmContext.loadProcessInstance(subProcessInstanceId);
subProcessInstance.signal();
jbpmContext.save(subProcessInstance);
newTransaction();
- List processStateLogs = session.createQuery(
- "select l " +
- "from org.jbpm.graph.log.ProcessStateLog l "
- ).list();
-
- assertEquals(1, processStateLogs.size());
- ProcessStateLog processStateLog = (ProcessStateLog) processStateLogs.get(0);
-
+ ProcessStateLog processStateLog = (ProcessStateLog)
session.createCriteria(ProcessStateLog.class)
+ .addOrder(Order.desc("enter"))
+ .setMaxResults(1)
+ .uniqueResult();
+
assertEquals(subProcessInstanceId,
processStateLog.getSubProcessInstance().getId());
assertEquals(superProcessInstance.getId(),
processStateLog.getToken().getProcessInstance().getId());
}
finally
{
- newTransaction();
- graphSession.deleteProcessInstance(superProcessInstance.getId());
- newTransaction();
graphSession.deleteProcessDefinition(subProcessDefinition.getId());
graphSession.deleteProcessDefinition(superProcessDefinition.getId());
}
}
-
+
public void testDynamicProcessBinding()
{
ProcessDefinition processDefinitionOne = ProcessDefinition.parseXmlString(
@@ -417,7 +404,6 @@
" <end-state name='end' />" +
"</process-definition>");
jbpmContext.deployProcessDefinition(processDefinitionTwo);
-
ProcessDefinition processDefinitionThree = ProcessDefinition.parseXmlString(
"<process-definition name='superprocess'>" +
Modified: jbpm3/trunk/modules/core/src/test/java/org/jbpm/jbpm1452/JBPM1452Test.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/jbpm1452/JBPM1452Test.java 2008-11-28
17:06:35 UTC (rev 3157)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/jbpm1452/JBPM1452Test.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -60,6 +60,7 @@
protected void tearDown() throws Exception {
graphSession.deleteProcessDefinition(processDefinitionId);
super.tearDown();
+ jbpmConfiguration.close();
}
public void testNoJobExecutor() {
Modified: jbpm3/trunk/modules/core/src/test/java/org/jbpm/jbpm522/JBPM522Test.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/jbpm522/JBPM522Test.java 2008-11-28
17:06:35 UTC (rev 3157)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/jbpm522/JBPM522Test.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -45,38 +45,47 @@
public void testDeployProcess()
{
runTarget("deploy.process");
- List processDefinitions = graphSession.findAllProcessDefinitions();
+ List processDefinitions =
graphSession.findAllProcessDefinitionVersions("timerProcess");
assertEquals(1, processDefinitions.size());
ProcessDefinition processDefinition = (ProcessDefinition)processDefinitions.get(0);
assertEquals("timerProcess", processDefinition.getName());
- session.delete(processDefinition);
+ graphSession.deleteProcessDefinition(processDefinition);
}
public void testDeployBadProcess()
{
runTarget("deploy.bad.process");
- List processDefinitions = graphSession.findAllProcessDefinitions();
+ List processDefinitions =
graphSession.findAllProcessDefinitionVersions("sequential process");
assertEquals(0, processDefinitions.size());
}
public void testDeployProcesses()
{
runTarget("deploy.processes");
- List processDefinitions = graphSession.findAllProcessDefinitions();
- assertEquals(2, processDefinitions.size());
+ List processDefinitions =
graphSession.findAllProcessDefinitionVersions("classLoadingProcess");
+ assertEquals(1, processDefinitions.size());
ProcessDefinition processDefinition = (ProcessDefinition)processDefinitions.get(0);
assertEquals("classLoadingProcess", processDefinition.getName());
- session.delete(processDefinition);
- processDefinition = (ProcessDefinition)processDefinitions.get(1);
+ graphSession.deleteProcessDefinition(processDefinition);
+
+ processDefinitions =
graphSession.findAllProcessDefinitionVersions("timerProcess");
+ assertEquals(1, processDefinitions.size());
+ processDefinition = (ProcessDefinition)processDefinitions.get(0);
assertEquals("timerProcess", processDefinition.getName());
- session.delete(processDefinition);
+ graphSession.deleteProcessDefinition(processDefinition);
}
public void testDeployProcessesIncludingBad()
{
runTarget("deploy.processes.including.bad");
- List processDefinitions = graphSession.findAllProcessDefinitions();
+ List processDefinitions =
graphSession.findAllProcessDefinitionVersions("timerProcess");
assertEquals(0, processDefinitions.size());
+
+ processDefinitions = graphSession.findAllProcessDefinitionVersions("sequential
process");
+ assertEquals(0, processDefinitions.size());
+
+ processDefinitions =
graphSession.findAllProcessDefinitionVersions("classLoadingProces");
+ assertEquals(0, processDefinitions.size());
}
private static void runTarget(String target)
Modified: jbpm3/trunk/modules/core/src/test/java/org/jbpm/jbpm983/JBPM983Test.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/jbpm983/JBPM983Test.java 2008-11-28
17:06:35 UTC (rev 3157)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/jbpm983/JBPM983Test.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -25,11 +25,6 @@
private long subProcessDefinitionId;
private long processDefinitionId;
- @Override
- protected String getJbpmTestConfig() {
- return "org/jbpm/jbpm.test.cfg.xml";
- }
-
protected void setUp() throws Exception {
super.setUp();
@@ -49,6 +44,7 @@
protected void tearDown() throws Exception {
stopJobExecutor();
+ getJbpmConfiguration().getJobExecutor().setNbrOfThreads(1);
graphSession.deleteProcessDefinition(processDefinitionId);
graphSession.deleteProcessDefinition(subProcessDefinitionId);
Modified:
jbpm3/trunk/modules/core/src/test/java/org/jbpm/job/executor/JobExecutorDbTest.java
===================================================================
---
jbpm3/trunk/modules/core/src/test/java/org/jbpm/job/executor/JobExecutorDbTest.java 2008-11-28
17:06:35 UTC (rev 3157)
+++
jbpm3/trunk/modules/core/src/test/java/org/jbpm/job/executor/JobExecutorDbTest.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -22,11 +22,6 @@
static List<Long> allocatedProcessIds = Collections.synchronizedList(new
ArrayList<Long>());
@Override
- protected String getJbpmTestConfig() {
- return "org/jbpm/jbpm.test.cfg.xml";
- }
-
- @Override
protected void setUp() throws Exception {
super.setUp();
deployProcess();
@@ -35,6 +30,7 @@
@Override
protected void tearDown() throws Exception {
+ getJbpmConfiguration().getJobExecutor().setNbrOfThreads(1);
deleteProcess();
super.tearDown();
}
Modified:
jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java
===================================================================
---
jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java 2008-11-28
17:06:35 UTC (rev 3157)
+++
jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -23,10 +23,6 @@
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
@@ -37,10 +33,6 @@
import org.jbpm.db.AbstractDbTestCase;
import org.jbpm.graph.def.ProcessDefinition;
-import org.jbpm.graph.exe.ProcessInstance;
-import org.jbpm.instantiation.ProcessClassLoader;
-import org.jbpm.taskmgmt.def.Task;
-import org.jbpm.taskmgmt.def.TaskMgmtDefinition;
import org.jbpm.util.ClassLoaderUtil;
import org.jbpm.util.IoUtil;
@@ -70,7 +62,7 @@
{
newTransaction();
- List allProcessDefinitions = graphSession.findAllProcessDefinitions();
+ List allProcessDefinitions =
graphSession.findAllProcessDefinitionVersions(processDefinition.getName());
assertEquals(1, allProcessDefinitions.size());
processDefinition = (ProcessDefinition)allProcessDefinitions.get(0);
@@ -100,7 +92,7 @@
{
newTransaction();
- List allProcessDefinitions = graphSession.findAllProcessDefinitions();
+ List allProcessDefinitions =
graphSession.findAllProcessDefinitionVersions(processDefinition.getName());
assertEquals(1, allProcessDefinitions.size());
processDefinition = (ProcessDefinition)allProcessDefinitions.get(0);
byte[] processBytes =
processDefinition.getFileDefinition().getBytes("classes/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.class");
@@ -135,12 +127,15 @@
ProcessDefinition processDefinitionTwo =
ProcessDefinition.parseParZipInputStream(zipInputStream);
jbpmContext.deployProcessDefinition(processDefinitionTwo);
+ String processDefinitionName = processDefinitionTwo.getName();
+ assertEquals(processDefinitionName, processDefinitionOne.getName());
+
newTransaction();
try
{
- assertEquals(2, graphSession.findAllProcessDefinitions().size());
- assertEquals(2, graphSession.findLatestProcessDefinition("the deployable
process").getVersion());
+ assertEquals(2,
graphSession.findAllProcessDefinitionVersions(processDefinitionName).size());
+ assertEquals(2,
graphSession.findLatestProcessDefinition(processDefinitionName).getVersion());
}
finally
{
Modified:
jbpm3/trunk/modules/core/src/test/java/org/jbpm/logging/exe/LoggingConfigDbTest.java
===================================================================
---
jbpm3/trunk/modules/core/src/test/java/org/jbpm/logging/exe/LoggingConfigDbTest.java 2008-11-28
17:06:35 UTC (rev 3157)
+++
jbpm3/trunk/modules/core/src/test/java/org/jbpm/logging/exe/LoggingConfigDbTest.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -7,18 +7,27 @@
import org.jbpm.graph.exe.ProcessInstance;
public class LoggingConfigDbTest extends AbstractDbTestCase {
-
+
@Override
protected JbpmConfiguration getJbpmConfiguration() {
- return
JbpmConfiguration.parseResource("org/jbpm/logging/exe/nologging.jbpm.cfg.xml");
+ if (jbpmConfiguration == null) {
+ jbpmConfiguration =
JbpmConfiguration.parseResource("org/jbpm/logging/exe/nologging.jbpm.cfg.xml");
+ }
+ return jbpmConfiguration;
}
+ @Override
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ jbpmConfiguration.close();
+ }
+
public void testLoggingconfiguration() {
jbpmContext.deployProcessDefinition(new ProcessDefinition("logging"));
ProcessInstance processInstance =
jbpmContext.newProcessInstance("logging");
processInstance.getContextInstance().setVariable("a", "1");
newTransaction();
-
+
Query query = session.createQuery("from org.jbpm.logging.log.ProcessLog");
assertEquals(0, query.list().size());
}
Modified:
jbpm3/trunk/modules/core/src/test/java/org/jbpm/seam/JobExecutorCustomizationTest.java
===================================================================
---
jbpm3/trunk/modules/core/src/test/java/org/jbpm/seam/JobExecutorCustomizationTest.java 2008-11-28
17:06:35 UTC (rev 3157)
+++
jbpm3/trunk/modules/core/src/test/java/org/jbpm/seam/JobExecutorCustomizationTest.java 2008-12-01
04:47:28 UTC (rev 3158)
@@ -16,6 +16,12 @@
return "org/jbpm/seam/custom.job.executor.jbpm.cfg.xml";
}
+ @Override
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ jbpmConfiguration.close();
+ }
+
public void testCustomJobExecutor() {
JobExecutor jobExecutor = getJbpmConfiguration().getJobExecutor();
assertEquals(CustomJobExecutor.class, jobExecutor.getClass());
Modified: jbpm3/trunk/pom.xml
===================================================================
--- jbpm3/trunk/pom.xml 2008-11-28 17:06:35 UTC (rev 3157)
+++ jbpm3/trunk/pom.xml 2008-12-01 04:47:28 UTC (rev 3158)
@@ -29,11 +29,13 @@
<!-- Modules -->
<modules>
<module>modules/core</module>
+ <module>modules/db</module>
<module>modules/identity</module>
<module>modules/enterprise</module>
<module>modules/examples</module>
<module>modules/simulation</module>
<module>modules/integration</module>
+ <module>modules/userguide</module>
</modules>
<!-- Properties -->