[jbpm-commits] JBoss JBPM SVN: r2788 - in jbpm3/trunk/modules: core/scripts and 17 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Nov 6 21:04:01 EST 2008
Author: alex.guizar at jboss.com
Date: 2008-11-06 21:04:01 -0500 (Thu, 06 Nov 2008)
New Revision: 2788
Added:
jbpm3/trunk/modules/core/scripts/antrun-jbpm-schema.xml
jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/SystemPropertyTask.java
jbpm3/trunk/modules/identity/scripts/antrun-jbpm-schema.xml
Modified:
jbpm3/trunk/modules/core/pom.xml
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/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/main/resources/hibernate.common.xml
jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.hsqldb.xml
jbpm3/trunk/modules/core/src/main/resources/org/jbpm/ant/jbpm.ant.tasks.properties
jbpm3/trunk/modules/core/src/test/java/org/jbpm/SerializabilityTest.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/jbpm522/JBPM522Test.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java
jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/xml/XmlSchemaTest.java
jbpm3/trunk/modules/enterprise/jar/pom.xml
jbpm3/trunk/modules/identity/pom.xml
Log:
moved database schema creation before the test suite run to prevent tables from being dropped and recreated several times during the test suite
Modified: jbpm3/trunk/modules/core/pom.xml
===================================================================
--- jbpm3/trunk/modules/core/pom.xml 2008-11-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/pom.xml 2008-11-07 02:04:01 UTC (rev 2788)
@@ -172,6 +172,7 @@
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
+ <id>config</id>
<phase>compile</phase>
<goals>
<goal>run</goal>
@@ -183,6 +184,20 @@
</tasks>
</configuration>
</execution>
+ <execution>
+ <id>schema</id>
+ <phase>process-test-resources</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <tasks>
+ <property name="test.classpath" refid="maven.test.classpath" />
+ <property name="log4j.output.dir" location="${basedir}/target" />
+ <ant antfile="scripts/antrun-jbpm-schema.xml" target="create" />
+ </tasks>
+ </configuration>
+ </execution>
</executions>
</plugin>
@@ -223,6 +238,7 @@
<excludes>
<!-- Concurrent execution not supported on hsqldb -->
<exclude>org/jbpm/jbpm983/JBPM983Test.java</exclude>
+ <exclude>org/jbpm/jbpm1072/JBPM1072Test.java</exclude>
<!-- https://jira.jboss.org/jira/browse/JBPM-1810 -->
<exclude>org/jbpm/db/JbpmSchemaDbTest.java</exclude>
</excludes>
@@ -252,6 +268,7 @@
<excludes>
<!-- Concurrent execution not supported on hsqldb -->
<exclude>org/jbpm/jbpm983/JBPM983Test.java</exclude>
+ <exclude>org/jbpm/jbpm1072/JBPM1072Test.java</exclude>
<!-- https://jira.jboss.org/jira/browse/JBPM-1810 -->
<exclude>org/jbpm/db/JbpmSchemaDbTest.java</exclude>
</excludes>
@@ -283,8 +300,6 @@
<exclude>org/jbpm/graph/node/ProcessStateDbTest.java</exclude>
<!-- https://jira.jboss.org/jira/browse/JBPM-1166 -->
<exclude>org/jbpm/seam/JobExecutorCustomizationTest.java</exclude>
- <!-- https://jira.jboss.org/jira/browse/JBPM-1810 -->
- <exclude>org/jbpm/db/JbpmSchemaDbTest.java</exclude>
</excludes>
</configuration>
</plugin>
@@ -315,8 +330,6 @@
<exclude>org/jbpm/graph/exe/SubProcessPlusConcurrencyDbTest.java</exclude>
<!-- https://jira.jboss.org/jira/browse/JBPM-1782 -->
<exclude>org/jbpm/jpdl/exe/JoinExecutionDbTest.java</exclude>
- <!-- https://jira.jboss.org/jira/browse/JBPM-1810 -->
- <exclude>org/jbpm/db/JbpmSchemaDbTest.java</exclude>
</excludes>
</configuration>
</plugin>
@@ -344,8 +357,6 @@
<excludes>
<!-- https://jira.jboss.org/jira/browse/JBPM-1764 -->
<exclude>org/jbpm/job/executor/JobExecutorDbTest</exclude>
- <!-- https://jira.jboss.org/jira/browse/JBPM-1810 -->
- <exclude>org/jbpm/db/JbpmSchemaDbTest.java</exclude>
</excludes>
</configuration>
</plugin>
Added: jbpm3/trunk/modules/core/scripts/antrun-jbpm-schema.xml
===================================================================
--- jbpm3/trunk/modules/core/scripts/antrun-jbpm-schema.xml (rev 0)
+++ jbpm3/trunk/modules/core/scripts/antrun-jbpm-schema.xml 2008-11-07 02:04:01 UTC (rev 2788)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!-- -->
+<!-- JBoss, the OpenSource J2EE webOS -->
+<!-- -->
+<!-- Distributable under LGPL license. -->
+<!-- See terms of license at http://www.gnu.org. -->
+<!-- -->
+<!-- ====================================================================== -->
+
+<!-- $Id: antrun-jbpm-config.xml 2611 2008-10-24 15:25:58Z thomas.diesler at jboss.com $ -->
+
+<project default="create">
+
+ <target name="create">
+ <taskdef resource="org/jbpm/ant/jbpm.ant.tasks.properties">
+ <classpath path="${test.classpath}" />
+ </taskdef>
+ <systemproperty key="log4j.output.dir" value="${log4j.output.dir}"/>
+ <jbpmschema />
+ </target>
+
+</project>
\ No newline at end of file
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-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/JbpmContext.java 2008-11-07 02:04:01 UTC (rev 2788)
@@ -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-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/AntHelper.java 2008-11-07 02:04:01 UTC (rev 2788)
@@ -42,6 +42,10 @@
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);
Configuration configuration = (Configuration) configurations.get(key);
Added: jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/SystemPropertyTask.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/SystemPropertyTask.java (rev 0)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/SystemPropertyTask.java 2008-11-07 02:04:01 UTC (rev 2788)
@@ -0,0 +1,47 @@
+/*
+ * 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.ant;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+
+/**
+ * @author Alejandro Guizar
+ */
+public class SystemPropertyTask extends Task {
+
+ private String key;
+ private String value;
+
+ @Override
+ public void execute() throws BuildException {
+ System.setProperty(key, value);
+ }
+
+ public void setKey(String key) {
+ this.key = key;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+}
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-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/context/exe/TokenVariableMap.java 2008-11-07 02:04:01 UTC (rev 2788)
@@ -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-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/context/exe/variableinstance/ByteArrayInstance.java 2008-11-07 02:04:01 UTC (rev 2788)
@@ -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/JbpmSchema.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/JbpmSchema.java 2008-11-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/JbpmSchema.java 2008-11-07 02:04:01 UTC (rev 2788)
@@ -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-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/hibernate/HibernateHelper.java 2008-11-07 02:04:01 UTC (rev 2788)
@@ -39,13 +39,6 @@
public abstract 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();
- }
-
public static SessionFactory createSessionFactory() {
return createSessionFactory(null, null, true);
}
@@ -64,11 +57,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 +91,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-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/persistence/db/DbPersistenceServiceFactory.java 2008-11-07 02:04:01 UTC (rev 2788)
@@ -156,6 +156,11 @@
}
}
+ public void finalize() throws Throwable
+ {
+ close();
+ }
+
public String getDataSourceJndiName()
{
return dataSourceJndiName;
Modified: jbpm3/trunk/modules/core/src/main/resources/hibernate.common.xml
===================================================================
--- jbpm3/trunk/modules/core/src/main/resources/hibernate.common.xml 2008-11-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/main/resources/hibernate.common.xml 2008-11-07 02:04:01 UTC (rev 2788)
@@ -17,10 +17,6 @@
<!-- # common settings # -->
<!-- ################################### -->
- <!-- Automatic schema creation (begin) -->
- <property name="hibernate.hbm2ddl.auto">create</property>
- <!-- Automatic schema creation (end) -->
-
<!-- Simple memory-only cache -->
<property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
Modified: jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.hsqldb.xml
===================================================================
--- jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.hsqldb.xml 2008-11-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.hsqldb.xml 2008-11-07 02:04:01 UTC (rev 2788)
@@ -8,3 +8,7 @@
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password"></property>
<!-- JDBC connection properties (end) -->
+
+ <!-- Automatic schema creation (begin) -->
+ <property name="hibernate.hbm2ddl.auto">create</property>
+ <!-- Automatic schema creation (end) -->
\ No newline at end of file
Modified: jbpm3/trunk/modules/core/src/main/resources/org/jbpm/ant/jbpm.ant.tasks.properties
===================================================================
--- jbpm3/trunk/modules/core/src/main/resources/org/jbpm/ant/jbpm.ant.tasks.properties 2008-11-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/main/resources/org/jbpm/ant/jbpm.ant.tasks.properties 2008-11-07 02:04:01 UTC (rev 2788)
@@ -3,4 +3,5 @@
startjboss=org.jbpm.ant.StartJBossTask
starthsqldb=org.jbpm.ant.StartHsqldbTask
shutdownhsqldb=org.jbpm.ant.ShutDownHsqldb
-loadidentities=org.jbpm.identity.ant.LoadIdentitiesTask
+systemproperty=org.jbpm.ant.SystemPropertyTask
+!loadidentities=org.jbpm.identity.ant.LoadIdentitiesTask
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-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/SerializabilityTest.java 2008-11-07 02:04:01 UTC (rev 2788)
@@ -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/db/DeleteProcessInstanceDbTest.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/DeleteProcessInstanceDbTest.java 2008-11-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/DeleteProcessInstanceDbTest.java 2008-11-07 02:04:01 UTC (rev 2788)
@@ -1,6 +1,10 @@
package org.jbpm.db;
+import java.util.Iterator;
+import java.util.List;
+
import org.jbpm.context.exe.ContextInstance;
+import org.jbpm.context.exe.VariableInstance;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
@@ -116,6 +120,8 @@
}
public void testDeleteProcessInstanceWithConcurrentPathsOfExecution() {
+ ensureCleanVariableInstanceTable();
+
ProcessDefinition makeFondue = ProcessDefinition.parseXmlString(
"<process-definition name='make fondue'>" +
" <start-state>" +
@@ -167,4 +173,16 @@
jbpmContext.getGraphSession().deleteProcessDefinition(makeFondue.getId());
}
}
+
+ private void ensureCleanVariableInstanceTable() {
+ List variableInstances = session.createCriteria(VariableInstance.class).list();
+ if (!variableInstances.isEmpty()) {
+ System.err.println("FIXME: "+ getClass().getName() + "." + getName() +
+ " found " + variableInstances.size() + " variable instances left over");
+ for (Iterator i = variableInstances.iterator(); i.hasNext();) {
+ VariableInstance variableInstance = (VariableInstance) i.next();
+ session.delete(variableInstance);
+ }
+ }
+ }
}
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-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/GraphSessionDbTest.java 2008-11-07 02:04:01 UTC (rev 2788)
@@ -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/jbpm522/JBPM522Test.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/jbpm522/JBPM522Test.java 2008-11-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/jbpm522/JBPM522Test.java 2008-11-07 02:04:01 UTC (rev 2788)
@@ -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/jpdl/par/ProcessArchiveDeploymentDbTest.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java 2008-11-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java 2008-11-07 02:04:01 UTC (rev 2788)
@@ -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/jpdl/xml/XmlSchemaTest.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/xml/XmlSchemaTest.java 2008-11-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/xml/XmlSchemaTest.java 2008-11-07 02:04:01 UTC (rev 2788)
@@ -70,7 +70,7 @@
}
public void testMultipleNamespaces() {
- JpdlParser.addSchemaResource("org/jbpm/jpdl/xml/files/sitemap.xsd");
+ JpdlParser.addSchemaResource("org/jbpm/jpdl/xml/sitemap.xsd");
try {
parseXmlForThisMethod();
fail("expected exception");
Modified: jbpm3/trunk/modules/enterprise/jar/pom.xml
===================================================================
--- jbpm3/trunk/modules/enterprise/jar/pom.xml 2008-11-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/enterprise/jar/pom.xml 2008-11-07 02:04:01 UTC (rev 2788)
@@ -258,7 +258,7 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
- <!-- https://jira.jboss.org/jira/browse/JBPM-1709 -->
+ <!-- xa datasource not available for hsqldb -->
<exclude>org/jbpm/scheduler/ejbtimer/EjbSchedulerTest.java</exclude>
</excludes>
</configuration>
@@ -285,7 +285,7 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
- <!-- https://jira.jboss.org/jira/browse/JBPM-1709 -->
+ <!-- xa datasource not available for hsqldb -->
<exclude>org/jbpm/scheduler/ejbtimer/EjbSchedulerTest.java</exclude>
</excludes>
</configuration>
Modified: jbpm3/trunk/modules/identity/pom.xml
===================================================================
--- jbpm3/trunk/modules/identity/pom.xml 2008-11-06 21:42:10 UTC (rev 2787)
+++ jbpm3/trunk/modules/identity/pom.xml 2008-11-07 02:04:01 UTC (rev 2788)
@@ -88,12 +88,33 @@
</execution>
</executions>
</plugin>
+
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<showDeprecation>false</showDeprecation>
</configuration>
</plugin>
+
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>schema</id>
+ <phase>process-test-resources</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <tasks>
+ <property name="test.classpath" refid="maven.test.classpath" />
+ <property name="log4j.output.dir" location="${basedir}/target" />
+ <ant antfile="scripts/antrun-jbpm-schema.xml" target="create" />
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>
\ No newline at end of file
Added: jbpm3/trunk/modules/identity/scripts/antrun-jbpm-schema.xml
===================================================================
--- jbpm3/trunk/modules/identity/scripts/antrun-jbpm-schema.xml (rev 0)
+++ jbpm3/trunk/modules/identity/scripts/antrun-jbpm-schema.xml 2008-11-07 02:04:01 UTC (rev 2788)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!-- -->
+<!-- JBoss, the OpenSource J2EE webOS -->
+<!-- -->
+<!-- Distributable under LGPL license. -->
+<!-- See terms of license at http://www.gnu.org. -->
+<!-- -->
+<!-- ====================================================================== -->
+
+<!-- $Id: antrun-jbpm-config.xml 2611 2008-10-24 15:25:58Z thomas.diesler at jboss.com $ -->
+
+<project default="create">
+
+ <target name="create">
+ <taskdef resource="org/jbpm/ant/jbpm.ant.tasks.properties">
+ <classpath path="${test.classpath}" />
+ </taskdef>
+ <systemproperty key="log4j.output.dir" value="${log4j.output.dir}"/>
+ <jbpmschema />
+ </target>
+
+</project>
\ No newline at end of file
More information about the jbpm-commits
mailing list