JBoss JBPM SVN: r5673 - jbpm4/trunk/modules/distro/scripts.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-09-30 04:40:34 -0400 (Wed, 30 Sep 2009)
New Revision: 5673
Modified:
jbpm4/trunk/modules/distro/scripts/assembly-distro.xml
Log:
JBPM-2557 removed install\src\org\jbpm\db\DbUpgrade.class from distro
Modified: jbpm4/trunk/modules/distro/scripts/assembly-distro.xml
===================================================================
--- jbpm4/trunk/modules/distro/scripts/assembly-distro.xml 2009-09-29 14:40:28 UTC (rev 5672)
+++ jbpm4/trunk/modules/distro/scripts/assembly-distro.xml 2009-09-30 08:40:34 UTC (rev 5673)
@@ -82,6 +82,7 @@
<outputDirectory>install/src</outputDirectory>
<excludes>
<exclude>META-INF/**</exclude>
+ <exclude>org/**</exclude>
</excludes>
</fileSet>
<fileSet>
14 years, 6 months
JBoss JBPM SVN: r5672 - in jbpm4/trunk: modules/api and 32 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-09-29 10:40:28 -0400 (Tue, 29 Sep 2009)
New Revision: 5672
Added:
jbpm4/trunk/modules/test-cactus/src/test/java/org/jbpm/test/AllIntegrationTests.java
Modified:
jbpm4/trunk/build.xml
jbpm4/trunk/modules/api/pom.xml
jbpm4/trunk/modules/bpmn/pom.xml
jbpm4/trunk/modules/db/pom.xml
jbpm4/trunk/modules/devguide/pom.xml
jbpm4/trunk/modules/distro/pom.xml
jbpm4/trunk/modules/distro/src/main/files/examples/build.xml
jbpm4/trunk/modules/distro/src/main/files/install/build.xml
jbpm4/trunk/modules/enterprise/pom.xml
jbpm4/trunk/modules/examples/pom.xml
jbpm4/trunk/modules/integration/console/pom.xml
jbpm4/trunk/modules/integration/form-plugin/pom.xml
jbpm4/trunk/modules/integration/graphView-plugin/pom.xml
jbpm4/trunk/modules/integration/jboss4/pom.xml
jbpm4/trunk/modules/integration/jboss5/pom.xml
jbpm4/trunk/modules/integration/pom.xml
jbpm4/trunk/modules/integration/report/pom.xml
jbpm4/trunk/modules/integration/spi/pom.xml
jbpm4/trunk/modules/integration/tomcat/pom.xml
jbpm4/trunk/modules/jpdl/pom.xml
jbpm4/trunk/modules/log/pom.xml
jbpm4/trunk/modules/migration/pom.xml
jbpm4/trunk/modules/pvm/pom.xml
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cfg/ProcessEngineImpl.java
jbpm4/trunk/modules/test-base/pom.xml
jbpm4/trunk/modules/test-cactus/pom.xml
jbpm4/trunk/modules/test-cfg/pom.xml
jbpm4/trunk/modules/test-concurrent/pom.xml
jbpm4/trunk/modules/test-db/pom.xml
jbpm4/trunk/modules/test-load/pom.xml
jbpm4/trunk/modules/test-pojo/pom.xml
jbpm4/trunk/modules/userguide/pom.xml
jbpm4/trunk/pom.xml
jbpm4/trunk/qa/build.xml
Log:
updated version to 4.2-SNAPSHOT
Modified: jbpm4/trunk/build.xml
===================================================================
--- jbpm4/trunk/build.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/build.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -21,7 +21,7 @@
<property name="linux.browser" value="mozilla" />
<property name="distro.installation.dir" value="c:/software" />
- <property name="distro.version" value="4.1-SNAPSHOT" />
+ <property name="distro.version" value="4.2-SNAPSHOT" />
<property name="distro.jboss.version" value="5.0.0.GA" />
<property name="distro.eclipse" value="c:/downloads/eclipse/eclipse-jee-ganymede-SR1-win32.zip" />
<property name="distro.jboss" value="c:/downloads/jboss/jboss-${distro.jboss.version}.zip" />
Modified: jbpm4/trunk/modules/api/pom.xml
===================================================================
--- jbpm4/trunk/modules/api/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/api/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -23,7 +23,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/bpmn/pom.xml
===================================================================
--- jbpm4/trunk/modules/bpmn/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/bpmn/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -37,7 +37,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/db/pom.xml
===================================================================
--- jbpm4/trunk/modules/db/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/db/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -23,7 +23,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/devguide/pom.xml
===================================================================
--- jbpm4/trunk/modules/devguide/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/devguide/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/distro/pom.xml
===================================================================
--- jbpm4/trunk/modules/distro/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/distro/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -23,7 +23,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/distro/src/main/files/examples/build.xml
===================================================================
--- jbpm4/trunk/modules/distro/src/main/files/examples/build.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/distro/src/main/files/examples/build.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -8,7 +8,7 @@
<!-- DEFAULT PROPERTY VALUES -->
<property name="database" value="hsqldb" />
<property name="jbpm.parent.dir" value="../.." />
- <property name="jbpm.version" value="4.1-SNAPSHOT" />
+ <property name="jbpm.version" value="4.2-SNAPSHOT" />
<property name="jboss.version" value="5.0.0.GA" />
<property name="jbpm.home" value="${jbpm.parent.dir}/jbpm-${jbpm.version}" />
Modified: jbpm4/trunk/modules/distro/src/main/files/install/build.xml
===================================================================
--- jbpm4/trunk/modules/distro/src/main/files/install/build.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/distro/src/main/files/install/build.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -14,7 +14,7 @@
<echo message="mail.smtp.host... ${mail.smtp.host}" />
<!-- INTERNAL PROPERTY DEFAULTS -->
- <property name="jbpm.version" value="4.1-SNAPSHOT" />
+ <property name="jbpm.version" value="4.2-SNAPSHOT" />
<property name="jbpm.parent.dir" value="../.." />
<property name="jbpm.home" value="${jbpm.parent.dir}/jbpm-${jbpm.version}" />
<property name="hibernate.connection.type" value="jdbc" /> <!-- jdbc | datasource -->
Modified: jbpm4/trunk/modules/enterprise/pom.xml
===================================================================
--- jbpm4/trunk/modules/enterprise/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/enterprise/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/examples/pom.xml
===================================================================
--- jbpm4/trunk/modules/examples/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/examples/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -23,7 +23,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/integration/console/pom.xml
===================================================================
--- jbpm4/trunk/modules/integration/console/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/integration/console/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-integration</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
</parent>
<!-- Properties -->
Modified: jbpm4/trunk/modules/integration/form-plugin/pom.xml
===================================================================
--- jbpm4/trunk/modules/integration/form-plugin/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/integration/form-plugin/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-integration</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
</parent>
<!-- Dependencies -->
Modified: jbpm4/trunk/modules/integration/graphView-plugin/pom.xml
===================================================================
--- jbpm4/trunk/modules/integration/graphView-plugin/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/integration/graphView-plugin/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-integration</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
</parent>
<!-- Dependencies -->
Modified: jbpm4/trunk/modules/integration/jboss4/pom.xml
===================================================================
--- jbpm4/trunk/modules/integration/jboss4/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/integration/jboss4/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-integration</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
</parent>
<!-- Properties -->
Modified: jbpm4/trunk/modules/integration/jboss5/pom.xml
===================================================================
--- jbpm4/trunk/modules/integration/jboss5/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/integration/jboss5/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-integration</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
</parent>
<!-- Properties -->
Modified: jbpm4/trunk/modules/integration/pom.xml
===================================================================
--- jbpm4/trunk/modules/integration/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/integration/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -13,7 +13,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/integration/report/pom.xml
===================================================================
--- jbpm4/trunk/modules/integration/report/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/integration/report/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-integration</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
</parent>
<!-- Dependencies -->
Modified: jbpm4/trunk/modules/integration/spi/pom.xml
===================================================================
--- jbpm4/trunk/modules/integration/spi/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/integration/spi/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-integration</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
</parent>
<!-- Properties -->
Modified: jbpm4/trunk/modules/integration/tomcat/pom.xml
===================================================================
--- jbpm4/trunk/modules/integration/tomcat/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/integration/tomcat/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-integration</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
</parent>
<!-- Properties -->
Modified: jbpm4/trunk/modules/jpdl/pom.xml
===================================================================
--- jbpm4/trunk/modules/jpdl/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/jpdl/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/log/pom.xml
===================================================================
--- jbpm4/trunk/modules/log/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/log/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -23,7 +23,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/migration/pom.xml
===================================================================
--- jbpm4/trunk/modules/migration/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/migration/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/pvm/pom.xml
===================================================================
--- jbpm4/trunk/modules/pvm/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/pvm/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cfg/ProcessEngineImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cfg/ProcessEngineImpl.java 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cfg/ProcessEngineImpl.java 2009-09-29 14:40:28 UTC (rev 5672)
@@ -92,7 +92,7 @@
private static final long serialVersionUID = 1L;
private static final Log log = Log.getLog(ProcessEngineImpl.class.getName());
- public static final String JBPM_LIBRARY_VERSION = "4.1-SNAPSHOT";
+ public static final String JBPM_LIBRARY_VERSION = "4.2-SNAPSHOT";
protected boolean isConfigured = false;
protected WireContext processEngineWireContext = new WireContext(new WireDefinition(), Context.CONTEXTNAME_PROCESS_ENGINE, true);
Modified: jbpm4/trunk/modules/test-base/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-base/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/test-base/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/test-cactus/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-cactus/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/test-cactus/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Added: jbpm4/trunk/modules/test-cactus/src/test/java/org/jbpm/test/AllIntegrationTests.java
===================================================================
--- jbpm4/trunk/modules/test-cactus/src/test/java/org/jbpm/test/AllIntegrationTests.java (rev 0)
+++ jbpm4/trunk/modules/test-cactus/src/test/java/org/jbpm/test/AllIntegrationTests.java 2009-09-29 14:40:28 UTC (rev 5672)
@@ -0,0 +1,121 @@
+package org.jbpm.test;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import org.apache.cactus.ServletTestSuite;
+
+public class AllIntegrationTests extends TestCase {
+
+ public static Test suite() {
+ ServletTestSuite suite = new ServletTestSuite();
+ suite.addTestSuite(org.jbpm.examples.async.activity.AsyncActivityTest.class);
+ suite.addTestSuite(org.jbpm.examples.async.fork.AsyncForkTest.class);
+ suite.addTestSuite(org.jbpm.examples.concurrency.graphbased.ConcurrencyGraphBasedTest.class);
+ suite.addTestSuite(org.jbpm.examples.custom.CustomTest.class);
+ suite.addTestSuite(org.jbpm.examples.decision.conditions.DecisionConditionsTest.class);
+ suite.addTestSuite(org.jbpm.examples.decision.expression.DecisionExpressionTest.class);
+ suite.addTestSuite(org.jbpm.examples.decision.handler.DecisionHandlerTest.class);
+ suite.addTestSuite(org.jbpm.examples.end.multiple.EndMultipleTest.class);
+ suite.addTestSuite(org.jbpm.examples.end.processinstance.EndProcessInstanceTest.class);
+ suite.addTestSuite(org.jbpm.examples.end.state.EndStateTest.class);
+ suite.addTestSuite(org.jbpm.examples.eventlistener.EventListenerTest.class);
+ suite.addTestSuite(org.jbpm.examples.hql.HqlTest.class);
+ suite.addTestSuite(org.jbpm.examples.java.JavaInstantiateTest.class);
+ suite.addTestSuite(org.jbpm.examples.mail.inline.InlineMailTest.class);
+ suite.addTestSuite(org.jbpm.examples.mail.template.TemplateMailTest.class);
+ suite.addTestSuite(org.jbpm.examples.script.expression.ScriptExpressionTest.class);
+ suite.addTestSuite(org.jbpm.examples.script.text.ScriptTextTest.class);
+ suite.addTestSuite(org.jbpm.examples.services.ServicesTest.class);
+ suite.addTestSuite(org.jbpm.examples.sql.SqlTest.class);
+ suite.addTestSuite(org.jbpm.examples.state.choice.StateChoiceTest.class);
+ suite.addTestSuite(org.jbpm.examples.state.sequence.StateSequenceTest.class);
+ suite.addTestSuite(org.jbpm.examples.subprocess.outcomeactivity.SubProcessOutcomeActivityTest.class);
+ suite.addTestSuite(org.jbpm.examples.subprocess.outcomevalue.SubProcessOutcomeValueTest.class);
+ suite.addTestSuite(org.jbpm.examples.subprocess.variables.SubProcessVariablesTest.class);
+ suite.addTestSuite(org.jbpm.examples.task.assignee.TaskAssigneeTest.class);
+ suite.addTestSuite(org.jbpm.examples.task.assignmenthandler.TaskAssignmentHandlerTest.class);
+ suite.addTestSuite(org.jbpm.examples.task.candidates.TaskCandidatesTest.class);
+ suite.addTestSuite(org.jbpm.examples.task.comments.TaskCommentsTest.class);
+ suite.addTestSuite(org.jbpm.examples.task.notification.TaskNotificationTest.class);
+ suite.addTestSuite(org.jbpm.examples.task.reminder.TaskReminderTest.class);
+ suite.addTestSuite(org.jbpm.examples.task.swimlane.TaskSwimlaneTest.class);
+ suite.addTestSuite(org.jbpm.examples.task.variables.TaskVariablesTest.class);
+ suite.addTestSuite(org.jbpm.examples.timer.businesstime.TimerBusinessTimeTest.class);
+ suite.addTestSuite(org.jbpm.examples.timer.event.TimerEventTest.class);
+ suite.addTestSuite(org.jbpm.examples.timer.repeat.TimerRepeatTest.class);
+ suite.addTestSuite(org.jbpm.examples.timer.transition.TimerTransitionTest.class);
+ suite.addTestSuite(org.jbpm.examples.async.eventlistener.AsyncEventListenerTest.class);
+ suite.addTestSuite(org.jbpm.examples.goup.concurrency.GroupConcurrencyTest.class);
+ suite.addTestSuite(org.jbpm.examples.goup.multipleentries.MultipleEntriesTest.class);
+ suite.addTestSuite(org.jbpm.examples.goup.simple.GroupSimpleTest.class);
+ suite.addTestSuite(org.jbpm.examples.goup.timer.GroupTimerTest.class);
+ suite.addTestSuite(org.jbpm.test.activities.DecisionTest.class);
+ suite.addTestSuite(org.jbpm.test.activities.ForkJoinInSameTransactionTest.class);
+ suite.addTestSuite(org.jbpm.test.activities.ForkTest.class);
+ suite.addTestSuite(org.jbpm.test.activities.ForkToTaskTest.class);
+ suite.addTestSuite(org.jbpm.test.activities.GroupBasicsTest.class);
+ suite.addTestSuite(org.jbpm.test.activities.GroupTimersTest.class);
+ suite.addTestSuite(org.jbpm.test.activities.JoinTest.class);
+ suite.addTestSuite(org.jbpm.test.activities.StatesJoinEndTest.class);
+ suite.addTestSuite(org.jbpm.test.activities.StateTest.class);
+ suite.addTestSuite(org.jbpm.test.activities.SubProcessTest.class);
+ suite.addTestSuite(org.jbpm.test.activities.TasksJoinEndTest.class);
+ suite.addTestSuite(org.jbpm.test.async.AsyncBasicsTest.class);
+ suite.addTestSuite(org.jbpm.test.async.AsyncEndCombinationTest.class);
+ suite.addTestSuite(org.jbpm.test.async.AsyncEventListenerOnEndTest.class);
+ suite.addTestSuite(org.jbpm.test.auth.UserProvidedAuthenticationTest.class);
+ suite.addTestSuite(org.jbpm.test.cfg.ConfigurationTest.class);
+ suite.addTestSuite(org.jbpm.test.classloading.DelayedInstantiationTest.class);
+ suite.addTestSuite(org.jbpm.test.deploy.DeploymentResourceTest.class);
+ suite.addTestSuite(org.jbpm.test.deploy.ImageTest.class);
+ suite.addTestSuite(org.jbpm.test.deploy.SuspendDeploymentTest.class);
+ suite.addTestSuite(org.jbpm.test.eventlistener.EventListenerTest.class);
+ suite.addTestSuite(org.jbpm.test.eventlistener.HqlEventListenerTest.class);
+ suite.addTestSuite(org.jbpm.test.execution.ConcurrentEndTest.class);
+ suite.addTestSuite(org.jbpm.test.execution.ExecutionEagerLoadingTest.class);
+ suite.addTestSuite(org.jbpm.test.execution.ExecutionExpressionTest.class);
+ suite.addTestSuite(org.jbpm.test.execution.ExecutionQueryTest.class);
+ suite.addTestSuite(org.jbpm.test.execution.FindExecutionTest.class);
+ suite.addTestSuite(org.jbpm.test.execution.SignalExecutionTest.class);
+ suite.addTestSuite(org.jbpm.test.execution.StartExecutionTest.class);
+ suite.addTestSuite(org.jbpm.test.execution.SystemVariablesTest.class);
+ suite.addTestSuite(org.jbpm.test.history.AvgDurationTest.class);
+ suite.addTestSuite(org.jbpm.test.history.ChoiceDistributionTest.class);
+ suite.addTestSuite(org.jbpm.test.history.EndProcessInstanceTest.class);
+ suite.addTestSuite(org.jbpm.test.history.HistoryTaskAssigneeTest.class);
+ suite.addTestSuite(org.jbpm.test.history.ProcessInstanceHistoryTest.class);
+ suite.addTestSuite(org.jbpm.test.identity.IdentityTest.class);
+ suite.addTestSuite(org.jbpm.test.process.ActivityCoordinatesTest.class);
+ suite.addTestSuite(org.jbpm.test.process.DeploymentResourcesTest.class);
+ suite.addTestSuite(org.jbpm.test.process.DescriptionTest.class);
+ suite.addTestSuite(org.jbpm.test.process.ProcessDefinitionStartFormTest.class);
+ suite.addTestSuite(org.jbpm.test.process.RepositoryServiceTest.class);
+ suite.addTestSuite(org.jbpm.test.query.DeploymentQueryTest.class);
+ suite.addTestSuite(org.jbpm.test.query.HistoryActivityInstanceQueryTest.class);
+ suite.addTestSuite(org.jbpm.test.query.HistoryDetailQueryTest.class);
+ suite.addTestSuite(org.jbpm.test.query.HistoryProcessInstanceQueryTest.class);
+ suite.addTestSuite(org.jbpm.test.query.HistoryTaskQueryTest.class);
+ suite.addTestSuite(org.jbpm.test.query.JobQueryTest.class);
+ suite.addTestSuite(org.jbpm.test.query.ProcessDefinitionQueryTest.class);
+ suite.addTestSuite(org.jbpm.test.query.TaskQueryTest.class);
+ suite.addTestSuite(org.jbpm.test.task.SubTaskTest.class);
+ suite.addTestSuite(org.jbpm.test.task.TaskCommentsTest.class);
+ suite.addTestSuite(org.jbpm.test.task.TaskCreateUpdateDeleteTest.class);
+ suite.addTestSuite(org.jbpm.test.task.TaskListTest.class);
+ suite.addTestSuite(org.jbpm.test.task.TaskParticipationsTest.class);
+ suite.addTestSuite(org.jbpm.test.task.TaskPropertiesTest.class);
+ suite.addTestSuite(org.jbpm.test.task.TaskQueryCandidatesTest.class);
+ suite.addTestSuite(org.jbpm.test.task.TaskQueryProcessTest.class);
+ suite.addTestSuite(org.jbpm.test.task.TaskVariablesTest.class);
+ suite.addTestSuite(org.jbpm.test.taskactivity.TaskCandidatesTest.class);
+ suite.addTestSuite(org.jbpm.test.taskactivity.TaskCompletionTest.class);
+ suite.addTestSuite(org.jbpm.test.taskactivity.TaskOutcomesTest.class);
+ suite.addTestSuite(org.jbpm.test.taskactivity.TaskReassignTest.class);
+ suite.addTestSuite(org.jbpm.test.timer.TaskTimerTaskTest.class);
+ suite.addTestSuite(org.jbpm.test.timer.TimerTest.class);
+ suite.addTestSuite(org.jbpm.test.variables.BasicVariablesTest.class);
+ suite.addTestSuite(org.jbpm.test.variables.VariableBasicTypesTest.class);
+ suite.addTestSuite(org.jbpm.test.variables.VariableExpressionTest.class);
+ return suite;
+ }
+}
Property changes on: jbpm4/trunk/modules/test-cactus/src/test/java/org/jbpm/test/AllIntegrationTests.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/test-cfg/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-cfg/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/test-cfg/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/test-concurrent/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-concurrent/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/test-concurrent/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -20,7 +20,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/test-db/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-db/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/test-db/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/test-load/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-load/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/test-load/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/test-pojo/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-pojo/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/test-pojo/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -21,7 +21,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/modules/userguide/pom.xml
===================================================================
--- jbpm4/trunk/modules/userguide/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/modules/userguide/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm</artifactId>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: jbpm4/trunk/pom.xml
===================================================================
--- jbpm4/trunk/pom.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/pom.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -21,7 +21,7 @@
<artifactId>jbpm</artifactId>
<packaging>pom</packaging>
- <version>4.1-SNAPSHOT</version>
+ <version>4.2-SNAPSHOT</version>
<organization>
<name>JBoss, a division of Red Hat</name>
Modified: jbpm4/trunk/qa/build.xml
===================================================================
--- jbpm4/trunk/qa/build.xml 2009-09-29 13:23:38 UTC (rev 5671)
+++ jbpm4/trunk/qa/build.xml 2009-09-29 14:40:28 UTC (rev 5672)
@@ -10,7 +10,7 @@
<!-- CONFIGURABLE PROPERTIES -->
<property name="database" value="hsqldb" />
<property name="identity.component" value="jbpm-built-in" />
- <property name="jbpm.version" value="4.1-SNAPSHOT" />
+ <property name="jbpm.version" value="4.2-SNAPSHOT" />
<property name="jbpm.home" value="${jbpm.parent.dir}/jbpm-${jbpm.version}" /> <!-- jbpm.home should not be configured. change jbpm.parent.dir instead -->
<property name="jboss.version" value="5.0.0.GA" />
<property name="jboss.distro.dir" value="${jbpm.home}/downloads" />
14 years, 6 months
JBoss JBPM SVN: r5671 - in jbpm4/trunk/modules: jpdl/src/main/java/org/jbpm/jpdl/internal/xml and 9 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-09-29 09:23:38 -0400 (Tue, 29 Sep 2009)
New Revision: 5671
Added:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/ClassLoaderContext.java
jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/
jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/CustomActivity.java
jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/CustomEventListener.java
jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/DeploymentClassLoadingTest.java
jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/deploymentclassloading/
jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/deploymentclassloading/jbpm.cfg.xml
Modified:
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionHandlerActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EventListenerBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/AcquireJobsCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/DispatcherThread.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/GetNextDueDateCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/JobExecutor.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExceptionHandlerImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ObservableElementImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessElementImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentClassLoader.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositoryCache.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositoryCacheImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositorySessionImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/ReflectUtil.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/JobExecutorBinding.java
Log:
JBPM-2430 classloading cleanup and added deployment classloading for user classes
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionBinding.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionBinding.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -23,11 +23,9 @@
import java.util.List;
-import org.jbpm.api.jpdl.DecisionHandler;
import org.jbpm.pvm.internal.model.ActivityImpl;
import org.jbpm.pvm.internal.model.TransitionImpl;
import org.jbpm.pvm.internal.util.XmlUtil;
-import org.jbpm.pvm.internal.wire.WireContext;
import org.jbpm.pvm.internal.wire.binding.ObjectBinding;
import org.jbpm.pvm.internal.wire.descriptor.ExpressionEvaluatorDescriptor;
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
@@ -70,8 +68,7 @@
DecisionHandlerActivity decisionHandlerActivity = new DecisionHandlerActivity();
ObjectDescriptor decisionHandlerDescriptor = (ObjectDescriptor)
objectBinding.parse(handlerElement, parse, wireParser);
- DecisionHandler decisionHandler = (DecisionHandler) WireContext.create(decisionHandlerDescriptor);
- decisionHandlerActivity.setDecisionHandler(decisionHandler);
+ decisionHandlerActivity.setDecisionHandlerDescriptor(decisionHandlerDescriptor);
return decisionHandlerActivity;
}
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionHandlerActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionHandlerActivity.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionHandlerActivity.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -22,14 +22,16 @@
package org.jbpm.jpdl.internal.activity;
import org.jbpm.api.JbpmException;
+import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.activity.ActivityExecution;
import org.jbpm.api.jpdl.DecisionHandler;
import org.jbpm.pvm.internal.env.EnvironmentImpl;
import org.jbpm.pvm.internal.model.Activity;
import org.jbpm.pvm.internal.model.ExecutionImpl;
+import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
import org.jbpm.pvm.internal.model.Transition;
+import org.jbpm.pvm.internal.util.ReflectUtil;
import org.jbpm.pvm.internal.wire.Descriptor;
-import org.jbpm.pvm.internal.wire.WireContext;
/**
* @author Tom Baeyens
@@ -39,6 +41,7 @@
private static final long serialVersionUID = 1L;
protected String decisionHandlerName;
+ protected Descriptor decisionHandlerDescriptor;
protected DecisionHandler decisionHandler;
public void execute(ActivityExecution execution) {
@@ -51,9 +54,10 @@
String transitionName = null;
DecisionHandler usedDecisionHandler = null;
- if (decisionHandler!=null) {
- usedDecisionHandler = decisionHandler;
+ if (decisionHandlerDescriptor!=null) {
+ usedDecisionHandler = getDecisionHandler(activity.getProcessDefinition());
+
} else if (decisionHandlerName!=null) {
EnvironmentImpl environment = EnvironmentImpl.getCurrent();
Object object = environment.get(decisionHandlerName);
@@ -80,10 +84,22 @@
execution.take(transition);
}
+ public synchronized DecisionHandler getDecisionHandler(ProcessDefinition processDefinition) {
+ if ( (decisionHandlerDescriptor!=null)
+ && (decisionHandler==null)
+ ) {
+ decisionHandler = (DecisionHandler) ReflectUtil.instantiateUserCode(decisionHandlerDescriptor, (ProcessDefinitionImpl) processDefinition);
+ }
+ return decisionHandler;
+ }
+
public void setDecisionHandlerName(String decisionHandlerName) {
this.decisionHandlerName = decisionHandlerName;
}
public void setDecisionHandler(DecisionHandler decisionHandler) {
this.decisionHandler = decisionHandler;
}
+ public void setDecisionHandlerDescriptor(Descriptor decisionHandlerDescriptor) {
+ this.decisionHandlerDescriptor = decisionHandlerDescriptor;
+ }
}
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EventListenerBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EventListenerBinding.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/EventListenerBinding.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -24,6 +24,7 @@
import org.jbpm.api.listener.EventListener;
import org.jbpm.jpdl.internal.xml.JpdlParser;
import org.jbpm.pvm.internal.wire.Descriptor;
+import org.jbpm.pvm.internal.wire.JbpmClassNotFoundException;
import org.jbpm.pvm.internal.wire.WireContext;
import org.jbpm.pvm.internal.xml.Parse;
import org.jbpm.pvm.internal.xml.Parser;
@@ -40,9 +41,14 @@
}
public Object parse(Element element, Parse parse, Parser parser) {
- Descriptor descriptor = JpdlParser.parseObjectDescriptor(element, parse);
- EventListener eventListener = (EventListener) WireContext.create(descriptor);
- return eventListener;
+ Descriptor eventListenerDescriptor = JpdlParser.parseObjectDescriptor(element, parse);
+ try {
+ EventListener eventListener = (EventListener) WireContext.create(eventListenerDescriptor);
+ return eventListener;
+
+ } catch (JbpmClassNotFoundException e) {
+ return eventListenerDescriptor;
+ }
}
}
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -62,7 +62,6 @@
import org.jbpm.pvm.internal.task.AssignableDefinitionImpl;
import org.jbpm.pvm.internal.task.SwimlaneDefinitionImpl;
import org.jbpm.pvm.internal.task.TaskDefinitionImpl;
-import org.jbpm.pvm.internal.util.ReflectUtil;
import org.jbpm.pvm.internal.util.XmlUtil;
import org.jbpm.pvm.internal.wire.Descriptor;
import org.jbpm.pvm.internal.wire.WireContext;
@@ -177,11 +176,7 @@
public Object parseDocumentElement(Element documentElement, Parse parse) {
List<ProcessDefinitionImpl> processDefinitions = new ArrayList<ProcessDefinitionImpl>();
- JpdlProcessDefinition processDefinition = new JpdlProcessDefinition();
-// if (processDefinition==null) {
-// processDefinition = new JpdlProcessDefinition();
-// parse.setDocumentObject(processDefinition);
-// }
+ JpdlProcessDefinition processDefinition = instantiateNewJpdlProcessDefinition();
processDefinitions.add(processDefinition);
@@ -244,6 +239,10 @@
return processDefinitions;
}
+ protected JpdlProcessDefinition instantiateNewJpdlProcessDefinition() {
+ return new JpdlProcessDefinition();
+ }
+
protected void resolveTransitionDestinations(Parse parse, JpdlProcessDefinition processDefinition, UnresolvedTransitions unresolvedTransitions) {
for (UnresolvedTransition unresolvedTransition: unresolvedTransitions.list) {
unresolvedTransition.resolve(processDefinition, parse);
@@ -389,8 +388,15 @@
for (Element eventListenerElement: XmlUtil.elements(element)) {
JpdlBinding eventBinding = (JpdlBinding) getBinding(eventListenerElement, CATEGORY_EVENT_LISTENER);
if (eventBinding!=null) {
- EventListener eventListener = (EventListener) eventBinding.parse(eventListenerElement, parse, this);
- EventListenerReference eventListenerReference = event.createEventListenerReference(eventListener);
+ EventListenerReference eventListenerReference = null;
+ Object parseResult = eventBinding.parse(eventListenerElement, parse, this);
+ if (parseResult instanceof EventListener) {
+ EventListener eventListener = (EventListener) parseResult;
+ eventListenerReference = event.createEventListenerReference(eventListener);
+ } else {
+ Descriptor eventListenerDescriptor = (Descriptor) parseResult;
+ eventListenerReference = event.createEventListenerReference(eventListenerDescriptor);
+ }
if (XmlUtil.attributeBoolean(eventListenerElement, "propagation", false, parse, false)) {
eventListenerReference.setPropagationEnabled(true);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/AcquireJobsCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/AcquireJobsCmd.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/AcquireJobsCmd.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -58,13 +58,13 @@
Collection<JobImpl<?>> acquiredJobs = new ArrayList<JobImpl<?>>();
DbSession dbSession = environment.get(DbSession.class);
- log.debug("start querying first acquirable job...");
+ if (log.isTraceEnabled()) log.trace("start querying first acquirable job...");
JobImpl<?> job = dbSession.findFirstAcquirableJob();
if (job!=null) {
if (job.isExclusive()) {
- log.trace("exclusive acquirable job found ("+job+"). querying for other exclusive jobs to lock them all in one tx...");
+ if (log.isTraceEnabled()) log.trace("exclusive acquirable job found ("+job+"). querying for other exclusive jobs to lock them all in one tx...");
List<JobImpl<?>> otherExclusiveJobs = dbSession.findExclusiveJobs(job.getProcessInstance());
acquiredJobs.addAll(otherExclusiveJobs);
} else {
@@ -73,16 +73,16 @@
for (JobImpl<?> acquiredJob: acquiredJobs) {
long lockExpirationTime = System.currentTimeMillis()+jobExecutor.getLockMillis();
- log.trace("trying to obtain a lock for '"+acquiredJob+"' with exp "+timeFormat.format(new Date(lockExpirationTime)));
+ if (log.isTraceEnabled()) log.trace("trying to obtain a lock for '"+acquiredJob+"' with exp "+timeFormat.format(new Date(lockExpirationTime)));
acquiredJob.acquire(jobExecutor.getName(), new Date(lockExpirationTime));
acquiredJobDbids.add(acquiredJob.getDbid());
}
} else {
- log.trace("no acquirable jobs in job table");
+ if (log.isTraceEnabled()) log.trace("no acquirable jobs in job table");
}
- log.debug("locking jobs "+acquiredJobDbids);
+ if (log.isTraceEnabled()) log.trace("locking jobs "+acquiredJobDbids);
} catch (Exception e) {
// if jboss is still booting exceptions that are due to improper
@@ -95,5 +95,4 @@
return acquiredJobDbids;
}
-
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/DispatcherThread.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/DispatcherThread.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/DispatcherThread.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -77,9 +77,9 @@
if (waitPeriod > 0) {
synchronized (semaphore) {
if (!checkForNewJobs) {
- log.debug(getName()+" will wait for max "+waitPeriod+"ms on "+jobExecutor);
+ log.trace(getName()+" will wait for max "+waitPeriod+"ms on "+jobExecutor);
semaphore.wait(waitPeriod);
- log.debug(getName()+" woke up");
+ log.trace(getName()+" woke up");
} else {
log.debug("skipped wait because new message arrived");
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/GetNextDueDateCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/GetNextDueDateCmd.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/GetNextDueDateCmd.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -48,13 +48,13 @@
public Date execute(Environment environment) throws Exception {
Date nextDueDate = null;
- log.debug("getting next due date...");
+ if (log.isTraceEnabled()) log.trace("getting next due date...");
DbSession dbSession = environment.get(DbSession.class);
JobImpl<?> job = dbSession.findFirstDueJob();
if (job!=null) {
nextDueDate = job.getDueDate();
}
- log.debug("next due date is "+nextDueDate);
+ if (log.isTraceEnabled()) log.trace("next due date is "+nextDueDate);
return nextDueDate;
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/JobExecutor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/JobExecutor.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/jobexecutor/JobExecutor.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -83,8 +83,12 @@
isActive = true;
log.trace("starting thread pool for job executor '"+name+"'...");
- threadPool = new ThreadPoolExecutor(nbrOfThreads, nbrOfThreads, 0L, TimeUnit.MILLISECONDS,
- new ArrayBlockingQueue<Runnable>(nbrOfThreads), JobRejectionHandler.INSTANCE);
+ threadPool = new ThreadPoolExecutor(nbrOfThreads,
+ nbrOfThreads,
+ 0L,
+ TimeUnit.MILLISECONDS,
+ new ArrayBlockingQueue<Runnable>(nbrOfThreads),
+ JobRejectionHandler.INSTANCE);
log.trace("starting dispatcher thread for job executor '"+name+"'...");
dispatcherThread = new DispatcherThread(this);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -27,8 +27,8 @@
import java.util.Map;
import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.pvm.internal.util.ReflectUtil;
import org.jbpm.pvm.internal.wire.Descriptor;
-import org.jbpm.pvm.internal.wire.WireContext;
/**
* @author Tom Baeyens
@@ -358,7 +358,7 @@
return activityBehaviour;
}
if (activityBehaviourDescriptor!=null) {
- ActivityBehaviour createdBehaviour = (ActivityBehaviour) WireContext.create(activityBehaviourDescriptor);
+ ActivityBehaviour createdBehaviour = (ActivityBehaviour) ReflectUtil.instantiateUserCode(activityBehaviourDescriptor, processDefinition);
if (!isActivityBehaviourStateful) {
activityBehaviour = createdBehaviour;
}
@@ -366,7 +366,7 @@
}
return null;
}
-
+
// getters and setters //////////////////////////////////////////////////////
public ObservableElementImpl getParent() {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventImpl.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventImpl.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -52,6 +52,7 @@
listenerReferences = new ArrayList<EventListenerReference>();
}
EventListenerReference activityReference = new EventListenerReference();
+ activityReference.setProcessDefinition(processDefinition);
listenerReferences.add(activityReference);
return activityReference;
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -22,8 +22,8 @@
package org.jbpm.pvm.internal.model;
import org.jbpm.api.listener.EventListener;
+import org.jbpm.pvm.internal.util.ReflectUtil;
import org.jbpm.pvm.internal.wire.Descriptor;
-import org.jbpm.pvm.internal.wire.WireContext;
/**
* @author Tom Baeyens
@@ -60,7 +60,7 @@
return eventListener;
}
if (eventListenerDescriptor!=null) {
- EventListener createdEventListener = (EventListener) WireContext.create(eventListenerDescriptor);
+ EventListener createdEventListener = (EventListener) ReflectUtil.instantiateUserCode(eventListenerDescriptor, processDefinition);
if (!isEventListenerStateful) {
eventListener = createdEventListener;
}
@@ -68,7 +68,7 @@
}
return null;
}
-
+
// getters and setters //////////////////////////////////////////////////////
public Continuation getContinuation() {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExceptionHandlerImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExceptionHandlerImpl.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExceptionHandlerImpl.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -46,6 +46,7 @@
protected long dbid;
protected int dbversion;
+ protected ProcessDefinitionImpl processDefinition;
protected String exceptionClassName;
protected boolean isTransactional;
protected boolean isRethrowMasked;
@@ -72,6 +73,7 @@
eventListenerReferences = new ArrayList<EventListenerReference>();
}
EventListenerReference eventListenerReference = new EventListenerReference();
+ eventListenerReference.setProcessDefinition(processDefinition);
eventListenerReferences.add(eventListenerReference);
return eventListenerReference;
}
@@ -253,4 +255,10 @@
public void setEventListenerReferences(List<EventListenerReference> eventListenerReferences) {
this.eventListenerReferences = eventListenerReferences;
}
+ public ProcessDefinitionImpl getProcessDefinition() {
+ return processDefinition;
+ }
+ public void setProcessDefinition(ProcessDefinitionImpl processDefinition) {
+ this.processDefinition = processDefinition;
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ObservableElementImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ObservableElementImpl.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ObservableElementImpl.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -60,6 +60,7 @@
EventImpl event = new EventImpl();
event.setObservableElement(this);
event.setName(eventName);
+ event.setProcessDefinition(processDefinition);
return addEvent(event);
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessElementImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessElementImpl.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessElementImpl.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -59,6 +59,7 @@
if (exceptionHandlers==null) {
exceptionHandlers = new ArrayList<ExceptionHandlerImpl>();
}
+ exceptionHandler.setProcessDefinition(processDefinition);
exceptionHandlers.add(exceptionHandler);
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentClassLoader.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentClassLoader.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentClassLoader.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -30,6 +30,8 @@
import java.net.URLStreamHandler;
import org.jbpm.api.JbpmException;
+import org.jbpm.pvm.internal.env.EnvironmentImpl;
+import org.jbpm.pvm.internal.session.RepositorySession;
import org.jbpm.pvm.internal.util.IoUtil;
@@ -38,26 +40,31 @@
*/
public class DeploymentClassLoader extends ClassLoader {
- private DeploymentImpl deployment = null;
+ private String deploymentId = null;
- public DeploymentClassLoader(ClassLoader parent, DeploymentImpl deployment ) {
+ public DeploymentClassLoader(ClassLoader parent, String deploymentId ) {
super(parent);
- this.deployment = deployment;
+ this.deploymentId = deploymentId;
}
public URL findResource(String name) {
URL url = null;
- byte[] bytes = deployment.getBytes(name);
+ byte[] bytes = getDeployment().getBytes(name);
if (bytes!=null) {
InputStream inputStream = new ByteArrayInputStream(bytes);
try {
- url = new URL(null, "jbpm://"+deployment.getDbid()+"/"+name, new BytesUrlStreamHandler(inputStream));
+ url = new URL(null, "jbpm://"+deploymentId+"/"+name, new BytesUrlStreamHandler(inputStream));
} catch (MalformedURLException e) {
throw new JbpmException("couldn't create url", e);
}
}
return url;
}
+
+ protected DeploymentImpl getDeployment() {
+ RepositorySession repositorySession = EnvironmentImpl.getFromCurrent(RepositorySession.class);
+ return repositorySession.getDeployment(deploymentId);
+ }
public static class BytesUrlStreamHandler extends URLStreamHandler {
InputStream inputStream;
@@ -86,7 +93,7 @@
Class clazz = null;
String fileName = name.replace( '.', '/' ) + ".class";
- byte[] bytes = deployment.getBytes(fileName);
+ byte[] bytes = getDeployment().getBytes(fileName);
if (bytes!=null) {
try {
InputStream inputStream = new ByteArrayInputStream(bytes);
@@ -109,7 +116,7 @@
}
if (clazz==null) {
- throw new ClassNotFoundException("class '"+name+"' could not be found in jbpm "+deployment);
+ throw new ClassNotFoundException("class '"+name+"' could not be found in deployment "+deploymentId);
}
return clazz;
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositoryCache.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositoryCache.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositoryCache.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -35,4 +35,7 @@
Set<String> getCachedDeploymentIds();
void remove(String deploymentId);
void clear();
+
+ DeploymentClassLoader getDeploymentClassLoader(String deploymentId, ClassLoader original);
+ void setDeploymentClassLoader(String deploymentId, ClassLoader original, DeploymentClassLoader deploymentClassLoader);
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositoryCacheImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositoryCacheImpl.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositoryCacheImpl.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -21,8 +21,10 @@
*/
package org.jbpm.pvm.internal.repository;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -33,6 +35,7 @@
public class RepositoryCacheImpl implements RepositoryCache {
Map<String, Map<String, Object>> deployments = new HashMap<String, Map<String,Object>>();
+ Map<Object, DeploymentClassLoader> deploymentClassLoaders = new HashMap<Object, DeploymentClassLoader>();
public Object get(String deploymentId, String objectName) {
Map<String, Object> deploymentObjects = deployments.get(deploymentId);
@@ -74,4 +77,20 @@
public void clear() {
deployments = new HashMap<String, Map<String,Object>>();
}
+
+ public DeploymentClassLoader getDeploymentClassLoader(String deploymentId, ClassLoader original) {
+ Object key = getDeploymentClassLoaderKey(deploymentId, original);
+ return deploymentClassLoaders.get(key);
+ }
+
+ public void setDeploymentClassLoader(String deploymentId, ClassLoader original, DeploymentClassLoader deploymentClassLoader) {
+ deploymentClassLoaders.put(getDeploymentClassLoaderKey(deploymentId, original), deploymentClassLoader);
+ }
+
+ protected Object getDeploymentClassLoaderKey(String deploymentId, ClassLoader original) {
+ List<Object> key = new ArrayList<Object>();
+ key.add(deploymentId);
+ key.add(original);
+ return key;
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositorySessionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositorySessionImpl.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositorySessionImpl.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -32,7 +32,6 @@
import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.ProcessDefinitionQuery;
import org.jbpm.internal.log.Log;
-import org.jbpm.pvm.internal.env.EnvironmentImpl;
import org.jbpm.pvm.internal.id.DbidGenerator;
import org.jbpm.pvm.internal.model.ExecutionImpl;
import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/ClassLoaderContext.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/ClassLoaderContext.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/ClassLoaderContext.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -0,0 +1,30 @@
+/*
+ * 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.pvm.internal.util;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class ClassLoaderContext {
+
+}
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/ClassLoaderContext.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/ReflectUtil.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/ReflectUtil.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/ReflectUtil.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -9,6 +9,12 @@
import org.jbpm.api.JbpmException;
import org.jbpm.internal.log.Log;
+import org.jbpm.pvm.internal.env.EnvironmentImpl;
+import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
+import org.jbpm.pvm.internal.repository.DeploymentClassLoader;
+import org.jbpm.pvm.internal.repository.RepositoryCache;
+import org.jbpm.pvm.internal.wire.Descriptor;
+import org.jbpm.pvm.internal.wire.WireContext;
import org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor;
public abstract class ReflectUtil {
@@ -270,4 +276,40 @@
}
return className;
}
+
+ public static ClassLoader installDeploymentClassLoader(ProcessDefinitionImpl processDefinition) {
+ String deploymentId = processDefinition.getDeploymentId();
+ if (deploymentId==null) {
+ return null;
+ }
+
+ Thread currentThread = Thread.currentThread();
+ ClassLoader original = currentThread.getContextClassLoader();
+
+ RepositoryCache repositoryCache = EnvironmentImpl.getFromCurrent(RepositoryCache.class);
+ DeploymentClassLoader deploymentClassLoader = repositoryCache.getDeploymentClassLoader(deploymentId, original);
+ if (deploymentClassLoader==null) {
+ deploymentClassLoader = new DeploymentClassLoader(original, deploymentId);
+ repositoryCache.setDeploymentClassLoader(deploymentId, original, deploymentClassLoader);
+ }
+
+ currentThread.setContextClassLoader(deploymentClassLoader);
+
+ return original;
+ }
+
+ public static void uninstallDeploymentClassLoader(ClassLoader original) {
+ if (original!=null) {
+ Thread.currentThread().setContextClassLoader(original);
+ }
+ }
+
+ public static Object instantiateUserCode(Descriptor descriptor, ProcessDefinitionImpl processDefinition) {
+ ClassLoader classLoader = ReflectUtil.installDeploymentClassLoader(processDefinition);
+ try {
+ return WireContext.create(descriptor);
+ } finally {
+ ReflectUtil.uninstallDeploymentClassLoader(classLoader);
+ }
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/JobExecutorBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/JobExecutorBinding.java 2009-09-28 08:47:12 UTC (rev 5670)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/JobExecutorBinding.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -61,7 +61,7 @@
);
} else {
descriptor.addInjection("commandService",
- new ContextTypeRefDescriptor(CommandService.class)
+ new ReferenceDescriptor(CommandService.NAME_TX_REQUIRED_COMMAND_SERVICE)
);
}
Added: jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/CustomActivity.java
===================================================================
--- jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/CustomActivity.java (rev 0)
+++ jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/CustomActivity.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -0,0 +1,34 @@
+/*
+ * 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.test.deploymentclassloading;
+
+import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.api.activity.ActivityExecution;
+
+public class CustomActivity implements ActivityBehaviour {
+
+ private static final long serialVersionUID = 1L;
+
+ public void execute(ActivityExecution execution) throws Exception {
+ execution.setVariable("CustomActivity", "Executed");
+ }
+}
Property changes on: jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/CustomActivity.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/CustomEventListener.java
===================================================================
--- jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/CustomEventListener.java (rev 0)
+++ jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/CustomEventListener.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -0,0 +1,39 @@
+/*
+ * 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.test.deploymentclassloading;
+
+import org.jbpm.api.listener.EventListener;
+import org.jbpm.api.listener.EventListenerExecution;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class CustomEventListener implements EventListener {
+
+ private static final long serialVersionUID = 1L;
+
+ public void notify(EventListenerExecution execution) throws Exception {
+ execution.setVariable("CustomEventListener", "Executed");
+ }
+}
+
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/CustomEventListener.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/DeploymentClassLoadingTest.java
===================================================================
--- jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/DeploymentClassLoadingTest.java (rev 0)
+++ jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/DeploymentClassLoadingTest.java 2009-09-29 13:23:38 UTC (rev 5671)
@@ -0,0 +1,118 @@
+/*
+ * 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.test.deploymentclassloading;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+
+import org.jbpm.pvm.internal.util.IoUtil;
+import org.jbpm.test.JbpmCustomCfgTestCase;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class DeploymentClassLoadingTest extends JbpmCustomCfgTestCase {
+
+ static String testClassesDir =
+ DeploymentClassLoadingTest.class
+ .getProtectionDomain()
+ .getCodeSource()
+ .getLocation()
+ .getFile();
+
+ public void testCustomEventListener() throws Exception {
+ String originalFileName = testClassesDir+"org/jbpm/test/deploymentclassloading/CustomEventListener.class";
+ File originalFile = new File(originalFileName);
+
+ FileInputStream fileInputStream = new FileInputStream(originalFileName);
+ byte[] classBytes = IoUtil.readBytes(fileInputStream);
+ fileInputStream.close();
+
+ String hiddenFileName = originalFileName+".hiddenFromTestClasspath";
+ File hiddenFile = new File(hiddenFileName);
+ assertTrue(originalFile.renameTo(hiddenFile));
+
+ try {
+ String deploymentDbid = repositoryService.createDeployment()
+ .addResourceFromString("xmlstring.jpdl.xml",
+ "<process name='CustomEventListenerClassLoading'>" +
+ " <start>" +
+ " <transition to='wait'>" +
+ " <event-listener class='org.jbpm.test.deploymentclassloading.CustomEventListener' />" +
+ " </transition>" +
+ " </start>" +
+ " <state name='wait' />" +
+ "</process>" )
+ .addResourceFromInputStream("org/jbpm/test/deploymentclassloading/CustomEventListener.class", new ByteArrayInputStream(classBytes))
+ .deploy();
+
+ registerDeployment(deploymentDbid);
+
+ String processInstanceId = executionService.startProcessInstanceByKey("CustomEventListenerClassLoading").getId();
+
+ assertEquals("Executed", executionService.getVariable(processInstanceId, "CustomEventListener"));
+
+ } finally {
+ hiddenFile.renameTo(originalFile);
+ }
+ }
+
+ public void testCustomActivityBehaviour() throws Exception {
+ String originalFileName = testClassesDir+"org/jbpm/test/deploymentclassloading/CustomActivity.class";
+ File originalFile = new File(originalFileName);
+
+ FileInputStream fileInputStream = new FileInputStream(originalFileName);
+ byte[] classBytes = IoUtil.readBytes(fileInputStream);
+ fileInputStream.close();
+
+ String hiddenFileName = originalFileName+".hiddenFromTestClasspath";
+ File hiddenFile = new File(hiddenFileName);
+ assertTrue(originalFile.renameTo(hiddenFile));
+ try {
+
+ String deploymentDbid = repositoryService.createDeployment()
+ .addResourceFromString("xmlstring.jpdl.xml",
+ "<process name='CustomActivityClassLoading'>" +
+ " <start>" +
+ " <transition to='c' />" +
+ " </start>" +
+ " <custom name='c' class='org.jbpm.test.deploymentclassloading.CustomActivity'>" +
+ " <transition to='wait' />" +
+ " </custom>" +
+ " <state name='wait' />" +
+ "</process>" )
+ .addResourceFromInputStream("org/jbpm/test/deploymentclassloading/CustomActivity.class", new ByteArrayInputStream(classBytes))
+ .deploy();
+
+ registerDeployment(deploymentDbid);
+
+ String processInstanceId = executionService.startProcessInstanceByKey("CustomActivityClassLoading").getId();
+
+ assertEquals("Executed", executionService.getVariable(processInstanceId, "CustomActivity"));
+
+ } finally {
+ hiddenFile.renameTo(originalFile);
+ }
+ }
+}
Property changes on: jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/deploymentclassloading/DeploymentClassLoadingTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/deploymentclassloading/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/deploymentclassloading/jbpm.cfg.xml (rev 0)
+++ jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/deploymentclassloading/jbpm.cfg.xml 2009-09-29 13:23:38 UTC (rev 5671)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<jbpm-configuration>
+
+ <import resource="jbpm.default.cfg.xml" />
+ <import resource="jbpm.businesscalendar.cfg.xml" />
+ <import resource="jbpm.tx.hibernate.cfg.xml" />
+ <import resource="jbpm.jpdl.cfg.xml" />
+ <import resource="jbpm.identity.cfg.xml" />
+
+</jbpm-configuration>
Property changes on: jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/deploymentclassloading/jbpm.cfg.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
14 years, 6 months
JBoss JBPM SVN: r5670 - jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-09-28 04:47:12 -0400 (Mon, 28 Sep 2009)
New Revision: 5670
Modified:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/ConverterType.java
Log:
JBPM-2430 : added fix for classloading in ant: check the jbpm classloader after context classloader fails
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/ConverterType.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/ConverterType.java 2009-09-25 14:04:45 UTC (rev 5669)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/ConverterType.java 2009-09-28 08:47:12 UTC (rev 5670)
@@ -82,7 +82,15 @@
String converterClassName = (String) key;
try {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
- Class<?> converterClass = Class.forName(converterClassName, true, classLoader);
+ Class< ? > converterClass = null;
+ try {
+ converterClass = Class.forName(converterClassName, true, classLoader);
+ } catch (ClassNotFoundException e) {
+ // when running jBPM from ant, the context classloader is not set properly
+ // so the jBPM classloader is necessary as a fallback
+ classLoader = getClass().getClassLoader();
+ converterClass = Class.forName(converterClassName, true, classLoader);
+ }
String converterName = properties.getProperty(converterClassName);
converterNames.put(converterClass, converterName);
14 years, 6 months
JBoss JBPM SVN: r5669 - in jbpm4/trunk/modules: jpdl/src/main/java/org/jbpm/jpdl/internal/activity and 21 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-09-25 10:04:45 -0400 (Fri, 25 Sep 2009)
New Revision: 5669
Added:
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlBindingsParser.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/JbpmClassNotFoundException.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/classloading/
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/classloading/DelayedInstantiationTest.java
Removed:
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/BindingsParser.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/PvmNamingStrategy.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ObjectReference.java
Modified:
jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/Configuration.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/CompositeBuilder.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/CompositeExceptionHandlerBuilder.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/EventBuilder.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/EventExceptionHandlerBuilder.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ExceptionHandlerBuilder.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/FlowBuilder.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ObservableBuilder.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/TimerBuilder.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetStartFormResourceNameCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/ConverterType.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExceptionHandlerImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/ExecuteActivity.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/ExecuteEventListener.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/Signal.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/ProcessDeployer.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/stream/ResourceStreamInput.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/LifeCycleParser.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/ReflectUtil.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/WireContext.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/WireDefinition.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/AbstractCollectionBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/HibernateConfigurationBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ScriptManagerBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/TypesBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ClassDescriptor.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ClassLoaderDescriptor.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/CollectionDescriptor.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/HibernateConfigurationDescriptor.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ObjectDescriptor.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/PropertiesDescriptor.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ReferenceDescriptor.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/operation/FieldOperation.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/BindingParser.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/WireParser.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parse.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parser.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/ProblemList.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/activities/PrintLnBuilder.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/builder/BuilderTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/builder/TestBehaviourBuilder.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/wire/ObjectWireTest.java
Log:
JBPM-2430 first cleanup of classloading
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/Configuration.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/Configuration.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/Configuration.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -86,10 +86,7 @@
protected Configuration instantiate(String className) {
Configuration implementation;
try {
- Class<?> implementationClass = Thread
- .currentThread()
- .getContextClassLoader()
- .loadClass(className);
+ Class<?> implementationClass = Class.forName(className, true, getClassLoader());
implementation = (Configuration) implementationClass.newInstance();
} catch (Exception e) {
throw new JbpmException("couldn't instantiate configuration of type "+className, e);
Deleted: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomActivity.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomActivity.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -1,55 +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.jpdl.internal.activity;
-
-import java.util.Map;
-
-import org.jbpm.api.activity.ActivityBehaviour;
-import org.jbpm.api.activity.ActivityExecution;
-import org.jbpm.api.activity.ExternalActivityBehaviour;
-
-
-/**
- * @author Tom Baeyens
- */
-public class CustomActivity extends JpdlExternalActivity {
-
- private static final long serialVersionUID = 1L;
-
- protected ActivityBehaviour customBehaviour;
-
- public void signal(ActivityExecution execution, String signalName, Map<String, ? > parameters) throws Exception {
- ExternalActivityBehaviour externalActivityBehaviour = (ExternalActivityBehaviour)customBehaviour;
- externalActivityBehaviour.signal(execution, signalName, parameters);
- }
-
- public void execute(ActivityExecution execution) throws Exception {
- customBehaviour.execute(execution);
- }
-
- public ActivityBehaviour getCustomBehaviour() {
- return customBehaviour;
- }
- public void setCustomBehaviour(ActivityBehaviour customBehaviour) {
- this.customBehaviour = customBehaviour;
- }
-}
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomBinding.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/CustomBinding.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -22,6 +22,7 @@
package org.jbpm.jpdl.internal.activity;
import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.pvm.internal.wire.JbpmClassNotFoundException;
import org.jbpm.pvm.internal.wire.WireContext;
import org.jbpm.pvm.internal.wire.binding.ObjectBinding;
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
@@ -42,11 +43,13 @@
}
public Object parse(Element element, Parse parse, Parser parser) {
- CustomActivity customActivity = new CustomActivity();
- ObjectDescriptor descriptor = (ObjectDescriptor)
- objectBinding.parse(element, parse, wireParser);
- ActivityBehaviour customActivityBehaviour = (ActivityBehaviour) WireContext.create(descriptor);
- customActivity.setCustomBehaviour(customActivityBehaviour);
- return customActivity;
+ ObjectDescriptor customActivitydescriptor = (ObjectDescriptor) objectBinding.parse(element, parse, wireParser);
+ try {
+ ActivityBehaviour customActivityBehaviour = (ActivityBehaviour) WireContext.create(customActivitydescriptor);
+ return customActivityBehaviour;
+
+ } catch (JbpmClassNotFoundException e) {
+ return customActivitydescriptor;
+ }
}
}
Deleted: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/BindingsParser.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/BindingsParser.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/BindingsParser.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -1,69 +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.jpdl.internal.xml;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.jbpm.internal.log.Log;
-import org.jbpm.pvm.internal.util.ReflectUtil;
-import org.jbpm.pvm.internal.util.XmlUtil;
-import org.jbpm.pvm.internal.xml.Binding;
-import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
-import org.w3c.dom.Element;
-
-/**
- * @author Tom Baeyens
- */
-public class BindingsParser extends Parser {
-
- private static final Log log = Log.getLog(BindingsParser.class.getName());
-
- public Object parseDocumentElement(Element documentElement, Parse parse) {
- List<Binding> bindings = new ArrayList<Binding>();
- parse.setDocumentObject(bindings);
-
- for (Element bindingElement : XmlUtil.elements(documentElement)) {
- Binding binding = instantiateBinding(bindingElement, parse);
- bindings.add(binding);
- }
-
- return bindings;
- }
-
- protected Binding instantiateBinding(Element bindingElement, Parse parse) {
- String bindingClassName = XmlUtil.attribute(bindingElement, "binding", true, parse);
-
- log.trace("adding jpdl binding "+bindingClassName);
-
- if (bindingClassName!=null) {
- try {
- Class<?> bindingClass = ReflectUtil.loadClass(classLoader, bindingClassName);
- return (Binding) bindingClass.newInstance();
- } catch (Exception e) {
- parse.addProblem("couldn't instantiate activity binding "+bindingClassName, e);
- }
- }
- return null;
- }
-}
Copied: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlBindingsParser.java (from rev 5660, jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/BindingsParser.java)
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlBindingsParser.java (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlBindingsParser.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -0,0 +1,69 @@
+/*
+ * 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.jpdl.internal.xml;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jbpm.internal.log.Log;
+import org.jbpm.pvm.internal.util.XmlUtil;
+import org.jbpm.pvm.internal.xml.Binding;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.jbpm.pvm.internal.xml.Parser;
+import org.w3c.dom.Element;
+
+/**
+ * @author Tom Baeyens
+ */
+public class JpdlBindingsParser extends Parser {
+
+ private static final Log log = Log.getLog(JpdlBindingsParser.class.getName());
+
+ public Object parseDocumentElement(Element documentElement, Parse parse) {
+ List<Binding> bindings = new ArrayList<Binding>();
+ parse.setDocumentObject(bindings);
+
+ for (Element bindingElement : XmlUtil.elements(documentElement)) {
+ Binding binding = instantiateBinding(bindingElement, parse);
+ bindings.add(binding);
+ }
+
+ return bindings;
+ }
+
+ protected Binding instantiateBinding(Element bindingElement, Parse parse) {
+ String bindingClassName = XmlUtil.attribute(bindingElement, "binding", true, parse);
+
+ log.trace("adding jpdl binding "+bindingClassName);
+
+ if (bindingClassName!=null) {
+ try {
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ Class<?> bindingClass = Class.forName(bindingClassName, true, classLoader);
+ return (Binding) bindingClass.newInstance();
+ } catch (Exception e) {
+ parse.addProblem("couldn't instantiate activity binding "+bindingClassName, e);
+ }
+ }
+ return null;
+ }
+}
Property changes on: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlBindingsParser.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -31,6 +31,7 @@
import java.util.Set;
import java.util.StringTokenizer;
+import org.jbpm.api.JbpmException;
import org.jbpm.api.activity.ActivityBehaviour;
import org.jbpm.api.listener.EventListener;
import org.jbpm.api.model.Event;
@@ -99,7 +100,7 @@
"jbpm.user.eventlisteners.xml"
};
- static BindingsParser bindingsParser = new BindingsParser();
+ static JpdlBindingsParser jpdlBindingsParser = new JpdlBindingsParser();
static final String CATEGORY_ACTIVITY = "activity";
static final String CATEGORY_EVENT_LISTENER = "eventlistener";
@@ -118,12 +119,12 @@
setBindings(bindings);
for (String activityResource: DEFAULT_ACTIVITIES_RESOURCES) {
- Enumeration<URL> resourceUrls = ReflectUtil.getResources(null, activityResource);
+ Enumeration<URL> resourceUrls = getResources(activityResource);
if (resourceUrls.hasMoreElements()) {
while (resourceUrls.hasMoreElements()) {
URL resourceUrl = resourceUrls.nextElement();
log.trace("loading jpdl activities from resource: "+resourceUrl);
- List<JpdlBinding> activityBindings = (List<JpdlBinding>) bindingsParser.createParse()
+ List<JpdlBinding> activityBindings = (List<JpdlBinding>) jpdlBindingsParser.createParse()
.setUrl(resourceUrl)
.execute()
.checkErrors("jpdl activities from "+resourceUrl.toString())
@@ -140,12 +141,12 @@
}
for (String eventListenerResource: DEFAULT_EVENTLISTENERS_RESOURCES) {
- Enumeration<URL> resourceUrls = ReflectUtil.getResources(null, eventListenerResource);
+ Enumeration<URL> resourceUrls = getResources(eventListenerResource);
if (resourceUrls.hasMoreElements()) {
while (resourceUrls.hasMoreElements()) {
URL resourceUrl = resourceUrls.nextElement();
log.trace("loading jpdl eventlisteners from resource: "+resourceUrl);
- List<JpdlBinding> activityBindings = (List<JpdlBinding>) bindingsParser.createParse()
+ List<JpdlBinding> activityBindings = (List<JpdlBinding>) jpdlBindingsParser.createParse()
.setUrl(resourceUrl)
.execute()
.checkErrors("jpdl eventlisteners from "+resourceUrl.toString())
@@ -162,14 +163,25 @@
}
}
+ protected Enumeration<URL> getResources(String resourceName) {
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ Enumeration<URL> resourceUrls;
+ try {
+ resourceUrls = classLoader.getResources(resourceName);
+ } catch (Exception e) {
+ throw new JbpmException("couldn't get resource urls for "+resourceName, e);
+ }
+ return resourceUrls;
+ }
+
public Object parseDocumentElement(Element documentElement, Parse parse) {
List<ProcessDefinitionImpl> processDefinitions = new ArrayList<ProcessDefinitionImpl>();
- JpdlProcessDefinition processDefinition = (JpdlProcessDefinition) parse.getDocumentObject();
- if (processDefinition==null) {
- processDefinition = new JpdlProcessDefinition();
- parse.setDocumentObject(processDefinition);
- }
+ JpdlProcessDefinition processDefinition = new JpdlProcessDefinition();
+// if (processDefinition==null) {
+// processDefinition = new JpdlProcessDefinition();
+// parse.setDocumentObject(processDefinition);
+// }
processDefinitions.add(processDefinition);
@@ -274,8 +286,14 @@
}
}
- ActivityBehaviour activityBehaviour = (ActivityBehaviour) activityBinding.parse(nestedElement, parse, this);
- activity.setBehaviour(activityBehaviour);
+ Object parseResult = activityBinding.parse(nestedElement, parse, this);
+ if (parseResult instanceof ActivityBehaviour) {
+ ActivityBehaviour activityBehaviour = (ActivityBehaviour) parseResult;
+ activity.setActivityBehaviour(activityBehaviour);
+ } else {
+ Descriptor activityBehaviourDescriptor = (Descriptor) parseResult;
+ activity.setActivityBehaviourDescriptor(activityBehaviourDescriptor);
+ }
parseOnEvents(nestedElement, parse, activity);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/CompositeBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/CompositeBuilder.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/CompositeBuilder.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -91,7 +91,7 @@
throw new RuntimeException("activityDescriptor is null");
}
ActivityBuilder activityBuilder = new ActivityBuilder(this, activityName);
- activityBuilder.activity.setBehaviour(activityDescriptor);
+ activityBuilder.activity.setActivityBehaviourDescriptor(activityDescriptor);
return activityBuilder;
}
@@ -104,7 +104,7 @@
throw new RuntimeException("activity is null");
}
ActivityBuilder activityBuilder = new ActivityBuilder(this, activityName);
- activityBuilder.activity.setBehaviour(activityBehaviour);
+ activityBuilder.activity.setActivityBehaviour(activityBehaviour);
return activityBuilder;
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/CompositeExceptionHandlerBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/CompositeExceptionHandlerBuilder.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/CompositeExceptionHandlerBuilder.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -53,11 +53,6 @@
return this;
}
- public CompositeExceptionHandlerBuilder listener(String expression) {
- super.addListener(expression);
- return this;
- }
-
public CompositeBuilder endExceptionHandler() {
return compositeBuilder;
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/EventBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/EventBuilder.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/EventBuilder.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -58,16 +58,6 @@
return this;
}
- public EventBuilder listener(String expression) {
- addListener(expression);
- return this;
- }
-
- public EventBuilder listener(String expression, boolean propagation) {
- addListener(expression, propagation);
- return this;
- }
-
public EventBuilder property(String name, String value) {
StringDescriptor descriptor = new StringDescriptor(name, value);
getEvent().addProperty(descriptor);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/EventExceptionHandlerBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/EventExceptionHandlerBuilder.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/EventExceptionHandlerBuilder.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -53,11 +53,6 @@
return this;
}
- public EventExceptionHandlerBuilder listener(String expression) {
- super.addListener(expression);
- return this;
- }
-
public EventBuilder endExceptionHandler() {
return eventBuilder;
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ExceptionHandlerBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ExceptionHandlerBuilder.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ExceptionHandlerBuilder.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -44,10 +44,4 @@
protected void addListener(Descriptor descriptor) {
exceptionHandler.createEventListenerReference(descriptor);
}
-
- protected void addListener(String expression) {
- exceptionHandler
- .createEventListenerReference()
- .setExpression(expression);
- }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/FlowBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/FlowBuilder.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/FlowBuilder.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -72,16 +72,6 @@
return this;
}
- public FlowBuilder listener(String expression) {
- addListener(expression);
- return this;
- }
-
- public FlowBuilder listener(String expression, boolean propagation) {
- addListener(expression, propagation);
- return this;
- }
-
public FlowBuilder property(String name, String value) {
StringDescriptor descriptor = new StringDescriptor(name, value);
transition.addProperty(descriptor);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ObservableBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ObservableBuilder.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ObservableBuilder.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -60,15 +60,6 @@
eventListenerReference.setPropagationEnabled(propagation);
}
- protected void addListener(String expression) {
- getEvent().createEventListenerReference(expression);
- }
-
- protected void addListener(String expression, boolean propagation) {
- EventListenerReference eventListenerReference = getEvent().createEventListenerReference(expression);
- eventListenerReference.setPropagationEnabled(propagation);
- }
-
protected EventImpl getEvent() {
if (event==null) {
this.event = observableElement.createEvent(eventName);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/TimerBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/TimerBuilder.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/TimerBuilder.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -92,16 +92,6 @@
return this;
}
- public TimerBuilder listener(String expression) {
- addListener(expression);
- return this;
- }
-
- public TimerBuilder listener(String expression, boolean propagation) {
- addListener(expression, propagation);
- return this;
- }
-
public CompositeBuilder endTimer() {
return compositeBuilder;
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetStartFormResourceNameCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetStartFormResourceNameCmd.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetStartFormResourceNameCmd.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -55,7 +55,7 @@
ActivityImpl activity = processDefinition.getActivity(activityName);
- ActivityBehaviour behaviour = activity.getBehaviour();
+ ActivityBehaviour behaviour = activity.getActivityBehaviour();
if (behaviour instanceof FormBehaviour) {
return ((FormBehaviour)behaviour).getFormResourceName();
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/ConverterType.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/ConverterType.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/ConverterType.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -34,7 +34,6 @@
import org.hibernate.usertype.ParameterizedType;
import org.jbpm.api.JbpmException;
import org.jbpm.pvm.internal.type.Converter;
-import org.jbpm.pvm.internal.util.ReflectUtil;
/**
* @author Tom Baeyens
@@ -82,7 +81,8 @@
for(Object key : properties.keySet()) {
String converterClassName = (String) key;
try {
- Class<?> converterClass = ReflectUtil.loadClass(null, converterClassName);
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ Class<?> converterClass = Class.forName(converterClassName, true, classLoader);
String converterName = properties.getProperty(converterClassName);
converterNames.put(converterClass, converterName);
Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/PvmNamingStrategy.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/PvmNamingStrategy.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/PvmNamingStrategy.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -1,145 +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.pvm.internal.hibernate;
-
-import org.hibernate.cfg.ImprovedNamingStrategy;
-import org.hibernate.util.StringHelper;
-import org.jbpm.internal.log.Log;
-import org.jbpm.pvm.internal.util.ReflectUtil;
-
-/**
- * @author Tom Baeyens
- */
-public class PvmNamingStrategy extends ImprovedNamingStrategy {
-
- private static final long serialVersionUID = 1L;
- private static final Log log = Log.getLog(PvmNamingStrategy.class.getName());
-
- String prefix;
-
- public PvmNamingStrategy(String prefix) {
- if (! "".equals(prefix)) {
- this.prefix = prefix;
- }
- }
-
- // TABLE NAMES //////////////////////////////////////////////////////////////
-
- public String classToTableName(String className) {
- String name = ReflectUtil.getUnqualifiedClassName(className);
- if (name.endsWith("Impl")) {
- name = name.substring(0, name.length()-4);
- }
- name = prefix+name.toUpperCase();
- if (log.isTraceEnabled()) {
- log.trace("classToTableName("+className+") ==> "+name);
- }
- return name;
- }
-
- public String tableName(String tableName) {
- if (prefix!=null) {
- return prefix+tableName;
- }
- if (log.isTraceEnabled()) {
- log.trace("tableName("+tableName+") ==> "+tableName);
- }
- return tableName;
- }
-
- public String collectionTableName(String ownerEntity, String ownerEntityTable, String associatedEntity, String associatedEntityTable, String propertyName) {
- String name = StringHelper.unqualify(propertyName);
- name = prefix+name.toUpperCase()+"_";
- if (log.isTraceEnabled()) {
- log.trace("collectionTableName("+ownerEntity+", "+ownerEntityTable+", "+associatedEntity+", "+associatedEntityTable+", "+propertyName+") ==> "+name);
- }
- return name;
- }
-
- // COLUMN NAMES /////////////////////////////////////////////////////////////
-
- public String propertyToColumnName(String propertyName) {
- String name = propertyName;
-
- name = StringHelper.unqualify(name);
- name = name.toUpperCase()+"_";
-
- if (log.isTraceEnabled()) {
- log.trace("propertyToColumnName("+propertyName+") ==> "+name);
- }
-
- return name;
- }
-
- public String logicalColumnName(String columnName, String propertyName) {
- String name = (columnName!=null ? columnName : propertyName);
- name = name.replace('.', '_');
- name = name.toUpperCase();
- if (!name.endsWith("_")) {
- name = name+"_";
- }
- if (log.isTraceEnabled()) {
- log.trace("logicalColumnName("+columnName+", "+propertyName+") ==> "+name);
- }
- return name;
- }
-
- public String columnName(String columnName) {
- String name = columnName.toUpperCase();
- if (log.isTraceEnabled()) {
- log.trace("columnName("+columnName+") ==> "+name);
- }
- return name;
- }
-
- public String foreignKeyColumnName(String propertyName, String propertyEntityName, String propertyTableName, String referencedColumnName) {
- String name = super.foreignKeyColumnName(propertyName, propertyEntityName, propertyTableName, referencedColumnName);
- if (log.isTraceEnabled()) {
- log.trace("foreignKeyColumnName("+propertyName+", "+propertyEntityName+", "+propertyTableName+", "+referencedColumnName+") ==> "+name);
- }
- return name;
- }
-
- public String logicalCollectionColumnName(String columnName, String propertyName, String referencedColumn) {
- String name = super.logicalCollectionColumnName(columnName, propertyName, referencedColumn);
- if (log.isTraceEnabled()) {
- log.trace("logicalCollectionColumnName("+columnName+", "+propertyName+", "+referencedColumn+") ==> "+name);
- }
- return name;
- }
-
- public String logicalCollectionTableName(String tableName, String ownerEntityTable, String associatedEntityTable, String propertyName) {
- String name = super.logicalCollectionTableName(tableName, ownerEntityTable, associatedEntityTable, propertyName);
- if (log.isTraceEnabled()) {
- log.trace("logicalCollectionTableName("+tableName+", "+ownerEntityTable+", "+associatedEntityTable+", "+propertyName+") ==> "+name);
- }
- return name;
- }
-
- public String joinKeyColumnName(String joinedColumn, String joinedTable) {
- String name = super.joinKeyColumnName(joinedColumn, joinedTable);
- if (log.isTraceEnabled()) {
- log.trace("joinKeyColumnName("+joinedColumn+", "+joinedTable+") ==> "+name);
- }
- return name;
- }
-}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -26,9 +26,9 @@
import java.util.List;
import java.util.Map;
-import org.jbpm.api.JbpmException;
import org.jbpm.api.activity.ActivityBehaviour;
import org.jbpm.pvm.internal.wire.Descriptor;
+import org.jbpm.pvm.internal.wire.WireContext;
/**
* @author Tom Baeyens
@@ -37,7 +37,10 @@
private static final long serialVersionUID = 1L;
- protected ObjectReference<ActivityBehaviour> behaviourReference;
+ protected ActivityBehaviour activityBehaviour;
+ protected boolean isActivityBehaviourStateful = false;
+ protected Descriptor activityBehaviourDescriptor;
+
protected List<TransitionImpl> outgoingTransitions = new ArrayList<TransitionImpl>();
protected List<TransitionImpl> incomingTransitions = new ArrayList<TransitionImpl>();
protected TransitionImpl defaultOutgoingTransition;
@@ -277,46 +280,6 @@
}
}
-
- // behaviour ////////////////////////////////////////////////////////////////
-
- /** sets the given activity as the behaviour for this activity.
- * An object reference for the given activity is created. */
- public void setBehaviour(ActivityBehaviour activityBehaviour) {
- behaviourReference = new ObjectReference<ActivityBehaviour>(activityBehaviour);
- }
-
- /** sets the activity that can be created from the given descriptor as the
- * behaviour for this activity. It is assumed that the descriptor will
- * create an {@link ActivityBehaviour}
- * An object reference for the given descriptor is created. */
- public void setBehaviour(Descriptor descriptor) {
- behaviourReference = new ObjectReference<ActivityBehaviour>(descriptor);
- }
-
- /** sets the expression behaviour for this activity. The evaluation of the
- * expression will replace the {@link ActivityBehaviour#execute(org.jbpm.pvm.Execution) Activity's execute method}.
- * An object reference for the given descriptor is created. */
- public void setBehaviour(String expression) {
- behaviourReference = new ObjectReference<ActivityBehaviour>(expression);
- }
-
- public ObjectReference<ActivityBehaviour> getBehaviourReference() {
- return behaviourReference;
- }
-
- public void setBehaviourReference(ObjectReference<ActivityBehaviour> behaviourReference) {
- this.behaviourReference = behaviourReference;
- }
-
- public ActivityBehaviour getBehaviour() {
- ActivityBehaviour behaviour = ( behaviourReference!=null ? behaviourReference.get() : null);
- if (behaviour==null) {
- throw new JbpmException("no behaviour on "+this);
- }
- return behaviour;
- }
-
/** the leaving transitions, keyed by transition name. If a transition with
* the same name occurs mutltiple times, the first one is returned.
* Leaving transitions with a null value for their name are not included
@@ -388,6 +351,22 @@
return false;
}
+ // customized getters and setters ///////////////////////////////////////////
+
+ public ActivityBehaviour getActivityBehaviour() {
+ if (activityBehaviour!=null) {
+ return activityBehaviour;
+ }
+ if (activityBehaviourDescriptor!=null) {
+ ActivityBehaviour createdBehaviour = (ActivityBehaviour) WireContext.create(activityBehaviourDescriptor);
+ if (!isActivityBehaviourStateful) {
+ activityBehaviour = createdBehaviour;
+ }
+ return createdBehaviour;
+ }
+ return null;
+ }
+
// getters and setters //////////////////////////////////////////////////////
public ObservableElementImpl getParent() {
@@ -430,4 +409,19 @@
public void setContinuation(Continuation continuation) {
this.continuation = continuation;
}
+ public void setActivityBehaviour(ActivityBehaviour activityBehaviour) {
+ this.activityBehaviour = activityBehaviour;
+ }
+ public Descriptor getActivityBehaviourDescriptor() {
+ return activityBehaviourDescriptor;
+ }
+ public void setActivityBehaviourDescriptor(Descriptor activityBehaviourDescriptor) {
+ this.activityBehaviourDescriptor = activityBehaviourDescriptor;
+ }
+ public boolean isActivityBehaviourStateful() {
+ return isActivityBehaviourStateful;
+ }
+ public void setActivityBehaviourStateful(boolean isActivityBehaviourStateful) {
+ this.isActivityBehaviourStateful = isActivityBehaviourStateful;
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventImpl.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventImpl.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -58,22 +58,16 @@
public EventListenerReference createEventListenerReference(Descriptor descriptor) {
EventListenerReference eventListenerReference = createEventListenerReference();
- eventListenerReference.setDescriptor(descriptor);
+ eventListenerReference.setEventListenerDescriptor(descriptor);
return eventListenerReference;
}
public EventListenerReference createEventListenerReference(EventListener eventListener) {
EventListenerReference eventListenerReference = createEventListenerReference();
- eventListenerReference.set(eventListener);
+ eventListenerReference.setEventListener(eventListener);
return eventListenerReference;
}
- public EventListenerReference createEventListenerReference(String expression) {
- EventListenerReference eventListenerReference = createEventListenerReference();
- eventListenerReference.setExpression(expression);
- return eventListenerReference;
- }
-
public boolean isAsync() {
return ! (continuation==Continuation.SYNCHRONOUS);
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -22,14 +22,19 @@
package org.jbpm.pvm.internal.model;
import org.jbpm.api.listener.EventListener;
+import org.jbpm.pvm.internal.wire.Descriptor;
+import org.jbpm.pvm.internal.wire.WireContext;
/**
* @author Tom Baeyens
*/
-public class EventListenerReference extends ObjectReference<EventListener> {
+public class EventListenerReference extends ProcessElementImpl {
private static final long serialVersionUID = 1L;
+ protected EventListener eventListener;
+ protected boolean isEventListenerStateful= false;
+ protected Descriptor eventListenerDescriptor;
/** does this action accept propagated events ? */
protected boolean isPropagationEnabled = false;
protected Continuation continuation = Continuation.SYNCHRONOUS;
@@ -48,10 +53,43 @@
return Continuation.SYNCHRONOUS!=continuation;
}
+ // customized getters and setters ///////////////////////////////////////////
+
+ public EventListener getEventListener() {
+ if (eventListener!=null) {
+ return eventListener;
+ }
+ if (eventListenerDescriptor!=null) {
+ EventListener createdEventListener = (EventListener) WireContext.create(eventListenerDescriptor);
+ if (!isEventListenerStateful) {
+ eventListener = createdEventListener;
+ }
+ return createdEventListener;
+ }
+ return null;
+ }
+
+ // getters and setters //////////////////////////////////////////////////////
+
public Continuation getContinuation() {
return continuation;
}
public void setContinuation(Continuation continuation) {
this.continuation = continuation;
}
+ public void setEventListener(EventListener eventListener) {
+ this.eventListener = eventListener;
+ }
+ public boolean isEventListenerStateful() {
+ return isEventListenerStateful;
+ }
+ public void setEventListenerStateful(boolean isEventListenerStateful) {
+ this.isEventListenerStateful = isEventListenerStateful;
+ }
+ public Descriptor getEventListenerDescriptor() {
+ return eventListenerDescriptor;
+ }
+ public void setEventListenerDescriptor(Descriptor eventListenerDescriptor) {
+ this.eventListenerDescriptor = eventListenerDescriptor;
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExceptionHandlerImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExceptionHandlerImpl.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExceptionHandlerImpl.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -49,51 +49,33 @@
protected String exceptionClassName;
protected boolean isTransactional;
protected boolean isRethrowMasked;
- protected List<ObjectReference<EventListener>> eventListenerReferences;
+ protected List<EventListenerReference> eventListenerReferences;
protected String transitionName; // mutually exclusive with activityName
protected String activityName; // mutually exclusive with transitionName
// construction methods /////////////////////////////////////////////////////
- public ObjectReference<EventListener> createEventListenerReference(EventListener eventListener) {
- ObjectReference<EventListener> eventListenerReference = createEventListenerReference();
- eventListenerReference.set(eventListener);
+ public EventListenerReference createEventListenerReference(EventListener eventListener) {
+ EventListenerReference eventListenerReference = createEventListenerReference();
+ eventListenerReference.setEventListener(eventListener);
return eventListenerReference;
}
- public ObjectReference<EventListener> createEventListenerReference(Descriptor descriptor) {
- ObjectReference<EventListener> eventListenerReference = createEventListenerReference();
- eventListenerReference.setDescriptor(descriptor);
+ public EventListenerReference createEventListenerReference(Descriptor descriptor) {
+ EventListenerReference eventListenerReference = createEventListenerReference();
+ eventListenerReference.setEventListenerDescriptor(descriptor);
return eventListenerReference;
}
- public ObjectReference<EventListener> createActivityReference(String expression) {
- ObjectReference<EventListener> eventListenerReference = createEventListenerReference();
- eventListenerReference.setExpression(expression);
- return eventListenerReference;
- }
-
- public ObjectReference<EventListener> createEventListenerReference() {
+ public EventListenerReference createEventListenerReference() {
if (eventListenerReferences==null) {
- eventListenerReferences = new ArrayList<ObjectReference<EventListener>>();
+ eventListenerReferences = new ArrayList<EventListenerReference>();
}
- ObjectReference<EventListener> actionObjectReference = new ObjectReference<EventListener>();
- eventListenerReferences.add(actionObjectReference);
- return actionObjectReference;
+ EventListenerReference eventListenerReference = new EventListenerReference();
+ eventListenerReferences.add(eventListenerReference);
+ return eventListenerReference;
}
- public List<EventListener> getEventListeners() {
- if (eventListenerReferences==null) {
- return null;
- }
- List<EventListener> eventListeners = new ArrayList<EventListener>(eventListenerReferences.size());
- for (ObjectReference<EventListener> eventListenerReference : eventListenerReferences) {
- EventListener eventListener = eventListenerReference.get();
- eventListeners.add(eventListener);
- }
- return eventListeners;
- }
-
// runtime behaviour methods ////////////////////////////////////////////////
public boolean matches(Exception exception) {
@@ -146,9 +128,9 @@
void executeHandler(ExecutionImpl execution, Exception exception) {
if (eventListenerReferences!=null) {
- for (ObjectReference<EventListener> eventListenerReference: eventListenerReferences) {
+ for (EventListenerReference eventListenerReference: eventListenerReferences) {
- EventListener eventListener = eventListenerReference.get();
+ EventListener eventListener = eventListenerReference.getEventListener();
log.trace("executing "+eventListener+" for "+this);
try {
@@ -265,10 +247,10 @@
public void setRethrowMasked(boolean isRethrowMasked) {
this.isRethrowMasked = isRethrowMasked;
}
- public List<ObjectReference<EventListener>> getEventListenerReferences() {
+ public List<EventListenerReference> getEventListenerReferences() {
return eventListenerReferences;
}
- public void setEventListenerReferences(List<ObjectReference<EventListener>> activityReferences) {
- this.eventListenerReferences = activityReferences;
+ public void setEventListenerReferences(List<EventListenerReference> eventListenerReferences) {
+ this.eventListenerReferences = eventListenerReferences;
}
}
Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ObjectReference.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ObjectReference.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ObjectReference.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -1,117 +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.pvm.internal.model;
-
-import org.jbpm.pvm.internal.env.EnvironmentImpl;
-import org.jbpm.pvm.internal.wire.Descriptor;
-import org.jbpm.pvm.internal.wire.WireContext;
-import org.jbpm.pvm.internal.wire.WireDefinition;
-
-public class ObjectReference<T> extends ProcessElementImpl {
-
- private static final long serialVersionUID = 1L;
- // private static final Log log = Log.getLog(ObjectReference.class.getName());
-
- protected String expression;
- protected String expressionLanguage;
- protected Descriptor descriptor;
- protected T object;
-
- public ObjectReference() {
- }
-
- public ObjectReference(String expression) {
- this.expression = expression;
- }
-
- public ObjectReference(Descriptor descriptor) {
- this.descriptor = descriptor;
- }
-
- public ObjectReference(T object) {
- this.object = object;
- }
-
- public String toString() {
- if (object!=null) {
- return object.toString();
- }
- if (expression!=null) {
- return expression;
- }
- if (descriptor!=null) {
- return descriptor.toString();
- }
- return null;
- }
-
- public T get() {
- if (object!=null) {
- return object;
- }
- if (expression!=null) {
- return resolveValueExpression();
- }
- if (descriptor!=null) {
- return constructFromDescriptor();
- }
- return null;
- }
-
- public void set(T object) {
- this.object = object;
- }
-
- // object builders //////////////////////////////////////////////////////////
-
- protected T constructFromDescriptor() {
- return (T) WireContext.create(descriptor);
- }
-
- protected T resolveValueExpression() {
- EnvironmentImpl environment = EnvironmentImpl.getCurrent();
- return null;
- }
-
- protected T resolveMethodExpression(EnvironmentImpl environment) {
- return null;
- }
-
- public void setDescriptor(Descriptor descriptor) {
- this.descriptor = descriptor;
- }
- public Descriptor getDescriptor() {
- return descriptor;
- }
- public void setExpression(String expression) {
- this.expression = expression;
- }
- public T getObject() {
- return object;
- }
- public void setObject(T object) {
- this.object = object;
- }
- public String getExpression() {
- return expression;
- }
-}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/ExecuteActivity.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/ExecuteActivity.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/ExecuteActivity.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -51,7 +51,7 @@
}
}
- ActivityBehaviour activityBehaviour = activity.getBehaviour();
+ ActivityBehaviour activityBehaviour = activity.getActivityBehaviour();
try {
execution.setPropagation(Propagation.UNSPECIFIED);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/ExecuteEventListener.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/ExecuteEventListener.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/ExecuteEventListener.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -74,7 +74,7 @@
EventListenerReference eventListenerReference = eventListenerReferences.get(eventListenerIndex);
ObservableElement eventSource = execution.getEventSource();
if ((eventSource == observableElement) || (eventListenerReference.isPropagationEnabled())) {
- EventListener eventListener = eventListenerReference.get();
+ EventListener eventListener = eventListenerReference.getEventListener();
log.trace("executing " + eventListener + " for " + event);
try {
// TODO can/should this invocation be unified with the exception handler invocation of the event notification method?
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/Signal.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/Signal.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/Signal.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -61,7 +61,7 @@
log.debug("signalling "+activity+", signalName="+signalName);
}
- ExternalActivityBehaviour externalActivityBehaviour = (ExternalActivityBehaviour) activity.getBehaviour();
+ ExternalActivityBehaviour externalActivityBehaviour = (ExternalActivityBehaviour) activity.getActivityBehaviour();
try {
execution.setPropagation(Propagation.UNSPECIFIED);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/ProcessDeployer.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/ProcessDeployer.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/ProcessDeployer.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -62,38 +62,40 @@
parse.setInputStream(inputStream);
parse.execute();
List<ProcessDefinitionImpl> processDefinitions = (List<ProcessDefinitionImpl>) parse.getDocumentObject();
- for (ProcessDefinitionImpl processDefinition: processDefinitions) {
- if ((processDefinition != null) && (processDefinition.getName() != null)) {
- String processDefinitionName = processDefinition.getName();
-
- processDefinition.setSuspended(deployment.isSuspended());
-
- String imageResourceName = resourceName.substring(0, resourceName.lastIndexOf(extension))+".png";
- if (deployment.getResourceNames().contains(imageResourceName)) {
- processDefinition.setImageResourceName(imageResourceName);
- }
+ if (processDefinitions!=null) {
+ for (ProcessDefinitionImpl processDefinition : processDefinitions) {
+ if ((processDefinition != null) && (processDefinition.getName() != null)) {
+ String processDefinitionName = processDefinition.getName();
- processDefinition.setDeploymentDbid(deployment.getDbid());
+ processDefinition.setSuspended(deployment.isSuspended());
- if (deployment.hasObjectProperties(processDefinitionName)) {
- String key = deployment.getProcessDefinitionKey(processDefinitionName);
- String id = deployment.getProcessDefinitionId(processDefinitionName);
- Long version = deployment.getProcessDefinitionVersion(processDefinitionName);
- processDefinition.setId(id);
- processDefinition.setKey(key);
- processDefinition.setVersion(version.intValue());
+ String imageResourceName = resourceName.substring(0, resourceName.lastIndexOf(extension)) + ".png";
+ if (deployment.getResourceNames().contains(imageResourceName)) {
+ processDefinition.setImageResourceName(imageResourceName);
+ }
- } else {
- checkKey(processDefinition, deployment);
- checkVersion(processDefinition, deployment);
- checkId(processDefinition, deployment);
+ processDefinition.setDeploymentDbid(deployment.getDbid());
- deployment.setProcessDefinitionId(processDefinitionName, processDefinition.getId());
- deployment.setProcessDefinitionKey(processDefinitionName, processDefinition.getKey());
- deployment.setProcessDefinitionVersion(processDefinitionName, new Long(processDefinition.getVersion()));
+ if (deployment.hasObjectProperties(processDefinitionName)) {
+ String key = deployment.getProcessDefinitionKey(processDefinitionName);
+ String id = deployment.getProcessDefinitionId(processDefinitionName);
+ Long version = deployment.getProcessDefinitionVersion(processDefinitionName);
+ processDefinition.setId(id);
+ processDefinition.setKey(key);
+ processDefinition.setVersion(version.intValue());
+
+ } else {
+ checkKey(processDefinition, deployment);
+ checkVersion(processDefinition, deployment);
+ checkId(processDefinition, deployment);
+
+ deployment.setProcessDefinitionId(processDefinitionName, processDefinition.getId());
+ deployment.setProcessDefinitionKey(processDefinitionName, processDefinition.getKey());
+ deployment.setProcessDefinitionVersion(processDefinitionName, new Long(processDefinition.getVersion()));
+ }
+
+ deployment.addObject(processDefinitionName, processDefinition);
}
-
- deployment.addObject(processDefinitionName, processDefinition);
}
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/stream/ResourceStreamInput.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/stream/ResourceStreamInput.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/stream/ResourceStreamInput.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -24,7 +24,6 @@
import java.io.InputStream;
import org.jbpm.api.JbpmException;
-import org.jbpm.pvm.internal.util.ReflectUtil;
/**
* @author Tom Baeyens
@@ -50,7 +49,8 @@
}
public InputStream openStream() {
- InputStream stream = ReflectUtil.getResourceAsStream(classLoader, resource);
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ InputStream stream = classLoader.getResourceAsStream(resource);
if (stream==null) {
throw new JbpmException("resource "+resource+" does not exist");
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/LifeCycleParser.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/LifeCycleParser.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/LifeCycleParser.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -104,6 +104,6 @@
}
String stateName = element.getAttribute("name");
ActivityImpl state = lifeCycleProcess.createActivity(stateName);
- state.setBehaviour(new LifeCycleState());
+ state.setActivityBehaviour(new LifeCycleState());
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/ReflectUtil.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/ReflectUtil.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/ReflectUtil.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -1,147 +1,36 @@
package org.jbpm.pvm.internal.util;
-import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.net.URL;
import java.util.Arrays;
-import java.util.Enumeration;
import java.util.List;
import org.jbpm.api.JbpmException;
import org.jbpm.internal.log.Log;
-import org.jbpm.pvm.internal.env.EnvironmentImpl;
import org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor;
public abstract class ReflectUtil {
private static Log log = Log.getLog(ReflectUtil.class.getName());
-
- static ClassLoader resolveClassLoader(ClassLoader classLoader) {
- // 1) if the user provided a classloader through the API, use that one
- if (classLoader!=null) {
- log.trace("using provided classloader");
- return classLoader;
- }
-
- // 2) if the user provided a classloader through the environment, use that one
- EnvironmentImpl environment = EnvironmentImpl.getCurrent();
- if (environment!=null) {
- classLoader = environment.getClassLoader();
- if (classLoader!=null) {
- log.trace("using environment classloader");
- return classLoader;
- }
- }
-
- // 3) otherwise, use the current thread's context classloader
- log.trace("using context classloader");
- return Thread.currentThread().getContextClassLoader();
- }
-
- public static Class<?> loadClass(ClassLoader classLoader, String className) {
- if (classLoader!=null) {
- try {
- return classLoader.loadClass(className);
- } catch (ClassNotFoundException e) {
- log.trace("couldn't load class "+className+" with given classloader "+classLoader);
- }
- }
- try {
- return Thread.currentThread().getContextClassLoader().loadClass(className);
- } catch (ClassNotFoundException e) {
- log.trace("couldn't load class "+className+" with context classloader "+classLoader);
- }
- try {
- return ReflectUtil.class.getClassLoader().loadClass(className);
- } catch (ClassNotFoundException e) {
- log.trace("couldn't load class "+className+" with pvm lib classloader "+classLoader);
- }
- throw new JbpmException("couldn't load class "+className);
- }
- public static InputStream getResourceAsStream(ClassLoader classLoader, String resource) {
- classLoader = resolveClassLoader(classLoader);
- log.trace("getting resource as stream "+resource);
- return classLoader.getResourceAsStream(resource);
+ /** searches for the field in the given class and in its super classes */
+ public static Field findField(Class<?> clazz, String fieldName) {
+ return findField(clazz, fieldName, clazz);
}
-
- public static Enumeration<URL> getResources(ClassLoader classLoader, String resource) {
- classLoader = resolveClassLoader(classLoader);
- try {
- log.trace("getting resources "+resource);
- return classLoader.getResources(resource);
- } catch (Exception e) {
- throw new JbpmException("couldn't get resources "+resource, e);
- }
- }
-
- public static URL getResource(ClassLoader classLoader, String resource) {
- classLoader = resolveClassLoader(classLoader);
- try {
- log.trace("getting resource "+resource);
- return classLoader.getResource(resource);
- } catch (Exception e) {
- throw new JbpmException("couldn't get resources "+resource, e);
- }
- }
-
- public static Object instantiate(ClassLoader classLoader, String className) {
- Object newObject;
- try {
- classLoader = resolveClassLoader(classLoader);
- Class<?> clazz = loadClass(classLoader, className);
- log.trace("instantiating "+className);
- newObject = clazz.newInstance();
- } catch (Exception e) {
- throw new JbpmException("couldn't instantiate "+className, e);
- }
- return newObject;
- }
- public static Class<?>[] loadClasses(ClassLoader classLoader, List<String> constructorArgTypeNames) {
- if (constructorArgTypeNames==null) return null;
- Class<?>[] classes = new Class[constructorArgTypeNames.size()];
- for (int i=0; i<constructorArgTypeNames.size(); i++) {
- classLoader = resolveClassLoader(classLoader);
- classes[i] = loadClass(classLoader, constructorArgTypeNames.get(i));
- }
- return classes;
- }
-
- public static <T> Constructor<T> getConstructor(Class<T> clazz, Class<?>[] parameterTypes) {
- Constructor<T> constructor = null;
- try {
- constructor = clazz.getDeclaredConstructor(parameterTypes);
-
- if (log.isTraceEnabled()) log.trace("found constructor "+clazz.getName()+"("+Arrays.toString(parameterTypes)+")");
-
- } catch (SecurityException e) {
- throw new JbpmException("wasn't allowed to get constructor '"+clazz.getName()+"("+getParameterTypesText(parameterTypes)+")'", e);
- } catch (NoSuchMethodException e) {
- throw new JbpmException("couldn't find constructor '"+clazz.getName()+"("+getParameterTypesText(parameterTypes)+")'", e);
- }
-
- return constructor;
- }
-
- public static Field getField(Class<?> clazz, String fieldName) {
- return getField(clazz, fieldName, clazz);
- }
-
- private static Field getField(Class<?> clazz, String fieldName, Class<?> original) {
+ private static Field findField(Class<?> clazz, String fieldName, Class<?> original) {
Field field = null;
try {
field = clazz.getDeclaredField(fieldName);
- log.trace("found field "+fieldName+" in "+clazz.getName());
+ if (log.isTraceEnabled()) log.trace("found field "+fieldName+" in "+clazz.getName());
} catch (SecurityException e) {
throw new JbpmException("wasn't allowed to get field '"+clazz.getName()+"."+fieldName+"'", e);
} catch (NoSuchFieldException e) {
if (clazz.getSuperclass()!=null) {
- return getField(clazz.getSuperclass(), fieldName, original);
+ return findField(clazz.getSuperclass(), fieldName, original);
} else {
throw new JbpmException("couldn't find field '"+original.getName()+"."+fieldName+"'", e);
}
@@ -150,6 +39,7 @@
return field;
}
+ /** searches for the method in the given class and in its super classes */
public static Method getMethod(Class<?> clazz, String methodName, Class<?>[] parameterTypes) {
return getMethod(clazz, methodName, parameterTypes, clazz);
}
@@ -160,8 +50,7 @@
try {
method = clazz.getDeclaredMethod(methodName, parameterTypes);
- if (log.isTraceEnabled())
- log.trace("found method "+clazz.getName()+"."+methodName+"("+Arrays.toString(parameterTypes)+")");
+ if (log.isTraceEnabled()) log.trace("found method "+clazz.getName()+"."+methodName+"("+Arrays.toString(parameterTypes)+")");
} catch (SecurityException e) {
throw new JbpmException("wasn't allowed to get method '"+clazz.getName()+"."+methodName+"("+getParameterTypesText(parameterTypes)+")'", e);
@@ -206,22 +95,20 @@
throw new IllegalArgumentException("can't create new instance without clazz or constructor");
}
- String className = null;
try {
- log.trace("creating new instance for class '"+className+"' with args "+Arrays.toString(args));
+ if (log.isTraceEnabled()) log.trace("creating new instance for class '"+clazz.getName()+"' with args "+Arrays.toString(args));
if (constructor==null) {
- log.trace("getting default constructor");
+ if (log.isTraceEnabled()) log.trace("getting default constructor");
constructor = clazz.getConstructor((Class[])null);
}
- className = constructor.getDeclaringClass().getName();
if (!constructor.isAccessible()) {
- log.trace("making constructor accessible");
+ if (log.isTraceEnabled()) log.trace("making constructor accessible");
constructor.setAccessible(true);
}
return constructor.newInstance(args);
} catch (Throwable t) {
- throw new JbpmException("couldn't construct new '"+className+"' with args "+Arrays.toString(args), t);
+ throw new JbpmException("couldn't construct new '"+clazz.getName()+"' with args "+Arrays.toString(args), t);
}
}
@@ -231,7 +118,7 @@
}
try {
Object value = field.get(object);
- log.trace("got value '"+value+"' from field '"+field.getName()+"'");
+ if (log.isTraceEnabled()) log.trace("got value '"+value+"' from field '"+field.getName()+"'");
return value;
} catch (Exception e) {
throw new JbpmException("couldn't get '"+field.getName()+"'", e);
@@ -243,9 +130,9 @@
throw new NullPointerException("field is null");
}
try {
- log.trace("setting field '"+field.getName()+"' to value '"+value+"'");
+ if (log.isTraceEnabled()) log.trace("setting field '"+field.getName()+"' to value '"+value+"'");
if (!field.isAccessible()) {
- log.trace("making field accessible");
+ if (log.isTraceEnabled()) log.trace("making field accessible");
field.setAccessible(true);
}
field.set(object, value);
@@ -259,7 +146,7 @@
throw new JbpmException("method is null");
}
try {
- log.trace("invoking '"+method.getName()+"' on '"+target+"' with "+Arrays.toString(args));
+ if (log.isTraceEnabled()) log.trace("invoking '"+method.getName()+"' on '"+target+"' with "+Arrays.toString(args));
if (!method.isAccessible()) {
log.trace("making method accessible");
method.setAccessible(true);
@@ -274,7 +161,7 @@
}
public static Method findMethod(Class<?> clazz, String methodName, List<ArgDescriptor> argDescriptors, Object[] args) {
- log.trace("searching for method "+methodName+" in "+clazz.getName());
+ if (log.isTraceEnabled()) log.trace("searching for method "+methodName+" in "+clazz.getName());
Method[] candidates = clazz.getDeclaredMethods();
for (int i=0; i<candidates.length; i++) {
Method candidate = candidates[i];
@@ -283,7 +170,7 @@
) {
if (log.isTraceEnabled()) {
- log.trace("found matching method "+clazz.getName()+"."+methodName);
+ if (log.isTraceEnabled()) log.trace("found matching method "+clazz.getName()+"."+methodName);
}
return candidate;
Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/JbpmClassNotFoundException.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/JbpmClassNotFoundException.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/JbpmClassNotFoundException.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -0,0 +1,40 @@
+/*
+ * 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.pvm.internal.wire;
+
+import org.jbpm.api.JbpmException;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class JbpmClassNotFoundException extends JbpmException {
+
+ private static final long serialVersionUID = 1L;
+
+ public JbpmClassNotFoundException(String msg, Throwable cause) {
+ super(msg, cause);
+ }
+ public JbpmClassNotFoundException(Throwable cause) {
+ super(cause);
+ }
+}
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/JbpmClassNotFoundException.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/WireContext.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/WireContext.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/WireContext.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -34,7 +34,6 @@
import org.jbpm.pvm.internal.cfg.ProcessEngineImpl;
import org.jbpm.pvm.internal.env.Context;
import org.jbpm.pvm.internal.env.EnvironmentImpl;
-import org.jbpm.pvm.internal.env.EnvironmentFactory;
import org.jbpm.pvm.internal.model.ProcessElementImpl;
import org.jbpm.pvm.internal.util.Closable;
import org.jbpm.pvm.internal.util.DefaultObservable;
@@ -202,7 +201,6 @@
// member fields ////////////////////////////////////////////////////////////
protected String name = "wire-context";
- protected transient ClassLoader classLoader;
protected WireDefinition wireDefinition;
/** objects that are being instantiated or constructed */
@@ -233,7 +231,6 @@
public WireContext(WireDefinition wireDefinition, String name) {
this.wireDefinition = wireDefinition;
this.name = name;
- this.classLoader = (wireDefinition!=null ? wireDefinition.getClassLoader() : null);
create();
}
@@ -249,7 +246,6 @@
public WireContext(WireDefinition wireDefinition, String name, boolean delayCreate) {
this.wireDefinition = wireDefinition;
this.name = name;
- this.classLoader = (wireDefinition!=null ? wireDefinition.getClassLoader() : null);
if (! delayCreate) {
create();
@@ -669,21 +665,6 @@
) ;
}
- /** the class loader to use to create objects or if none was explicitely set in this wire context,
- * the default context class loader for the current thread. */
- public ClassLoader getClassLoader() {
- // if there is a specific classloader specified
- if (classLoader!=null) {
- return classLoader;
- }
- // otherwise, use the current environment classloader
- return Thread.currentThread().getContextClassLoader();
- }
-
- public boolean hasClassLoader() {
- return classLoader!=null;
- }
-
// search by class //////////////////////////////////////////////////////////
/** searches for the first descriptor that defines an object of the given type.
@@ -730,9 +711,6 @@
public String getName() {
return name;
}
- public void setClassLoader(ClassLoader classLoader) {
- this.classLoader = classLoader;
- }
public WireDefinition getWireDefinition() {
return wireDefinition;
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/WireDefinition.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/WireDefinition.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/WireDefinition.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -44,7 +44,6 @@
private static final long serialVersionUID = 1L;
// static Log log = Log.getLog(WireDefinition.class.getName());
- transient ClassLoader classLoader;
/** maps object names to {@link Descriptor}s */
Map<String, Descriptor> descriptors;
Map<Class<?>, String> descriptorNames;
@@ -189,15 +188,6 @@
}
}
- public ClassLoader getClassLoader() {
- // if there is a specific classloader specified
- if (classLoader!=null) {
- return classLoader;
- }
- // otherwise, use the current environment classloader
- return Thread.currentThread().getContextClassLoader();
- }
-
public void addWireDefinition(WireDefinition wireDefinition) {
if ( (wireDefinition!=null)
&& (wireDefinition.getDescriptors()!=null)
@@ -223,7 +213,4 @@
public void setDescriptors(Map<String, Descriptor> descriptors) {
this.descriptors = descriptors;
}
- public void setClassLoader(ClassLoader classLoader) {
- this.classLoader = classLoader;
- }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/AbstractCollectionBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/AbstractCollectionBinding.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/AbstractCollectionBinding.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -53,14 +53,15 @@
}
try {
- Class<?> collectionClass = ReflectUtil.loadClass(parse.getClassLoader(), className);
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ Class<?> collectionClass = Class.forName(className, true, classLoader);
if (collectionInterface.isAssignableFrom(collectionClass)) {
return true;
} else {
parse.addProblem("class "+ className+" is not a "+collectionInterface.getName());
}
- } catch (JbpmException e) {
+ } catch (Exception e) {
parse.addProblem("class "+className+" could not be found");
}
return false;
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/HibernateConfigurationBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/HibernateConfigurationBinding.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/HibernateConfigurationBinding.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -162,7 +162,9 @@
if (configElement.hasAttribute("resource")) {
String resource = configElement.getAttribute("resource");
- streamSource = new ResourceStreamInput(resource, parse.getClassLoader());
+
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ streamSource = new ResourceStreamInput(resource, classLoader);
}
if (configElement.hasAttribute("url")) {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ScriptManagerBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ScriptManagerBinding.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ScriptManagerBinding.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -79,7 +79,8 @@
&& (factoryClassName!=null)
) {
try {
- Class<?> factoryClass = ReflectUtil.loadClass(parse.getClassLoader(), factoryClassName);
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ Class<?> factoryClass = Class.forName(factoryClassName, true, classLoader);
ScriptEngineFactory scriptEngineFactory = (ScriptEngineFactory) factoryClass.newInstance();
scriptEngineManager.registerEngineName(languageName, scriptEngineFactory);
} catch (Exception e) {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/TypesBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/TypesBinding.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/TypesBinding.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -71,7 +71,8 @@
if (element.hasAttribute("resource")) {
String resource = element.getAttribute("resource");
- streamSource = new ResourceStreamInput(resource, parse.getClassLoader());
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ streamSource = new ResourceStreamInput(resource, classLoader);
parser.importStream(streamSource, element, parse);
}
@@ -158,9 +159,9 @@
Converter converter = null;
if (element.hasAttribute("converter")) {
String converterClassName = element.getAttribute("converter");
- ClassLoader classLoader = parse.getClassLoader();
try {
- Class<?> converterClass = ReflectUtil.loadClass(classLoader, converterClassName);
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ Class<?> converterClass = Class.forName(converterClassName, true, classLoader);
converter = (Converter) converterClass.newInstance();
} catch (Exception e) {
parse.addProblem("couldn't instantiate converter "+converterClassName, element);
@@ -185,9 +186,9 @@
Class<?> variableClass = null;
if (element.hasAttribute("variable-class")) {
String variableClassName = element.getAttribute("variable-class");
- ClassLoader classLoader = parse.getClassLoader();
try {
- variableClass = ReflectUtil.loadClass(classLoader, variableClassName);
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ variableClass = Class.forName(variableClassName, true, classLoader);
} catch (Exception e) {
parse.addProblem("couldn't instantiate variable-class "+variableClassName, e);
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ClassDescriptor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ClassDescriptor.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ClassDescriptor.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -1,7 +1,5 @@
package org.jbpm.pvm.internal.wire.descriptor;
-import org.jbpm.api.JbpmException;
-import org.jbpm.pvm.internal.util.ReflectUtil;
import org.jbpm.pvm.internal.wire.WireContext;
import org.jbpm.pvm.internal.wire.WireException;
@@ -22,10 +20,10 @@
* @throws WireException if the class could not be loaded.
*/
public Object construct(WireContext wireContext) {
- ClassLoader classLoader = wireContext.getClassLoader();
try {
- return ReflectUtil.loadClass(classLoader, text);
- } catch (JbpmException e) {
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ return Class.forName(text, true, classLoader);
+ } catch (Exception e) {
Throwable cause = (e.getCause()!=null ? e.getCause() : e);
throw new WireException("couldn't load class '"+text+"': "+cause.getMessage(), cause);
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ClassLoaderDescriptor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ClassLoaderDescriptor.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ClassLoaderDescriptor.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -33,7 +33,7 @@
private static final long serialVersionUID = 1L;
public Object construct(WireContext wireContext) {
- return wireContext.getClassLoader();
+ return Thread.currentThread().getContextClassLoader();
}
public Class<?> getType(WireDefinition wireDefinition) {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/CollectionDescriptor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/CollectionDescriptor.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/CollectionDescriptor.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -38,8 +38,8 @@
Object object = null;
try {
// instantiate
- ClassLoader classLoader = wireContext.getClassLoader();
- Class<?> clazz = ReflectUtil.loadClass(classLoader, className);
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ Class<?> clazz = Class.forName(className, true, classLoader);
object = clazz.newInstance();
if (isSynchronized) {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/HibernateConfigurationDescriptor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/HibernateConfigurationDescriptor.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/HibernateConfigurationDescriptor.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -55,10 +55,14 @@
// instantiation of the configuration
Configuration configuration = null;
if (className!=null) {
- ClassLoader classLoader = wireContext.getClassLoader();
- log.trace("instantiating hibernate configuration class "+className);
- Class<?> configurationClass = ReflectUtil.loadClass(classLoader, className);
- configuration = (Configuration) ReflectUtil.newInstance(configurationClass);
+ try {
+ log.trace("instantiating hibernate configuration class "+className);
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ Class<?> configurationClass = Class.forName(className, true, classLoader);
+ configuration = (Configuration) ReflectUtil.newInstance(configurationClass);
+ } catch (Exception e) {
+ throw new JbpmException("couldn't instantiate hibernate configuration class "+className, e);
+ }
} else {
log.trace("instantiating default hibernate configuration");
configuration = new Configuration();
@@ -91,8 +95,9 @@
public Class<?> getType(WireDefinition wireDefinition) {
if (className!=null) {
try {
- return ReflectUtil.loadClass(wireDefinition.getClassLoader(), className);
- } catch (JbpmException e) {
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ return Class.forName(className, true, classLoader);
+ } catch (Exception e) {
throw new WireException("couldn't create hibernate configuration '"+className+"': "+e.getMessage(), e.getCause());
}
}
@@ -193,8 +198,9 @@
this.resource = resource;
}
public void apply(Object target, WireContext wireContext) {
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
Configuration configuration = (Configuration) target;
- configuration.addResource(resource, wireContext.getClassLoader());
+ configuration.addResource(resource, classLoader);
}
public String toString() {
return "adding mapping resource "+resource+" to hibernate configuration";
@@ -225,7 +231,8 @@
public void apply(Object target, WireContext wireContext) {
Configuration configuration = (Configuration) target;
try {
- Class<?> persistentClass = wireContext.getClassLoader().loadClass(className);
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ Class<?> persistentClass = Class.forName(className, true, classLoader);
configuration.addClass(persistentClass);
} catch (Exception e) {
throw new JbpmException("couldn't add mapping for class "+className, e);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ObjectDescriptor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ObjectDescriptor.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ObjectDescriptor.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -14,6 +14,7 @@
import org.jbpm.pvm.internal.script.ScriptManager;
import org.jbpm.pvm.internal.util.ReflectUtil;
import org.jbpm.pvm.internal.wire.Descriptor;
+import org.jbpm.pvm.internal.wire.JbpmClassNotFoundException;
import org.jbpm.pvm.internal.wire.WireContext;
import org.jbpm.pvm.internal.wire.WireDefinition;
import org.jbpm.pvm.internal.wire.WireException;
@@ -139,10 +140,10 @@
if (className!=null) {
try {
- ClassLoader classLoader = wireContext.getClassLoader();
- clazz = ReflectUtil.loadClass(classLoader, className);
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ clazz = Class.forName(className, true, classLoader);
} catch (Exception e) {
- throw new WireException("couldn't create object"+(name!=null ? " '"+name+"'" : "")+": "+e.getMessage(), e);
+ throw new JbpmClassNotFoundException("couldn't load class "+className, e);
}
if (methodName==null) {
@@ -236,9 +237,10 @@
public Class<?> getType(WireDefinition wireDefinition) {
if (className!=null) {
try {
- return ReflectUtil.loadClass(wireDefinition.getClassLoader(), className);
- } catch (JbpmException e) {
- throw new WireException("couldn't get type of '"+(name!=null ? name : className)+"': "+e.getMessage(), e.getCause());
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ return Class.forName(className, true, classLoader);
+ } catch (Exception e) {
+ throw new WireException("couldn't load class '"+className+"'", e);
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/PropertiesDescriptor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/PropertiesDescriptor.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/PropertiesDescriptor.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -67,7 +67,8 @@
if (resource!=null) {
description = "resource "+resource;
- InputStream inputStream = wireContext.getClassLoader().getResourceAsStream(resource);
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ InputStream inputStream = classLoader.getResourceAsStream(resource);
if (inputStream==null) {
throw new RuntimeException("resource "+resource+" doesn't exist");
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ReferenceDescriptor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ReferenceDescriptor.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/ReferenceDescriptor.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -37,7 +37,8 @@
return wireContext.get(text, isDelayedInitializationAllowed());
} else if (type!=null) {
try {
- Class<?> clazz = wireContext.getClassLoader().loadClass(type);
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ Class<?> clazz = Class.forName(type, true, classLoader);
return wireContext.get(clazz);
} catch (Exception e) {
throw new JbpmException("couldn't load "+type, e);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/operation/FieldOperation.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/operation/FieldOperation.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/operation/FieldOperation.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -35,7 +35,7 @@
synchronized(this) {
if (field==null) {
Class<?> clazz = target.getClass();
- field = ReflectUtil.getField(clazz, fieldName);
+ field = ReflectUtil.findField(clazz, fieldName);
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/BindingParser.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/BindingParser.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/BindingParser.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -24,7 +24,6 @@
import java.util.List;
import org.jbpm.internal.log.Log;
-import org.jbpm.pvm.internal.util.ReflectUtil;
import org.jbpm.pvm.internal.util.XmlUtil;
import org.jbpm.pvm.internal.xml.Binding;
import org.jbpm.pvm.internal.xml.Bindings;
@@ -46,7 +45,8 @@
Binding binding = null;
if (bindingClassName!=null) {
try {
- Class<?> bindingClass = ReflectUtil.loadClass(classLoader, bindingClassName);
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ Class<?> bindingClass = Class.forName(bindingClassName, true, classLoader);
binding = (Binding) bindingClass.newInstance();
} catch (Exception e) {
log.trace("couldn't instantiate binding "+bindingClassName);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/WireParser.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/WireParser.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/WireParser.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -4,8 +4,8 @@
import java.util.Enumeration;
import java.util.List;
+import org.jbpm.api.JbpmException;
import org.jbpm.internal.log.Log;
-import org.jbpm.pvm.internal.util.ReflectUtil;
import org.jbpm.pvm.internal.util.XmlUtil;
import org.jbpm.pvm.internal.wire.Descriptor;
import org.jbpm.pvm.internal.wire.WireContext;
@@ -193,7 +193,6 @@
if (wireDefinition==null) {
wireDefinition = new WireDefinition();
}
- wireDefinition.setClassLoader(classLoader);
parse.pushObject(wireDefinition);
try {
@@ -271,7 +270,13 @@
BindingParser bindingParser = new BindingParser();
for (String wireResource: DEFAULT_WIRE_BINDING_RESOURCES) {
- Enumeration<URL> resourceUrls = ReflectUtil.getResources(null, wireResource);
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ Enumeration<URL> resourceUrls;
+ try {
+ resourceUrls = classLoader.getResources(wireResource);
+ } catch (Exception e) {
+ throw new JbpmException("couldn't get resource urls for "+wireResource, e);
+ }
if (resourceUrls.hasMoreElements()) {
while (resourceUrls.hasMoreElements()) {
URL resourceUrl = resourceUrls.nextElement();
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parse.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parse.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parse.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -52,7 +52,6 @@
protected Parser parser;
- protected ClassLoader classLoader;
protected StreamInput streamInput;
protected InputStream inputStream;
protected InputSource inputSource;
@@ -87,15 +86,9 @@
return this;
}
- /** specify the classLoader to be used for resource input
- * (this is optional) */
- public Parse setClassLoader(ClassLoader classLoader) {
- this.classLoader = classLoader;
- return this;
- }
-
/** specify a resource as the source for this parse */
public Parse setResource(String resource) {
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
this.streamInput = new ResourceStreamInput(resource, classLoader);
return this;
}
@@ -244,8 +237,4 @@
public Document getDocument() {
return document;
}
- /** the ClassLoader used to resolve input resources. */
- public ClassLoader getClassLoader() {
- return classLoader;
- }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parser.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parser.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parser.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -396,8 +396,7 @@
parseDocument(parse.document, parse);
} catch (Exception e) {
- e.printStackTrace();
- parse.addProblem("couldn't interpret the dom model: "+e.getMessage(), e);
+ parse.addProblem("parsing exception: "+e.getMessage(), e);
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/ProblemList.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/ProblemList.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/ProblemList.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -153,13 +153,20 @@
if (message!=null) {
errorMsg.append(message);
errorMsg.append(": ");
+ } else if (problems.size()==1) {
+ Throwable singleCause = problems.get(0).getCause();
+ if ( (singleCause!=null)
+ && (JbpmException.class.isAssignableFrom(singleCause.getClass()))
+ ) {
+ return (JbpmException) singleCause;
+ }
}
for (Problem p : getProblems()) {
errorMsg.append(NEWLINE);
errorMsg.append(" ");
errorMsg.append(p.toString());
-
+
if (p.getCause()!=null) {
cause = new JbpmException(p.getCause());
}
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/activities/PrintLnBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/activities/PrintLnBuilder.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/activities/PrintLnBuilder.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -34,7 +34,7 @@
public PrintLnBuilder(ActivityBuilder activityBuilder) {
super(activityBuilder);
- activity.setBehaviour(printLn);
+ activity.setActivityBehaviour(printLn);
}
public PrintLnBuilder message(String message) {
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/builder/BuilderTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/builder/BuilderTest.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/builder/BuilderTest.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -62,9 +62,6 @@
ActivityImpl decisionActivity = (ActivityImpl) processDefinition.getActivity("start");
assertNotNull(decisionActivity);
assertEquals("start", decisionActivity.getName());
-
- TestActivity testActivity = (TestActivity) decisionActivity.getBehaviour();
- assertEquals("some cfg value", testActivity.getTestActivityProperty());
}
public void testBuilderMultipleOutgoingFlows() {
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/builder/TestBehaviourBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/builder/TestBehaviourBuilder.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/builder/TestBehaviourBuilder.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -34,7 +34,7 @@
public TestBehaviourBuilder(ActivityBuilder activityBuilder) {
super(activityBuilder);
- activity.setBehaviour(testActivity);
+ activity.setActivityBehaviour(testActivity);
}
public TestBehaviourBuilder testActivityProperty(String testActivityProperty) {
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/wire/ObjectWireTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/wire/ObjectWireTest.java 2009-09-24 12:55:59 UTC (rev 5668)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/wire/ObjectWireTest.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -105,8 +105,7 @@
fail("expected exception");
} catch (JbpmException e) {
- assertTextPresent("couldn't get type of 'o'", e.getMessage());
- assertTextPresent("couldn't load class invalid-object-type", e.getMessage());
+ assertTextPresent("couldn't load class 'invalid-object-type'", e.getMessage());
}
}
Added: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/classloading/DelayedInstantiationTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/classloading/DelayedInstantiationTest.java (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/classloading/DelayedInstantiationTest.java 2009-09-25 14:04:45 UTC (rev 5669)
@@ -0,0 +1,78 @@
+/*
+ * 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.test.classloading;
+
+import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.api.activity.ActivityExecution;
+import org.jbpm.test.JbpmTestCase;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class DelayedInstantiationTest extends JbpmTestCase {
+
+ public static class MyActivity implements ActivityBehaviour {
+ private static final long serialVersionUID = 1L;
+ public void execute(ActivityExecution execution) throws Exception {
+ }
+ }
+
+ public static class StrippingClassLoader extends ClassLoader {
+ public StrippingClassLoader(ClassLoader parent) {
+ super(parent);
+ }
+
+ public Class loadClass(String className) throws ClassNotFoundException {
+ if ( className.startsWith("==")
+ && className.endsWith("==") ) {
+ className = className.substring(2, className.length()-2);
+ }
+ ClassLoader parent = getParent();
+ return parent.loadClass(className);
+ }
+
+ }
+
+ public void testDelayedInstantiation() {
+ deployJpdlXmlString(
+ "<process name='UserClassNotVisibleDuringprocessParsing'>" +
+ " <start>" +
+ " <transition to='a' />" +
+ " </start>" +
+ " <custom name='a' class='=="+MyActivity.class.getName()+"==' >" +
+ " <transition to='b' />" +
+ " </custom>" +
+ " <state name='b' />" +
+ "</process>"
+ );
+
+// ClassLoader original = Thread.currentThread().getContextClassLoader();
+// StrippingClassLoader strippingClassLoader = new StrippingClassLoader(original);
+// Thread.currentThread().setContextClassLoader(strippingClassLoader);
+// try {
+// executionService.startProcessInstanceByKey("UserClassNotVisibleDuringprocessParsing");
+// } finally {
+// Thread.currentThread().setContextClassLoader(original);
+// }
+ }
+}
Property changes on: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/classloading/DelayedInstantiationTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
14 years, 6 months
JBoss JBPM SVN: r5668 - in jbpm4/trunk/modules: distro and 1 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-09-24 08:55:59 -0400 (Thu, 24 Sep 2009)
New Revision: 5668
Modified:
jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbUpgrade.java
jbpm4/trunk/modules/distro/pom.xml
jbpm4/trunk/modules/distro/src/main/files/install/build.xml
Log:
JBPM-2509 prepared for upgrade scripting
Modified: jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbUpgrade.java
===================================================================
--- jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbUpgrade.java 2009-09-24 12:05:39 UTC (rev 5667)
+++ jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbUpgrade.java 2009-09-24 12:55:59 UTC (rev 5668)
@@ -29,6 +29,11 @@
public static void main(String[] args) {
System.out.println("jBPM DB upgrade tool");
+ if (args!=null) {
+ for (int i=0; i<args.length; i++) {
+ System.out.println(" args["+i+"]="+args[i]);
+ }
+ }
// String dbVersion = getDbVersion();
// String distroVersion = "4.2";
Modified: jbpm4/trunk/modules/distro/pom.xml
===================================================================
--- jbpm4/trunk/modules/distro/pom.xml 2009-09-24 12:05:39 UTC (rev 5667)
+++ jbpm4/trunk/modules/distro/pom.xml 2009-09-24 12:55:59 UTC (rev 5668)
@@ -41,6 +41,10 @@
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm-db</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-enterprise</artifactId>
</dependency>
<dependency>
Modified: jbpm4/trunk/modules/distro/src/main/files/install/build.xml
===================================================================
--- jbpm4/trunk/modules/distro/src/main/files/install/build.xml 2009-09-24 12:05:39 UTC (rev 5667)
+++ jbpm4/trunk/modules/distro/src/main/files/install/build.xml 2009-09-24 12:55:59 UTC (rev 5668)
@@ -624,6 +624,20 @@
</sql>
</target>
+ <!-- ### UPGRADE JBPM SCHEMA ############################################# -->
+ <target name="upgrade.jbpm.schema"
+ description="Upgrades the jBPM tables in the database to the current version">
+ <echo message="upgrading jbpm schema..." />
+ <java classname="org.jbpm.db.DbUpgrade">
+ <arg line="${jbpm.home} ${database}" />
+ <classpath>
+ <fileset dir="${jbpm.home}/lib">
+ <include name="*.jar"/>
+ </fileset>
+ </classpath>
+ </java>
+ </target>
+
<!-- ### DROP JBPM SCHEMA ############################################### -->
<target name="drop.jbpm.schema"
description="drops the jbpm tables from the database">
14 years, 7 months
JBoss JBPM SVN: r5667 - in jbpm4/trunk/modules: enterprise/src/main/java/org/jbpm/enterprise/internal/ejb and 16 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-09-24 08:05:39 -0400 (Thu, 24 Sep 2009)
New Revision: 5667
Added:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/Policy.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/SkipInterceptor.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/SkipInterceptorBinding.java
Removed:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/IdGeneratorBinding.java
jbpm4/trunk/modules/pvm/src/main/resources/jbpm.tx.cmd.cfg.xml
jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatestringid/jbpm.tx.hibernate.cfg.xml
Modified:
jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/chxx-ExecutionModes.xml
jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/internal/ejb/CommandExecutorSLSB.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cfg/ProcessEngineImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/CommandService.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/ExecuteJobCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/id/DatabaseDbidGenerator.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/EnvironmentInterceptor.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/jta/JtaTransactionInterceptor.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/EnvironmentInterceptorBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ExecutionServiceBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/HistoryServiceBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/IdentityServiceBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/JtaTransactionInterceptorBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ManagementServiceBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/RepositoryServiceBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/TaskServiceBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/EnvironmentInterceptorDescriptor.java
jbpm4/trunk/modules/pvm/src/main/resources/jbpm.default.cfg.xml
jbpm4/trunk/modules/pvm/src/main/resources/jbpm.tx.hibernate.cfg.xml
jbpm4/trunk/modules/pvm/src/main/resources/jbpm.tx.jta.cfg.xml
jbpm4/trunk/modules/pvm/src/main/resources/jbpm.wire.bindings.xml
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/id/DbidGeneratorTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/tx/BasicTransactionTest.java
jbpm4/trunk/modules/pvm/src/test/resources/logging.properties
jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/test/spring/jbpm.cfg.xml
jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatelongid/jbpm.cfg.xml
jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatestringid/jbpm.cfg.xml
jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/repocache/jbpm_alternative.cfg.xml
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/DeploymentResourceTest.java
Log:
JBPM-2526 split up the command executor into a requires and a requiresNew policy flavour
Modified: jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/chxx-ExecutionModes.xml
===================================================================
--- jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/chxx-ExecutionModes.xml 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/chxx-ExecutionModes.xml 2009-09-24 12:05:39 UTC (rev 5667)
@@ -140,7 +140,6 @@
<hibernate-session-factory />
- <id-generator />
<types resource="jbpm.pvm.types.xml" />
<job-executor auto-start="false" />
@@ -224,7 +223,7 @@
</para>
<programlisting>assertEquals("evaluate", execution.getActivityName());</programlisting>
<para>Also very important is the generated id that can be obtained. The default
- <literal>id-generator</literal> will use the process definition id and the
+ DatabaseIdComposer will use the process definition id and the
given key to make a unique id for the process execution like this:</para>
<programlisting>assertEquals("loan:1/request7836", execution.getId());</programlisting>
<para>That id must be when providing the subsequent external triggers to the
Modified: jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/internal/ejb/CommandExecutorSLSB.java
===================================================================
--- jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/internal/ejb/CommandExecutorSLSB.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/enterprise/src/main/java/org/jbpm/enterprise/internal/ejb/CommandExecutorSLSB.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -22,22 +22,18 @@
package org.jbpm.enterprise.internal.ejb;
import javax.ejb.CreateException;
-import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NameNotFoundException;
import javax.naming.NamingException;
-import javax.transaction.UserTransaction;
-import javax.transaction.SystemException;
import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.cmd.Command;
import org.jbpm.internal.log.Log;
import org.jbpm.pvm.internal.cmd.CommandService;
-import org.jbpm.pvm.internal.env.EnvironmentImpl;
import org.jbpm.pvm.internal.env.EnvironmentFactory;
/**
@@ -70,14 +66,12 @@
*/
public class CommandExecutorSLSB implements SessionBean {
- private SessionContext sessionContext;
- private EnvironmentFactory environmentFactory;
-
private static final long serialVersionUID = 1L;
private static final Log log = Log.getLog(CommandExecutorSLSB.class.getName());
- private ProcessEngine processEngine = null;
+ protected ProcessEngine processEngine = null;
+ protected SessionContext sessionContext;
/*public <T> T execute(Command<T> command) {
EnvironmentImpl environment = environmentFactory.openEnvironment();
@@ -98,7 +92,7 @@
public <T> T execute(Command<T> command) {
log.info("Execute " + command);
- CommandService cmd = processEngine.get(CommandService.class);
+ CommandService cmd = (CommandService) processEngine.get(CommandService.NAME_TX_REQUIRED_COMMAND_SERVICE);
return cmd.execute(command);
}
@@ -212,7 +206,6 @@
public void ejbRemove() {
processEngine = null;
- environmentFactory = null;
sessionContext = null;
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cfg/ProcessEngineImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cfg/ProcessEngineImpl.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cfg/ProcessEngineImpl.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -132,7 +132,7 @@
}
}
processEngineWireContext.create();
- userCommandService = (CommandService) processEngineWireContext.get("user.command.service");
+ userCommandService = (CommandService) processEngineWireContext.get(CommandService.NAME_TX_REQUIRED_COMMAND_SERVICE);
return this;
}
@@ -324,15 +324,6 @@
}
public <T> T execute(Command<T> command) {
- EnvironmentImpl environment = openEnvironment();
- try {
- return userCommandService.execute(command);
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
- throw new JbpmException(e.getMessage(), e);
- } finally {
- environment.close();
- }
+ return userCommandService.execute(command);
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/CommandService.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/CommandService.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/CommandService.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -15,6 +15,9 @@
* command.
*/
public interface CommandService {
+
+ String NAME_TX_REQUIRED_COMMAND_SERVICE = "txRequiredCommandService";
+ String NAME_NEW_TX_REQUIRED_COMMAND_SERVICE = "newTxRequiredCommandService";
/**
* @throws JbpmException if command throws an exception.
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/ExecuteJobCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/ExecuteJobCmd.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/ExecuteJobCmd.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -108,7 +108,7 @@
Transaction transaction = environment.get(Transaction.class);
// transaction.setRollbackOnly();
- CommandService commandService = (CommandService) environment.get(CommandService.class);
+ CommandService commandService = (CommandService) environment.get(CommandService.NAME_NEW_TX_REQUIRED_COMMAND_SERVICE);
JobExceptionHandler jobExceptionHandler = new JobExceptionHandler(job.getDbid(), exception, commandService);
transaction.registerSynchronization(jobExceptionHandler);
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/id/DatabaseDbidGenerator.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/id/DatabaseDbidGenerator.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/id/DatabaseDbidGenerator.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -52,6 +52,8 @@
if (lastId<nextId) {
// acquire a next block of ids
+ log.debug("last id "+lastId+" was consumed. acquiring new block...");
+
// reset the id block
lastId = -2;
nextId = -1;
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/EnvironmentInterceptor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/EnvironmentInterceptor.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/EnvironmentInterceptor.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -22,11 +22,8 @@
package org.jbpm.pvm.internal.svc;
import org.jbpm.api.cmd.Command;
-import org.jbpm.pvm.internal.env.Context;
+import org.jbpm.pvm.internal.env.EnvironmentFactory;
import org.jbpm.pvm.internal.env.EnvironmentImpl;
-import org.jbpm.pvm.internal.env.EnvironmentFactory;
-import org.jbpm.pvm.internal.wire.WireContext;
-import org.jbpm.pvm.internal.wire.descriptor.ProvidedObjectDescriptor;
/** sets up an environment around the execution of the command.
@@ -34,15 +31,25 @@
* @author Tom Baeyens
*/
public class EnvironmentInterceptor extends Interceptor {
-
+
protected EnvironmentFactory environmentFactory;
+ protected Policy policy = Policy.REQUIRES;
public <T> T execute(Command<T> command) {
- EnvironmentImpl environment;
-
- environment = environmentFactory.openEnvironment();
+ if ( isEnvironmentCreationNecessary() ) {
+ return executeInNewEnvironment(command);
+ } else {
+ return executeInExistingEnvironment(command);
+ }
+ }
+
+ protected <T> T executeInExistingEnvironment(Command<T> command) {
+ return next.execute(command);
+ }
+
+ protected <T> T executeInNewEnvironment(Command<T> command) {
+ EnvironmentImpl environment = environmentFactory.openEnvironment();
try {
- // injectEnvironmentObjects(environment);
return next.execute(command);
} finally {
@@ -50,9 +57,9 @@
}
}
- protected void injectEnvironmentObjects(EnvironmentImpl environment) {
- WireContext transactionContext = (WireContext) environment.getContext(Context.CONTEXTNAME_TRANSACTION);
- transactionContext.getWireDefinition().addDescriptor(new ProvidedObjectDescriptor());
+ protected boolean isEnvironmentCreationNecessary() {
+ return policy==Policy.REQUIRES_NEW
+ || (EnvironmentImpl.getCurrent()==null);
}
public EnvironmentFactory getEnvironmentFactory() {
@@ -61,4 +68,10 @@
public void setEnvironmentFactory(EnvironmentFactory environmentFactory) {
this.environmentFactory = environmentFactory;
}
+ public Policy getPolicy() {
+ return policy;
+ }
+ public void setPolicy(Policy policy) {
+ this.policy = policy;
+ }
}
Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/Policy.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/Policy.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/Policy.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -0,0 +1,27 @@
+/*
+ * 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.pvm.internal.svc;
+
+public enum Policy {
+ REQUIRES,
+ REQUIRES_NEW
+}
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/Policy.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/SkipInterceptor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/SkipInterceptor.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/SkipInterceptor.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -0,0 +1,46 @@
+/*
+ * 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.pvm.internal.svc;
+
+import org.jbpm.api.cmd.Command;
+import org.jbpm.pvm.internal.env.EnvironmentImpl;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class SkipInterceptor extends Interceptor {
+
+ static DefaultCommandService defaultCommandService = new DefaultCommandService();
+
+ public <T> T execute(Command<T> command) {
+ EnvironmentImpl environment = EnvironmentImpl.getCurrent();
+ // if there is an environment active
+ if (environment!=null) {
+ // skip the rest of the interceptor stack and just execute the command
+ return defaultCommandService.execute(command);
+ }
+
+ return next.execute(command);
+ }
+
+}
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/SkipInterceptor.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/jta/JtaTransactionInterceptor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/jta/JtaTransactionInterceptor.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/tx/jta/JtaTransactionInterceptor.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -22,7 +22,6 @@
package org.jbpm.pvm.internal.tx.jta;
import javax.transaction.Status;
-import javax.transaction.SystemException;
import javax.transaction.Transaction;
import javax.transaction.UserTransaction;
@@ -31,6 +30,7 @@
import org.jbpm.internal.log.Log;
import org.jbpm.pvm.internal.env.EnvironmentImpl;
import org.jbpm.pvm.internal.svc.Interceptor;
+import org.jbpm.pvm.internal.svc.Policy;
/**
@@ -39,6 +39,8 @@
public class JtaTransactionInterceptor extends Interceptor {
private static Log log = Log.getLog(JtaTransactionInterceptor.class.getName());
+
+ protected Policy policy = Policy.REQUIRES;
public <T> T execute(Command<T> command) {
JtaTransaction jtaTransaction = EnvironmentImpl.getFromCurrent(JtaTransaction.class);
@@ -47,7 +49,9 @@
int status = JtaTransaction.getUserTransactionStatus(userTransaction);
- if (status == Status.STATUS_ACTIVE) {
+ if ( (status == Status.STATUS_ACTIVE)
+ && (! (policy==Policy.REQUIRES_NEW))
+ ) {
return executeInExistingTx(command);
}
@@ -67,7 +71,10 @@
protected <T> T executeInNewTx(Command<T> command, JtaTransaction jtaTransaction, int status) {
Transaction suspendedTransaction = null;
- if ((status == Status.STATUS_COMMITTED) || (status == Status.STATUS_ROLLEDBACK)) {
+ if ( (status == Status.STATUS_ACTIVE)
+ || (status == Status.STATUS_COMMITTED)
+ || (status == Status.STATUS_ROLLEDBACK)
+ ) {
suspendedTransaction = jtaTransaction.suspend();
}
@@ -93,5 +100,8 @@
return (T) returnValue;
}
-
+
+ public void setPolicy(Policy policy) {
+ this.policy = policy;
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/EnvironmentInterceptorBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/EnvironmentInterceptorBinding.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/EnvironmentInterceptorBinding.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -23,6 +23,7 @@
import org.jbpm.pvm.internal.cfg.ProcessEngineImpl;
import org.jbpm.pvm.internal.env.EnvironmentFactory;
+import org.jbpm.pvm.internal.svc.Policy;
import org.jbpm.pvm.internal.wire.descriptor.EnvironmentInterceptorDescriptor;
import org.jbpm.pvm.internal.xml.Parse;
import org.jbpm.pvm.internal.xml.Parser;
@@ -38,8 +39,18 @@
}
public Object parse(Element element, Parse parse, Parser parser) {
+ EnvironmentInterceptorDescriptor environmentInterceptorDescriptor = new EnvironmentInterceptorDescriptor();
+
EnvironmentFactory environmentFactory = (EnvironmentFactory) parse.findObject(ProcessEngineImpl.class);
- return new EnvironmentInterceptorDescriptor(environmentFactory);
+ environmentInterceptorDescriptor.setEnvironmentFactory(environmentFactory);
+
+ if ( element.hasAttribute("policy")
+ && ("requiresNew".equals(element.getAttribute("policy")))
+ ) {
+ environmentInterceptorDescriptor.setPolicy(Policy.REQUIRES_NEW);
+ }
+
+ return environmentInterceptorDescriptor;
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ExecutionServiceBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ExecutionServiceBinding.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ExecutionServiceBinding.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -23,8 +23,8 @@
import org.jbpm.pvm.internal.cmd.CommandService;
import org.jbpm.pvm.internal.svc.ExecutionServiceImpl;
-import org.jbpm.pvm.internal.wire.descriptor.ContextTypeRefDescriptor;
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
+import org.jbpm.pvm.internal.wire.descriptor.ReferenceDescriptor;
import org.jbpm.pvm.internal.xml.Parse;
import org.jbpm.pvm.internal.xml.Parser;
import org.w3c.dom.Element;
@@ -41,7 +41,7 @@
public Object parse(Element element, Parse parse, Parser parser) {
ObjectDescriptor descriptor = new ObjectDescriptor(ExecutionServiceImpl.class);
- descriptor.addInjection("commandService", new ContextTypeRefDescriptor(CommandService.class));
+ descriptor.addInjection("commandService", new ReferenceDescriptor(CommandService.NAME_TX_REQUIRED_COMMAND_SERVICE));
return descriptor;
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/HistoryServiceBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/HistoryServiceBinding.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/HistoryServiceBinding.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -23,8 +23,8 @@
import org.jbpm.pvm.internal.cmd.CommandService;
import org.jbpm.pvm.internal.svc.HistoryServiceImpl;
-import org.jbpm.pvm.internal.wire.descriptor.ContextTypeRefDescriptor;
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
+import org.jbpm.pvm.internal.wire.descriptor.ReferenceDescriptor;
import org.jbpm.pvm.internal.xml.Parse;
import org.jbpm.pvm.internal.xml.Parser;
import org.w3c.dom.Element;
@@ -41,7 +41,7 @@
public Object parse(Element element, Parse parse, Parser parser) {
ObjectDescriptor descriptor = new ObjectDescriptor(HistoryServiceImpl.class);
- descriptor.addInjection("commandService", new ContextTypeRefDescriptor(CommandService.class));
+ descriptor.addInjection("commandService", new ReferenceDescriptor(CommandService.NAME_TX_REQUIRED_COMMAND_SERVICE));
return descriptor;
}
}
Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/IdGeneratorBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/IdGeneratorBinding.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/IdGeneratorBinding.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -1,44 +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.pvm.internal.wire.binding;
-
-import org.jbpm.pvm.internal.id.DatabaseIdComposer;
-import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
-import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
-import org.w3c.dom.Element;
-
-
-/**
- * @author Tom Baeyens
- */
-public class IdGeneratorBinding extends WireDescriptorBinding {
-
- public IdGeneratorBinding() {
- super("id-generator");
- }
-
- public Object parse(Element element, Parse parse, Parser parser) {
- return new ObjectDescriptor(DatabaseIdComposer.class);
- }
-
-}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/IdentityServiceBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/IdentityServiceBinding.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/IdentityServiceBinding.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -23,8 +23,8 @@
import org.jbpm.pvm.internal.cmd.CommandService;
import org.jbpm.pvm.internal.svc.IdentityServiceImpl;
-import org.jbpm.pvm.internal.wire.descriptor.ContextTypeRefDescriptor;
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
+import org.jbpm.pvm.internal.wire.descriptor.ReferenceDescriptor;
import org.jbpm.pvm.internal.xml.Parse;
import org.jbpm.pvm.internal.xml.Parser;
import org.w3c.dom.Element;
@@ -41,7 +41,7 @@
public Object parse(Element element, Parse parse, Parser parser) {
ObjectDescriptor descriptor = new ObjectDescriptor(IdentityServiceImpl.class);
- descriptor.addInjection("commandService", new ContextTypeRefDescriptor(CommandService.class));
+ descriptor.addInjection("commandService", new ReferenceDescriptor(CommandService.NAME_TX_REQUIRED_COMMAND_SERVICE));
return descriptor;
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/JtaTransactionInterceptorBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/JtaTransactionInterceptorBinding.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/JtaTransactionInterceptorBinding.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -21,8 +21,9 @@
*/
package org.jbpm.pvm.internal.wire.binding;
+import org.jbpm.pvm.internal.svc.Policy;
import org.jbpm.pvm.internal.tx.jta.JtaTransactionInterceptor;
-import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
+import org.jbpm.pvm.internal.wire.descriptor.ProvidedObjectDescriptor;
import org.jbpm.pvm.internal.xml.Parse;
import org.jbpm.pvm.internal.xml.Parser;
import org.w3c.dom.Element;
@@ -32,6 +33,7 @@
* {@link JtaTransactionInterceptor} object.
*
* @author Alejandro Guizar
+ * @author Tom Baeyens
*/
public class JtaTransactionInterceptorBinding extends WireInterceptorBinding {
@@ -40,7 +42,15 @@
}
public Object parse(Element element, Parse parse, Parser parser) {
- return new ObjectDescriptor(JtaTransactionInterceptor.class);
+ JtaTransactionInterceptor jtaTransactionInterceptor = new JtaTransactionInterceptor();
+
+ if ( element.hasAttribute("policy")
+ && ("requiresNew".equals(element.getAttribute("policy")))
+ ) {
+ jtaTransactionInterceptor.setPolicy(Policy.REQUIRES_NEW);
+ }
+
+ return new ProvidedObjectDescriptor(jtaTransactionInterceptor);
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ManagementServiceBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ManagementServiceBinding.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ManagementServiceBinding.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -25,6 +25,7 @@
import org.jbpm.pvm.internal.svc.ManagementServiceImpl;
import org.jbpm.pvm.internal.wire.descriptor.ContextTypeRefDescriptor;
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
+import org.jbpm.pvm.internal.wire.descriptor.ReferenceDescriptor;
import org.jbpm.pvm.internal.xml.Parse;
import org.jbpm.pvm.internal.xml.Parser;
import org.w3c.dom.Element;
@@ -41,7 +42,7 @@
public Object parse(Element element, Parse parse, Parser parser) {
ObjectDescriptor descriptor = new ObjectDescriptor(ManagementServiceImpl.class);
- descriptor.addInjection("commandService", new ContextTypeRefDescriptor(CommandService.class));
+ descriptor.addInjection("commandService", new ReferenceDescriptor(CommandService.NAME_TX_REQUIRED_COMMAND_SERVICE));
return descriptor;
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/RepositoryServiceBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/RepositoryServiceBinding.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/RepositoryServiceBinding.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -21,8 +21,10 @@
*/
package org.jbpm.pvm.internal.wire.binding;
+import org.jbpm.pvm.internal.cmd.CommandService;
import org.jbpm.pvm.internal.repository.RepositoryServiceImpl;
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
+import org.jbpm.pvm.internal.wire.descriptor.ReferenceDescriptor;
import org.jbpm.pvm.internal.xml.Parse;
import org.jbpm.pvm.internal.xml.Parser;
import org.w3c.dom.Element;
@@ -38,8 +40,8 @@
}
public Object parse(Element element, Parse parse, Parser parser) {
- ObjectDescriptor objectDescriptor = new ObjectDescriptor(RepositoryServiceImpl.class);
- objectDescriptor.setAutoWireEnabled(true);
- return objectDescriptor;
+ ObjectDescriptor descriptor = new ObjectDescriptor(RepositoryServiceImpl.class);
+ descriptor.addInjection("commandService", new ReferenceDescriptor(CommandService.NAME_TX_REQUIRED_COMMAND_SERVICE));
+ return descriptor;
}
}
Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/SkipInterceptorBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/SkipInterceptorBinding.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/SkipInterceptorBinding.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -0,0 +1,44 @@
+/*
+ * 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.pvm.internal.wire.binding;
+
+import org.jbpm.pvm.internal.svc.SkipInterceptor;
+import org.jbpm.pvm.internal.wire.descriptor.ProvidedObjectDescriptor;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.jbpm.pvm.internal.xml.Parser;
+import org.w3c.dom.Element;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class SkipInterceptorBinding extends WireInterceptorBinding {
+
+ public SkipInterceptorBinding() {
+ super("skip-interceptor");
+ }
+
+ public Object parse(Element element, Parse parse, Parser parser) {
+ return new ProvidedObjectDescriptor(new SkipInterceptor());
+ }
+
+}
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/SkipInterceptorBinding.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/TaskServiceBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/TaskServiceBinding.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/TaskServiceBinding.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -23,8 +23,8 @@
import org.jbpm.pvm.internal.cmd.CommandService;
import org.jbpm.pvm.internal.svc.TaskServiceImpl;
-import org.jbpm.pvm.internal.wire.descriptor.ContextTypeRefDescriptor;
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
+import org.jbpm.pvm.internal.wire.descriptor.ReferenceDescriptor;
import org.jbpm.pvm.internal.xml.Parse;
import org.jbpm.pvm.internal.xml.Parser;
import org.w3c.dom.Element;
@@ -40,7 +40,7 @@
public Object parse(Element element, Parse parse, Parser parser) {
ObjectDescriptor descriptor = new ObjectDescriptor(TaskServiceImpl.class);
- descriptor.addInjection("commandService", new ContextTypeRefDescriptor(CommandService.class));
+ descriptor.addInjection("commandService", new ReferenceDescriptor(CommandService.NAME_TX_REQUIRED_COMMAND_SERVICE));
return descriptor;
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/EnvironmentInterceptorDescriptor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/EnvironmentInterceptorDescriptor.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/EnvironmentInterceptorDescriptor.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -23,6 +23,7 @@
import org.jbpm.pvm.internal.env.EnvironmentFactory;
import org.jbpm.pvm.internal.svc.EnvironmentInterceptor;
+import org.jbpm.pvm.internal.svc.Policy;
import org.jbpm.pvm.internal.wire.WireContext;
/**
@@ -32,15 +33,23 @@
private static final long serialVersionUID = 1L;
- EnvironmentFactory environmentFactory;
+ protected EnvironmentFactory environmentFactory;
+ protected Policy policy;
- public EnvironmentInterceptorDescriptor(EnvironmentFactory environmentFactory) {
- this.environmentFactory = environmentFactory;
- }
-
public Object construct(WireContext wireContext) {
EnvironmentInterceptor environmentInterceptor = new EnvironmentInterceptor();
environmentInterceptor.setEnvironmentFactory(environmentFactory);
+ if (policy!=null) {
+ environmentInterceptor.setPolicy(policy);
+ }
return environmentInterceptor;
}
+
+ public void setEnvironmentFactory(EnvironmentFactory environmentFactory) {
+ this.environmentFactory = environmentFactory;
+ }
+
+ public void setPolicy(Policy policy) {
+ this.policy = policy;
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/resources/jbpm.default.cfg.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/resources/jbpm.default.cfg.xml 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/resources/jbpm.default.cfg.xml 2009-09-24 12:05:39 UTC (rev 5667)
@@ -19,7 +19,7 @@
<hibernate-session-factory />
<object class="org.jbpm.pvm.internal.id.DatabaseDbidGenerator" init="eager">
- <field name="commandService"><ref type="org.jbpm.pvm.internal.cmd.CommandService" /></field>
+ <field name="commandService"><ref object="newTxRequiredCommandService" /></field>
<invoke method="initialize" />
</object>
@@ -30,7 +30,6 @@
<script-language name="juel" factory="org.jbpm.pvm.internal.script.JuelScriptEngineFactory" />
</script-manager>
- <id-generator />
<types resource="jbpm.variable.types.xml" />
<address-resolver />
Deleted: jbpm4/trunk/modules/pvm/src/main/resources/jbpm.tx.cmd.cfg.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/resources/jbpm.tx.cmd.cfg.xml 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/resources/jbpm.tx.cmd.cfg.xml 2009-09-24 12:05:39 UTC (rev 5667)
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<jbpm-configuration>
-
- <process-engine-context>
- <command-service name="user.command.service">
- <retry-interceptor />
- <environment-interceptor />
- <standard-transaction-interceptor />
- </command-service>
- <command-service />
- </process-engine-context>
-
- <transaction-context>
- <transaction />
- <hibernate-session />
- </transaction-context>
-
-</jbpm-configuration>
Modified: jbpm4/trunk/modules/pvm/src/main/resources/jbpm.tx.hibernate.cfg.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/resources/jbpm.tx.hibernate.cfg.xml 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/resources/jbpm.tx.hibernate.cfg.xml 2009-09-24 12:05:39 UTC (rev 5667)
@@ -3,11 +3,20 @@
<jbpm-configuration>
<process-engine-context>
- <command-service>
+
+ <command-service name="txRequiredCommandService">
+ <skip-interceptor />
<retry-interceptor />
<environment-interceptor />
<standard-transaction-interceptor />
</command-service>
+
+ <command-service name="newTxRequiredCommandService">
+ <retry-interceptor />
+ <environment-interceptor policy="requiresNew" />
+ <standard-transaction-interceptor />
+ </command-service>
+
</process-engine-context>
<transaction-context>
Modified: jbpm4/trunk/modules/pvm/src/main/resources/jbpm.tx.jta.cfg.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/resources/jbpm.tx.jta.cfg.xml 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/resources/jbpm.tx.jta.cfg.xml 2009-09-24 12:05:39 UTC (rev 5667)
@@ -3,11 +3,22 @@
<jbpm-configuration>
<process-engine-context>
- <command-service>
+ <command-service name="txRequiredCommandService">
+ <skip-interceptor />
<environment-interceptor />
<retry-interceptor type="jta" />
<jta-transaction-interceptor />
</command-service>
+
+ <command-service name="newTxRequiredCommandService">
+ <environment-interceptor policy="requiresNew" />
+ <retry-interceptor type="jta" />
+ <jta-transaction-interceptor policy="requiresNew" />
+ </command-service>
+
+ <command-service>
+ <environment-interceptor />
+ </command-service>
</process-engine-context>
<transaction-context>
Modified: jbpm4/trunk/modules/pvm/src/main/resources/jbpm.wire.bindings.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/resources/jbpm.wire.bindings.xml 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/main/resources/jbpm.wire.bindings.xml 2009-09-24 12:05:39 UTC (rev 5667)
@@ -37,7 +37,7 @@
<binding class="org.jbpm.pvm.internal.wire.binding.JobTestHelperBinding" />
<binding class="org.jbpm.pvm.internal.wire.binding.ScriptManagerBinding" />
<binding class="org.jbpm.pvm.internal.wire.binding.BusinessCalendarBinding" />
- <binding class="org.jbpm.pvm.internal.wire.binding.IdGeneratorBinding" />
+ <binding class="org.jbpm.pvm.internal.wire.binding.IdComposerBinding" />
<binding class="org.jbpm.pvm.internal.wire.binding.MailTemplateBinding" />
<binding class="org.jbpm.pvm.internal.wire.binding.AddressResolverBinding"/>
<!-- hibernate bindings -->
@@ -72,6 +72,7 @@
<binding class="org.jbpm.pvm.internal.wire.binding.DeployerManagerBinding" />
<!-- interceptors -->
+ <binding class="org.jbpm.pvm.internal.wire.binding.SkipInterceptorBinding" />
<binding class="org.jbpm.pvm.internal.wire.binding.EnvironmentInterceptorBinding" />
<binding class="org.jbpm.pvm.internal.wire.binding.AuthorizationInterceptorBinding" />
<binding class="org.jbpm.pvm.internal.wire.binding.RetryInterceptorBinding" />
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/id/DbidGeneratorTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/id/DbidGeneratorTest.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/id/DbidGeneratorTest.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -39,11 +39,10 @@
private static Log log = Log.getLog(DbidGeneratorTest.class.getName());
- public void testIdGenerator() {
+ public void testDbidGenerator() {
ProcessEngine processEngine = new Configuration().buildProcessEngine();
- CommandService commandService = processEngine.get(CommandService.class);
- commandService.execute(new Command<Void>() {
+ processEngine.execute(new Command<Void>() {
private static final long serialVersionUID = 1L;
public Void execute(Environment environment) throws Exception {
Session session = environment.get(Session.class);
@@ -56,12 +55,66 @@
});
DbidGenerator dbidGenerator = processEngine.get(DbidGenerator.class);
-
for (int i=1; i<10020; i++) {
assertEquals(i, dbidGenerator.getNextId());
if ((i%1000) == 0) {
log.debug("just got dbid "+i+"...");
}
}
+
+ try {
+ processEngine.execute(new Command<Void>() {
+ private static final long serialVersionUID = 1L;
+ public Void execute(Environment environment) throws Exception {
+ DbidGenerator dbidGenerator = environment.get(DbidGenerator.class);
+ for (int i=10020; i<20020; i++) {
+ assertEquals(i, dbidGenerator.getNextId());
+ if ((i%1000) == 0) {
+ log.debug("just got dbid "+i+"...");
+ }
+ }
+ // the following 'user' exception will cause the user transaction to
+ // roll back, but the dbid-transaction should have been committed
+ throw new RuntimeException("user exception");
+ }
+ });
+ } catch (RuntimeException e) {
+ assertEquals("user exception", e.getMessage());
+ }
+
+ for (int i=20020; i<30020; i++) {
+ assertEquals(i, dbidGenerator.getNextId());
+ if ((i%1000) == 0) {
+ log.debug("just got dbid "+i+"...");
+ }
+ }
+
+ CommandService serviceCommandService = (CommandService) processEngine.get(CommandService.NAME_TX_REQUIRED_COMMAND_SERVICE);
+ try {
+ serviceCommandService.execute(new Command<Void>() {
+ private static final long serialVersionUID = 1L;
+ public Void execute(Environment environment) throws Exception {
+ DbidGenerator dbidGenerator = environment.get(DbidGenerator.class);
+ for (int i=30020; i<40020; i++) {
+ assertEquals(i, dbidGenerator.getNextId());
+ if ((i%1000) == 0) {
+ log.debug("just got dbid "+i+"...");
+ }
+ }
+ // the following 'user' exception will cause the user transaction to
+ // roll back, but the dbid-transaction should have been committed
+ throw new RuntimeException("user exception");
+ }
+ });
+ } catch (RuntimeException e) {
+ assertEquals("user exception", e.getMessage());
+ }
+
+ for (int i=40020; i<50020; i++) {
+ assertEquals(i, dbidGenerator.getNextId());
+ if ((i%1000) == 0) {
+ log.debug("just got dbid "+i+"...");
+ }
+ }
}
}
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/tx/BasicTransactionTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/tx/BasicTransactionTest.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/tx/BasicTransactionTest.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -45,7 +45,7 @@
public void setUp() throws Exception {
super.setUp();
- commandService = processEngine.get(CommandService.class);
+ commandService = (CommandService) processEngine.get(CommandService.NAME_TX_REQUIRED_COMMAND_SERVICE);
}
public void testCommit() {
Modified: jbpm4/trunk/modules/pvm/src/test/resources/logging.properties
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/resources/logging.properties 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/test/resources/logging.properties 2009-09-24 12:05:39 UTC (rev 5667)
@@ -1,11 +1,11 @@
handlers= java.util.logging.ConsoleHandler
redirect.commons.logging = enabled
-java.util.logging.ConsoleHandler.level = FINE
+java.util.logging.ConsoleHandler.level = FINEST
java.util.logging.ConsoleHandler.formatter = org.jbpm.internal.log.LogFormatter
-org.jbpm.level=FINE
-# org.jbpm.pvm.internal.tx.level=FINE
+org.jbpm.level=FINEST
+# org.jbpm.pvm.internal.tx.level=FINEST
# org.jbpm.pvm.internal.wire.level=FINE
# org.jbpm.pvm.internal.util.level=FINE
Modified: jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/test/spring/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/test/spring/jbpm.cfg.xml 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/test/spring/jbpm.cfg.xml 2009-09-24 12:05:39 UTC (rev 5667)
@@ -21,7 +21,13 @@
<cfg resource="jbpm.hibernate.cfg.xml" />
</hibernate-configuration>
-
+ <object class="org.jbpm.pvm.internal.id.DatabaseDbidGenerator" init="eager">
+ <field name="commandService"><ref object="newTxRequiredCommandService" /></field>
+ <invoke method="initialize" />
+ </object>
+
+ <object class="org.jbpm.pvm.internal.id.DatabaseIdComposer" init="eager" />
+
<script-manager default-expression-language="juel"
default-script-language="juel">
<script-language name="juel" factory="org.jbpm.pvm.internal.script.JuelScriptEngineFactory" />
@@ -31,7 +37,6 @@
<job-executor auto-start="false" />
- <id-generator />
<types resource="jbpm.variable.types.xml" />
<business-calendar>
Modified: jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatelongid/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatelongid/jbpm.cfg.xml 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatelongid/jbpm.cfg.xml 2009-09-24 12:05:39 UTC (rev 5667)
@@ -3,7 +3,7 @@
<jbpm-configuration>
<import resource="jbpm.businesscalendar.cfg.xml" />
- <import resource="jbpm.tx.cmd.cfg.xml" />
+ <import resource="jbpm.tx.hibernate.cfg.xml" />
<import resource="jbpm.jpdl.cfg.xml" />
<import resource="jbpm.identity.cfg.xml" />
@@ -24,16 +24,17 @@
<hibernate-session-factory />
<object class="org.jbpm.pvm.internal.id.DatabaseDbidGenerator" init="eager">
- <field name="commandService"><ref type="org.jbpm.pvm.internal.cmd.CommandService" /></field>
+ <field name="commandService"><ref object="newTxRequiredCommandService" /></field>
<invoke method="initialize" />
</object>
+ <object class="org.jbpm.pvm.internal.id.DatabaseIdComposer" init="eager" />
+
<script-manager default-expression-language="juel"
default-script-language="juel">
<script-language name="juel" factory="org.jbpm.pvm.internal.script.JuelScriptEngineFactory" />
</script-manager>
- <id-generator />
<types resource="jbpm.variable.types.xml" />
<address-resolver />
Modified: jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatestringid/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatestringid/jbpm.cfg.xml 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatestringid/jbpm.cfg.xml 2009-09-24 12:05:39 UTC (rev 5667)
@@ -3,7 +3,7 @@
<jbpm-configuration>
<import resource="jbpm.businesscalendar.cfg.xml" />
- <import resource="org/jbpm/test/hibernatestringid/jbpm.tx.hibernate.cfg.xml" />
+ <import resource="jbpm.tx.hibernate.cfg.xml" />
<import resource="jbpm.jpdl.cfg.xml" />
<import resource="jbpm.identity.cfg.xml" />
@@ -24,16 +24,17 @@
<hibernate-session-factory />
<object class="org.jbpm.pvm.internal.id.DatabaseDbidGenerator" init="eager">
- <field name="commandService"><ref type="org.jbpm.pvm.internal.cmd.CommandService" /></field>
+ <field name="commandService"><ref object="newTxRequiredCommandService" /></field>
<invoke method="initialize" />
</object>
+ <object class="org.jbpm.pvm.internal.id.DatabaseIdComposer" init="eager" />
+
<script-manager default-expression-language="juel"
default-script-language="juel">
<script-language name="juel" factory="org.jbpm.pvm.internal.script.JuelScriptEngineFactory" />
</script-manager>
- <id-generator />
<types resource="jbpm.variable.types.xml" />
<address-resolver />
Deleted: jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatestringid/jbpm.tx.hibernate.cfg.xml
===================================================================
--- jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatestringid/jbpm.tx.hibernate.cfg.xml 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatestringid/jbpm.tx.hibernate.cfg.xml 2009-09-24 12:05:39 UTC (rev 5667)
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<jbpm-configuration>
-
- <process-engine-context>
- <command-service>
- <retry-interceptor />
- <environment-interceptor />
- </command-service>
- </process-engine-context>
-
- <transaction-context>
- <hibernate-session current="true" />
- </transaction-context>
-
-</jbpm-configuration>
Modified: jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/repocache/jbpm_alternative.cfg.xml
===================================================================
--- jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/repocache/jbpm_alternative.cfg.xml 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/repocache/jbpm_alternative.cfg.xml 2009-09-24 12:05:39 UTC (rev 5667)
@@ -23,13 +23,19 @@
<hibernate-session-factory />
+ <object class="org.jbpm.pvm.internal.id.DatabaseDbidGenerator" init="eager">
+ <field name="commandService"><ref object="newTxRequiredCommandService" /></field>
+ <invoke method="initialize" />
+ </object>
+
+ <object class="org.jbpm.pvm.internal.id.DatabaseIdComposer" init="eager" />
+
<script-manager default-expression-language="juel"
default-script-language="juel">
<script-language name="juel"
factory="org.jbpm.pvm.internal.script.JuelScriptEngineFactory" />
</script-manager>
- <id-generator />
<types resource="jbpm.variable.types.xml" />
<address-resolver />
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/DeploymentResourceTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/DeploymentResourceTest.java 2009-09-21 16:10:41 UTC (rev 5666)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/DeploymentResourceTest.java 2009-09-24 12:05:39 UTC (rev 5667)
@@ -26,6 +26,7 @@
import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.util.zip.ZipInputStream;
import org.jbpm.api.NewDeployment;
@@ -43,14 +44,13 @@
public void testZippedResourceDeployment() {
- FileInputStream fip = null;
+ InputStream inputStream = null;
try {
+ inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("org/jbpm/test/deploy/process.zip");
+ ZipInputStream zipInputStream = new ZipInputStream(inputStream);
- fip = new FileInputStream("src/test/resources/org/jbpm/test/deploy/process.zip");
- ZipInputStream zis = new ZipInputStream(fip);
-
NewDeployment newDeployment = repositoryService.createDeployment();
- newDeployment.addResourcesFromZipInputStream(zis);
+ newDeployment.addResourcesFromZipInputStream(zipInputStream);
String deployId = newDeployment.deploy();
ProcessDefinition procDef = repositoryService.createProcessDefinitionQuery()
@@ -60,12 +60,10 @@
assertEquals("ImageTest", procDef.getName());
repositoryService.deleteDeploymentCascade(deployId);
- } catch (IOException e) {
- fail(e.getMessage());
} finally {
- if (fip != null) {
+ if (inputStream != null) {
try {
- fip.close();
+ inputStream.close();
} catch (IOException e) {
fail(e.getMessage());
}
14 years, 7 months
JBoss JBPM SVN: r5666 - in jbpm4/trunk: modules/db/scripts and 11 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-09-21 12:10:41 -0400 (Mon, 21 Sep 2009)
New Revision: 5666
Added:
jbpm4/trunk/modules/db/src/main/java/
jbpm4/trunk/modules/db/src/main/java/org/
jbpm4/trunk/modules/db/src/main/java/org/jbpm/
jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/
jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbUpgrade.java
jbpm4/trunk/modules/db/src/main/resources/db/
jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/
jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.hsqldb.upgrade.sql
jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.mysql.upgrade.sql
jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.oracle.upgrade.sql
jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.postgresql.upgrade.sql
Removed:
jbpm4/trunk/modules/db/scripts/antrun-upgrade.xml
jbpm4/trunk/modules/db/src/main/config/
jbpm4/trunk/modules/db/src/test/
Modified:
jbpm4/trunk/modules/db/.classpath
jbpm4/trunk/modules/db/README.txt
jbpm4/trunk/modules/db/pom.xml
jbpm4/trunk/modules/db/scripts/antrun-schema.xml
jbpm4/trunk/modules/distro/scripts/assembly-distro.xml
jbpm4/trunk/qa/jdbc/postgresql.properties
Log:
JBPM-2526 JBPM-2509 refactored generation of db upgrade scripts
Modified: jbpm4/trunk/modules/db/.classpath
===================================================================
--- jbpm4/trunk/modules/db/.classpath 2009-09-21 15:59:45 UTC (rev 5665)
+++ jbpm4/trunk/modules/db/.classpath 2009-09-21 16:10:41 UTC (rev 5666)
@@ -1,7 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Modified: jbpm4/trunk/modules/db/README.txt
===================================================================
--- jbpm4/trunk/modules/db/README.txt 2009-09-21 15:59:45 UTC (rev 5665)
+++ jbpm4/trunk/modules/db/README.txt 2009-09-21 16:10:41 UTC (rev 5666)
@@ -1,32 +1,5 @@
-module/db
----------
-Utitlity module to create/drop the jBPM4 database schema.
-
Usage
-----
-Database creation can be triggered through the maven command line
-usally as part of the test preparation:
-
- mvn -P<drop|create>-tables -Ddatabase=<database> install
-
-Supported databases
--------------------
-
-- hsqldb
-- mysql
-- postgresql
-- oracle
-- sybase
-
-
-FAQ
----
-
-1.) How is the default hypersonic database created?
-
-The default hypersonic is created within the jpdl module, as part of the jpdl test execution.
-See the connetion URL 'jdbc:hsqldb:file:@project.build.directory@/hypersonic/jbpm4DB' whereas
-'project.build.directory' in that case is 'modules/jpdl/target'
-
-
-
+ mvn -Pupgrade clean package
+will use the QA databases to create an upgrade script for each db.
+those upgrade scripts will be generated in the sources. these should be checked into svn.
Modified: jbpm4/trunk/modules/db/pom.xml
===================================================================
--- jbpm4/trunk/modules/db/pom.xml 2009-09-21 15:59:45 UTC (rev 5665)
+++ jbpm4/trunk/modules/db/pom.xml 2009-09-21 16:10:41 UTC (rev 5666)
@@ -30,12 +30,23 @@
<profiles>
<profile>
<id>upgrade</id>
- <activation>
- <property>
- <name>jbpm.previous.version</name>
- </property>
- </activation>
-
+ <properties>
+ <old.version>4.1</old.version>
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>com.oracle</groupId>
+ <artifactId>ojdbc14</artifactId>
+ <version>${oracle.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+ <repositories>
+ <repository>
+ <id>qa.jboss.com</id>
+ <url>http://www.qa.jboss.com/jdbc-drivers/maven2</url>
+ </repository>
+ </repositories>
<build>
<plugins>
<plugin>
@@ -52,30 +63,30 @@
<artifactItem>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-db</artifactId>
- <version>${jbpm.previous.version}</version>
+ <version>${old.version}</version>
</artifactItem>
</artifactItems>
- <outputDirectory>${previous.version.directory}</outputDirectory>
+ <outputDirectory>target/old.schema.files</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
-
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>upgrade-script</id>
- <phase>process-resources</phase>
+ <phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
- <property name="project.output.dir" value="${project.build.outputDirectory}"/>
- <property name="previous.version.dir" value="${previous.version.directory}"/>
+ <property name="upgrade.files.dest.dir" value="src/main/resources/db/upgrade-${old.version}-to-${version}"/>
<property name="database" value="${database}"/>
- <ant antfile="scripts/antrun-upgrade.xml" target="upgrade-schema" inheritRefs="yes"/>
+ <!-- for some reason that i don't get, the user.home must be passed explicitly -->
+ <property name="user.home" value="${user.home}"/>
+ <ant antfile="scripts/antrun-schema.xml" target="schema-upgrade" inheritRefs="yes"/>
</tasks>
</configuration>
</execution>
@@ -83,10 +94,6 @@
</plugin>
</plugins>
</build>
-
- <properties>
- <previous.version.directory>${project.build.directory}/${jbpm.previous.version}</previous.version.directory>
- </properties>
</profile>
</profiles>
Modified: jbpm4/trunk/modules/db/scripts/antrun-schema.xml
===================================================================
--- jbpm4/trunk/modules/db/scripts/antrun-schema.xml 2009-09-21 15:59:45 UTC (rev 5665)
+++ jbpm4/trunk/modules/db/scripts/antrun-schema.xml 2009-09-21 16:10:41 UTC (rev 5666)
@@ -10,59 +10,176 @@
<project>
- <!-- ================================================================== -->
- <!-- jBPM Database schema -->
- <!-- ================================================================== -->
+ <!-- ##################### -->
+ <!-- ### CREATE SCHEMA ### -->
+ <!-- ##################### -->
<target name="create-schema">
<taskdef name="schemaexport"
classname="org.hibernate.tool.hbm2ddl.SchemaExportTask"
classpathref="maven.compile.classpath" />
- <mkdir dir="${project.output.dir}" />
+ <mkdir dir="target/classes/db" />
- <!-- HsqlDB -->
- <create-ddl db="hsqldb" />
-
- <!-- MySQL -->
- <create-ddl db="mysql" />
- <!--TODO: https://jira.jboss.org/jira/browse/JBPM-2071 -->
- <replace file="${project.output.dir}/jbpm.mysql.create.sql"
- token="BLOB_VALUE_ blob"
- value="BLOB_VALUE_ longblob" />
-
- <!-- Oracle -->
+ <create-ddl db="hsqldb" />
<create-ddl db="oracle" />
-
- <!-- PostgreSQL -->
- <create-ddl db="postgresql" />
-
+ <create-ddl db="postgresql" />
+ <create-ddl db="mysql" />
+ <replace file="target/classes/db/jbpm.mysql.create.sql"
+ token="BLOB_VALUE_ blob"
+ value="BLOB_VALUE_ longblob" />
</target>
- <!-- ============================================ -->
- <!-- Macro definitions -->
- <!-- ============================================ -->
-
<macrodef name="create-ddl">
<attribute name="db" />
<sequential>
+ <echo></echo>
<echo>=====================</echo>
- <echo>Create DDL @{db}</echo>
+ <echo>Schema Create @{db}</echo>
+ <echo>=====================</echo>
- <schemaexport output="${project.output.dir}/jbpm.(a){db}.create.sql"
+ <schemaexport output="target/classes/db/jbpm.(a){db}.create.sql"
create="yes" drop="no"
- config="src/main/config/(a){db}.hibernate.cfg.xml"
+ config="../distro/src/main/files/install/src/cfg/hibernate/jdbc/(a){db}.hibernate.cfg.xml"
text="yes" delimiter=";"
quiet="yes" />
- <schemaexport output="${project.output.dir}/jbpm.(a){db}.drop.sql"
+
+ <echo></echo>
+ <echo>=====================</echo>
+ <echo>Schema Drop @{db}</echo>
+ <echo>=====================</echo>
+ <schemaexport output="target/classes/db/jbpm.(a){db}.drop.sql"
create="no" drop="yes"
- config="src/main/config/(a){db}.hibernate.cfg.xml"
+ config="../distro/src/main/files/install/src/cfg/hibernate/jdbc/(a){db}.hibernate.cfg.xml"
text="yes" delimiter=";"
quiet="yes" />
- <echo>=====================</echo>
</sequential>
</macrodef>
+
+ <!-- ###################### -->
+ <!-- ### SCHEMA UPGRADE ### -->
+ <!-- ###################### -->
+ <target name="schema-upgrade">
+ <taskdef name="schemaupdate"
+ classname="org.hibernate.tool.hbm2ddl.SchemaUpdateTask"
+ classpathref="maven.compile.classpath" />
+
+ <!-- By default, the qa lab databases are used. the jdbc properties are taken from the qa/jdbc directory.
+ If you want to use your local database, specify property upgrade.jdbc.properties.dir in your local build properties -->
+ <echo>loading properties from ${user.home}/.jbpm4/build.properties</echo>
+ <property file="${user.home}/.jbpm4/build.properties" />
+ <echo>upgrade.jdbc.properties.dir: ${upgrade.jdbc.properties.dir}</echo>
+ <property name="upgrade.jdbc.properties.dir" location="../../qa/jdbc" />
+ <mkdir dir="${upgrade.files.dest.dir}" />
+
+ <antcall target="start.hsqldb" inheritrefs="true" />
+ <upgrade-ddl db="hsqldb" />
+ <antcall target="stop.hsqldb" />
+ <upgrade-ddl db="mysql" />
+ <upgrade-ddl db="oracle" />
+ <upgrade-ddl db="postgresql" />
+ </target>
+
+ <target name="start.hsqldb">
+ <java classname="org.hsqldb.Server"
+ classpathref="maven.compile.classpath"
+ fork="yes"
+ spawn="yes">
+ <arg value="-port" />
+ <arg value="1701" />
+ <arg value="-database.0" />
+ <arg value="target/hsqldb-upgrade-db/jbpmdb" />
+ </java>
+ <waitfor>
+ <socket server="localhost" port="1701" />
+ </waitfor>
+ </target>
+
+ <target name="stop.hsqldb">
+ <sql url="jdbc:hsqldb:hsql://localhost:1701"
+ driver="org.hsqldb.jdbcDriver"
+ userid="sa"
+ password=""
+ classpathref="maven.compile.classpath"
+ autocommit="yes">
+ SHUTDOWN
+ </sql>
+ </target>
+
+ <macrodef name="upgrade-ddl">
+ <attribute name="db" />
+ <sequential>
+ <!-- ant antfile="scripts/schema-upgrade.xml" target="create.old.schema" inheritall="false">
+ <property name="database" value="@{db}" />
+ <property name="upgrade.jdbc.properties.dir" value="${upgrade.jdbc.properties.dir}" />
+ <property name="compile.classpath.text" value="${toString:maven.compile.classpath}" />
+ </ant -->
+
+ <property file="${upgrade.jdbc.properties.dir}/(a){db}.properties" prefix="@{db}." />
+ <echo></echo>
+ <echo>driver... ${(a){db}.jdbc.driver}</echo>
+ <echo>url...... ${(a){db}.jdbc.url}</echo>
+ <echo>username. ${(a){db}.jdbc.username}</echo>
+ <echo>password. ${(a){db}.jdbc.password}</echo>
+
+ <echo>=====================</echo>
+ <echo>Dropping current schema @{db}</echo>
+ <echo>=====================</echo>
+ <sql src="target/classes/db/jbpm.(a){db}.drop.sql"
+ url="${(a){db}.jdbc.url}"
+ driver="${(a){db}.jdbc.driver}"
+ userid="${(a){db}.jdbc.username}"
+ password="${(a){db}.jdbc.password}"
+ classpathref="maven.compile.classpath"
+ autocommit="yes"
+ onerror="continue" />
+
+ <echo></echo>
+ <echo>=====================</echo>
+ <echo>Creating old schema @{db}</echo>
+ <echo>=====================</echo>
+ <sql src="target/old.schema.files/jbpm.(a){db}.create.sql"
+ url="${(a){db}.jdbc.url}"
+ driver="${(a){db}.jdbc.driver}"
+ userid="${(a){db}.jdbc.username}"
+ password="${(a){db}.jdbc.password}"
+ classpathref="maven.compile.classpath"
+ autocommit="yes"
+ onerror="continue" />
+
+ <mkdir dir="target/cfg" />
+ <copy tofile="target/cfg/(a){db}.hibernate.cfg.xml"
+ file="../distro/src/main/files/install/src/cfg/hibernate/jdbc/(a){db}.hibernate.cfg.xml"
+ overwrite="true">
+ <filterset filtersfile="${upgrade.jdbc.properties.dir}/(a){db}.properties" />
+ </copy>
+
+ <echo></echo>
+ <echo>=====================</echo>
+ <echo>Schema Upgrade @{db}</echo>
+ <echo>=====================</echo>
+ <schemaupdate outputFile="${upgrade.files.dest.dir}/jbpm.(a){db}.upgrade.sql"
+ config="target/cfg/(a){db}.hibernate.cfg.xml"
+ properties="${upgrade.jdbc.properties.dir}/(a){db}.properties"
+ delimiter=";" />
+
+ <echo></echo>
+ <echo>=====================</echo>
+ <echo>Dropping old schema @{db}</echo>
+ <echo>=====================</echo>
+ <sql src="target/old.schema.files/jbpm.(a){db}.drop.sql"
+ url="${(a){db}.jdbc.url}"
+ driver="${(a){db}.jdbc.driver}"
+ userid="${(a){db}.jdbc.username}"
+ password="${(a){db}.jdbc.password}"
+ classpathref="maven.compile.classpath"
+ autocommit="yes"
+ onerror="continue" />
+
+ </sequential>
+ </macrodef>
+
</project>
Deleted: jbpm4/trunk/modules/db/scripts/antrun-upgrade.xml
===================================================================
--- jbpm4/trunk/modules/db/scripts/antrun-upgrade.xml 2009-09-21 15:59:45 UTC (rev 5665)
+++ jbpm4/trunk/modules/db/scripts/antrun-upgrade.xml 2009-09-21 16:10:41 UTC (rev 5666)
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project>
- <!-- ============================================ -->
- <!-- jBPM database schema -->
- <!-- ============================================ -->
-
- <target name="upgrade-schema"
- depends="define-tasks, upgrade-hsqldb, upgrade-mysql, upgrade-postgresql, upgrade-oracle" />
-
- <target name="define-tasks">
- <taskdef name="schemaupdate"
- classname="org.hibernate.tool.hbm2ddl.SchemaUpdateTask"
- classpathref="maven.compile.classpath" />
- <taskdef name="schemaexport"
- classname="org.hibernate.tool.hbm2ddl.SchemaExportTask"
- classpathref="maven.compile.classpath" />
-
- <condition property="database.is.hsqldb">
- <equals arg1="${database}" arg2="hsqldb" />
- </condition>
- <condition property="database.is.mysql">
- <equals arg1="${database}" arg2="mysql" />
- </condition>
- <condition property="database.is.postgresql">
- <equals arg1="${database}" arg2="postgresql" />
- </condition>
- <condition property="database.is.oracle">
- <equals arg1="${database}" arg2="oracle" />
- </condition>
- </target>
-
- <target name="upgrade-hsqldb" if="database.is.hsqldb">
- <java classname="org.hsqldb.Server"
- classpathref="maven.compile.classpath"
- fork="yes"
- spawn="yes">
- <arg value="-port" />
- <arg value="1701" />
- <arg value="-database.0" />
- <arg value="${previous.version.dir}/jbpmdb" />
- </java>
- <waitfor>
- <socket server="localhost" port="1701" />
- </waitfor>
- <upgrade-ddl db="hsqldb" />
- <sql url="${hsqldb.hibernate.connection.url}"
- driver="${hsqldb.hibernate.connection.driver_class}"
- classpathref="maven.compile.classpath"
- userid="${hsqldb.hibernate.connection.username}"
- password="${hsqldb.hibernate.connection.password}"
- autocommit="yes">
- SHUTDOWN
- </sql>
- </target>
-
- <target name="upgrade-mysql" if="database.is.mysql">
- <upgrade-ddl db="mysql" />
- </target>
-
- <target name="upgrade-postgresql" if="database.is.postgresql">
- <upgrade-ddl db="postgresql" />
- </target>
-
- <target name="upgrade-oracle" if="database.is.oracle">
- <upgrade-ddl db="oracle" />
- </target>
-
- <!-- ============================================ -->
- <!-- Macro definitions -->
- <!-- ============================================ -->
-
- <macrodef name="upgrade-ddl">
- <attribute name="db" />
-
- <sequential>
- <echo>=====================</echo>
- <echo>Upgrade DDL @{db}</echo>
-
- <!-- calculate the difference beetween the previous and the current create schemas -->
- <exec executable="diff"
- osfamily="unix"
- output="${previous.version.dir}/jbpm.(a){db}.create.diff">
- <arg value="-u" />
- <arg file="${previous.version.dir}/jbpm.(a){db}.create.sql" />
- <arg file="${project.output.dir}/jbpm.(a){db}.create.sql" />
- </exec>
-
- <property name="@{db}.hibernate.cfg" value="src/main/config/(a){db}.hibernate.cfg.xml" />
- <property name="@{db}.hibernate.properties"
- value="${user.home}/.jbpm4/jdbc/(a){db}.properties" />
- <property file="${(a){db}.hibernate.properties}" prefix="@{db}" />
- <echo>driver... ${(a){db}.hibernate.connection.driver_class}</echo>
- <echo>url...... ${(a){db}.hibernate.connection.url}</echo>
- <echo>username. ${(a){db}.hibernate.connection.username}</echo>
- <echo>password. ${(a){db}.hibernate.connection.password}</echo>
-
- <!-- drop current schema if exists -->
- <sql src="${project.output.dir}/jbpm.(a){db}.drop.sql"
- url="${(a){db}.hibernate.connection.url}"
- driver="${(a){db}.hibernate.connection.driver_class}"
- classpathref="maven.compile.classpath"
- userid="${(a){db}.hibernate.connection.username}"
- password="${(a){db}.hibernate.connection.password}"
- autocommit="yes"
- onerror="continue" />
- <!-- create previous version schema -->
- <sql src="${previous.version.dir}/jbpm.(a){db}.create.sql"
- url="${(a){db}.hibernate.connection.url}"
- driver="${(a){db}.hibernate.connection.driver_class}"
- classpathref="maven.compile.classpath"
- userid="${(a){db}.hibernate.connection.username}"
- password="${(a){db}.hibernate.connection.password}"
- autocommit="yes"
- onerror="continue" />
- <!-- generate schema upgrade script -->
- <schemaupdate outputFile="${previous.version.dir}/jbpm.(a){db}.update.sql"
- config="${(a){db}.hibernate.cfg}"
- properties="${(a){db}.hibernate.properties}"
- delimiter=";" />
-
- <echo>=====================</echo>
- </sequential>
- </macrodef>
-</project>
\ No newline at end of file
Added: jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbUpgrade.java
===================================================================
--- jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbUpgrade.java (rev 0)
+++ jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbUpgrade.java 2009-09-21 16:10:41 UTC (rev 5666)
@@ -0,0 +1,40 @@
+/*
+ * 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.db;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class DbUpgrade {
+
+ public static void main(String[] args) {
+ System.out.println("jBPM DB upgrade tool");
+
+// String dbVersion = getDbVersion();
+// String distroVersion = "4.2";
+//
+// if (upgrade41to40Necessary(dbVersion)) {
+// upgrade41to40();
+// }
+ }
+}
Property changes on: jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbUpgrade.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.hsqldb.upgrade.sql
===================================================================
--- jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.hsqldb.upgrade.sql (rev 0)
+++ jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.hsqldb.upgrade.sql 2009-09-21 16:10:41 UTC (rev 5666)
@@ -0,0 +1,7 @@
+
+ create table JBPM4_PROPERTY (
+ KEY_ varchar(255) not null,
+ VERSION_ integer not null,
+ VALUE_ varchar(255),
+ primary key (KEY_)
+ );
Added: jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.mysql.upgrade.sql
===================================================================
--- jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.mysql.upgrade.sql (rev 0)
+++ jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.mysql.upgrade.sql 2009-09-21 16:10:41 UTC (rev 5666)
@@ -0,0 +1,7 @@
+
+ create table JBPM4_PROPERTY (
+ KEY_ varchar(255) not null,
+ VERSION_ integer not null,
+ VALUE_ varchar(255),
+ primary key (KEY_)
+ ) type=InnoDB;
Added: jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.oracle.upgrade.sql
===================================================================
--- jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.oracle.upgrade.sql (rev 0)
+++ jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.oracle.upgrade.sql 2009-09-21 16:10:41 UTC (rev 5666)
@@ -0,0 +1,7 @@
+
+ create table JBPM4_PROPERTY (
+ KEY_ varchar2(255 char) not null,
+ VERSION_ number(10,0) not null,
+ VALUE_ varchar2(255 char),
+ primary key (KEY_)
+ );
Added: jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.postgresql.upgrade.sql
===================================================================
--- jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.postgresql.upgrade.sql (rev 0)
+++ jbpm4/trunk/modules/db/src/main/resources/db/upgrade-4.1-to-4.2/jbpm.postgresql.upgrade.sql 2009-09-21 16:10:41 UTC (rev 5666)
@@ -0,0 +1,7 @@
+
+ create table JBPM4_PROPERTY (
+ KEY_ varchar(255) not null,
+ VERSION_ int4 not null,
+ VALUE_ varchar(255),
+ primary key (KEY_)
+ );
Modified: jbpm4/trunk/modules/distro/scripts/assembly-distro.xml
===================================================================
--- jbpm4/trunk/modules/distro/scripts/assembly-distro.xml 2009-09-21 15:59:45 UTC (rev 5665)
+++ jbpm4/trunk/modules/distro/scripts/assembly-distro.xml 2009-09-21 16:10:41 UTC (rev 5666)
@@ -79,10 +79,10 @@
</fileSet>
<fileSet>
<directory>../db/target/classes</directory>
- <outputDirectory>install/src/db</outputDirectory>
- <includes>
- <include>*.sql</include>
- </includes>
+ <outputDirectory>install/src</outputDirectory>
+ <excludes>
+ <exclude>META-INF/**</exclude>
+ </excludes>
</fileSet>
<fileSet>
<directory>../devguide/target/docbook/publish/en</directory>
Modified: jbpm4/trunk/qa/jdbc/postgresql.properties
===================================================================
--- jbpm4/trunk/qa/jdbc/postgresql.properties 2009-09-21 15:59:45 UTC (rev 5665)
+++ jbpm4/trunk/qa/jdbc/postgresql.properties 2009-09-21 16:10:41 UTC (rev 5666)
@@ -1,6 +1,6 @@
jdbc.driver=org.postgresql.Driver
jdbc.port=5432
-jdbc.server=dev01.qa.atl.jboss.com
+jdbc.server=vmg01.mw.lab.eng.bos.redhat.com
jdbc.databasename=pvm1
jdbc.url=jdbc:postgresql://vmg01.mw.lab.eng.bos.redhat.com:5432/pvm1
jdbc.username=pvm1
14 years, 7 months
JBoss JBPM SVN: r5665 - in jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm: svc/save and 1 other directory.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-09-21 11:59:45 -0400 (Mon, 21 Sep 2009)
New Revision: 5665
Modified:
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/logging/log/ProcessLog.java
jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/SaveLogsOperation.java
Log:
SOA-1476 moved setting of log index from domain model to save operation. that way the token will not be updated if no logging service is configured
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/logging/log/ProcessLog.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/logging/log/ProcessLog.java 2009-09-21 07:40:38 UTC (rev 5664)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/logging/log/ProcessLog.java 2009-09-21 15:59:45 UTC (rev 5665)
@@ -55,7 +55,6 @@
public void setToken(Token token) {
this.token = token;
- this.index = token.nextLogIndex();
}
public void setParent(CompositeLog parent) {
Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/SaveLogsOperation.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/SaveLogsOperation.java 2009-09-21 07:40:38 UTC (rev 5664)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/svc/save/SaveLogsOperation.java 2009-09-21 15:59:45 UTC (rev 5665)
@@ -27,6 +27,7 @@
import org.apache.commons.logging.LogFactory;
import org.jbpm.JbpmContext;
import org.jbpm.graph.exe.ProcessInstance;
+import org.jbpm.graph.exe.Token;
import org.jbpm.logging.LoggingService;
import org.jbpm.logging.exe.LoggingInstance;
import org.jbpm.logging.log.ProcessLog;
@@ -44,6 +45,11 @@
Iterator iter = loggingInstance.getLogs().iterator();
while (iter.hasNext()) {
ProcessLog processLog = (ProcessLog) iter.next();
+ Token token = processLog.getToken();
+ if (token!=null) {
+ int index = token.nextLogIndex();
+ processLog.setIndex(index);
+ }
loggingService.log(processLog);
}
14 years, 7 months
JBoss JBPM SVN: r5664 - in jbpm4/trunk/modules: test-cfg/src/test/resources/org/jbpm/test/hibernatelongid and 1 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-09-21 03:40:38 -0400 (Mon, 21 Sep 2009)
New Revision: 5664
Modified:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentProperty.java
jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatelongid/jbpm.cfg.xml
jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatestringid/jbpm.cfg.xml
Log:
JBPM-2526 used dynamic lookup for DbidGenerator in DeploymentProperty
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentProperty.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentProperty.java 2009-09-21 07:32:02 UTC (rev 5663)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentProperty.java 2009-09-21 07:40:38 UTC (rev 5664)
@@ -24,7 +24,6 @@
import java.io.Serializable;
import org.jbpm.api.JbpmException;
-import org.jbpm.pvm.internal.env.EnvironmentImpl;
import org.jbpm.pvm.internal.id.DbidGenerator;
@@ -46,7 +45,7 @@
}
public DeploymentProperty(DeploymentImpl deployment, String objectName, String key) {
- this.dbid = EnvironmentImpl.getFromCurrent(DbidGenerator.class).getNextId();
+ this.dbid = DbidGenerator.getDbidGenerator().getNextId();
this.deployment = deployment;
this.objectName = objectName;
this.key = key;
Modified: jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatelongid/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatelongid/jbpm.cfg.xml 2009-09-21 07:32:02 UTC (rev 5663)
+++ jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatelongid/jbpm.cfg.xml 2009-09-21 07:40:38 UTC (rev 5664)
@@ -23,6 +23,11 @@
<hibernate-session-factory />
+ <object class="org.jbpm.pvm.internal.id.DatabaseDbidGenerator" init="eager">
+ <field name="commandService"><ref type="org.jbpm.pvm.internal.cmd.CommandService" /></field>
+ <invoke method="initialize" />
+ </object>
+
<script-manager default-expression-language="juel"
default-script-language="juel">
<script-language name="juel" factory="org.jbpm.pvm.internal.script.JuelScriptEngineFactory" />
Modified: jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatestringid/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatestringid/jbpm.cfg.xml 2009-09-21 07:32:02 UTC (rev 5663)
+++ jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/hibernatestringid/jbpm.cfg.xml 2009-09-21 07:40:38 UTC (rev 5664)
@@ -23,6 +23,11 @@
<hibernate-session-factory />
+ <object class="org.jbpm.pvm.internal.id.DatabaseDbidGenerator" init="eager">
+ <field name="commandService"><ref type="org.jbpm.pvm.internal.cmd.CommandService" /></field>
+ <invoke method="initialize" />
+ </object>
+
<script-manager default-expression-language="juel"
default-script-language="juel">
<script-language name="juel" factory="org.jbpm.pvm.internal.script.JuelScriptEngineFactory" />
14 years, 7 months