[jbpm-commits] JBoss JBPM SVN: r2873 - in jbpm3/trunk: hudson/hudson-home and 40 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Nov 10 17:14:08 EST 2008
Author: thomas.diesler at jboss.com
Date: 2008-11-10 17:14:07 -0500 (Mon, 10 Nov 2008)
New Revision: 2873
Added:
jbpm3/trunk/modules/db/src/main/resources/hibernate.extra.hbm.xml
jbpm3/trunk/modules/db/src/main/resources/hibernate.identity.hbm.xml
jbpm3/trunk/modules/db/src/main/resources/log4j.xml
jbpm3/trunk/modules/distribution/src/main/etc/release.notes.html
Removed:
jbpm3/trunk/modules/core/scripts/antrun-jbpm-schema.xml
jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/SystemPropertyTask.java
jbpm3/trunk/modules/core/src/main/resources/org/jbpm/context/exe/variableinstance/JcrNodeInstance.hbm.xml
jbpm3/trunk/modules/identity/scripts/antrun-jbpm-schema.xml
jbpm3/trunk/modules/userguide/src/main/docbook/en/modules/ws.xml
Modified:
jbpm3/trunk/hudson/hudson-home/command.sh
jbpm3/trunk/hudson/hudson-home/jobs/jBPM3-Matrix/config.xml
jbpm3/trunk/hudson/hudson-home/jobs/jBPM3-ShortMatrix/config.xml
jbpm3/trunk/modules/core/pom.xml
jbpm3/trunk/modules/core/scripts/antrun-jbpm-config.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/ant/JbpmSchemaTask.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.cache.xml
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/hibernate.properties.mysql.xml
jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.postgresql.xml
jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.sybase.xml
jbpm3/trunk/modules/core/src/main/resources/jbpm-sybase-ds.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/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/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/core/src/test/java/org/jbpm/mail/MailTest.java
jbpm3/trunk/modules/core/src/test/resources/log4j.xml
jbpm3/trunk/modules/db/pom.xml
jbpm3/trunk/modules/db/scripts/antrun-jbpmschema.xml
jbpm3/trunk/modules/distribution/pom.xml
jbpm3/trunk/modules/distribution/scripts/antrun-installer.xml
jbpm3/trunk/modules/distribution/scripts/assembly-deploy-artifacts.xml
jbpm3/trunk/modules/distribution/src/main/resources/installer/install-definition.xml
jbpm3/trunk/modules/distribution/src/main/resources/installer/target-panel-dir.txt
jbpm3/trunk/modules/distribution/src/main/resources/installer/user-input-spec.xml
jbpm3/trunk/modules/enterprise/ear/pom.xml
jbpm3/trunk/modules/enterprise/jar/pom.xml
jbpm3/trunk/modules/enterprise/jar/src/test/java/org/jbpm/msg/jms/JmsMessageTest.java
jbpm3/trunk/modules/enterprise/pom.xml
jbpm3/trunk/modules/examples/pom.xml
jbpm3/trunk/modules/identity/pom.xml
jbpm3/trunk/modules/simulation/pom.xml
jbpm3/trunk/modules/userguide/pom.xml
jbpm3/trunk/modules/userguide/src/main/docbook/en/master.xml
jbpm3/trunk/modules/userguide/src/main/docbook/en/modules/gettingstarted.xml
jbpm3/trunk/pom.xml
jbpm3/trunk/profiles.xml.example
Log:
merge -r2808:HEAD from jbpm3/branches/jbpm-3.3.0.GA
Modified: jbpm3/trunk/hudson/hudson-home/command.sh
===================================================================
--- jbpm3/trunk/hudson/hudson-home/command.sh 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/hudson/hudson-home/command.sh 2008-11-10 22:14:07 UTC (rev 2873)
@@ -58,7 +58,7 @@
# Deploy distro
#
AUTO_INSTALL=modules/distribution/target/resources/auto-install-template.xml; cat $AUTO_INSTALL;
-JAVA_CMD="java -jar $DISTRODIR/jbpm-distribution-$JBPM_VERSION-izpack.jar $AUTO_INSTALL"
+JAVA_CMD="java -jar $DISTRODIR/jbpm-installer-$JBPM_VERSION.jar $AUTO_INSTALL"
echo $JAVA_CMD; $JAVA_CMD
# FIXME: Autoinstall does not respect conditions
Modified: jbpm3/trunk/hudson/hudson-home/jobs/jBPM3-Matrix/config.xml
===================================================================
--- jbpm3/trunk/hudson/hudson-home/jobs/jBPM3-Matrix/config.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/hudson/hudson-home/jobs/jBPM3-Matrix/config.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -44,7 +44,7 @@
<values>
<string>hsqldb</string>
<string>mysql</string>
- <!-- string>postgresql</string -->
+ <string>sybase</string>
</values>
</axis>
<axis>
Modified: jbpm3/trunk/hudson/hudson-home/jobs/jBPM3-ShortMatrix/config.xml
===================================================================
--- jbpm3/trunk/hudson/hudson-home/jobs/jBPM3-ShortMatrix/config.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/hudson/hudson-home/jobs/jBPM3-ShortMatrix/config.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -25,11 +25,7 @@
</scm>
<canRoam>true</canRoam>
<disabled>false</disabled>
- <triggers class="vector">
- <hudson.triggers.TimerTrigger>
- <spec>0 0 * * *</spec>
- </hudson.triggers.TimerTrigger>
- </triggers>
+ <triggers class="vector"/>
<axes>
<axis>
<name>container</name>
@@ -42,7 +38,7 @@
<values>
<string>hsqldb</string>
<string>mysql</string>
- <!-- string>postgresql</string -->
+ <string>sybase</string>
</values>
</axis>
<axis>
Modified: jbpm3/trunk/modules/core/pom.xml
===================================================================
--- jbpm3/trunk/modules/core/pom.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/pom.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -23,7 +23,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.3.0-SNAPSHOT</version>
+ <version>3.3.0.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -170,7 +170,6 @@
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
- <id>config</id>
<phase>compile</phase>
<goals>
<goal>run</goal>
@@ -182,22 +181,6 @@
</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>
<plugin>
@@ -363,6 +346,17 @@
<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>
+ <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>
</excludes>
</configuration>
</plugin>
Modified: jbpm3/trunk/modules/core/scripts/antrun-jbpm-config.xml
===================================================================
--- jbpm3/trunk/modules/core/scripts/antrun-jbpm-config.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/scripts/antrun-jbpm-config.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -14,21 +14,47 @@
<project default="concat">
<property name="project.build.directory" value="${basedir}/target"/>
- <property name="project.resources.directory" value="${basedir}/target/classes"/>
+ <property name="build.resources.directory" value="${basedir}/target/classes"/>
- <!--
- macrodef: macro-database-cfg
- Concatenates the various db specific hibernate files to produce hibernate.cfg.[database].xml
- -->
+ <macrodef name="macro-disable">
+ <attribute name="file" />
+ <attribute name="section" />
+ <sequential>
+ <replace file="@{file}" summary="true">
+ <replacetoken><![CDATA[<!-- ]]>@{section}<![CDATA[ (begin) -->]]></replacetoken>
+ <replacevalue><![CDATA[<!-- ]]>@{section}<![CDATA[ (begin) ===]]></replacevalue>
+ </replace>
+ <replace file="@{file}" summary="true">
+ <replacetoken><![CDATA[<!-- ]]>@{section}<![CDATA[ (end) -->]]></replacetoken>
+ <replacevalue><![CDATA[==== ]]>@{section}<![CDATA[ (end) -->]]></replacevalue>
+ </replace>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="macro-enable">
+ <attribute name="file" />
+ <attribute name="section" />
+ <sequential>
+ <replace file="@{file}" summary="true">
+ <replacetoken><![CDATA[<!-- ]]>@{section}<![CDATA[ (begin) ===]]></replacetoken>
+ <replacevalue><![CDATA[<!-- ]]>@{section}<![CDATA[ (begin) -->]]></replacevalue>
+ </replace>
+ <replace file="@{file}" summary="true">
+ <replacetoken><![CDATA[==== ]]>@{section}<![CDATA[ (end) -->]]></replacetoken>
+ <replacevalue><![CDATA[<!-- ]]>@{section}<![CDATA[ (end) -->]]></replacevalue>
+ </replace>
+ </sequential>
+ </macrodef>
+
<macrodef name="macro-database-cfg">
<attribute name="database" />
<sequential>
- <available property="@{database}.properties.available" file="${project.resources.directory}/hibernate.properties.@{database}.xml"/>
+ <available property="@{database}.properties.available" file="${build.resources.directory}/hibernate.properties.@{database}.xml"/>
<fail message="hibernate.properties.@{database}.xml not available" unless="@{database}.properties.available"/>
<condition property="hibernate.mapping.@{database}.xml" value="hibernate.mapping.@{database}.xml" else="hibernate.mapping.default.xml">
- <available property="@{database}.mapping.available" file="${project.resources.directory}/hibernate.mapping.@{database}.xml"/>
+ <available property="@{database}.mapping.available" file="${build.resources.directory}/hibernate.mapping.@{database}.xml"/>
</condition>
<echo message="Concat hibernate.cfg.@{database}.xml using hibernate.properties.@{database}.xml, ${hibernate.mapping.@{database}.xml}" />
@@ -44,10 +70,10 @@
<hibernate-configuration>
<session-factory>
]]></header>
- <fileset file="${project.resources.directory}/hibernate.properties.@{database}.xml" />
- <fileset file="${project.resources.directory}/hibernate.common.xml" />
- <fileset file="${project.resources.directory}/${hibernate.mapping.@{database}.xml}" />
- <fileset file="${project.resources.directory}/hibernate.cache.xml" />
+ <fileset file="${build.resources.directory}/hibernate.properties.@{database}.xml" />
+ <fileset file="${build.resources.directory}/hibernate.common.xml" />
+ <fileset file="${build.resources.directory}/${hibernate.mapping.@{database}.xml}" />
+ <fileset file="${build.resources.directory}/hibernate.cache.xml" />
<footer trimleading="yes"><![CDATA[
</session-factory>
</hibernate-configuration>
@@ -56,18 +82,13 @@
</sequential>
</macrodef>
- <!--
- Target: concat
- Invokes the database config macro for all supported databases
- -->
- <target name="concat">
-
+ <target name="concat" >
<macro-database-cfg database="hsqldb"/>
<macro-database-cfg database="mysql"/>
<macro-database-cfg database="postgresql"/>
<macro-database-cfg database="sybase"/>
-
<echo message="Copy hibernate.cfg.${database}.xml to hibernate.cfg.xml" />
<copy file="${project.build.directory}/classes/hibernate.cfg.${database}.xml" tofile="${project.build.directory}/classes/hibernate.cfg.xml"/>
</target>
+
</project>
\ No newline at end of file
Deleted: jbpm3/trunk/modules/core/scripts/antrun-jbpm-schema.xml
===================================================================
--- jbpm3/trunk/modules/core/scripts/antrun-jbpm-schema.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/scripts/antrun-jbpm-schema.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -1,24 +0,0 @@
-<?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-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/JbpmContext.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -524,81 +524,81 @@
/**
* gets the hibernate session factory from the default configured persistence service.
- * @return the hibernate session factory, or <code>null</code> if a nonstandard
- * persistence service is configured
+ *
+ * @throws ClassCastException if another persistence service is configured then the default.
*/
public SessionFactory getSessionFactory()
{
- PersistenceService persistenceService = getPersistenceService();
- return persistenceService instanceof DbPersistenceService
- ? ((DbPersistenceService) persistenceService).getSessionFactory()
- : null;
+ DbPersistenceService persistenceService = (DbPersistenceService)getPersistenceService();
+ if (persistenceService == null)
+ return null;
+ return persistenceService.getSessionFactory();
}
/**
* sets the hibernate session factory into the default configured persistence service, overwriting the configured session factory (if there is one configured).
- * if a nonstandard persistence service is configured, then this call has no effect.
+ *
+ * @throws ClassCastException if another persistence service is configured then the default.
*/
public void setSessionFactory(SessionFactory sessionFactory)
{
- PersistenceService persistenceService = getPersistenceService();
- if (persistenceService instanceof DbPersistenceService) {
- DbPersistenceService dbPersistenceService = (DbPersistenceService) persistenceService;
- dbPersistenceService.setSessionFactory(sessionFactory);
- }
+ DbPersistenceService persistenceService = (DbPersistenceService)getPersistenceService();
+ if (persistenceService == null)
+ return;
+ persistenceService.setSessionFactory(sessionFactory);
}
/**
* gets the hibernate session from the default configured persistence service.
- * @return the hibernate session, or <code>null</code> if a nonstandard
- * persistence service is configured.
+ *
+ * @throws ClassCastException if another persistence service is configured then the default.
*/
public Session getSession()
{
- PersistenceService persistenceService = getPersistenceService();
- return persistenceService instanceof DbPersistenceService
- ? ((DbPersistenceService) persistenceService).getSession()
- : null;
+ DbPersistenceService persistenceService = (DbPersistenceService)getPersistenceService();
+ if (persistenceService == null)
+ return null;
+ return persistenceService.getSession();
}
/**
* 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).
- * if a nonstandard persistence service is configured, then this call has no effect.
+ *
+ * @throws ClassCastException if another persistence service is configured then the default.
*/
public void setSession(Session session)
{
- PersistenceService persistenceService = getPersistenceService();
- if (persistenceService instanceof DbPersistenceService) {
- DbPersistenceService dbPersistenceService = (DbPersistenceService) persistenceService;
- dbPersistenceService.setSession(session);
- }
+ DbPersistenceService persistenceService = (DbPersistenceService)getPersistenceService();
+ if (persistenceService == null)
+ return;
+ persistenceService.setSession(session);
}
/**
* gets the jdbc connection from the default configured persistence service.
- * @return the jdbc connectoin, or <code>null</code> if a nonstandard
- * persistence service is configured.
+ *
+ * @throws ClassCastException if another persistence service is configured then the default.
*/
public Connection getConnection()
{
- PersistenceService persistenceService = getPersistenceService();
- return persistenceService instanceof DbPersistenceService
- ? ((DbPersistenceService) persistenceService).getConnection()
- : null;
+ DbPersistenceService persistenceService = (DbPersistenceService)getPersistenceService();
+ if (persistenceService == null)
+ return null;
+ return persistenceService.getConnection();
}
/**
* allows users to provide a jdbc connection to be used when the hibernate session is created.
- * if a nonstandard persistence service is configured, then this call has no effect.
+ *
+ * @throws ClassCastException if another persistence service is configured then the default.
*/
public void setConnection(Connection connection)
{
- PersistenceService persistenceService = getPersistenceService();
- if (persistenceService instanceof DbPersistenceService) {
- DbPersistenceService dbPersistenceService = (DbPersistenceService) persistenceService;
- dbPersistenceService.setConnection(connection);
- }
+ DbPersistenceService persistenceService = (DbPersistenceService)getPersistenceService();
+ if (persistenceService == null)
+ return;
+ persistenceService.setConnection(connection);
}
// jbpm database access sessions
@@ -704,7 +704,9 @@
PersistenceService getPersistenceService()
{
- return services != null ? services.getPersistenceService() : null;
+ if (services == null)
+ return null;
+ return services.getPersistenceService();
}
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-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/AntHelper.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -42,10 +42,6 @@
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);
Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/JbpmSchemaTask.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/JbpmSchemaTask.java 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/JbpmSchemaTask.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -34,111 +34,151 @@
import org.jbpm.persistence.db.DbPersistenceServiceFactory;
import org.jbpm.svc.Services;
-public class JbpmSchemaTask extends Task {
+public class JbpmSchemaTask extends Task
+{
+ String jbpmCfg;
+ String hibernateCfg;
+ String hibernateProperties;
- String jbpmCfg = null;
- String hibernateCfg = null;
- String hibernateProperties = null;
+ boolean quiet;
+ boolean text;
+ String output;
+ String delimiter;
- boolean quiet = false;
- boolean text = false;
- String output = null;
- String delimiter = null;
+ String actions;
- String actions = null;
-
- public void execute() throws BuildException {
- if (actions==null) {
+ public void execute() throws BuildException
+ {
+ if (actions == null)
+ {
// default action is create
actions = "create";
}
-
+
// we need a configuration
- Configuration configuration = null;
+ Configuration configuration = null;
// if there is no jbpm nor hibernate configuration specified
- if ( (jbpmCfg==null)
- && (hibernateCfg==null)
- ) {
+ if ((jbpmCfg == null) && (hibernateCfg == null))
+ {
// search for the default jbpm.cfg.xml
URL defaultJbpmCfgUrl = getClass().getClassLoader().getResource("jbpm.cfg.xml");
- if (defaultJbpmCfgUrl!=null) {
+ if (defaultJbpmCfgUrl != null)
+ {
jbpmCfg = "jbpm.cfg.xml";
- // if still not found, search for the default hibernate.cfg.xml
- } else {
+ // if still not found, search for the default hibernate.cfg.xml
+ }
+ else
+ {
URL defaultHibernateCfgUrl = getClass().getClassLoader().getResource("hibernate.cfg.xml");
- if (defaultHibernateCfgUrl!=null) {
+ if (defaultHibernateCfgUrl != null)
+ {
hibernateCfg = "hibernate.cfg.xml";
}
}
}
-
- // first see if the jbpm cfg is specified cause that implies a hibernate configuration
- if (jbpmCfg!=null) {
- log("using jbpm configuration "+jbpmCfg);
+
+ // first see if the jbpm cfg is specified cause that implies a hibernate
+ // configuration
+ if (jbpmCfg != null)
+ {
+ log("using jbpm configuration " + jbpmCfg);
JbpmConfiguration jbpmConfiguration = AntHelper.getJbpmConfiguration(jbpmCfg);
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
- try {
- DbPersistenceServiceFactory dbPersistenceServiceFactory = (DbPersistenceServiceFactory) jbpmConfiguration.getServiceFactory(Services.SERVICENAME_PERSISTENCE);
+ try
+ {
+ DbPersistenceServiceFactory dbPersistenceServiceFactory = (DbPersistenceServiceFactory)jbpmConfiguration
+ .getServiceFactory(Services.SERVICENAME_PERSISTENCE);
configuration = dbPersistenceServiceFactory.getConfiguration();
- } finally {
+ }
+ finally
+ {
jbpmContext.close();
}
-
- // if there is no jbpm.cfg.xml specified, check if there is a hibernate.cfg.xml specified
- } else if (hibernateCfg!=null) {
- log("using hibernate configuration "+hibernateCfg);
+
+ // if there is no jbpm.cfg.xml specified, check if there is a
+ // hibernate.cfg.xml specified
+ }
+ else if (hibernateCfg != null)
+ {
+ log("using hibernate configuration " + hibernateCfg);
configuration = AntHelper.getConfiguration(hibernateCfg, hibernateProperties);
- // no hibernate configuration specified
- } else {
+ // no hibernate configuration specified
+ }
+ else
+ {
throw new BuildException("couldn't create schema. no jbpm nor hibernate configuration specified.");
}
JbpmSchema jbpmSchema = new JbpmSchema(configuration);
SchemaExport schemaExport = new SchemaExport(configuration);
- if (output!=null) schemaExport.setOutputFile(output);
- if (delimiter!=null) schemaExport.setDelimiter(delimiter);
+ if (output != null)
+ {
+ schemaExport.setOutputFile(output);
+ }
+
+ if (delimiter != null)
+ schemaExport.setDelimiter(delimiter);
StringTokenizer tokenizer = new StringTokenizer(actions, ",");
- while (tokenizer.hasMoreTokens()) {
+ while (tokenizer.hasMoreTokens())
+ {
String action = tokenizer.nextToken();
- if ("drop".equalsIgnoreCase(action)) {
+ if ("drop".equalsIgnoreCase(action))
+ {
schemaExport.drop(!quiet, !text);
-
- } else if ("create".equalsIgnoreCase(action)) {
+ }
+ else if ("create".equalsIgnoreCase(action))
+ {
schemaExport.create(!quiet, !text);
-
- } else if ("clean".equalsIgnoreCase(action)) {
+ }
+ else if ("clean".equalsIgnoreCase(action))
+ {
jbpmSchema.cleanSchema();
}
}
}
-
- public void setActions(String actions) {
+
+ public void setActions(String actions)
+ {
this.actions = actions;
}
- public void setJbpmCfg(String jbpmCfg) {
+
+ public void setJbpmCfg(String jbpmCfg)
+ {
this.jbpmCfg = jbpmCfg;
}
- public void setHibernateCfg(String hibernateCfg) {
+
+ public void setHibernateCfg(String hibernateCfg)
+ {
this.hibernateCfg = hibernateCfg;
}
- public void setHibernateProperties(String hibernateProperties) {
+
+ public void setHibernateProperties(String hibernateProperties)
+ {
this.hibernateProperties = hibernateProperties;
}
- public void setDelimiter(String delimiter) {
+
+ public void setDelimiter(String delimiter)
+ {
this.delimiter = delimiter;
}
- public void setOutput(String output) {
+
+ public void setOutput(String output)
+ {
this.output = output;
}
- public void setQuiet(boolean quiet) {
+
+ public void setQuiet(boolean quiet)
+ {
this.quiet = quiet;
}
- public void setText(boolean text) {
+
+ public void setText(boolean text)
+ {
this.text = text;
}
}
Deleted: jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/SystemPropertyTask.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/SystemPropertyTask.java 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/ant/SystemPropertyTask.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -1,47 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.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-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/context/exe/TokenVariableMap.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -54,7 +54,7 @@
}
public String toString() {
- return "TokenVariableMap"+( (token!=null) ? "["+token.getFullName()+"]" : "@" + Integer.toHexString(System.identityHashCode(this)));
+ return "TokenVariableMap"+( (token!=null)&&(token.getName()!=null) ? "["+token.getName()+"]" : 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-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/context/exe/variableinstance/ByteArrayInstance.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -21,8 +21,6 @@
*/
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;
@@ -44,15 +42,6 @@
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-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/JbpmSchema.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -29,6 +29,7 @@
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;
@@ -43,8 +44,9 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.cfg.Configuration;
-import org.hibernate.cfg.Settings;
+import org.hibernate.cfg.Environment;
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;
@@ -62,7 +64,8 @@
private static final long serialVersionUID = 1L;
Configuration configuration = null;
- Settings settings;
+ Properties properties = null;
+ Dialect dialect = null;
Mapping mapping = null;
String[] createSql = null;
String[] dropSql = null;
@@ -75,15 +78,26 @@
public JbpmSchema(Configuration configuration)
{
this.configuration = configuration;
- this.settings = configuration.buildSettings();
- this.mapping = configuration.buildMapping();
+ 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);
+ }
}
public String[] getCreateSql()
{
if (createSql == null)
{
- createSql = configuration.generateSchemaCreationScript(settings.getDialect());
+ createSql = configuration.generateSchemaCreationScript(dialect);
}
return createSql;
}
@@ -92,7 +106,7 @@
{
if (dropSql == null)
{
- dropSql = configuration.generateDropSchemaScript(settings.getDialect());
+ dropSql = configuration.generateDropSchemaScript(dialect);
}
return dropSql;
}
@@ -102,11 +116,10 @@
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();
@@ -338,7 +351,8 @@
public void execute(String[] sqls)
{
String sql = null;
- boolean showSql = settings.isShowSqlEnabled();
+ String showSqlText = properties.getProperty("hibernate.show_sql");
+ boolean showSql = ("true".equalsIgnoreCase(showSqlText));
try
{
@@ -396,7 +410,7 @@
void createConnection() throws SQLException
{
- connectionProvider = settings.getConnectionProvider();
+ connectionProvider = ConnectionProviderFactory.newConnectionProvider(properties);
connection = connectionProvider.getConnection();
if (!connection.getAutoCommit())
{
@@ -407,7 +421,7 @@
public Properties getProperties()
{
- return configuration.getProperties();
+ return properties;
}
// sql delimiter ////////////////////////////////////////////////////////////
@@ -418,7 +432,7 @@
{
if (sqlDelimiter == null)
{
- sqlDelimiter = getProperties().getProperty("jbpm.sql.delimiter", ";");
+ sqlDelimiter = properties.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-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/hibernate/HibernateHelper.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -39,6 +39,13 @@
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);
}
@@ -57,7 +64,11 @@
}
public static SessionFactory createSessionFactory(Configuration configuration, boolean isConfigLookupEnabled) {
- return configuration.buildSessionFactory();
+ SessionFactory sessionFactory = configuration.buildSessionFactory();
+ if (isConfigLookupEnabled) {
+ configurations.put(sessionFactory, configuration);
+ }
+ return sessionFactory;
}
public static Configuration createConfiguration(String cfgXmlResource, String propertiesResource) {
@@ -91,6 +102,23 @@
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-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/persistence/db/DbPersistenceServiceFactory.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -156,11 +156,6 @@
}
}
- public void finalize() throws Throwable
- {
- close();
- }
-
public String getDataSourceJndiName()
{
return dataSourceJndiName;
Modified: jbpm3/trunk/modules/core/src/main/resources/hibernate.cache.xml
===================================================================
--- jbpm3/trunk/modules/core/src/main/resources/hibernate.cache.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/resources/hibernate.cache.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -1,67 +1,62 @@
- <!-- ################################### -->
- <!-- # cache settings # -->
- <!-- # strategy="nonstrict-read-write" # -->
- <!-- # can be used with hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider # -->
- <!-- ################################### -->
+ <!-- ################################### -->
+ <!-- # cache settings # -->
+ <!-- # strategy="nonstrict-read-write" # -->
+ <!-- # can be used with hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider # -->
+ <!-- ################################### -->
+
+ <class-cache class="org.jbpm.context.def.VariableAccess" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.file.def.FileDefinition.processFiles" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.graph.action.Script.variableAccesses" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.Action" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.Event" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Event.actions" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.ExceptionHandler" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ExceptionHandler.actions" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.Node" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Node.events" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Node.exceptionHandlers" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Node.leavingTransitions" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Node.arrivingTransitions" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.ProcessDefinition" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.events" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.exceptionHandlers" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.nodes" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.actions" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.definitions" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.graph.def.SuperState.nodes" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.Transition" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Transition.events" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Transition.exceptionHandlers" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.graph.node.Decision.decisionConditions" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.graph.node.ProcessState.variableAccesses" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.graph.node.TaskNode.tasks" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.instantiation.Delegation" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.module.def.ModuleDefinition" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.taskmgmt.def.Swimlane.tasks" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.taskmgmt.def.TaskController" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.taskmgmt.def.TaskController.variableAccesses" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.taskmgmt.def.Task" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.taskmgmt.def.Task.events" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.taskmgmt.def.Task.exceptionHandlers" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.taskmgmt.def.TaskMgmtDefinition.swimlanes" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.taskmgmt.def.TaskMgmtDefinition.tasks" usage="nonstrict-read-write" />
- <class-cache class="org.jbpm.context.def.VariableAccess" usage="nonstrict-read-write" />
-
- <collection-cache collection="org.jbpm.file.def.FileDefinition.processFiles" usage="nonstrict-read-write" />
-
- <collection-cache collection="org.jbpm.graph.action.Script.variableAccesses" usage="nonstrict-read-write" />
-
- <class-cache class="org.jbpm.graph.def.Action" usage="nonstrict-read-write" />
-
- <class-cache class="org.jbpm.graph.def.Event" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.graph.def.Event.actions" usage="nonstrict-read-write" />
-
- <class-cache class="org.jbpm.graph.def.ExceptionHandler" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.graph.def.ExceptionHandler.actions" usage="nonstrict-read-write" />
-
- <class-cache class="org.jbpm.graph.def.Node" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.graph.def.Node.events" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.graph.def.Node.exceptionHandlers" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.graph.def.Node.leavingTransitions" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.graph.def.Node.arrivingTransitions" usage="nonstrict-read-write" />
-
- <class-cache class="org.jbpm.graph.def.ProcessDefinition" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.events" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.exceptionHandlers" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.nodes" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.actions" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.definitions" usage="nonstrict-read-write" />
-
- <collection-cache collection="org.jbpm.graph.def.SuperState.nodes" usage="nonstrict-read-write" />
-
- <class-cache class="org.jbpm.graph.def.Transition" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.graph.def.Transition.events" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.graph.def.Transition.exceptionHandlers" usage="nonstrict-read-write" />
-
- <collection-cache collection="org.jbpm.graph.node.Decision.decisionConditions" usage="nonstrict-read-write" />
-
- <collection-cache collection="org.jbpm.graph.node.ProcessState.variableAccesses" usage="nonstrict-read-write" />
-
- <collection-cache collection="org.jbpm.graph.node.TaskNode.tasks" usage="nonstrict-read-write" />
-
- <class-cache class="org.jbpm.instantiation.Delegation" usage="nonstrict-read-write" />
-
- <class-cache class="org.jbpm.module.def.ModuleDefinition" usage="nonstrict-read-write" />
-
- <collection-cache collection="org.jbpm.taskmgmt.def.Swimlane.tasks" usage="nonstrict-read-write" />
-
- <class-cache class="org.jbpm.taskmgmt.def.TaskController" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.taskmgmt.def.TaskController.variableAccesses" usage="nonstrict-read-write" />
-
- <class-cache class="org.jbpm.taskmgmt.def.Task" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.taskmgmt.def.Task.events" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.taskmgmt.def.Task.exceptionHandlers" usage="nonstrict-read-write" />
-
- <collection-cache collection="org.jbpm.taskmgmt.def.TaskMgmtDefinition.swimlanes" usage="nonstrict-read-write" />
- <collection-cache collection="org.jbpm.taskmgmt.def.TaskMgmtDefinition.tasks" usage="nonstrict-read-write" />
-
- <!--
- ==================================================================================
- END org.jboss.jbpm:jbpm-jpdl-core hibernate.cfg.xml
- ==================================================================================
- -->
Modified: jbpm3/trunk/modules/core/src/main/resources/hibernate.common.xml
===================================================================
--- jbpm3/trunk/modules/core/src/main/resources/hibernate.common.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/resources/hibernate.common.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -17,11 +17,15 @@
<!-- # 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>
<!-- logging properties -->
- <property name="hibernate.format_sql">false</property>
+ <property name="hibernate.format_sql">true</property>
<property name="hibernate.use_sql_comments">true</property>
<!-- ############################################ -->
@@ -31,4 +35,4 @@
<!-- Additional mappings defined per module go here -->
<mapping resource="hibernate.extra.hbm.xml" />
<mapping resource="hibernate.identity.hbm.xml" />
-
\ No newline at end of file
+
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-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.hsqldb.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -9,6 +9,3 @@
<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/hibernate.properties.mysql.xml
===================================================================
--- jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.mysql.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.mysql.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -9,3 +9,4 @@
<property name="hibernate.connection.password">${jdbc.mysql.password}</property>
<property name="hibernate.query.substitutions">true 1, false 0</property>
<!-- JDBC connection properties (end) -->
+
Modified: jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.postgresql.xml
===================================================================
--- jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.postgresql.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.postgresql.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -8,3 +8,4 @@
<property name="hibernate.connection.username">${jdbc.postgresql.username}</property>
<property name="hibernate.connection.password">${jdbc.postgresql.password}</property>
<!-- JDBC connection properties (end) -->
+
Modified: jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.sybase.xml
===================================================================
--- jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.sybase.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/resources/hibernate.properties.sybase.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -4,15 +4,18 @@
System Service QA Database Sybase
https://wiki.corp.jboss.com/bin/view/IT/SystemServiceQaDatabaseSybase
+
+ Install Sybase ASE 15.0.2 on Fedora9
+ https://www.jboss.org/community/docs/DOC-12932
-->
<!-- hibernate dialect -->
<property name="hibernate.dialect">org.hibernate.dialect.SybaseDialect</property>
<!-- JDBC connection properties (begin) -->
- <property name="hibernate.connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
+ <property name="hibernate.connection.driver_class">${jdbc.sybase.driver}</property>
<property name="hibernate.connection.url">${jdbc.sybase.url}</property>
<property name="hibernate.connection.username">${jdbc.sybase.username}</property>
<property name="hibernate.connection.password">${jdbc.sybase.password}</property>
<!-- JDBC connection properties (end) -->
-
+
Modified: jbpm3/trunk/modules/core/src/main/resources/jbpm-sybase-ds.xml
===================================================================
--- jbpm3/trunk/modules/core/src/main/resources/jbpm-sybase-ds.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/resources/jbpm-sybase-ds.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -4,7 +4,7 @@
<xa-datasource>
<jndi-name>JbpmDS</jndi-name>
-
+
<xa-datasource-class>net.sourceforge.jtds.jdbcx.JtdsDataSource</xa-datasource-class>
<xa-datasource-property name="ServerName">${jdbc.sybase.server}</xa-datasource-property>
<xa-datasource-property name="PortNumber">${jdbc.sybase.port}</xa-datasource-property>
@@ -12,9 +12,6 @@
<xa-datasource-property name="User">${jdbc.sybase.username}</xa-datasource-property>
<xa-datasource-property name="Password">${jdbc.sybase.password}</xa-datasource-property>
- <!-- disable transaction interleaving -->
- <track-connection-by-tx />
-
<exception-sorter-class-name>
org.jboss.resource.adapter.jdbc.vendor.SybaseExceptionSorter
</exception-sorter-class-name>
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-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/resources/org/jbpm/ant/jbpm.ant.tasks.properties 2008-11-10 22:14:07 UTC (rev 2873)
@@ -3,5 +3,4 @@
startjboss=org.jbpm.ant.StartJBossTask
starthsqldb=org.jbpm.ant.StartHsqldbTask
shutdownhsqldb=org.jbpm.ant.ShutDownHsqldb
-systemproperty=org.jbpm.ant.SystemPropertyTask
-!loadidentities=org.jbpm.identity.ant.LoadIdentitiesTask
+loadidentities=org.jbpm.identity.ant.LoadIdentitiesTask
Deleted: jbpm3/trunk/modules/core/src/main/resources/org/jbpm/context/exe/variableinstance/JcrNodeInstance.hbm.xml
===================================================================
--- jbpm3/trunk/modules/core/src/main/resources/org/jbpm/context/exe/variableinstance/JcrNodeInstance.hbm.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/main/resources/org/jbpm/context/exe/variableinstance/JcrNodeInstance.hbm.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-
-<!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
-
-<hibernate-mapping auto-import="false" default-access="field">
- <subclass name="org.jbpm.context.exe.variableinstance.JcrNodeInstance"
- extends="org.jbpm.context.exe.VariableInstance"
- discriminator-value="J">
-
- <!--
- NOTE: these propertynames don't match the column names very well.
- The motivation for this was to keep the database schema unchanged
- between jBPM 3.1 and jBPM 3.2
- -->
-
- <property name="repository" column="LONGIDCLASS_" />
- <property name="workspace" column="STRINGIDCLASS_" />
- <property name="path" column="STRINGVALUE_" type="text" />
-
- </subclass>
-</hibernate-mapping>
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-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/SerializabilityTest.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -37,7 +37,12 @@
String testRootDir = FileDefinitionFileSystemConfigTest.class.getProtectionDomain().getCodeSource().getLocation().getFile().toString();
static Set excusedClasses = new HashSet(Arrays.asList(new String[] {
- "org.jbpm.ant",
+ "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.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/CustomVariableStringIdDbTest.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableStringIdDbTest.java 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/context/exe/CustomVariableStringIdDbTest.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -95,6 +95,5 @@
{
jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
}
-
}
-}
\ No newline at end of file
+}
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-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/DeleteProcessInstanceDbTest.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -1,10 +1,6 @@
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;
@@ -120,8 +116,6 @@
}
public void testDeleteProcessInstanceWithConcurrentPathsOfExecution() {
- ensureCleanVariableInstanceTable();
-
ProcessDefinition makeFondue = ProcessDefinition.parseXmlString(
"<process-definition name='make fondue'>" +
" <start-state>" +
@@ -173,16 +167,4 @@
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-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/db/GraphSessionDbTest.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -29,14 +29,17 @@
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
@@ -46,15 +49,16 @@
// 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);
@@ -77,11 +81,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());
@@ -89,9 +93,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);
@@ -115,7 +119,7 @@
newTransaction();
- // cleanup
+ // cleanup
processDefinition = graphSession.findProcessDefinition("auction", 1);
graphSession.deleteProcessDefinition(processDefinition.getId());
@@ -126,11 +130,9 @@
graphSession.deleteProcessDefinition(processDefinition.getId());
}
- public void testFindAllProcessDefinitions() throws Exception {
- ensureCleanProcessDefinitionTable();
-
- // put 3 process definitions in the database with the same name, but
- // different versions
+ public void testFindAllProcessDefinitions() 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);
@@ -153,43 +155,41 @@
newTransaction();
- 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());
+ 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();
- }
- finally {
- processDefinition = graphSession.findProcessDefinition("auction", 1);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ newTransaction();
- processDefinition = graphSession.findProcessDefinition("auction", 2);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ // cleanup
+ processDefinition = graphSession.findProcessDefinition("auction", 1);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
- processDefinition = graphSession.findProcessDefinition("auction", 3);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ processDefinition = graphSession.findProcessDefinition("auction", 2);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
- processDefinition = graphSession.findProcessDefinition("bake cake", 1);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ processDefinition = graphSession.findProcessDefinition("auction", 3);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
- processDefinition = graphSession.findProcessDefinition("bake cake", 2);
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ processDefinition = graphSession.findProcessDefinition("bake cake", 1);
+ 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,213 +212,184 @@
newTransaction();
- 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());
+ 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();
- }
- finally {
- processDefinition = graphSession.findProcessDefinition("auction", 1);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ newTransaction();
- processDefinition = graphSession.findProcessDefinition("auction", 2);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ // cleanup
+ processDefinition = graphSession.findProcessDefinition("auction", 1);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
- processDefinition = graphSession.findProcessDefinition("auction", 3);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ processDefinition = graphSession.findProcessDefinition("auction", 2);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
- processDefinition = graphSession.findProcessDefinition("bake cake", 1);
- graphSession.deleteProcessDefinition(processDefinition.getId());
+ processDefinition = graphSession.findProcessDefinition("auction", 3);
+ graphSession.deleteProcessDefinition(processDefinition.getId());
- processDefinition = graphSession.findProcessDefinition("bake cake", 2);
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ processDefinition = graphSession.findProcessDefinition("bake cake", 1);
+ 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);
- try {
- assertNotNull(processInstance);
- }
- finally {
- graphSession.deleteProcessInstance(processInstance);
- }
+ assertNotNull(processInstance);
+
+ // cleanup
+ session.delete(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 = saveAndReload(processInstance);
- long pid = processInstance.getId();
+ ProcessInstance processInstance = new ProcessInstance(processDefinition);
- assertEquals("s", processInstance.getRootToken().getNode().getName());
- processInstance.getRootToken().setNode(processInstance.getProcessDefinition().getNode("n"));
+ processInstance = saveAndReload(processInstance);
+ long pid = processInstance.getId();
- processInstance = saveAndReload(processInstance);
- assertEquals("n", processInstance.getRootToken().getNode().getName());
- assertEquals(pid, processInstance.getId());
+ assertEquals("s", processInstance.getRootToken().getNode().getName());
+ processInstance.getRootToken().setNode(processInstance.getProcessDefinition().getNode("n"));
- newTransaction();
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ processInstance = saveAndReload(processInstance);
+ assertEquals("n", processInstance.getRootToken().getNode().getName());
+ assertEquals(pid, processInstance.getId());
+
+ newTransaction();
+
+ // cleanup
+ 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);
- try {
- jbpmContext.save(new ProcessInstance(processDefinition));
- jbpmContext.save(new ProcessInstance(processDefinition));
- jbpmContext.save(new ProcessInstance(processDefinition));
+ 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;
- }
-
- newTransaction();
+ // 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;
}
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+
+ newTransaction();
+
+ // cleanup
+ 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);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- jbpmContext.save(processInstance);
+ newTransaction();
- newTransaction();
+ graphSession.deleteProcessInstance(processInstance.getId());
- graphSession.deleteProcessInstance(processInstance.getId());
+ newTransaction();
- newTransaction();
+ assertEquals(0, graphSession.findProcessInstances(processDefinition.getId()).size());
+
+ newTransaction();
- assertEquals(0, graphSession.findProcessInstances(processDefinition.getId()).size());
-
- newTransaction();
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ // cleanup
+ 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);
- try {
- ProcessInstance processInstance = new ProcessInstance(processDefinition);
- processInstance.signal();
- Token tokenA = processInstance.findToken("/a");
- Token tokenB = processInstance.findToken("/b");
+ 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();
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ List processInstances = graphSession.findProcessInstances(processDefinition.getId());
+ assertEquals(0, processInstances.size());
+
+ newTransaction();
+ graphSession.deleteProcessDefinition(processDefinition.getId());
}
- public void testDeleteProcessDefinition() {
- ProcessDefinition processDefinition = ProcessDefinition.parseXmlString("<process-definition name='deleteme'>"
- + " <start-state name='s' />"
- + " <node name='n' />"
+ public void testDeleteProcessDefinition()
+ {
+ 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));
+ jbpmContext.save(new ProcessInstance(processDefinition));
- try {
- jbpmContext.save(new ProcessInstance(processDefinition));
- jbpmContext.save(new ProcessInstance(processDefinition));
- jbpmContext.save(new ProcessInstance(processDefinition));
- jbpmContext.save(new ProcessInstance(processDefinition));
+ newTransaction();
- newTransaction();
- }
- finally {
- graphSession.deleteProcessDefinition(processDefinition.getId());
- }
+ graphSession.deleteProcessDefinition(processDefinition.getId());
newTransaction();
- assertEquals(0, graphSession.findAllProcessDefinitionVersions(processDefinition.getName()).size());
+ assertEquals(0, graphSession.findAllProcessDefinitions().size());
assertEquals(0, graphSession.findProcessInstances(processDefinition.getId()).size());
}
- public void testLatestProcessDefinitions() {
- ensureCleanProcessDefinitionTable();
-
+ public void testLatestProcessDefinitions()
+ {
ProcessDefinition websale = new ProcessDefinition("websale");
jbpmContext.deployProcessDefinition(websale);
jbpmContext.deployProcessDefinition(websale);
@@ -442,23 +413,14 @@
graphSession.deleteProcessDefinition(changeNappy.getId());
}
- 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) {
+ 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-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/jbpm522/JBPM522Test.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -45,47 +45,38 @@
public void testDeployProcess()
{
runTarget("deploy.process");
- List processDefinitions = graphSession.findAllProcessDefinitionVersions("timerProcess");
+ List processDefinitions = graphSession.findAllProcessDefinitions();
assertEquals(1, processDefinitions.size());
ProcessDefinition processDefinition = (ProcessDefinition)processDefinitions.get(0);
assertEquals("timerProcess", processDefinition.getName());
- graphSession.deleteProcessDefinition(processDefinition);
+ session.delete(processDefinition);
}
public void testDeployBadProcess()
{
runTarget("deploy.bad.process");
- List processDefinitions = graphSession.findAllProcessDefinitionVersions("sequential process");
+ List processDefinitions = graphSession.findAllProcessDefinitions();
assertEquals(0, processDefinitions.size());
}
public void testDeployProcesses()
{
runTarget("deploy.processes");
- List processDefinitions = graphSession.findAllProcessDefinitionVersions("classLoadingProcess");
- assertEquals(1, processDefinitions.size());
+ List processDefinitions = graphSession.findAllProcessDefinitions();
+ assertEquals(2, processDefinitions.size());
ProcessDefinition processDefinition = (ProcessDefinition)processDefinitions.get(0);
assertEquals("classLoadingProcess", processDefinition.getName());
- graphSession.deleteProcessDefinition(processDefinition);
-
- processDefinitions = graphSession.findAllProcessDefinitionVersions("timerProcess");
- assertEquals(1, processDefinitions.size());
- processDefinition = (ProcessDefinition)processDefinitions.get(0);
+ session.delete(processDefinition);
+ processDefinition = (ProcessDefinition)processDefinitions.get(1);
assertEquals("timerProcess", processDefinition.getName());
- graphSession.deleteProcessDefinition(processDefinition);
+ session.delete(processDefinition);
}
public void testDeployProcessesIncludingBad()
{
runTarget("deploy.processes.including.bad");
- List processDefinitions = graphSession.findAllProcessDefinitionVersions("timerProcess");
+ List processDefinitions = graphSession.findAllProcessDefinitions();
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-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -23,6 +23,10 @@
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;
@@ -33,6 +37,10 @@
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;
@@ -62,7 +70,7 @@
{
newTransaction();
- List allProcessDefinitions = graphSession.findAllProcessDefinitionVersions(processDefinition.getName());
+ List allProcessDefinitions = graphSession.findAllProcessDefinitions();
assertEquals(1, allProcessDefinitions.size());
processDefinition = (ProcessDefinition)allProcessDefinitions.get(0);
@@ -92,7 +100,7 @@
{
newTransaction();
- List allProcessDefinitions = graphSession.findAllProcessDefinitionVersions(processDefinition.getName());
+ List allProcessDefinitions = graphSession.findAllProcessDefinitions();
assertEquals(1, allProcessDefinitions.size());
processDefinition = (ProcessDefinition)allProcessDefinitions.get(0);
byte[] processBytes = processDefinition.getFileDefinition().getBytes("classes/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.class");
@@ -127,15 +135,12 @@
ProcessDefinition processDefinitionTwo = ProcessDefinition.parseParZipInputStream(zipInputStream);
jbpmContext.deployProcessDefinition(processDefinitionTwo);
- String processDefinitionName = processDefinitionTwo.getName();
- assertEquals(processDefinitionName, processDefinitionOne.getName());
-
newTransaction();
try
{
- assertEquals(2, graphSession.findAllProcessDefinitionVersions(processDefinitionName).size());
- assertEquals(2, graphSession.findLatestProcessDefinition(processDefinitionName).getVersion());
+ assertEquals(2, graphSession.findAllProcessDefinitions().size());
+ assertEquals(2, graphSession.findLatestProcessDefinition("the deployable process").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-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/xml/XmlSchemaTest.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -70,7 +70,7 @@
}
public void testMultipleNamespaces() {
- JpdlParser.addSchemaResource("org/jbpm/jpdl/xml/sitemap.xsd");
+ JpdlParser.addSchemaResource("org/jbpm/jpdl/xml/files/sitemap.xsd");
try {
parseXmlForThisMethod();
fail("expected exception");
Modified: jbpm3/trunk/modules/core/src/test/java/org/jbpm/mail/MailTest.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/mail/MailTest.java 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/mail/MailTest.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -3,6 +3,8 @@
import java.util.Arrays;
import java.util.Iterator;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.jbpm.AbstractJbpmTestCase;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
@@ -14,15 +16,21 @@
import com.dumbster.smtp.SimpleSmtpServer;
import com.dumbster.smtp.SmtpMessage;
-public class MailTest extends AbstractJbpmTestCase {
-
- public static class TestAddressResolver implements AddressResolver {
+public class MailTest extends AbstractJbpmTestCase
+{
+ private static Log log = LogFactory.getLog(MailTest.class);
+
+ public static class TestAddressResolver implements AddressResolver
+ {
private static final long serialVersionUID = 1L;
- public Object resolveAddress(String actorId) {
- if ("ghost".equals(actorId)) {
+
+ public Object resolveAddress(String actorId)
+ {
+ if ("ghost".equals(actorId))
+ {
return null;
}
- return actorId+"@example.domain";
+ return actorId + "@example.domain";
}
}
@@ -44,23 +52,31 @@
jbpmContext = jbpmConfiguration.createJbpmContext();
}
- static SimpleSmtpServer startSmtpServer(int port) {
- /* SimpleSmtpServer.start(int) blocks the calling thread until the server socket is created.
- * If the socket is created too quickly (seems to happen on Linux and Mac) then the
- * notification is sent too early and the calling thread blocks forever. */
+ static SimpleSmtpServer startSmtpServer(int port)
+ {
+ /*
+ * SimpleSmtpServer.start(int) blocks the calling thread until the server socket is created. If the socket is
+ * created too quickly (seems to happen on Linux and Mac) then the notification is sent too early and the calling
+ * thread blocks forever.
+ */
// return SimpleSmtpServer.start(port);
-
- /* The code below corresponds to SimpleSmtpServer.start(int) except that the
- * thread start has been moved inside of the synchronized block. */
+ /*
+ * The code below corresponds to SimpleSmtpServer.start(int) except that the thread start has been moved inside of
+ * the synchronized block.
+ */
SimpleSmtpServer server = new SimpleSmtpServer(port);
Thread serverThread = new Thread(server);
// Block until the server socket is created
- synchronized (server) {
+ synchronized (server)
+ {
serverThread.start();
- try {
+ try
+ {
server.wait(10 * 1000);
- } catch (InterruptedException e) {
+ }
+ catch (InterruptedException e)
+ {
// Ignore don't care.
}
}
@@ -70,59 +86,71 @@
protected void tearDown() throws Exception
{
jbpmContext.close();
- server.stop();
+ try
+ {
+ server.stop();
+ }
+ catch (RuntimeException rte)
+ {
+ // This is an intermittent issue that we can safely ignore
+ log.error("Cannot stop server: " + rte);
+ }
super.tearDown();
}
- public void testWithoutAddressResolving() {
+ public void testWithoutAddressResolving()
+ {
String to = "sample.shipper at example.domain";
String subject = "latest news";
String text = "roy is assurancetourix";
-
+
Mail mail = new Mail(null, null, to, subject, text);
mail.send();
-
+
assertTrue(server.getReceivedEmailSize() == 1);
Iterator emailIter = server.getReceivedEmail();
- SmtpMessage email = (SmtpMessage) emailIter.next();
+ SmtpMessage email = (SmtpMessage)emailIter.next();
assertEquals("latest news", email.getHeaderValue("Subject"));
assertEquals("roy is assurancetourix", email.getBody());
assertEquals("sample.shipper at example.domain", email.getHeaderValue("To"));
}
- public void testMailWithAddressResolving() {
+ public void testMailWithAddressResolving()
+ {
String actors = "manager";
String subject = "latest news";
String text = "roy is assurancetourix";
-
+
Mail mail = new Mail(null, actors, null, subject, text);
mail.send();
-
+
assertTrue(server.getReceivedEmailSize() == 1);
Iterator emailIter = server.getReceivedEmail();
- SmtpMessage email = (SmtpMessage) emailIter.next();
+ SmtpMessage email = (SmtpMessage)emailIter.next();
assertEquals("latest news", email.getHeaderValue("Subject"));
assertEquals("roy is assurancetourix", email.getBody());
assertEquals("manager at example.domain", email.getHeaderValue("To"));
}
-
- public void testMailWithBccAddress() {
+
+ public void testMailWithBccAddress()
+ {
String bcc = "bcc at example.domain";
String subject = "latest news";
String text = "roy is assurancetourix";
-
+
Mail mail = new Mail(null, null, null, null, bcc, subject, text);
mail.send();
-
+
assertEquals(1, server.getReceivedEmailSize());
Iterator emailIter = server.getReceivedEmail();
- SmtpMessage email1 = (SmtpMessage) emailIter.next();
+ SmtpMessage email1 = (SmtpMessage)emailIter.next();
assertEquals("latest news", email1.getHeaderValue("Subject"));
assertEquals("roy is assurancetourix", email1.getBody());
assertNull(email1.getHeaderValue("To"));
}
- public void testMailNodeAttributes() {
+ public void testMailNodeAttributes()
+ {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state>" +
@@ -136,16 +164,17 @@
);
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
assertTrue(server.getReceivedEmailSize() == 1);
Iterator emailIter = server.getReceivedEmail();
- SmtpMessage email = (SmtpMessage) emailIter.next();
+ SmtpMessage email = (SmtpMessage)emailIter.next();
assertEquals("readmylips", email.getHeaderValue("Subject"));
assertEquals("nomoretaxes", email.getBody());
assertEquals("george at example.domain", email.getHeaderValue("To"));
}
- public void testMailNodeElements() {
+ public void testMailNodeElements()
+ {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state>" +
@@ -161,16 +190,17 @@
);
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
assertTrue(server.getReceivedEmailSize() == 1);
Iterator emailIter = server.getReceivedEmail();
- SmtpMessage email = (SmtpMessage) emailIter.next();
+ SmtpMessage email = (SmtpMessage)emailIter.next();
assertEquals("readmylips", email.getHeaderValue("Subject"));
assertEquals("nomoretaxes", email.getBody());
assertEquals("george at example.domain", email.getHeaderValue("To"));
}
- public void testMailActionAttributes() {
+ public void testMailActionAttributes()
+ {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state>" +
@@ -183,16 +213,17 @@
);
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
assertTrue(server.getReceivedEmailSize() == 1);
Iterator emailIter = server.getReceivedEmail();
- SmtpMessage email = (SmtpMessage) emailIter.next();
+ SmtpMessage email = (SmtpMessage)emailIter.next();
assertEquals("readmylips", email.getHeaderValue("Subject"));
assertEquals("nomoretaxes", email.getBody());
assertEquals("george at example.domain", email.getHeaderValue("To"));
}
- public void testMailActionElements() {
+ public void testMailActionElements()
+ {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state>" +
@@ -209,16 +240,17 @@
);
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
assertTrue(server.getReceivedEmailSize() == 1);
Iterator emailIter = server.getReceivedEmail();
- SmtpMessage email = (SmtpMessage) emailIter.next();
+ SmtpMessage email = (SmtpMessage)emailIter.next();
assertEquals("readmylips", email.getHeaderValue("Subject"));
assertEquals("nomoretaxes", email.getBody());
assertEquals("george at example.domain", email.getHeaderValue("To"));
}
- public void testMultipleRecipients() {
+ public void testMultipleRecipients()
+ {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state>" +
@@ -231,16 +263,18 @@
);
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
assertEquals(1, server.getReceivedEmailSize());
Iterator emailIter = server.getReceivedEmail();
- SmtpMessage email = (SmtpMessage) emailIter.next();
+ SmtpMessage email = (SmtpMessage)emailIter.next();
assertEquals("readmylips", email.getHeaderValue("Subject"));
assertEquals("nomoretaxes", email.getBody());
- assertEquals(Arrays.asList(new String[]{"george at example.domain", "barbara at example.domain", "suzy at example.domain"}), Arrays.asList(email.getHeaderValues("To")));
+ assertEquals(Arrays.asList(new String[] { "george at example.domain", "barbara at example.domain", "suzy at example.domain" }), Arrays.asList(email
+ .getHeaderValues("To")));
}
- public void testMailWithoutAddressResolving() {
+ public void testMailWithoutAddressResolving()
+ {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state>" +
@@ -253,24 +287,30 @@
);
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.signal();
-
+
assertEquals(1, server.getReceivedEmailSize());
Iterator emailIter = server.getReceivedEmail();
- SmtpMessage email = (SmtpMessage) emailIter.next();
- assertEquals(Arrays.asList(new String[]{"george at humpydumpy.gov", "spiderman at hollywood.ca.us"}), Arrays.asList(email.getHeaderValues("To")));
+ SmtpMessage email = (SmtpMessage)emailIter.next();
+ assertEquals(Arrays.asList(new String[] { "george at humpydumpy.gov", "spiderman at hollywood.ca.us" }), Arrays.asList(email.getHeaderValues("To")));
}
-
- public static class User {
- String email;
- public User(String email) {
+
+ public static class User
+ {
+ String email;
+
+ public User(String email)
+ {
this.email = email;
- }
- public String getEmail() {
- return email;
- }
+ }
+
+ public String getEmail()
+ {
+ return email;
+ }
}
- public void testToVariableExpression() {
+ public void testToVariableExpression()
+ {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state>" +
@@ -283,18 +323,19 @@
);
User mrNobody = new User("hucklebuck at example.domain");
-
+
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.getContextInstance().setVariable("user", mrNobody);
processInstance.signal();
-
+
assertEquals(1, server.getReceivedEmailSize());
Iterator emailIter = server.getReceivedEmail();
- SmtpMessage email = (SmtpMessage) emailIter.next();
+ SmtpMessage email = (SmtpMessage)emailIter.next();
assertEquals("hucklebuck at example.domain", email.getHeaderValue("To"));
}
- public void testToSwimlaneExpression() {
+ public void testToSwimlaneExpression()
+ {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state>" +
@@ -312,14 +353,15 @@
initiatorInstance.setActorId("huckelberry");
processInstance.getTaskMgmtInstance().addSwimlaneInstance(initiatorInstance);
processInstance.signal();
-
+
assertEquals(1, server.getReceivedEmailSize());
Iterator emailIter = server.getReceivedEmail();
- SmtpMessage email = (SmtpMessage) emailIter.next();
+ SmtpMessage email = (SmtpMessage)emailIter.next();
assertEquals("huckelberry at example.domain", email.getHeaderValue("To"));
}
- public void testSubjectExpression() {
+ public void testSubjectExpression()
+ {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state>" +
@@ -334,14 +376,15 @@
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.getContextInstance().setVariable("item", "cookies");
processInstance.signal();
-
+
assertEquals(1, server.getReceivedEmailSize());
Iterator emailIter = server.getReceivedEmail();
- SmtpMessage email = (SmtpMessage) emailIter.next();
+ SmtpMessage email = (SmtpMessage)emailIter.next();
assertEquals("your cookies order", email.getHeaderValue("Subject"));
}
- public void testTextExpression() {
+ public void testTextExpression()
+ {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state>" +
@@ -356,10 +399,10 @@
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processInstance.getContextInstance().setVariable("item", "cookies");
processInstance.signal();
-
+
assertEquals(1, server.getReceivedEmailSize());
Iterator emailIter = server.getReceivedEmail();
- SmtpMessage email = (SmtpMessage) emailIter.next();
+ SmtpMessage email = (SmtpMessage)emailIter.next();
assertEquals("your cookies order", email.getBody());
}
}
Modified: jbpm3/trunk/modules/core/src/test/resources/log4j.xml
===================================================================
--- jbpm3/trunk/modules/core/src/test/resources/log4j.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/core/src/test/resources/log4j.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -32,35 +32,18 @@
<!-- Limit categories -->
<!-- ================ -->
- <category name="org.jbpm">
- <priority value="DEBUG" />
- </category>
-
<category name="org.hibernate">
<priority value="INFO" />
</category>
-
- <!-- hide optimistic locking failures
- <category name="org.hibernate.event.def.AbstractFlushingEventListener">
- <priority value="FATAL" />
- </category>
- -->
-
- <!-- hide proxy narrowing warns -->
- <category name="org.hibernate.engine.StatefulPersistenceContext.ProxyWarnLog">
- <priority value="ERROR" />
- </category>
-
- <!-- show SQL DML statements as they are executed -->
<category name="org.hibernate.SQL">
<priority value="DEBUG" />
</category>
-
- <!-- show JDBC parameters
<category name="org.hibernate.type">
<priority value="TRACE" />
</category>
- -->
+ <category name="org.hibernate.connection">
+ <priority value="TRACE" />
+ </category>
<!-- ======================= -->
<!-- Setup the Root category -->
Modified: jbpm3/trunk/modules/db/pom.xml
===================================================================
--- jbpm3/trunk/modules/db/pom.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/db/pom.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.3.0-SNAPSHOT</version>
+ <version>3.3.0.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -36,15 +36,17 @@
<artifactId>jbpm-jpdl</artifactId>
<version>${version}</version>
</dependency>
-
- <!-- Test Dependencies -->
<dependency>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm-jpdl</artifactId>
<classifier>config</classifier>
<version>${version}</version>
- <scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <scope>runtime</scope>
+ </dependency>
</dependencies>
<!-- Plugins -->
@@ -62,7 +64,7 @@
<configuration>
<tasks>
<property name="maven.runtime.classpath" refid="maven.runtime.classpath" />
- <!-- ant antfile="scripts/antrun-jbpmschema.xml" target="jbpmschema" /-->
+ <ant antfile="scripts/antrun-jbpmschema.xml" target="jbpmschema" />
</tasks>
</configuration>
</execution>
@@ -72,10 +74,10 @@
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<includes>
- <include>ddl/*</include>
+ <include>jbpm.jpdl.*.sql</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
-</project>
\ No newline at end of file
+</project>
Modified: jbpm3/trunk/modules/db/scripts/antrun-jbpmschema.xml
===================================================================
--- jbpm3/trunk/modules/db/scripts/antrun-jbpmschema.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/db/scripts/antrun-jbpmschema.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -20,25 +20,27 @@
<classpath path="${maven.runtime.classpath}" />
</taskdef>
- <property name="scriptsdir" value="${basedir}/target/classes/ddl" />
+ <property name="scriptsdir" value="${basedir}/target/classes" />
<mkdir dir="${scriptsdir}" />
-
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.db2.sql" jbpmCfg="jbpm/db2.jbpm.cfg.xml" actions="create" text="true"/>
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.derby.sql" jbpmCfg="jbpm/derby.jbpm.cfg.xml" actions="create" text="true"/>
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.firebird.sql" jbpmCfg="jbpm/firebird.jbpm.cfg.xml" actions="create" text="true"/>
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.hsqldb.sql" jbpmCfg="jbpm/hsqldb.jbpm.cfg.xml" actions="create" text="true"/>
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.informix.sql" jbpmCfg="jbpm/informix.jbpm.cfg.xml" actions="create" text="true"/>
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.ingres.sql" jbpmCfg="jbpm/ingres.jbpm.cfg.xml" actions="create" text="true"/>
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.interbase.sql" jbpmCfg="jbpm/interbase.jbpm.cfg.xml" actions="create" text="true"/>
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.mckoi.sql" jbpmCfg="jbpm/mckoi.jbpm.cfg.xml" actions="create" text="true"/>
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.mssql.sql" jbpmCfg="jbpm/mssql.jbpm.cfg.xml" actions="create" text="true"/>
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.mysql.sql" jbpmCfg="jbpm/mysql.jbpm.cfg.xml" actions="create" text="true"/>
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.oracle.sql" jbpmCfg="jbpm/oracle.jbpm.cfg.xml" delimiter=";" actions="create" text="true"/>
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.pointbase.sql" jbpmCfg="jbpm/pointbase.jbpm.cfg.xml" actions="create" text="true"/>
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.postgresql.sql" jbpmCfg="jbpm/postgresql.jbpm.cfg.xml" actions="create" text="true"/>
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.progress.sql" jbpmCfg="jbpm/progress.jbpm.cfg.xml" actions="create" text="true"/>
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.sapdb.sql" jbpmCfg="jbpm/sapdb.jbpm.cfg.xml" actions="create" text="true"/>
- <jbpmschema output="${scriptsdir}/jbpm.jpdl.sybase.sql" jbpmCfg="jbpm/sybase.jbpm.cfg.xml" actions="create" text="true"/>
+
+ <jbpmschema output="${scriptsdir}/jbpm.jpdl.db2.sql" jbpmCfg="jbpm/db2.jbpm.cfg.xml" actions="create" text="true" quiet="true" />
+ <jbpmschema output="${scriptsdir}/jbpm.jpdl.derby.sql" jbpmCfg="jbpm/derby.jbpm.cfg.xml" actions="create" text="true" quiet="true" />
+ <jbpmschema output="${scriptsdir}/jbpm.jpdl.firebird.sql" jbpmCfg="jbpm/firebird.jbpm.cfg.xml" actions="create" text="true" quiet="true" />
+ <jbpmschema output="${scriptsdir}/jbpm.jpdl.hsqldb.sql" hibernateCfg="hibernate.cfg.hsqldb.xml" jbpmCfg="jbpm/hsqldb.jbpm.cfg.xml" actions="create" text="true" quiet="true" />
+ <jbpmschema output="${scriptsdir}/jbpm.jpdl.ingres.sql" jbpmCfg="jbpm/ingres.jbpm.cfg.xml" actions="create" text="true" quiet="true" />
+ <jbpmschema output="${scriptsdir}/jbpm.jpdl.interbase.sql" jbpmCfg="jbpm/interbase.jbpm.cfg.xml" actions="create" text="true" quiet="true" />
+ <jbpmschema output="${scriptsdir}/jbpm.jpdl.mckoi.sql" jbpmCfg="jbpm/mckoi.jbpm.cfg.xml" actions="create" text="true" quiet="true" />
+ <jbpmschema output="${scriptsdir}/jbpm.jpdl.mssql.sql" jbpmCfg="jbpm/mssql.jbpm.cfg.xml" actions="create" text="true" quiet="true" />
+ <jbpmschema output="${scriptsdir}/jbpm.jpdl.mysql.sql" hibernateCfg="hibernate.cfg.mysql.xml" jbpmCfg="jbpm/mysql.jbpm.cfg.xml" actions="create" text="true" quiet="true" />
+ <jbpmschema output="${scriptsdir}/jbpm.jpdl.oracle.sql" jbpmCfg="jbpm/oracle.jbpm.cfg.xml" delimiter=";" actions="create" text="true" quiet="true" />
+ <jbpmschema output="${scriptsdir}/jbpm.jpdl.postgresql.sql" hibernateCfg="hibernate.cfg.postgresql.xml" jbpmCfg="jbpm/postgresql.jbpm.cfg.xml" actions="create" text="true" quiet="true" />
+ <jbpmschema output="${scriptsdir}/jbpm.jpdl.sapdb.sql" jbpmCfg="jbpm/sapdb.jbpm.cfg.xml" actions="create" text="true" quiet="true" />
+ <jbpmschema output="${scriptsdir}/jbpm.jpdl.sybase.sql" hibernateCfg="hibernate.cfg.sybase.xml" jbpmCfg="jbpm/sybase.jbpm.cfg.xml" actions="create" text="true" quiet="true" />
+
+ <!--[JBPM-1813] Fix create schema generation -->
+ <!--jbpmschema output="${scriptsdir}/jbpm.jpdl.informix.sql" jbpmCfg="jbpm/informix.jbpm.cfg.xml" actions="create" text="true" quiet="true"/-->
+ <!--jbpmschema output="${scriptsdir}/jbpm.jpdl.pointbase.sql" jbpmCfg="jbpm/pointbase.jbpm.cfg.xml" actions="create" text="true" quiet="true"/-->
+ <!--jbpmschema output="${scriptsdir}/jbpm.jpdl.progress.sql" jbpmCfg="jbpm/progress.jbpm.cfg.xml" actions="create" text="true" quiet="true"/-->
</target>
</project>
Copied: jbpm3/trunk/modules/db/src/main/resources/hibernate.extra.hbm.xml (from rev 2872, jbpm3/branches/jbpm-3.3.0.GA/modules/db/src/main/resources/hibernate.extra.hbm.xml)
===================================================================
--- jbpm3/trunk/modules/db/src/main/resources/hibernate.extra.hbm.xml (rev 0)
+++ jbpm3/trunk/modules/db/src/main/resources/hibernate.extra.hbm.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE hibernate-mapping PUBLIC
+ "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping>
+
+</hibernate-mapping>
Copied: jbpm3/trunk/modules/db/src/main/resources/hibernate.identity.hbm.xml (from rev 2872, jbpm3/branches/jbpm-3.3.0.GA/modules/db/src/main/resources/hibernate.identity.hbm.xml)
===================================================================
--- jbpm3/trunk/modules/db/src/main/resources/hibernate.identity.hbm.xml (rev 0)
+++ jbpm3/trunk/modules/db/src/main/resources/hibernate.identity.hbm.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE hibernate-mapping PUBLIC
+ "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping>
+
+</hibernate-mapping>
Copied: jbpm3/trunk/modules/db/src/main/resources/log4j.xml (from rev 2872, jbpm3/branches/jbpm-3.3.0.GA/modules/db/src/main/resources/log4j.xml)
===================================================================
--- jbpm3/trunk/modules/db/src/main/resources/log4j.xml (rev 0)
+++ jbpm3/trunk/modules/db/src/main/resources/log4j.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <appender name="FILE" class="org.apache.log4j.FileAppender">
+ <param name="File" value="./target/jbpmschema.log"/>
+ <param name="Append" value="false"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <param name="Target" value="System.out" />
+ <param name="Threshold" value="INFO" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p [%c{1}] %m%n" />
+ </layout>
+ </appender>
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <category name="org.hibernate">
+ <priority value="DEBUG" />
+ </category>
+
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <!--appender-ref ref="CONSOLE"/-->
+ <appender-ref ref="FILE"/>
+ </root>
+
+</log4j:configuration>
Modified: jbpm3/trunk/modules/distribution/pom.xml
===================================================================
--- jbpm3/trunk/modules/distribution/pom.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/distribution/pom.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.3.0-SNAPSHOT</version>
+ <version>3.3.0.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -87,6 +87,11 @@
<version>${version}</version>
<type>jdocbook</type>
</dependency>
+ <dependency>
+ <groupId>org.jbpm.jbpm3</groupId>
+ <artifactId>jbpm-db</artifactId>
+ <version>${version}</version>
+ </dependency>
<!-- jBPM Projects -->
<dependency>
Modified: jbpm3/trunk/modules/distribution/scripts/antrun-installer.xml
===================================================================
--- jbpm3/trunk/modules/distribution/scripts/antrun-installer.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/distribution/scripts/antrun-installer.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -142,7 +142,7 @@
<!-- Run installer build -->
<echo message="Running IzPack to build the installer..." />
- <izpack input="${resources.dir}/installer/install-definition.xml" output="${output.dir}/jbpm-jpdl-${product.version}-installer.jar"
+ <izpack input="${resources.dir}/installer/install-definition.xml" output="${output.dir}/jbpm-installer-${product.version}.jar"
installerType="standard" inheritAll="true" basedir="${izpack.temp.dir}" />
<!-- Clean working directory -->
Modified: jbpm3/trunk/modules/distribution/scripts/assembly-deploy-artifacts.xml
===================================================================
--- jbpm3/trunk/modules/distribution/scripts/assembly-deploy-artifacts.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/distribution/scripts/assembly-deploy-artifacts.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -80,6 +80,7 @@
<outputDirectory>/etc</outputDirectory>
<includes>
<include>JBossORG-EULA.txt</include>
+ <include>release.notes.html</include>
<include>version.info.xml</include>
</includes>
</fileSet>
Copied: jbpm3/trunk/modules/distribution/src/main/etc/release.notes.html (from rev 2872, jbpm3/branches/jbpm-3.3.0.GA/modules/distribution/src/main/etc/release.notes.html)
===================================================================
--- jbpm3/trunk/modules/distribution/src/main/etc/release.notes.html (rev 0)
+++ jbpm3/trunk/modules/distribution/src/main/etc/release.notes.html 2008-11-10 22:14:07 UTC (rev 2873)
@@ -0,0 +1,897 @@
+<html>
+<body>
+
+<h1 style="color:red;">3.3.0.GA DB Migration warning</h1>
+
+<p>In the hibernate mappings, all the properties that were mapped
+as <code>string</code> with <code>length="4000"</code> were replaced
+with the hibernate <code>text</code> type.
+</p>
+
+<p>For many DB's this means a big improvement. But for some,
+this might introduce a backwards incompatible change if the
+hibernate <code>text</code> type is not compatible with the
+hibernate <code>string</code> type.
+</p>
+
+<p>If you do encounter a problem with this, please "Create New Issue"
+for it in <a href="https://jira.jboss.org/jira/browse/JBPM">our jBPM JIRA</a>.</p>
+
+<p>If you do want to revert to the old style mappings,
+you'll have to unjar your jbpm-jpdl.jar, apply
+<a href="http://www.jboss.org/community/servlet/JiveServlet/download/12860-5-6021/mapping.patch.txt">this patch
+file</a> and then re-jar the jbpm-jpdl.jar file.</p>
+
+<p>Apart from this potential issue, there is the normal DB
+migration as described <a href="#330gadbmigration">below</a></p>
+
+<h1>Known limitations</h1>
+
+<h3>XML editing in the process designer</h3>
+
+<p>Direct editing of XML can lead to crashes in the graphical designer.
+This will be fixed in one of the next releases. Before you start
+editing the process XML source, make sure you create a backup copy.
+</p>
+
+<h3>Transition buttons in task forms</h3>
+
+<p>When generating a task form for a task, the transitions are not
+automatically populated in the generation dialog. Users have to
+enter the transition names and the button labels manually. If you
+don't do this no transition buttons will be generated to complete the
+task in the task form.
+</p>
+
+<p><b>Workaround</b>: First option is to add the transition buttons
+in the task form generation dialog. If you generated a task form without
+transition buttons, you still can complete the task with the console.
+Just save the variables in the task form and then in the 'Views' menu,
+select 'Transitions'. There you can click the 'end task' link for
+each of the available transitions.
+</p>
+
+<h3>Security vulnerability for GPD deployment</h3>
+
+<p>In the suite distribution, the console that is deployed in the server
+contains a servlet that allows the designer to deploy processes directly
+to a running server. This servlet is unprotected and people could load
+any process into a default installation. Security constraints will be
+added in 3.2.2 See also http://jira.jboss.com/jira/browse/JBPM-991
+</p>
+
+<h3>Excluded test cases</h3>
+
+<p><b>core test suite, no-database</b><blockquote>
+[<a href="https://jira.jboss.org/jira/browse/JBPM-983">JBPM-983</a>] concurrent process execution fails<br />
+<code>org/jbpm/jbpm983/JBPM983Test.java</code><br /><br />
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1072">JBPM-1072</a>] Concurrent JobExecutors can process the same job in parallel<br />
+<code>org/jbpm/jbpm1072/JBPM1072Test.java</code><br /><br />
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1810">JBPM-1810</a>] Fix clean, drop, create schema with JbpmSchema<br />
+<code>org/jbpm/db/JbpmSchemaDbTest.java</code><br /><br />
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1811">JBPM-1811</a>] JmsMessageTest fails intermitently on HSQLDB<br />
+<code>org/jbpm/msg/jms/JmsMessageTest.java</code><br /><br />
+</blockquote>
+</p>
+
+<p><b>core test suite, hsqldb</b><blockquote>
+[<a href="https://jira.jboss.org/jira/browse/JBPM-983">JBPM-983</a>] concurrent process execution fails<br />
+<code>org/jbpm/jbpm983/JBPM983Test.java</code><br /><br />
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1072">JBPM-1072</a>] Concurrent JobExecutors can process the same job in parallel<br />
+<code>org/jbpm/jbpm1072/JBPM1072Test.java</code><br /><br />
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1810">JBPM-1810</a>] Fix clean, drop, create schema with JbpmSchema <br />
+<code>org/jbpm/db/JbpmSchemaDbTest.java</code><br /><br />
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1811">JBPM-1811</a>] JmsMessageTest fails intermitently on HSQLDB <br />
+<code>org/jbpm/msg/jms/JmsMessageTest.java</code><br /><br />
+</blockquote>
+</p>
+
+<p><b>core test suite, mysql</b><blockquote>
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1166">JBPM-1166</a>] SEAM timer transaction integration<br />
+<code>org/jbpm/seam/JobExecutorCustomizationTest.java</code><br /><br />
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1810">JBPM-1810</a>] Fix clean, drop, create schema with JbpmSchema <br />
+<code>org/jbpm/db/JbpmSchemaDbTest.java</code><br /><br />
+</blockquote>
+</p>
+
+<p><b>core test suite, postgresql</b><blockquote>
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1782">JBPM-1782</a>] Fix JoinExecutionDbTest on postgresql<br />
+<code>org/jbpm/jpdl/exe/JoinExecutionDbTest.java</code><br /><br />
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1810">JBPM-1810</a>] Fix clean, drop, create schema with JbpmSchema <br />
+<code>org/jbpm/db/JbpmSchemaDbTest.java</code><br /><br />
+</blockquote>
+</p>
+
+<p><b>core test suite, sybase</b><blockquote>
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1764">JBPM-1764</a>] JobExecutorDbTest does not work on Sybase<br />
+<code>org/jbpm/job/executor/JobExecutorDbTest</code><br /><br />
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1810">JBPM-1810</a>] Fix clean, drop, create schema with JbpmSchema <br />
+<code>org/jbpm/db/JbpmSchemaDbTest.java</code><br /><br />
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1811">JBPM-1824</a>] Investigate core test failures against Sybase<br />
+<code>org/jbpm/db/DeleteProcessInstanceDbTest.java</code><br />
+<code>org/jbpm/graph/exe/SubProcessPlusConcurrencyDbTest.java</code><br />
+<code>org/jbpm/jbpm1072/JBPM1072Test.java</code><br />
+<code>org/jbpm/jbpm1755/JBPM1755Test.java</code><br />
+<code>org/jbpm/jbpm983/JBPM983Test.java</code><br />
+<code>org/jbpm/job/executor/JobExecutorDbTest.java</code><br />
+<code>org/jbpm/optimisticlocking/LockingTest.java</code><br />
+<code>org/jbpm/scheduler/exe/UnsafeSessionUsageTest.java</code><br />
+<code>org/jbpm/seam/JobExecutorCustomizationTest.java</code><br /><br />
+</blockquote>
+</p>
+
+<p><b>enterprise test suite, no-database</b><blockquote>
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1708">JBPM-1708</a>] Enterprise EjbSchedulerTest fails<br />
+<code>org/jbpm/scheduler/ejbtimer/EjbSchedulerTest.java</code><br /><br />
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1811">JBPM-1811</a>] JmsMessageTest fails intermitently on HSQLDB<br />
+<code>org/jbpm/msg/jms/JmsMessageTest.java</code><br /><br />
+</blockquote>
+</p>
+
+<p><b>enterprise test suite, hsqldb</b><blockquote>
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1708">JBPM-1708</a>] Enterprise EjbSchedulerTest fails<br />
+<code>org/jbpm/scheduler/ejbtimer/EjbSchedulerTest.java</code><br /><br />
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1811">JBPM-1811</a>] JmsMessageTest fails intermitently on HSQLDB<br />
+<code>org/jbpm/msg/jms/JmsMessageTest.java</code><br /><br />
+</blockquote>
+</p>
+
+<p><b>enterprise test suite, sybase</b><blockquote>
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1818">JBPM-1818</a>] Use Sybase instance that supports XA Transaction<br />
+<code>org/jbpm/scheduler/ejbtimer/EjbSchedulerTest.java</code><br />
+<code>org/jbpm/persistence/jta/JtaDbPersistenceTest.java</code><br />
+<code>org/jbpm/msg/jms/JmsMessageTest.java</code><br /><br />
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1830">JBPM-1830</a>] Fix AppServerConfigurationsTest for sybase on jboss500<br />
+<code>org/jbpm/enterprise/AppServerConfigurationsTest.java</code><br /><br />
+</blockquote>
+</p>
+
+<p><b>examples test suite, sybase</b><blockquote>
+[<a href="https://jira.jboss.org/jira/browse/JBPM-1827">JBPM-1827</a>] Investigate example test failures against Sybase<br />
+org/jbpm/examples/taskinstance/CustomTaskInstanceTest.java</code><br /><br />
+</blockquote>
+</p>
+
+<h1>Changes from 3.2.3 to 3.3.0.GA</h1>
+
+<h2 id="330gadbmigration">DB Migration</h2>
+
+One column got added. To upgrade, translate the following line of DDL to your database dialect:
+
+<pre>alter table JBPM_NODE add column PARENTLOCKMODE_ varchar(255)</pre>
+
+<h2>Bug</h2>
+<ul>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1166'>JBPM-1166</a>] - SEAM timer transaction integration
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1404'>JBPM-1404</a>] - jBPM classloader does not define package information
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1448'>JBPM-1448</a>] - jBPM does not initialise thread context classloader
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1689'>JBPM-1689</a>] - Update '8.2. Database upgrades' section of JBPM Users Guide
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1707'>JBPM-1707</a>] - pageflow parsing is slow
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1708'>JBPM-1708</a>] - Enterprise EjbSchedulerTest fails
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1709'>JBPM-1709</a>] - Enterprise JmsMessageTest fails sporadically
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1711'>JBPM-1711</a>] - Pass testsuite against mysql
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1713'>JBPM-1713</a>] - Fix Sybase issues Goldman Sachs
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1718'>JBPM-1718</a>] - Pass testsuite against postgresql
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1719'>JBPM-1719</a>] - Pass testsuite against sybase
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1755'>JBPM-1755</a>] - make field Join.parentLockMode persistent
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1779'>JBPM-1779</a>] - Resolve dependency on gwt-console for enterprise
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1807'>JBPM-1807</a>] - JSF Console: Complete task fails
+</li>
+</ul>
+
+<h2>Feature Request</h2>
+<ul>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-700'>JBPM-700</a>] - Out-of-the-box compatibility with Sybase
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1176'>JBPM-1176</a>] - Document the Sybase related issue - page size
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1754'>JBPM-1754</a>] - StaleObjectLog verbosity control code should be added to flushSession()
+</li>
+</ul>
+
+<h2>Patch</h2>
+<ul>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-850'>JBPM-850</a>] - Tasks with mail notification (notify="yes") fail if the assigned actor has no e-mail address.
+</li>
+</ul>
+
+<h2>Task</h2>
+<ul>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1181'>JBPM-1181</a>] - document 'end-complete-process' attribute on end-state
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1205'>JBPM-1205</a>] - Cleanup stale core tests from the testsuite
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1290'>JBPM-1290</a>] - Integrate example tests in automated testrun
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1297'>JBPM-1297</a>] - Integrate all tests in automated QA
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1355'>JBPM-1355</a>] - Add integration with supported target containers
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1372'>JBPM-1372</a>] - Verify that IzPack based distribution is complete
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1691'>JBPM-1691</a>] - document how to run jBPM tests against DBs in the QA lab
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1727'>JBPM-1727</a>] - Update UserGuide to be in line with jbpm-3.3.x
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1728'>JBPM-1728</a>] - Cleanup jboss.org Wiki
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1729'>JBPM-1729</a>] - Update to jbpm-gpd-3.1.5
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1732'>JBPM-1732</a>] - Clarify the unit test strategy
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1734'>JBPM-1734</a>] - Cleanup ProcessInstanceDbTest
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1735'>JBPM-1735</a>] - Cleanup ProcessStateDbTest
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1736'>JBPM-1736</a>] - Cleanup JBPM983Test
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1737'>JBPM-1737</a>] - Cleanup SubProcessPlusConcurrencyDbTest
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1738'>JBPM-1738</a>] - Cleanup JbpmContextGetDbTest
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1739'>JBPM-1739</a>] - Cleanup GraphSessionDbTest
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1740'>JBPM-1740</a>] - Cleanup TaskVariablesDbTest
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1741'>JBPM-1741</a>] - Cleanup BusinessKeyDbTest
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1742'>JBPM-1742</a>] - Cleanup ExpressionAssignmentHandlerTest
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1762'>JBPM-1762</a>] - Fix JIRA config for subversion/fisheye views
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1763'>JBPM-1763</a>] - JIRA integration test issue
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1764'>JBPM-1764</a>] - Deadlocks make job execution tests fail on Sybase
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1767'>JBPM-1767</a>] - jBPM jPDL User Guide: Documentation flaw regarding timers
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1771'>JBPM-1771</a>] - Fix JobExecutorDbTest on postgresql
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1772'>JBPM-1772</a>] - Fix JoinDbTest on postgresql
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1783'>JBPM-1783</a>] - Update to GWT Console 1.0.0.Beta1
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1785'>JBPM-1785</a>] - Release jBPM 3.3.0 GA
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1802'>JBPM-1802</a>] - Add sybase database option to installer
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1804'>JBPM-1804</a>] - Fix regression on HSQLDB
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1806'>JBPM-1806</a>] - Document unsupported functionality on PostgreSQL
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1816'>JBPM-1816</a>] - Sanitize tests that leak JDBC connections
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1817'>JBPM-1817</a>] - change name jbpm-core to jbpm-jpdl where applicable
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1821'>JBPM-1821</a>] - add database scripts to installation
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1822'>JBPM-1822</a>] - add release notes to the installation
+</li>
+</ul>
+
+<h2>Sub-task</h2>
+<ul>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-701'>JBPM-701</a>] - Do not truncate long messages/exceptions
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-702'>JBPM-702</a>] - Use non-nullable binary fields instead of varbinary on Sybase
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1294'>JBPM-1294</a>] - Integrate console tests in automated testrun
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1720'>JBPM-1720</a>] - Fix or Remove JcrDbTest
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1721'>JBPM-1721</a>] - Fix or Remove JobLoadJoinTest
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1722'>JBPM-1722</a>] - Fix or Remove MailTest
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1723'>JBPM-1723</a>] - Fix or Remove PerfWithoutDbTest
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1724'>JBPM-1724</a>] - Fix or Remove SeamPageFlowTest
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1743'>JBPM-1743</a>] - Fix tests for examples/assignment
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1744'>JBPM-1744</a>] - Fix tests for examples/businesstrip
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1745'>JBPM-1745</a>] - Fix tests for examples/door
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1746'>JBPM-1746</a>] - Fix tests for examples/mail
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1747'>JBPM-1747</a>] - Fix tests for examples/raise
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1748'>JBPM-1748</a>] - Fix tests for examples/rulesAction
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1749'>JBPM-1749</a>] - Fix tests for examples/taskinstance
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1750'>JBPM-1750</a>] - Fix tests for examples/taskmgmt
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1751'>JBPM-1751</a>] - Fix tests for examples/websale
+</li>
+</ul>
+
+
+<h1>Changes from 3.2.2 to 3.2.3</h1>
+
+<h2>Bug</h2>
+<ul>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1022'>JBPM-1022</a>] - 3.2.1 Admin Console: Any user sees all users tasks
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1024'>JBPM-1024</a>] - Serializable variables are not being deserialized when retrieved from process
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1045'>JBPM-1045</a>] - test suite has to trow a runtime exception on error so meaningful report is generated
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1046'>JBPM-1046</a>] - JobExecutorServlet cannot use local JNDI name to access datasource
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1072'>JBPM-1072</a>] - Concurrent JobExecutors can process the same job in parallel
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1073'>JBPM-1073</a>] - Allow mail attribute 'to' resolve EL Expressions
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1084'>JBPM-1084</a>] - NPE in VariableAccess with Oracle persistence
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1085'>JBPM-1085</a>] - Join of new process instance fails in Oracle
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1098'>JBPM-1098</a>] - businesscalendar is unaware of leapyears
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1109'>JBPM-1109</a>] - StringInstance hbm configuration column length of 4000 is ignored when generating the DDL
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1112'>JBPM-1112</a>] - <mail> action not allowed in <timer>
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1119'>JBPM-1119</a>] - Timers using EjbSchedulerService are not persisted across JBoss restarts
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1154'>JBPM-1154</a>] - jBPM example "action" - wrong package name referenced in JUnit tests
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1155'>JBPM-1155</a>] - jBPM example "mail" - missing import statements, etc.
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1156'>JBPM-1156</a>] - jBPM example: customTaskInstance fails with classcast exception
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1157'>JBPM-1157</a>] - Broken links in jBPM examples/readme.html
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1167'>JBPM-1167</a>] - JMS message service fails under WebSphere 6.1
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1184'>JBPM-1184</a>] - add end-task attribute to schema
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1186'>JBPM-1186</a>] - jobexecutor (threads) not stopped when JobExecutorServlet is destroyed
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1190'>JBPM-1190</a>] - Allow only one action element in a node
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1438'>JBPM-1438</a>] - Task assigned to different actor-id can be seen and manipulated in jBPM console
+</li>
+</ul>
+
+<h2>Feature Request</h2>
+<ul>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-639'>JBPM-639</a>] - Support Forward Reference in process-state
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-742'>JBPM-742</a>] - Reimplement JobExecutorServlet as a ServletContextListener
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-751'>JBPM-751</a>] - unnecessary warning on valid process definition
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-787'>JBPM-787</a>] - centralize cache configurations
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-886'>JBPM-886</a>] - change ejb timers from SLSB to an entity bean approach
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1097'>JBPM-1097</a>] - Make duedate accept EL in addition to the already existing businesscalendar
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1144'>JBPM-1144</a>] - Calculate dates for timers
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1179'>JBPM-1179</a>] - JtaDbPersistenceService.getUserTransaction()
+</li>
+</ul>
+
+<h2>Patch</h2>
+<ul>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1059'>JBPM-1059</a>] - Minor patch to avoid possible integer overflow in DayPart.add() in case of crazy Calendar values
+</li>
+</ul>
+
+<h2>Task</h2>
+<ul>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1086'>JBPM-1086</a>] - In FlushDbTest get the connection details from the hibernate configuration
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1180'>JBPM-1180</a>] - describe in detail the ejb components and the enterprise service factories
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1187'>JBPM-1187</a>] - verify code completion in designer
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1191'>JBPM-1191</a>] - Enterprise console error: No CurrentSessionContext configured
+</li>
+</ul>
+
+<h2>Sub-task</h2>
+<ul>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1099'>JBPM-1099</a>] - Create documentation for EL addition to duedate
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1100'>JBPM-1100</a>] - EL duedate extension should also accept Calendar
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBPM-1101'>JBPM-1101</a>] - task duedate should also accept an EL as basedate
+</li>
+</ul>
+
+
+<h1>Changes from 3.2.1 to 3.2.2</h1>
+
+<h3>Loading process archive resources</h3>
+<p>Loading process archive resources changed. Loading process archive classes remained the same.
+If you load a resource with the process classloader, it will look into the /classes directory
+in the process archive instead of loading it from the root of the classpath.
+</p>
+
+<p>From the docs:</p>
+<pre>
+Delegation classes are loaded with the process class loader of their respective process
+definition. The process class loader is a class loader that has the jBPM classloader as
+a parent. The process class loader adds all the classes of one particular process definition.
+You can add classes to a process definition by putting them in the /classes folder in the
+process archive. Note that this is only useful when you want to version the classes that
+you add to the process definition. If versioning is not necessary, it is much more efficient
+to make the classes available to the jBPM class loader.
+
+If the resource name doesn't start with a slash, resources are also loaded from the /classes
+directory in the process archive. If you want to load resources outside of the classes
+directory, start with a double slash ( <code><b>//</b></code> ). For example to load resource
+data.xml wich is located next to the processdefinition.xml on the root of the process archive
+file, you can do <code>clazz.getResource("//data.xml")</code> or
+<code>classLoader.getResourceAsStream("//data.xml")</code> or any of those getResource* variants.
+</pre>
+
+<h2>Bug</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-288'>JBPM-288</a>] - Fork/Join and child token deactivation</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-429'>JBPM-429</a>] - Support for external security systems</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-681'>JBPM-681</a>] - GraphElement.raiseException results in Exception with Java EE</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-821'>JBPM-821</a>] - ProcessClassLoader.getResourceAsStream throws JbpmException when the resource is not found in DB</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-910'>JBPM-910</a>] - XML schema urn:jbpm.org:jpdl-3.2 incomplete (atrtibute missing in sub-process; documentation referring to old version)</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-930'>JBPM-930</a>] - jpdl-3.2.xsd doesnt describe "notify" attribute.(used for mailing) - validaiton error using notify attribute in task element</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-962'>JBPM-962</a>] - SuperState.nodes Mapping causes serious problems</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-965'>JBPM-965</a>] - configuring DbPersistenceServiceFactory is not working</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-972'>JBPM-972</a>] - org.jbpm.graph.action.Script does not provide specific (correct) handling for bsh.TargetError</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-980'>JBPM-980</a>] - superstate-enter not fired when taking a transition directly to the super state</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-983'>JBPM-983</a>] - concurrent process execution fails</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-988'>JBPM-988</a>] - JpdlXmlReader fails to readProcessDefinition if process contains nodes with same name inside different containers</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-990'>JBPM-990</a>] - Delete subprocess instances fails if super process token is not in process state</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-992'>JBPM-992</a>] - ProcessClassLoader : cannot load resource from code deployed inside a process archive</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-995'>JBPM-995</a>] - CLONE -concurrent job acquirement fails</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1002'>JBPM-1002</a>] - Process instance delete fails from process definition screen</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1006'>JBPM-1006</a>] - Concurrent use of 'repeat' and 'transition' in a timer declaration will result in an execution of a non existing timer.</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1015'>JBPM-1015</a>] - ProcessLogs that represent changes of process intance that take place within Timer.Execute are not saved in DB</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1017'>JBPM-1017</a>] - Wrong transition taken after ending a task with the taskform button</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1033'>JBPM-1033</a>] - string_max parameterization doesn't work </li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1038'>JBPM-1038</a>] - getNodeTypes() and getNodeNames() are switched in org.jbpm.graph.node.NodeTypes</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1042'>JBPM-1042</a>] - org.jbpm.JbpmException: token '1' can't be locked by 'job[1]' cause it's already locked by 'token[1]'</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1043'>JBPM-1043</a>] - ProcessDefinition delete throws HibernateException: null index column for collection: org. jbpm.graph.def.ProcessDefinition.actions </li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1044'>JBPM-1044</a>] - TaskMgmtInstance.removeSignalling(Token token) - Remove signalling capabilities from all task instances related to the given token</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1048'>JBPM-1048</a>] - Userguide Section 18.1.1 is missleading when describing ant task for deploment of par archive</li>
+</ul>
+
+<h2>Feature Request</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-691'>JBPM-691</a>] - Decision class does not allow setting of Decision Delegation</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-979'>JBPM-979</a>] - Documentation enhancement for sub-process (fix error; add binding attribute)</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-981'>JBPM-981</a>] - Whitespace and line endings in script elements are not preserved - fix?</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1004'>JBPM-1004</a>] - add dynamic (late) subprocessresolving based on EL</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1036'>JBPM-1036</a>] - config-type schema declaration doesnt accept custom instantiator classes</li>
+</ul>
+
+<h2>Patch</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-848'>JBPM-848</a>] - Incorrect mail.smtp.host property + configurable mail from address</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1010'>JBPM-1010</a>] - jpdl/examples/build.xml not recognizing user properties</li>
+</ul>
+
+<h2>Task</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-908'>JBPM-908</a>] - in the suite, use the original loggin in the server</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-1003'>JBPM-1003</a>] - update docs and xsd for late binding of subprocess</li>
+</ul>
+
+
+<h1>Changes from 3.2.GA to 3.2.1</h1>
+
+
+Release Notes - JBoss jBPM - Version jBPM jPDL 3.2.1
+
+<h2>Bug</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-444'>JBPM-444</a>] - jbpm Identity : cascade=all in membership.hbm.xml sets.</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-619'>JBPM-619</a>] - outofmemory during ant test suite run</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-783'>JBPM-783</a>] - isPropagated calculation for event is not correct</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-837'>JBPM-837</a>] - Doesn't support eastern character because the wrong specified font</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-847'>JBPM-847</a>] - When a suspended workflow is resumed, all its finished tasks are getting opened.</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-853'>JBPM-853</a>] - Attribute 'expression' not taken from Condition element</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-854'>JBPM-854</a>] - Condition in transition not retrieved from database JBPM_TRANSITIONS#DECISION_</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-894'>JBPM-894</a>] - EL implementation in jBPM does not find inherited methods </li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-904'>JBPM-904</a>] - task notify attribute and reminder element not right in schema</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-913'>JBPM-913</a>] - ProcessBean.startInstance does not set ProcessInstance.key, causing second process start for any user to fail</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-925'>JBPM-925</a>] - taskInstance.setPooledActors(Set) throws exception</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-928'>JBPM-928</a>] - ProcessDefinition.hbm maps Nodes incorrectly</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-929'>JBPM-929</a>] - Missing hibernate mapping file(org/jbpm/graph/action/MailAction.hbm.xml) for MailAction class.</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-947'>JBPM-947</a>] - timer repeat='true' not repeating from within EAR</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-953'>JBPM-953</a>] - Token.getAvailableTransitions doesn't return transitions in superstates</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-957'>JBPM-957</a>] - Event Propagation not working correctly</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-964'>JBPM-964</a>] - NullPointerException in ContextInstance.setVariable(java.lang.String name, java.lang.Object value) method.</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-968'>JBPM-968</a>] - NPE in Decision.java</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-969'>JBPM-969</a>] - tuesday spelled thuesday in Calendar</li>
+</ul>
+
+<h2>Feature Request</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-504'>JBPM-504</a>] - improve sub process variable handling and make variable method names consistent</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-828'>JBPM-828</a>] - Add accessor methods to TaskNode.java</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-885'>JBPM-885</a>] - User supplied date/time with comment </li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-949'>JBPM-949</a>] - added new constructor for ProcessInstance incl business key</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-951'>JBPM-951</a>] - change logging policy</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-976'>JBPM-976</a>] - The setting "resource.mail.properties" is never used.</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-977'>JBPM-977</a>] - migrate to jboss-el</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-984'>JBPM-984</a>] - introduce possibility to intercept user code</li>
+</ul>
+
+<h2>Patch</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-848'>JBPM-848</a>] - Incorrect mail.smtp.host property + configurable mail from address</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-849'>JBPM-849</a>] - Unassigning task fails when task mail notification is enabled (with notify="yes")</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-858'>JBPM-858</a>] - Avoid repeat SAXParserFactory instantiation</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-892'>JBPM-892</a>] - Forgotten e.printStackTrace()</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-927'>JBPM-927</a>] - enhance Calendar to make it more reusable</li>
+</ul>
+
+<h2>Task</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-926'>JBPM-926</a>] - Add the identity scripts to the jpdl scripts</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-959'>JBPM-959</a>] - check dependencies on jta.jar</li>
+</ul>
+
+
+<h1>jPDL XML Schema Changes from 3.1.x to 3.2.x</h1>
+<ul>
+ <li>Added email node and action. See user guide for more information.</li>
+ <li>Conditions are now allowed on all transitions, not only on decision transitions.</li>
+</ul>
+
+<h1>jPDL Database Schema Updates from 3.1.x to 3.2.x</h1>
+<pre>create table JBPM_JOB (
+ ID_ bigint generated by default as identity (start with 1),
+ CLASS_ char(1) not null,
+ VERSION_ integer not null,
+ DUEDATE_ timestamp,
+ PROCESSINSTANCE_ bigint,
+ TOKEN_ bigint,
+ TASKINSTANCE_ bigint,
+ ISSUSPENDED_ bit,
+ ISEXCLUSIVE_ bit,
+ LOCKOWNER_ varchar(255),
+ LOCKTIME_ timestamp,
+ EXCEPTION_ varchar(4000),
+ RETRIES_ integer,
+ NAME_ varchar(255),
+ REPEAT_ varchar(255),
+ TRANSITIONNAME_ varchar(255),
+ ACTION_ bigint,
+ GRAPHELEMENTTYPE_ varchar(255),
+ GRAPHELEMENT_ bigint,
+ NODE_ bigint,
+ primary key (ID_)
+)
+
+alter table JBPM_MODULEINSTANCE add column VERSION_ integer
+alter table JBPM_NODE add column DESCRIPTION_ varchar(4000)
+alter table JBPM_NODE add column ISASYNCEXCL_ bit
+alter table JBPM_NODE add column SUBPROCNAME_ varchar(255)
+alter table JBPM_NODE add column SCRIPT_ bigint
+alter table JBPM_POOLEDACTOR add column VERSION_ integer
+alter table JBPM_PROCESSDEFINITION add column CLASS_ char(1)
+alter table JBPM_PROCESSDEFINITION add column DESCRIPTION_ varchar(4000)
+alter table JBPM_PROCESSINSTANCE add column KEY_ varchar(255)
+alter table JBPM_SWIMLANEINSTANCE add column VERSION_ integer
+alter table JBPM_TASK add column CONDITION_ varchar(255)
+alter table JBPM_TASK add column PRIORITY_ integer
+alter table JBPM_TASKINSTANCE add column VERSION_ integer
+alter table JBPM_TASKINSTANCE add column PROCINST_ bigint
+alter table JBPM_TOKEN add column LOCK_ varchar(255)
+alter table JBPM_TOKENVARIABLEMAP add column VERSION_ integer
+alter table JBPM_TRANSITION add column DESCRIPTION_ varchar(4000)
+alter table JBPM_TRANSITION add column CONDITION_ varchar(255)
+alter table JBPM_VARIABLEINSTANCE add column VERSION_ integer
+alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE
+alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE
+alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR
+alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK
+alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN
+alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE
+alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY
+
+insert into JBPM_JOB
+ (ID_,
+ CLASS_,
+ VERSION_,
+ DUEDATE_,
+ PROCESSINSTANCE_,
+ TOKEN_,
+ TASKINSTANCE_,
+ ISSUSPENDED_,
+ ISEXCLUSIVE_,
+ LOCKOWNER_,
+ LOCKTIME_,
+ EXCEPTION_,
+ RETRIES_,
+ NAME_,
+ REPEAT_,
+ TRANSITIONNAME_,
+ ACTION_,
+ GRAPHELEMENTTYPE_,
+ GRAPHELEMENT_)
+select
+ ID_,
+ 'T',
+ 0,
+ DUEDATE_,
+ PROCESSINSTANCE_,
+ TOKEN_,
+ TASKINSTANCE_,
+ ISSUSPENDED_,
+ 0,
+ NULL,
+ NULL,
+ EXCEPTION_,
+ 0,
+ NAME_,
+ REPEAT_,
+ TRANSITIONNAME_,
+ ACTION_,
+ GRAPHELEMENTTYPE_,
+ GRAPHELEMENT_
+from JBPM_TIMER;
+
+drop table JBPM_MESSAGE
+</pre>
+
+
+<p>Since, 3.2, the table JBPM_DECISIONCONDITION is not used any more. But
+it is still in the default generated schema because of backwards compatibility
+reasons. Newly deployed processes (even if they have decision conditions)
+will not use that table any more. So if your old processes don't have decision
+conditions or if you only deploy new processes to your db, you can safely drop
+the JBPM_DECISIONCONDITION table. If you do that, don't forget to remove the line
+that refers to the decision condition class in your hibernate.cfg.xml and also remove
+the decisionConditions list entry in the org/jbpm/graph/node/Decision.hbm.xml file.
+</p>
+
+<hr />
+<h1>Changes from 3.2.Beta2 to 3.2.GA</h1>
+
+<h2>Bug</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-450'>JBPM-450</a>] - webapp can't handle processes without an image file</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-619'>JBPM-619</a>] - outofmemory during ant test suite run</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-621'>JBPM-621</a>] - Decision 'otherwise' choice does not appear to work.</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-732'>JBPM-732</a>] - remove process start link for processes without start task</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-839'>JBPM-839</a>] - Can't store JSR170 node.</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-840'>JBPM-840</a>] - Fix Readme for GPD in the Starter's Kit</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-855'>JBPM-855</a>] - hibernate sessions might not be closed in case of exceptions</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-888'>JBPM-888</a>] - jBPM Suite web-console: user grover cannot login</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-896'>JBPM-896</a>] - reassign in console crashes</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-898'>JBPM-898</a>] - can't login using grover grover</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-900'>JBPM-900</a>] - starting processes without start task</li>
+</ul>
+
+<h2>Feature Request</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-152'>JBPM-152</a>] - ejb (SLSB) command based session facade interface</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-540'>JBPM-540</a>] - Standard VariableResolverImpl should search for transient variables</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-596'>JBPM-596</a>] - task forms based on facelets</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-609'>JBPM-609</a>] - create command based session facade</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-705'>JBPM-705</a>] - Provide monitoring for standalone applications</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-714'>JBPM-714</a>] - packaging just the webapp takes way to long</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-762'>JBPM-762</a>] - show processdefinition.xml in web console</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-820'>JBPM-820</a>] - free choice of initial node type</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-841'>JBPM-841</a>] - add a business key</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-851'>JBPM-851</a>] - Add a discriminator to ProcessDefinition O/R mapping</li>
+</ul>
+
+<h2>Task</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-598'>JBPM-598</a>] - fix javascript support in webapp unit testing</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-876'>JBPM-876</a>] - improved enterprise support</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-877'>JBPM-877</a>] - jta configuration for process deployment in enterprise environment</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-878'>JBPM-878</a>] - document enterprise support</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-891'>JBPM-891</a>] - db conversion script for timers</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-897'>JBPM-897</a>] - add feedback when navigating to the next task</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-901'>JBPM-901</a>] - change to JTA transaction configuration</li>
+</ul>
+
+
+<hr />
+<h1>Changes from 3.2.Beta1 to 3.2.Beta2</h1>
+<h2>Bug</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-311'>JBPM-311</a>] - Propertys from inherited Actions not directly accessiblly</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-795'>JBPM-795</a>] - Webapp won't display box on process diagram for non-task nodes</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-806'>JBPM-806</a>] - document JTA integration</li>
+</ul>
+
+<h2>Feature Request</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-780'>JBPM-780</a>] - document how to replace hashtable with ehcache cacheprovider</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-824'>JBPM-824</a>] - separated JobListenerBean from CommandListenerBean</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-825'>JBPM-825</a>] - added StartProcessInstanceCommand</li>
+</ul>
+
+<h2>Task</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-829'>JBPM-829</a>] - added reference from task instance to process instance</li>
+</ul>
+
+
+<hr />
+<h1>Changes from 3.2.Alpha2 to 3.2.Beta1</h1>
+<h2>Bug</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-813'>JBPM-813</a>] - GraphElement - hibernate - "this==runtimeAction.getGraphElement()"</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-814'>JBPM-814</a>] - depending on the isolation level of your JDBC connection join might not reactivate parent</li>
+</ul>
+
+<h2>Feature Request</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-454'>JBPM-454</a>] - conditional transitions</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-583'>JBPM-583</a>] - add jms support for the messaging service</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-778'>JBPM-778</a>] - form generation improvements</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-789'>JBPM-789</a>] - add finder methods for current tasks and current nodes</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-808'>JBPM-808</a>] - Conditional tasks</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-809'>JBPM-809</a>] - Conditional transitions</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-816'>JBPM-816</a>] - added description to node, transition, process and task</li>
+</ul>
+
+<h2>Task</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-815'>JBPM-815</a>] - upgrade to hibernate 3.2.1.GA</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-818'>JBPM-818</a>] - removed exception on request of unexisting process file</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-819'>JBPM-819</a>] - support processes without forms</li>
+</ul>
+
+
+<hr />
+<h1>Changes from 3.2.Alpha1 to 3.2.Alpha2</h1>
+<h2>Bug</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-682'>JBPM-682</a>] - task forms are not reloaded when a process is reloaded</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-696'>JBPM-696</a>] - Field Instanciator problems</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-754'>JBPM-754</a>] - job scheduler persistence</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-757'>JBPM-757</a>] - Constraint violation during process deletion</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-758'>JBPM-758</a>] - DbPersistenceService needs update for new Hibernate version</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-759'>JBPM-759</a>] - Hibernate variable type matchers do not deal HibernateProxy objects.</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-765'>JBPM-765</a>] - wrong example in configuring persistence factory</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-766'>JBPM-766</a>] - cancelling a process instance doesn't propagate to subprocesses and tasks</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-767'>JBPM-767</a>] - ExpressionEvaluatorHandler has BeanInfo, which does not use the correct set of methods</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-776'>JBPM-776</a>] - invalid business calendar properties lead to java.lang.StackOverflowError</li>
+</ul>
+
+<h2>Feature Request</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-452'>JBPM-452</a>] - Refactor SchedulerThread.executeTimers() to execute Timers in seperate Transactions</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-617'>JBPM-617</a>] - keep the processdefinition.xml in the database</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-641'>JBPM-641</a>] - process end subprocess cascading</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-647'>JBPM-647</a>] - give service factory element precedence over the attribute</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-664'>JBPM-664</a>] - add documentation for configuration properties</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-671'>JBPM-671</a>] - add logs for sub process bindings</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-713'>JBPM-713</a>] - Schedule multiple events at once</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-717'>JBPM-717</a>] - cascade persistence operations from timer to action</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-733'>JBPM-733</a>] - late binding for sub processes</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-735'>JBPM-735</a>] - add indexes to foreign keys</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-737'>JBPM-737</a>] - use JbpmDS instead of the DefaultDS</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-760'>JBPM-760</a>] - Add indexes to foreign keys where appropriate</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-763'>JBPM-763</a>] - removed ehcache dependency</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-768'>JBPM-768</a>] - add getters and setters for action properties</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-774'>JBPM-774</a>] - Add JBoss EULA</li>
+</ul>
+
+<h2>Task</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-740'>JBPM-740</a>] - Document c3po configuration more explicitly </li>
+</ul>
+
+<hr />
+<h1>Changes from 3.1.2 to 3.2.Alpha1</h1>
+<h2>Bug</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-325'>JBPM-325</a>] - task priority not set properly</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-370'>JBPM-370</a>] - Documentation - misspelling</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-371'>JBPM-371</a>] - Documentation - misspelling</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-555'>JBPM-555</a>] - Bad exception message</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-562'>JBPM-562</a>] - added async attribute to action in schema and docs</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-568'>JBPM-568</a>] - throw ClassNotFoundException instead of JbpmException when a delegation class is not found</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-571'>JBPM-571</a>] - incorrect business calendar date addition</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-574'>JBPM-574</a>] - Unneccesarily slow performance</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-577'>JBPM-577</a>] - add better exception handling in JbpmContext.close</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-588'>JBPM-588</a>] - Add comments to TaskInstance does not processed correctly</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-614'>JBPM-614</a>] - delete sub process instances recursively</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-636'>JBPM-636</a>] - task local variables</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-645'>JBPM-645</a>] - task is not blocking after save of process-instance</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-654'>JBPM-654</a>] - Cancelling a TaskInstance "performs" the task</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-663'>JBPM-663</a>] - Incorrect resolution of process variable values in script when variable is defined (or redefined) in sub-token context</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-665'>JBPM-665</a>] - JVM hangs because of inappropriate error handling</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-667'>JBPM-667</a>] - jBPM unable to pass null variables to bsh scripts</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-669'>JBPM-669</a>] - end-tasks attribute on task-node causes all tasks to be ended, not just tasks for the current token</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-677'>JBPM-677</a>] - change identity expression language to use role instead of name</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-678'>JBPM-678</a>] - jbpm el expression exceptions are masked</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-710'>JBPM-710</a>] - Cancelling a task will signal token over default transition</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-748'>JBPM-748</a>] - check variable hibernatability before serializability</li>
+</ul>
+
+<h2>Feature Request</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-113'>JBPM-113</a>] - support for document management</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-566'>JBPM-566</a>] - introduce jaas based security</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-579'>JBPM-579</a>] - add recursive lookup for delegation fields and methods</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-580'>JBPM-580</a>] - email support</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-582'>JBPM-582</a>] - make sub-process resolving pluggable at deployment</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-584'>JBPM-584</a>] - "overwriteSimlane" in TaskInstance.start()</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-585'>JBPM-585</a>] - add ProcessInstance.setProcessDefinition()</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-620'>JBPM-620</a>] - make byte block size configurable</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-661'>JBPM-661</a>] - storing a java 5 enum in a variable instance</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-684'>JBPM-684</a>] - added getXxxx for database loadXxxx methods</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-716'>JBPM-716</a>] - make the timer duedate optional</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-744'>JBPM-744</a>] - unify and improve the messaging and scheduler implementation</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-746'>JBPM-746</a>] - replace NullPointerExceptions with JbpmExceptions</li>
+</ul>
+
+<h2>Task</h2>
+<ul>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-622'>JBPM-622</a>] - document lists and maps for field-type injection</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-635'>JBPM-635</a>] - improve default configuration</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-638'>JBPM-638</a>] - renamed configuration property mail.smtp.host to jbpm.mail.smtp.host</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-658'>JBPM-658</a>] - correct equals comparison</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-659'>JBPM-659</a>] - added JbpmConfiguration.close()</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-662'>JBPM-662</a>] - check version attribute on all runtime objects</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-666'>JBPM-666</a>] - report expression exception properly</li>
+<li>[<a href='http://jira.jboss.com/jira/browse/JBPM-683'>JBPM-683</a>] - enlarged length of message exception property</li>
+</ul>
+
+</body>
+</html>
Modified: jbpm3/trunk/modules/distribution/src/main/resources/installer/install-definition.xml
===================================================================
--- jbpm3/trunk/modules/distribution/src/main/resources/installer/install-definition.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/distribution/src/main/resources/installer/install-definition.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -111,12 +111,20 @@
<pack name="jBPM3 Standalone" required="yes" preselected="yes">
<description>The jBPM3 Standalone Components</description>
+ <!-- jbpm3/ -->
+ <file src="@{deploy.artifacts.dir}/etc/release.notes.html" targetdir="$INSTALL_PATH" override="true" />
+ <file src="@{deploy.artifacts.dir}/etc/JBossORG-EULA.txt" targetdir="$INSTALL_PATH" override="true" />
+
<!-- jbpm3/config -->
<file src="@{deploy.artifacts.dir}/lib/jbpm-jpdl-config.zip" targetdir="$INSTALL_PATH/config"
unpack="true" override="true" />
<file src="@{deploy.artifacts.dir}/etc/version.info.xml" targetdir="$INSTALL_PATH/config"
override="true" />
+ <!-- jbpm3/database -->
+ <file src="@{deploy.artifacts.dir}/lib/jbpm-db.jar" targetdir="$INSTALL_PATH/database"
+ unpack="true" override="true" />
+
<!-- jbpm3/docs -->
<file src="@{deploy.artifacts.dir}/lib/jbpm-userguide.zip" targetdir="$INSTALL_PATH/docs/userguide"
unpack="true" override="true" />
Modified: jbpm3/trunk/modules/distribution/src/main/resources/installer/target-panel-dir.txt
===================================================================
--- jbpm3/trunk/modules/distribution/src/main/resources/installer/target-panel-dir.txt 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/distribution/src/main/resources/installer/target-panel-dir.txt 2008-11-10 22:14:07 UTC (rev 2873)
@@ -1 +1 @@
-$USER_HOME/jbpm-jpdl- at product.version@
\ No newline at end of file
+$USER_HOME/jbpm- at product.version@
Modified: jbpm3/trunk/modules/distribution/src/main/resources/installer/user-input-spec.xml
===================================================================
--- jbpm3/trunk/modules/distribution/src/main/resources/installer/user-input-spec.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/distribution/src/main/resources/installer/user-input-spec.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -17,10 +17,10 @@
<field type="radio" variable="dbSelection">
<description align="left" txt="Please choose your target database" />
<spec>
- <choice txt="Hypersonic" value="hsqldb" set="true" />
- <choice txt="MySQL" value="mysql" />
- <!-- choice txt="PostgreSQL" value="postgresql" /-->
- <!-- choice txt="Sybase" value="sybase" /-->
+ <choice txt="Hypersonic" value="hsqldb" set="true"/>
+ <choice txt="MySQL" value="mysql"/>
+ <!-- choice txt="PostgreSQL" value="postgresql"/-->
+ <choice txt="Sybase" value="sybase"/>
</spec>
</field>
</panel>
Modified: jbpm3/trunk/modules/enterprise/ear/pom.xml
===================================================================
--- jbpm3/trunk/modules/enterprise/ear/pom.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/enterprise/ear/pom.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm-enterprise</artifactId>
- <version>3.3.0-SNAPSHOT</version>
+ <version>3.3.0.GA</version>
</parent>
<!-- Dependencies -->
Modified: jbpm3/trunk/modules/enterprise/jar/pom.xml
===================================================================
--- jbpm3/trunk/modules/enterprise/jar/pom.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/enterprise/jar/pom.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm-enterprise</artifactId>
- <version>3.3.0-SNAPSHOT</version>
+ <version>3.3.0.GA</version>
</parent>
<!-- Dependencies -->
@@ -258,8 +258,10 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
- <!-- xa datasource not available for hsqldb -->
+ <!-- [JBPM-1708] Enterprise EjbSchedulerTest fails -->
<exclude>org/jbpm/scheduler/ejbtimer/EjbSchedulerTest.java</exclude>
+ <!-- [JBPM-1811] JmsMessageTest fails intermitently on HSQLDB -->
+ <exclude>org/jbpm/msg/jms/JmsMessageTest.java</exclude>
</excludes>
</configuration>
</plugin>
@@ -285,8 +287,10 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
- <!-- xa datasource not available for hsqldb -->
+ <!-- [JBPM-1708] Enterprise EjbSchedulerTest fails -->
<exclude>org/jbpm/scheduler/ejbtimer/EjbSchedulerTest.java</exclude>
+ <!-- [JBPM-1811] JmsMessageTest fails intermitently on HSQLDB -->
+ <exclude>org/jbpm/msg/jms/JmsMessageTest.java</exclude>
</excludes>
</configuration>
</plugin>
@@ -352,6 +356,16 @@
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <!-- [JBPM-1818] Use Sybase instance that supports XA Transaction -->
+ <exclude>org/jbpm/scheduler/ejbtimer/EjbSchedulerTest.java</exclude>
+ <exclude>org/jbpm/persistence/jta/JtaDbPersistenceTest.java</exclude>
+ <exclude>org/jbpm/msg/jms/JmsMessageTest.java</exclude>
+ <!-- [JBPM-1830] Fix AppServerConfigurationsTest for sybase on jboss500 -->
+ <exclude>org/jbpm/enterprise/AppServerConfigurationsTest.java</exclude>
+ </excludes>
+ </configuration>
</plugin>
</plugins>
</build>
Modified: jbpm3/trunk/modules/enterprise/jar/src/test/java/org/jbpm/msg/jms/JmsMessageTest.java
===================================================================
--- jbpm3/trunk/modules/enterprise/jar/src/test/java/org/jbpm/msg/jms/JmsMessageTest.java 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/enterprise/jar/src/test/java/org/jbpm/msg/jms/JmsMessageTest.java 2008-11-10 22:14:07 UTC (rev 2873)
@@ -60,7 +60,8 @@
return new IntegrationTestSetup(JmsMessageTest.class, "enterprise-test.war");
}
- protected void setUp() throws Exception {
+ protected void setUp() throws Exception
+ {
if (commandServiceHome == null) {
Context initialContext = new InitialContext();
try {
@@ -74,13 +75,15 @@
log.info("### " + getName() + " started ###");
}
- protected void tearDown() throws Exception {
+ protected void tearDown() throws Exception
+ {
log.info("### " + getName() + " done ###");
commandService = null;
EventCallback.clear();
}
- public void testAsyncNode() {
+ public void testAsyncNode()
+ {
deployProcess("<process-definition name='node'>"
+ " <event type='process-end'>"
+ " <action expression='#{eventCallback.processEnd}'/>"
@@ -95,10 +98,11 @@
+ "</process-definition>");
long processId = launchProcess("node").getId();
EventCallback.waitForEvent(Event.EVENTTYPE_PROCESS_END);
- assertTrue(hasProcessEnded(processId));
+ assertTrue("Process has ended", hasProcessEnded(processId));
}
- public void testAsyncAction() {
+ public void testAsyncAction()
+ {
deployProcess("<process-definition name='action'>"
+ " <start-state name='start'>"
+ " <transition to='a' />"
@@ -120,10 +124,11 @@
EventCallback.waitForEvent(Event.EVENTTYPE_NODE_ENTER);
EventCallback.waitForEvent(Event.EVENTTYPE_NODE_LEAVE);
EventCallback.waitForEvent(Event.EVENTTYPE_TRANSITION);
- assertTrue(hasProcessEnded(processId));
+ assertTrue("Process has ended", hasProcessEnded(processId));
}
- public void testAsyncSequence() {
+ public void testAsyncSequence()
+ {
deployProcess("<process-definition name='sequence'>"
+ " <event type='process-end'>"
+ " <action expression='#{eventCallback.processEnd}'/>"
@@ -150,10 +155,11 @@
+ "</process-definition>");
long processId = launchProcess("sequence").getId();
EventCallback.waitForEvent(Event.EVENTTYPE_PROCESS_END);
- assertTrue(hasProcessEnded(processId));
+ assertTrue("Process has ended", hasProcessEnded(processId));
}
- public void testAsyncFork() {
+ public void testAsyncFork() throws Exception
+ {
deployProcess("<process-definition name='fork'>"
+ " <event type='process-end'>"
+ " <action expression='#{eventCallback.processEnd}'/>"
@@ -190,10 +196,12 @@
+ "</process-definition>");
long processId = launchProcess("fork").getId();
EventCallback.waitForEvent(Event.EVENTTYPE_PROCESS_END);
+ Thread.sleep(1000);
assertTrue("Process has ended", hasProcessEnded(processId));
}
- public void testAsyncExecutions() {
+ public void testAsyncExecutions()
+ {
deployProcess("<process-definition name='execution'>"
+ " <event type='process-end'>"
+ " <action expression='#{eventCallback.processEnd}' />"
Modified: jbpm3/trunk/modules/enterprise/pom.xml
===================================================================
--- jbpm3/trunk/modules/enterprise/pom.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/enterprise/pom.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.3.0-SNAPSHOT</version>
+ <version>3.3.0.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm3/trunk/modules/examples/pom.xml
===================================================================
--- jbpm3/trunk/modules/examples/pom.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/examples/pom.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.3.0-SNAPSHOT</version>
+ <version>3.3.0.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -98,12 +98,36 @@
</execution>
</executions>
</plugin>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- </configuration>
- </plugin>
</plugins>
</build>
+ <profiles>
+ <!--
+ Name: sybase
+ Descr: Sybase Database Setup
+ -->
+ <profile>
+ <id>sybase</id>
+ <activation>
+ <property>
+ <name>database</name>
+ <value>sybase</value>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <!-- [JBPM-1827] Investigate example test failures against Sybase -->
+ <exclude>org/jbpm/examples/taskinstance/CustomTaskInstanceTest.java</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
</project>
Modified: jbpm3/trunk/modules/identity/pom.xml
===================================================================
--- jbpm3/trunk/modules/identity/pom.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/identity/pom.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.3.0-SNAPSHOT</version>
+ <version>3.3.0.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Deleted: jbpm3/trunk/modules/identity/scripts/antrun-jbpm-schema.xml
===================================================================
--- jbpm3/trunk/modules/identity/scripts/antrun-jbpm-schema.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/identity/scripts/antrun-jbpm-schema.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -1,24 +0,0 @@
-<?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/simulation/pom.xml
===================================================================
--- jbpm3/trunk/modules/simulation/pom.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/simulation/pom.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.3.0-SNAPSHOT</version>
+ <version>3.3.0.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -48,6 +48,10 @@
<artifactId>jasperreports</artifactId>
<exclusions>
<exclusion>
+ <groupId>commons-digester</groupId>
+ <artifactId>commons-digester</artifactId>
+ </exclusion>
+ <exclusion>
<groupId>jfree</groupId>
<artifactId>jfreechart</artifactId>
</exclusion>
@@ -60,7 +64,7 @@
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
- <version>[1.7]</version>
+ <version>1.6</version>
</dependency>
<!-- Test Dependencies -->
Modified: jbpm3/trunk/modules/userguide/pom.xml
===================================================================
--- jbpm3/trunk/modules/userguide/pom.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/userguide/pom.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
- <version>3.3.0-SNAPSHOT</version>
+ <version>3.3.0.GA</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm3/trunk/modules/userguide/src/main/docbook/en/master.xml
===================================================================
--- jbpm3/trunk/modules/userguide/src/main/docbook/en/master.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/userguide/src/main/docbook/en/master.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -16,7 +16,6 @@
<!ENTITY async SYSTEM "modules/async.xml">
<!ENTITY calendar SYSTEM "modules/calendar.xml">
<!ENTITY mail SYSTEM "modules/mail.xml">
-<!ENTITY ws SYSTEM "modules/ws.xml">
<!ENTITY logging SYSTEM "modules/logging.xml">
<!ENTITY jpdl SYSTEM "modules/jpdl.xml">
<!ENTITY security SYSTEM "modules/security.xml">
Modified: jbpm3/trunk/modules/userguide/src/main/docbook/en/modules/gettingstarted.xml
===================================================================
--- jbpm3/trunk/modules/userguide/src/main/docbook/en/modules/gettingstarted.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/userguide/src/main/docbook/en/modules/gettingstarted.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -10,14 +10,14 @@
the <ulink url="http://sourceforge.net/project/showfiles.php?group_id=70542&package_id=145174">jBPM jPDL 3
package on Sourceforge.net</ulink> and download the latest installer.
</para>
- <para id="jbpm-jpdl-{version}-installer.jar"><emphasis role="bold">The jPDL installer</emphasis>
+ <para id="jbpm-installer-{version}.jar"><emphasis role="bold">The jBPM installer</emphasis>
creates a runtime installation and it can also download and install the
eclipse designer and a jboss server. You can use jBPM also without application server, but all of
these components are preconfigured to interoperate out-of-the-box to get you started with jBPM quickly.
To launch the installer, open a command line and go to the directory where you downloaded it.
Then type:
</para>
- <programlisting>java -jar jbpm-jpdl-{version}-installer.jar</programlisting>
+ <programlisting>java -jar jbpm-installer-{version}.jar</programlisting>
<para>
Step through the instructions. Any supported version of JBoss and the exact version
of eclipse can optionally be downloaded by the installer.
Deleted: jbpm3/trunk/modules/userguide/src/main/docbook/en/modules/ws.xml
===================================================================
--- jbpm3/trunk/modules/userguide/src/main/docbook/en/modules/ws.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/modules/userguide/src/main/docbook/en/modules/ws.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -1,41 +0,0 @@
-<chapter id="ws">
- <title>Web Services Support</title>
-
- <para>This chapter describes the out-of-the-box web services support in jBPM jPDL.
- </para>
-
- <section id="wsproduction">
- <title>Invoke jPDL Web Services</title>
-
- <para>There is a WS subproject in jPDL. The aim of this subproject is to enable
- the jPDL engine to be called as a web service. The current implementation enables
- you to start process instances from the definition and to provide the trigger
- to running instances to continue their execution. It is not (yet) very sophisticated
- but it can serve as a starting point from which you can start to implement more
- advanced uses.
- </para>
- <para>Stay tuned as there is probably more to come with respect to web services.
- </para>
-
- <section id="wsdeployment">
- <title>Deployment</title>
- <para>Currently, there is no deployable artefact included in the distribution.
- Luckily it is very simple to build it yourself. Checkout the jbpm.3 codebase from the
- jbpm repository, navigate into the jpdl/ws subfolder and invoke ant to build it. You
- will find the jbpm-jpdl-ws.war artefact in the target subfolder. With JBoss AS it is as
- simple as dropping this file in the deploy folder of your server instance. You will need
- to endorse some libraries if you are running Java 6. For more information look at
- http://jbws.dyndns.org/mediawiki/index.php?title=Install_JBossWS.
- </para>
- </section>
-
- <section id="wstest">
- <title>Testing the deployment</title>
- <para>Once the web services module is deployed correctly you can test it with a tool
- such as SoapUI. Import the generated WSDL, send some messages and see what happens.
- </para>
- </section>
-
- </section>
-
-</chapter>
\ No newline at end of file
Modified: jbpm3/trunk/pom.xml
===================================================================
--- jbpm3/trunk/pom.xml 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/pom.xml 2008-11-10 22:14:07 UTC (rev 2873)
@@ -17,7 +17,7 @@
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm</artifactId>
<packaging>pom</packaging>
- <version>3.3.0-SNAPSHOT</version>
+ <version>3.3.0.GA</version>
<!-- Parent -->
<parent>
@@ -431,6 +431,7 @@
<id>distro</id>
<modules>
<module>modules/distribution</module>
+ <module>modules/db</module>
<module>modules/userguide</module>
</modules>
<build>
@@ -569,19 +570,7 @@
<artifactId>jtds</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>com.sybase</groupId>
- <artifactId>jconnect</artifactId>
- <version>6.0.5</version>
- <scope>test</scope>
- </dependency>
</dependencies>
- <repositories>
- <repository>
- <id>qa.jboss.com</id>
- <url>http://www.qa.jboss.com/jdbc-drivers/maven2</url>
- </repository>
- </repositories>
</profile>
</profiles>
</project>
Modified: jbpm3/trunk/profiles.xml.example
===================================================================
--- jbpm3/trunk/profiles.xml.example 2008-11-10 21:23:49 UTC (rev 2872)
+++ jbpm3/trunk/profiles.xml.example 2008-11-10 22:14:07 UTC (rev 2873)
@@ -27,12 +27,13 @@
<jdbc.postgresql.username>jbpmtest</jdbc.postgresql.username>
<jdbc.postgresql.password></jdbc.postgresql.password>
- <jdbc.sybase.url>jdbc:jtds:sybase://dev01.qa.atl.jboss.com:4100/jbpmteam</jdbc.sybase.url>
- <jdbc.sybase.server>dev01.qa.atl.jboss.com</jdbc.sybase.server>
- <jdbc.sybase.port>4100</jdbc.sybase.port>
- <jdbc.sybase.database>jbpmteam</jdbc.sybase.database>
- <jdbc.sybase.username>jbpmteam</jdbc.sybase.username>
- <jdbc.sybase.password>jbpmteam</jdbc.sybase.password>
+ <jdbc.sybase.driver>net.sourceforge.jtds.jdbc.Driver</jdbc.sybase.driver>
+ <jdbc.sybase.url>jdbc:jtds:sybase://localhost:5000/jbpmtest</jdbc.sybase.url>
+ <jdbc.sybase.server>localhost</jdbc.sybase.server>
+ <jdbc.sybase.port>5000</jdbc.sybase.port>
+ <jdbc.sybase.database>jbpmtest</jdbc.sybase.database>
+ <jdbc.sybase.username>jbpmtest</jdbc.sybase.username>
+ <jdbc.sybase.password>jbpmtest</jdbc.sybase.password>
-->
</properties>
</profile>
More information about the jbpm-commits
mailing list