JBoss JBPM SVN: r2743 - in projects/spec/trunk/modules: dialects/api10/src/main/java/org/jbpm/dialect/api10 and 3 other directories.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-11-01 08:31:55 -0400 (Sat, 01 Nov 2008)
New Revision: 2743
Added:
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionAssociation.java
Modified:
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java
projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/MessageServiceImpl.java
Log:
Add TransactionAssociation
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java 2008-11-01 12:04:46 UTC (rev 2742)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java 2008-11-01 12:31:55 UTC (rev 2743)
@@ -32,6 +32,7 @@
import org.jbpm.api.model.Process;
import org.jbpm.api.model.ProcessDefinition;
import org.jbpm.api.model.Group.GroupType;
+import org.jbpm.api.model.Task.TaskType;
import org.jbpm.api.model.builder.ProcessBuilder;
import org.jbpm.api.service.ProcessBuilderService;
import org.jbpm.api.test.CTSTestCase;
@@ -69,9 +70,12 @@
ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
procBuilder.addProcess("RequiresTxTest");
procBuilder.addStartEvent("Start").addSequenceFlow("TaskA");
- procBuilder.addTask("TaskA").addGroupRef("TxRequired").addSequenceFlow("TaskB");
- procBuilder.addTask("TaskB").addGroupRef("TxRequired").addSequenceFlow("End").addEndEvent("End");
+ procBuilder.addTask("TaskA", TaskType.Send).addOutMessageRef("TaskAMessage").addGroupRef("TxRequired").addSequenceFlow("TaskB");
+ procBuilder.addTask("TaskB", TaskType.Send).addOutMessageRef("TaskBMessage").addGroupRef("TxRequired").addSequenceFlow("End");
procBuilder.addGroup(GroupType.Transaction, "TxRequired").addProperty(Constants.PROP_TX_TYPE, TxType.REQUIRED);
+ procBuilder.addProcessMessage("TaskAMessage").addToRef(getTestID()).addProperty("msgProp", "msgA");
+ procBuilder.addProcessMessage("TaskBMessage").addToRef(getTestID()).addProperty("msgProp", "msgB");;
+ procBuilder.addEndEvent("End");
return procBuilder.getProcessDefinition();
}
}
Modified: projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java
===================================================================
--- projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java 2008-11-01 12:04:46 UTC (rev 2742)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java 2008-11-01 12:31:55 UTC (rev 2743)
@@ -397,8 +397,7 @@
private String getParticipant(Participant par)
{
- String parName = par.getName().getCanonicalName();
- return parName;
+ return par != null ? par.getName().getCanonicalName() : null;
}
private JAXBFlow getJAXBFlow(SequenceFlow flow)
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java 2008-11-01 12:04:46 UTC (rev 2742)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java 2008-11-01 12:31:55 UTC (rev 2743)
@@ -28,6 +28,7 @@
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
+import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@@ -59,10 +60,10 @@
@Basic
private String name;
- @OneToOne(cascade = { CascadeType.ALL }, targetEntity = ParticipantImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = ParticipantImpl.class)
private Participant fromRef;
- @OneToOne(cascade = { CascadeType.ALL }, targetEntity = ParticipantImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = ParticipantImpl.class)
private Participant toRef;
@OneToOne(cascade = { CascadeType.ALL }, targetEntity = PropertySupportImpl.class)
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java 2008-11-01 12:04:46 UTC (rev 2742)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java 2008-11-01 12:31:55 UTC (rev 2743)
@@ -29,6 +29,7 @@
import org.jbpm.api.model.Message;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.Participant;
+import org.jbpm.api.model.Property;
import org.jbpm.api.model.builder.MessageBuilder;
import org.jbpm.api.runtime.ExecutionContext;
import org.jbpm.api.runtime.Token;
@@ -77,14 +78,17 @@
msgBuilder.newMessage(messageRef.getName());
msgBuilder.addToRef(targetID);
- // Copy the properties from the execution context
- // to the send message
+ // Copy the properties from the execution context to the send message
for (String propName : messageRef.getPropertyNames())
{
- Object value = exContext.getAttachment(propName);
- if (value == null)
- throw new IllegalStateException("Cannot obtain property: " + propName);
-
+ Property prop = messageRef.getProperty(propName);
+ Object value = prop.getValue();
+ if (prop.isCorrelation())
+ {
+ value = exContext.getAttachment(propName);
+ if (value == null)
+ throw new IllegalStateException("Cannot obtain property: " + propName);
+ }
msgBuilder.addProperty(propName, value);
}
MessageImpl msg = (MessageImpl)msgBuilder.getMessage();
@@ -94,4 +98,4 @@
MessageService msgService = engine.getService(MessageService.class);
msgService.sendMessage(msg);
}
-}
\ No newline at end of file
+}
Added: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionAssociation.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionAssociation.java (rev 0)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionAssociation.java 2008-11-01 12:31:55 UTC (rev 2743)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.ri.runtime;
+
+//$Id$
+
+import org.hibernate.Transaction;
+
+/**
+ * A thread local association for the current transaction
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 01-Nov-2008
+ */
+public class TransactionAssociation
+{
+ private static final ThreadLocal<Transaction> txAssociation = new ThreadLocal<Transaction>();
+
+ public static void setTransaction(Transaction tx)
+ {
+ txAssociation.set(tx);
+ }
+
+ public static Transaction getTransaction()
+ {
+ return txAssociation.get();
+ }
+}
\ No newline at end of file
Property changes on: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionAssociation.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java 2008-11-01 12:04:46 UTC (rev 2742)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java 2008-11-01 12:31:55 UTC (rev 2743)
@@ -42,8 +42,6 @@
{
final static Logger log = LoggerFactory.getLogger(TransactionInterceptor.class);
- private PersistenceService service;
-
@Override
public void execute(RuntimeContext rtContext)
{
@@ -53,10 +51,13 @@
// Begin the Tx
Session session = token.getSession();
Transaction tx = session.beginTransaction();
+ TransactionAssociation.setTransaction(tx);
+
try
{
// Load the node
- PersistenceService service = getPersistenceService(node.getProcessEngine());
+ ProcessEngine engine = node.getProcessEngine();
+ PersistenceService service = engine.getService(PersistenceService.class);
node = service.loadNode(session, node.getClass(), node.getKey());
// Call the next interceptor in the chain
@@ -83,13 +84,9 @@
}
throw rte;
}
+ finally
+ {
+ TransactionAssociation.setTransaction(null);
+ }
}
-
- private PersistenceService getPersistenceService(ProcessEngine engine)
- {
- if (service == null)
- service = engine.getService(PersistenceService.class);
-
- return service;
- }
-}
\ No newline at end of file
+}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java 2008-11-01 12:04:46 UTC (rev 2742)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java 2008-11-01 12:31:55 UTC (rev 2743)
@@ -32,6 +32,7 @@
import org.hibernate.ObjectNotFoundException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
+import org.hibernate.StaleStateException;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.jbpm.api.NodeNotFoundException;
@@ -208,6 +209,10 @@
session.delete(proc);
tx.commit();
}
+ catch (StaleStateException ex)
+ {
+ System.out.println("FIXME: intermitent " + ex);
+ }
finally
{
session.close();
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/MessageServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/MessageServiceImpl.java 2008-11-01 12:04:46 UTC (rev 2742)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/MessageServiceImpl.java 2008-11-01 12:31:55 UTC (rev 2743)
@@ -23,10 +23,17 @@
// $Id$
+import javax.transaction.Status;
+import javax.transaction.Synchronization;
+
+import org.hibernate.Transaction;
import org.jbpm.api.client.MessageListener;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Message;
import org.jbpm.api.service.MessageService;
+import org.jbpm.ri.runtime.TransactionAssociation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* The ProcessEngine sends messages through the MessageService.
@@ -39,9 +46,64 @@
*/
public class MessageServiceImpl extends MessageService implements MutableService
{
+ // Provide logging
+ final Logger log = LoggerFactory.getLogger(MessageServiceImpl.class);
+
@Override
public void setProcessEngine(ProcessEngine engine)
{
super.setProcessEngine(engine);
}
+
+ @Override
+ public void sendMessage(Message msg)
+ {
+ Transaction tx = TransactionAssociation.getTransaction();
+ sendMessageTx(msg, null);
+ }
+
+ private void sendMessageTx(Message msg, Transaction tx)
+ {
+ if (tx != null)
+ {
+ tx.registerSynchronization(new MessageWrapper(this, msg));
+ }
+ else
+ {
+ super.sendMessage(msg);
+ }
+ }
+
+ public class MessageWrapper implements Synchronization
+ {
+ private MessageServiceImpl service;
+ private Message msg;
+
+
+ protected MessageWrapper(MessageServiceImpl service, Message msg)
+ {
+ this.service = service;
+ this.msg = msg;
+ }
+
+ @Override
+ public void afterCompletion(int status)
+ {
+ if (status != Status.STATUS_COMMITTED)
+ {
+ log.debug("Ignore message after completion: status=" + status + "," + msg);
+ }
+ else
+ {
+ log.debug("Send message after completion " + msg);
+ service.sendMessageTx(msg, null);
+ }
+ }
+
+ @Override
+ public void beforeCompletion()
+ {
+ // nothing to do
+ }
+ }
}
17 years, 5 months
JBoss JBPM SVN: r2742 - projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/runtime.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-11-01 08:04:46 -0400 (Sat, 01 Nov 2008)
New Revision: 2742
Added:
projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionAssociation.java
Log:
wip
Added: projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionAssociation.java
===================================================================
--- projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionAssociation.java (rev 0)
+++ projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionAssociation.java 2008-11-01 12:04:46 UTC (rev 2742)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.ri.runtime;
+
+//$Id$
+
+import org.hibernate.Transaction;
+
+/**
+ * A thread local association for the current transaction
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 01-Nov-2008
+ */
+public class TransactionAssociation
+{
+ private static final ThreadLocal<Transaction> txAssociation = new ThreadLocal<Transaction>();
+
+ public static void setTransaction(Transaction tx)
+ {
+ txAssociation.set(tx);
+ }
+
+ public static Transaction getTransaction()
+ {
+ return txAssociation.get();
+ }
+}
\ No newline at end of file
Property changes on: projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionAssociation.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
17 years, 5 months
JBoss JBPM SVN: r2741 - in projects/spec/branches/tdiesler/modules: ri/src/main/java/org/jbpm/ri/runtime and 4 other directories.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-11-01 08:04:29 -0400 (Sat, 01 Nov 2008)
New Revision: 2741
Modified:
projects/spec/branches/tdiesler/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java
projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java
projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java
projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/service/MessageServiceImpl.java
projects/spec/branches/tdiesler/modules/ri/src/main/resources/jbpm-cfg-beans.xml
projects/spec/branches/tdiesler/modules/ri/src/test/resources/log4j.xml
projects/spec/branches/tdiesler/modules/samples/airticket/server/src/test/resources/log4j.xml
Log:
wip
Modified: projects/spec/branches/tdiesler/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java
===================================================================
--- projects/spec/branches/tdiesler/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java 2008-11-01 12:03:43 UTC (rev 2740)
+++ projects/spec/branches/tdiesler/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java 2008-11-01 12:04:29 UTC (rev 2741)
@@ -32,6 +32,7 @@
import org.jbpm.api.model.Process;
import org.jbpm.api.model.ProcessDefinition;
import org.jbpm.api.model.Group.GroupType;
+import org.jbpm.api.model.Task.TaskType;
import org.jbpm.api.model.builder.ProcessBuilder;
import org.jbpm.api.service.ProcessBuilderService;
import org.jbpm.api.test.CTSTestCase;
@@ -69,9 +70,12 @@
ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
procBuilder.addProcess("RequiresTxTest");
procBuilder.addStartEvent("Start").addSequenceFlow("TaskA");
- procBuilder.addTask("TaskA").addGroupRef("TxRequired").addSequenceFlow("TaskB");
- procBuilder.addTask("TaskB").addGroupRef("TxRequired").addSequenceFlow("End").addEndEvent("End");
+ procBuilder.addTask("TaskA", TaskType.Send).addOutMessageRef("TaskAMessage").addGroupRef("TxRequired").addSequenceFlow("TaskB");
+ procBuilder.addTask("TaskB", TaskType.Send).addOutMessageRef("TaskBMessage").addGroupRef("TxRequired").addSequenceFlow("End");
procBuilder.addGroup(GroupType.Transaction, "TxRequired").addProperty(Constants.PROP_TX_TYPE, TxType.REQUIRED);
+ procBuilder.addProcessMessage("TaskAMessage").addToRef(getTestID()).addProperty("msgProp", "msgA");
+ procBuilder.addProcessMessage("TaskBMessage").addToRef(getTestID()).addProperty("msgProp", "msgB");;
+ procBuilder.addEndEvent("End");
return procBuilder.getProcessDefinition();
}
}
Modified: projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java
===================================================================
--- projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java 2008-11-01 12:03:43 UTC (rev 2740)
+++ projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/runtime/MessageSender.java 2008-11-01 12:04:29 UTC (rev 2741)
@@ -29,6 +29,7 @@
import org.jbpm.api.model.Message;
import org.jbpm.api.model.Node;
import org.jbpm.api.model.Participant;
+import org.jbpm.api.model.Property;
import org.jbpm.api.model.builder.MessageBuilder;
import org.jbpm.api.runtime.ExecutionContext;
import org.jbpm.api.runtime.Token;
@@ -77,14 +78,17 @@
msgBuilder.newMessage(messageRef.getName());
msgBuilder.addToRef(targetID);
- // Copy the properties from the execution context
- // to the send message
+ // Copy the properties from the execution context to the send message
for (String propName : messageRef.getPropertyNames())
{
- Object value = exContext.getAttachment(propName);
- if (value == null)
- throw new IllegalStateException("Cannot obtain property: " + propName);
-
+ Property prop = messageRef.getProperty(propName);
+ Object value = prop.getValue();
+ if (prop.isCorrelation())
+ {
+ value = exContext.getAttachment(propName);
+ if (value == null)
+ throw new IllegalStateException("Cannot obtain property: " + propName);
+ }
msgBuilder.addProperty(propName, value);
}
MessageImpl msg = (MessageImpl)msgBuilder.getMessage();
Modified: projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java
===================================================================
--- projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java 2008-11-01 12:03:43 UTC (rev 2740)
+++ projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java 2008-11-01 12:04:29 UTC (rev 2741)
@@ -42,8 +42,6 @@
{
final static Logger log = LoggerFactory.getLogger(TransactionInterceptor.class);
- private PersistenceService service;
-
@Override
public void execute(RuntimeContext rtContext)
{
@@ -53,10 +51,13 @@
// Begin the Tx
Session session = token.getSession();
Transaction tx = session.beginTransaction();
+ TransactionAssociation.setTransaction(tx);
+
try
{
// Load the node
- PersistenceService service = getPersistenceService(node.getProcessEngine());
+ ProcessEngine engine = node.getProcessEngine();
+ PersistenceService service = engine.getService(PersistenceService.class);
node = service.loadNode(session, node.getClass(), node.getKey());
// Call the next interceptor in the chain
@@ -83,13 +84,9 @@
}
throw rte;
}
+ finally
+ {
+ TransactionAssociation.setTransaction(null);
+ }
}
-
- private PersistenceService getPersistenceService(ProcessEngine engine)
- {
- if (service == null)
- service = engine.getService(PersistenceService.class);
-
- return service;
- }
}
\ No newline at end of file
Modified: projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/service/MessageServiceImpl.java
===================================================================
--- projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/service/MessageServiceImpl.java 2008-11-01 12:03:43 UTC (rev 2740)
+++ projects/spec/branches/tdiesler/modules/ri/src/main/java/org/jbpm/ri/service/MessageServiceImpl.java 2008-11-01 12:04:29 UTC (rev 2741)
@@ -23,10 +23,17 @@
// $Id$
+import javax.transaction.Status;
+import javax.transaction.Synchronization;
+
+import org.hibernate.Transaction;
import org.jbpm.api.client.MessageListener;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Message;
import org.jbpm.api.service.MessageService;
+import org.jbpm.ri.runtime.TransactionAssociation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* The ProcessEngine sends messages through the MessageService.
@@ -39,9 +46,64 @@
*/
public class MessageServiceImpl extends MessageService implements MutableService
{
+ // Provide logging
+ final Logger log = LoggerFactory.getLogger(MessageServiceImpl.class);
+
@Override
public void setProcessEngine(ProcessEngine engine)
{
super.setProcessEngine(engine);
}
+
+ @Override
+ public void sendMessage(Message msg)
+ {
+ Transaction tx = TransactionAssociation.getTransaction();
+ sendMessageTx(msg, null);
+ }
+
+ private void sendMessageTx(Message msg, Transaction tx)
+ {
+ if (tx != null)
+ {
+ tx.registerSynchronization(new MessageWrapper(this, msg));
+ }
+ else
+ {
+ super.sendMessage(msg);
+ }
+ }
+
+ public class MessageWrapper implements Synchronization
+ {
+ private MessageServiceImpl service;
+ private Message msg;
+
+
+ protected MessageWrapper(MessageServiceImpl service, Message msg)
+ {
+ this.service = service;
+ this.msg = msg;
+ }
+
+ @Override
+ public void afterCompletion(int status)
+ {
+ if (status != Status.STATUS_COMMITTED)
+ {
+ log.debug("Ignore message after completion: status=" + status + "," + msg);
+ }
+ else
+ {
+ log.debug("Send message after completion " + msg);
+ service.sendMessageTx(msg, null);
+ }
+ }
+
+ @Override
+ public void beforeCompletion()
+ {
+ // nothing to do
+ }
+ }
}
Modified: projects/spec/branches/tdiesler/modules/ri/src/main/resources/jbpm-cfg-beans.xml
===================================================================
--- projects/spec/branches/tdiesler/modules/ri/src/main/resources/jbpm-cfg-beans.xml 2008-11-01 12:03:43 UTC (rev 2740)
+++ projects/spec/branches/tdiesler/modules/ri/src/main/resources/jbpm-cfg-beans.xml 2008-11-01 12:04:29 UTC (rev 2741)
@@ -62,7 +62,7 @@
<bean name="jBPMProcessService" class="org.jbpm.ri.service.ProcessServiceImpl" >
<property name="interceptors">
<list elementClass="java.lang.String">
- <!-- value>org.jbpm.ri.runtime.TransactionInterceptor</value -->
+ <value>org.jbpm.ri.runtime.TransactionInterceptor</value>
<value>org.jbpm.ri.runtime.SignalHandlerInterceptor</value>
<value>org.jbpm.ri.runtime.FlowHandlerInterceptor</value>
<value>org.jbpm.ri.runtime.AssignmentInterceptor</value>
Modified: projects/spec/branches/tdiesler/modules/ri/src/test/resources/log4j.xml
===================================================================
--- projects/spec/branches/tdiesler/modules/ri/src/test/resources/log4j.xml 2008-11-01 12:03:43 UTC (rev 2740)
+++ projects/spec/branches/tdiesler/modules/ri/src/test/resources/log4j.xml 2008-11-01 12:04:29 UTC (rev 2741)
@@ -33,7 +33,7 @@
<!-- ================ -->
<category name="org.hibernate">
- <priority value="DEBUG" />
+ <priority value="INFO" />
</category>
<!-- ======================= -->
Modified: projects/spec/branches/tdiesler/modules/samples/airticket/server/src/test/resources/log4j.xml
===================================================================
--- projects/spec/branches/tdiesler/modules/samples/airticket/server/src/test/resources/log4j.xml 2008-11-01 12:03:43 UTC (rev 2740)
+++ projects/spec/branches/tdiesler/modules/samples/airticket/server/src/test/resources/log4j.xml 2008-11-01 12:04:29 UTC (rev 2741)
@@ -40,11 +40,6 @@
<priority value="INFO" />
</category>
- <!-- hide optimistic locking failures -->
- <category name="org.hibernate.event.def.AbstractFlushingEventListener">
- <priority value="FATAL" />
- </category>
-
<!-- ======================= -->
<!-- Setup the Root category -->
<!-- ======================= -->
17 years, 5 months
JBoss JBPM SVN: r2740 - projects/spec/branches.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-11-01 08:03:43 -0400 (Sat, 01 Nov 2008)
New Revision: 2740
Added:
projects/spec/branches/tdiesler/
Log:
recreate userbranch
Copied: projects/spec/branches/tdiesler (from rev 2739, projects/spec/trunk)
17 years, 5 months
JBoss JBPM SVN: r2739 - projects/spec/branches.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-11-01 08:03:11 -0400 (Sat, 01 Nov 2008)
New Revision: 2739
Removed:
projects/spec/branches/tdiesler/
Log:
recreate userbranch
17 years, 5 months
JBoss JBPM SVN: r2738 - jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2008-11-01 07:15:28 -0400 (Sat, 01 Nov 2008)
New Revision: 2738
Modified:
jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/DbTestCase.java
Log:
unification api proposals
Modified: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/DbTestCase.java
===================================================================
--- jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/DbTestCase.java 2008-11-01 11:13:54 UTC (rev 2737)
+++ jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/DbTestCase.java 2008-11-01 11:15:28 UTC (rev 2738)
@@ -21,51 +21,52 @@
*/
package org.jbpm.test;
+import org.jbpm.Configuration;
import org.jbpm.ExecutionService;
import org.jbpm.ManagementService;
+import org.jbpm.ProcessEngine;
import org.jbpm.ProcessService;
-import org.jbpm.cmd.CommandService;
-/** for tests that use persistence through a command service.
- *
- * The DB is cleaned inbetween tests. No environment is created.
- *
+/**
* @author Tom Baeyens
*/
-public abstract class DbTestCase extends EnvironmentFactoryTestCase {
+public class DbTestCase extends JbpmTestCase {
- protected CommandService commandService;
+ protected static ProcessEngine processEngine = null;
+
protected ProcessService processService;
protected ExecutionService executionService;
protected ManagementService managementService;
- public DbTestCase() {
- super();
- }
-
- public DbTestCase(String configResource) {
- super(configResource);
- }
-
public void setUp() throws Exception {
super.setUp();
- if (isEnvironmentFactoryCached()) {
- Db.clean(getEnvironmentFactory());
+ initializeProcessEngine();
+
+ processService = processEngine.getProcessService();
+ executionService = processEngine.getExecutionService();
+ managementService = processEngine.getManagementService();
+ }
+
+ protected synchronized void initializeProcessEngine() {
+ if (processEngine==null) {
+
+ String jbpmTestCfgType = System.getProperty("jbpm.test.cfg.type");
+ Configuration configuration = new Configuration(jbpmTestCfgType);
+
+ String jbpmTestCfgResource = System.getProperty("jbpm.test.cfg.resource");
+ if (jbpmTestCfgResource!=null) {
+ configuration.setResource(jbpmTestCfgResource);
+ }
+
+ processEngine = configuration.buildProcessEngine();
}
+ }
- commandService = getEnvironmentFactory().get(CommandService.class);
- processService = getEnvironmentFactory().get(ProcessService.class);
- executionService = getEnvironmentFactory().get(ExecutionService.class);
- managementService = getEnvironmentFactory().get(ManagementService.class);
- }
-
public void tearDown() throws Exception {
- commandService = null;
- processService = null;
- executionService = null;
- managementService = null;
+ Db.clean(processEngine);
+
super.tearDown();
}
}
17 years, 5 months
JBoss JBPM SVN: r2737 - in jbpm4/trunk/modules: pvm/src/test/java/org/jbpm/pvm/api/db/continuation and 9 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2008-11-01 07:13:54 -0400 (Sat, 01 Nov 2008)
New Revision: 2737
Added:
jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/OldDbTestCase.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/BasicExecutionFlowDbTest.java
jbpm4/trunk/modules/test-db/src/test/resources/
jbpm4/trunk/modules/test-db/src/test/resources/hibernate.properties
jbpm4/trunk/modules/test-db/src/test/resources/jbpm.cfg.xml
jbpm4/trunk/modules/test-db/src/test/resources/logging.properties
Removed:
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/BasicExecutionFlowDbTest.java
Modified:
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/AutomaticDecisionDbTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/continuation/ContinuationTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ExecutionServiceTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ManagementServiceTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ProcessServiceTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/tx/BasicTransactionTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/jobexecutor/JobExecutorIsolationDbTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/jobexecutor/JobExecutorTest.java
jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/Db.java
jbpm4/trunk/modules/test-db/.classpath
jbpm4/trunk/modules/test-db/pom.xml
Log:
unification api proposals
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/AutomaticDecisionDbTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/AutomaticDecisionDbTest.java 2008-11-01 10:45:21 UTC (rev 2736)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/AutomaticDecisionDbTest.java 2008-11-01 11:13:54 UTC (rev 2737)
@@ -23,14 +23,14 @@
import org.jbpm.pvm.activity.ExternalActivity;
import org.jbpm.pvm.client.ClientProcessDefinition;
import org.jbpm.pvm.model.ProcessFactory;
-import org.jbpm.test.DbTestCase;
+import org.jbpm.test.OldDbTestCase;
/**
* @author Tom Baeyens
* @author Guillaume Porcher
*/
-public class AutomaticDecisionDbTest extends DbTestCase {
+public class AutomaticDecisionDbTest extends OldDbTestCase {
public static class AutomaticCreditRating implements Activity {
private static final long serialVersionUID = 1L;
Deleted: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/BasicExecutionFlowDbTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/BasicExecutionFlowDbTest.java 2008-11-01 10:45:21 UTC (rev 2736)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/BasicExecutionFlowDbTest.java 2008-11-01 11:13:54 UTC (rev 2737)
@@ -1,137 +0,0 @@
-/**
- * Copyright (C) 2007 Bull S. A. S.
- * Bull, Rue Jean Jaures, B.P.68, 78340, Les Clayes-sous-Bois
- * This library 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
- * version 2.1 of the License.
- * This library 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
- * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301, USA.
- **/
-package org.jbpm.pvm.api.db.basicfeatures;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.jbpm.Execution;
-import org.jbpm.pvm.DeploymentImpl;
-import org.jbpm.pvm.activity.Activity;
-import org.jbpm.pvm.activity.ActivityExecution;
-import org.jbpm.pvm.activity.ExternalActivity;
-import org.jbpm.pvm.client.ClientProcessDefinition;
-import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
-import org.jbpm.pvm.model.ProcessFactory;
-import org.jbpm.test.DbTestCase;
-
-
-/**
- * @author Guillaume Porcher
- *
- */
-public class BasicExecutionFlowDbTest extends DbTestCase {
-
- // automatic activity will log an event in a given list
- public static List<String> recordedEvents;
-
- public static class AutomaticActivity implements Activity {
- private static final long serialVersionUID = 1L;
-
- public void execute(ActivityExecution execution) {
- recordedEvents.add("execute["+execution.getNodeName()+"]");
- }
- }
-
- public static class WaitState implements ExternalActivity {
- private static final long serialVersionUID = 1L;
-
- public void execute(ActivityExecution execution) {
- recordedEvents.add("execute["+execution.getNodeName()+"]");
- execution.waitForSignal();
- }
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) throws Exception {
- recordedEvents.add("signal["+execution.getNodeName()+"]");
- execution.take(signalName);
- }
- }
-
- public void testChainOfAutomaticActivitiesAndWaitStates() {
- recordedEvents = new ArrayList<String>();
-
- ClientProcessDefinition processDefinition = ProcessFactory.build("myProcess")
- .node("a").initial().behaviour(new ObjectDescriptor(AutomaticActivity.class))
- .transition().to("b")
- .node("b").behaviour(AutomaticActivity.class)
- .transition().to("c")
- .node("c").behaviour(WaitState.class)
- .transition().to("d")
- .node("d").behaviour(WaitState.class)
- .transition().to("e")
- .node("e").behaviour(AutomaticActivity.class)
- .transition().to("f")
- .node("f").behaviour(AutomaticActivity.class)
- .done();
-
- DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- Execution processInstance = executionService.startExecution("myProcess:1", "one");
-
- List<String> expectedEvents = new ArrayList<String>();
-
- expectedEvents.add("execute[a]");
- expectedEvents.add("execute[b]");
- expectedEvents.add("execute[c]");
-
- assertEquals("c", processInstance.getNodeName());
- assertFalse(processInstance.isEnded());
- assertEquals(expectedEvents, recordedEvents);
-
- processInstance = executionService.signalExecution(processInstance.getId());
-
- expectedEvents.add("signal[c]");
- expectedEvents.add("execute[d]");
-
- assertEquals("d", processInstance.getNodeName());
- assertFalse(processInstance.isEnded());
- assertEquals(expectedEvents, recordedEvents);
-
- processInstance = executionService.signalExecution(processInstance.getId());
-
- expectedEvents.add("signal[d]");
- expectedEvents.add("execute[e]");
- expectedEvents.add("execute[f]");
-
- assertEquals("f", processInstance.getNodeName());
- assertTrue(processInstance.isEnded());
- assertEquals(expectedEvents, recordedEvents);
- }
-/*
- public void testDelayedBegin() {
- recordedEvents = new ArrayList<String>();
-
- ClientProcessDefinition processDefinition = ProcessFactory.build("delayedBegin")
- .node("a").initial().behaviour(WaitState.class)
- .done();
-
- processService.deploy(processDefinition);
-
- Execution processInstance = executionService.startExecution(processDefinition.getDbid());
-
- // here, inbetween create and begin of a process instance, the variables can be initialized
- // or subprocessinstance-superprocessinstance relation can be set up
-
- // so we verify that the process execution didn't start yet
- List<String> expectedEvents = new ArrayList<String>();
- assertEquals(expectedEvents, recordedEvents);
-
- processInstance.begin();
-
- expectedEvents.add("execute[a]");
- assertEquals(expectedEvents, recordedEvents);
- }
-*/
-}
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/continuation/ContinuationTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/continuation/ContinuationTest.java 2008-11-01 10:45:21 UTC (rev 2736)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/continuation/ContinuationTest.java 2008-11-01 11:13:54 UTC (rev 2737)
@@ -43,13 +43,13 @@
import org.jbpm.pvm.model.ProcessFactory;
import org.jbpm.pvm.session.DbSession;
import org.jbpm.pvm.session.PvmDbSession;
-import org.jbpm.test.DbTestCase;
+import org.jbpm.test.OldDbTestCase;
import org.jbpm.test.EnvironmentFactoryTestSetup;
/**
* @author Tom Baeyens
*/
-public class ContinuationTest extends DbTestCase
+public class ContinuationTest extends OldDbTestCase
{
private static final Log log = Log.getLog(ContinuationTest.class.getName());
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ExecutionServiceTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ExecutionServiceTest.java 2008-11-01 10:45:21 UTC (rev 2736)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ExecutionServiceTest.java 2008-11-01 11:13:54 UTC (rev 2737)
@@ -35,13 +35,13 @@
import org.jbpm.pvm.DeploymentImpl;
import org.jbpm.pvm.client.ClientProcessDefinition;
import org.jbpm.pvm.model.ProcessFactory;
-import org.jbpm.test.DbTestCase;
+import org.jbpm.test.OldDbTestCase;
import org.jbpm.test.EnvironmentFactoryTestSetup;
/**
* @author Tom Baeyens
*/
-public class ExecutionServiceTest extends DbTestCase
+public class ExecutionServiceTest extends OldDbTestCase
{
public static Test suite()
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ManagementServiceTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ManagementServiceTest.java 2008-11-01 10:45:21 UTC (rev 2736)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ManagementServiceTest.java 2008-11-01 11:13:54 UTC (rev 2737)
@@ -24,13 +24,13 @@
import junit.framework.Test;
import org.jbpm.ManagementService;
-import org.jbpm.test.DbTestCase;
+import org.jbpm.test.OldDbTestCase;
import org.jbpm.test.EnvironmentFactoryTestSetup;
/**
* @author Tom Baeyens
*/
-public class ManagementServiceTest extends DbTestCase
+public class ManagementServiceTest extends OldDbTestCase
{
public static Test suite()
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ProcessServiceTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ProcessServiceTest.java 2008-11-01 10:45:21 UTC (rev 2736)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ProcessServiceTest.java 2008-11-01 11:13:54 UTC (rev 2737)
@@ -31,13 +31,13 @@
import org.jbpm.PvmException;
import org.jbpm.pvm.DeploymentImpl;
import org.jbpm.pvm.model.ProcessFactory;
-import org.jbpm.test.DbTestCase;
+import org.jbpm.test.OldDbTestCase;
import org.jbpm.test.EnvironmentFactoryTestSetup;
/**
* @author Tom Baeyens
*/
-public class ProcessServiceTest extends DbTestCase
+public class ProcessServiceTest extends OldDbTestCase
{
public static Test suite()
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/tx/BasicTransactionTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/tx/BasicTransactionTest.java 2008-11-01 10:45:21 UTC (rev 2736)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/tx/BasicTransactionTest.java 2008-11-01 11:13:54 UTC (rev 2737)
@@ -34,13 +34,13 @@
import org.jbpm.pvm.env.Transaction;
import org.jbpm.pvm.internal.model.CommentImpl;
import org.jbpm.pvm.internal.type.variable.StringVariable;
-import org.jbpm.test.DbTestCase;
+import org.jbpm.test.OldDbTestCase;
import org.jbpm.test.EnvironmentFactoryTestSetup;
/**
* @author Tom Baeyens
*/
-public class BasicTransactionTest extends DbTestCase
+public class BasicTransactionTest extends OldDbTestCase
{
public static Test suite()
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/jobexecutor/JobExecutorIsolationDbTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/jobexecutor/JobExecutorIsolationDbTest.java 2008-11-01 10:45:21 UTC (rev 2736)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/jobexecutor/JobExecutorIsolationDbTest.java 2008-11-01 11:13:54 UTC (rev 2737)
@@ -24,7 +24,7 @@
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
import org.jbpm.pvm.session.MessageSession;
import org.jbpm.pvm.session.PvmDbSession;
-import org.jbpm.test.DbTestCase;
+import org.jbpm.test.OldDbTestCase;
/**
@@ -33,7 +33,7 @@
* @author Guillaume Porcher
*
*/
-public class JobExecutorIsolationDbTest extends DbTestCase {
+public class JobExecutorIsolationDbTest extends OldDbTestCase {
static int jobExecutorTimeoutMillis = 500;
static int checkInterval = 400;
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/jobexecutor/JobExecutorTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/jobexecutor/JobExecutorTest.java 2008-11-01 10:45:21 UTC (rev 2736)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/jobexecutor/JobExecutorTest.java 2008-11-01 11:13:54 UTC (rev 2737)
@@ -50,14 +50,14 @@
import org.jbpm.pvm.model.ProcessFactory;
import org.jbpm.pvm.session.MessageSession;
import org.jbpm.pvm.session.PvmDbSession;
-import org.jbpm.test.DbTestCase;
+import org.jbpm.test.OldDbTestCase;
import org.jbpm.test.EnvironmentFactoryTestSetup;
/**
* @author Tom Baeyens
* @author Guillaume Porcher
*/
-public class JobExecutorTest extends DbTestCase {
+public class JobExecutorTest extends OldDbTestCase {
private static final Log log = Log.getLog(JobExecutorTest.class.getName());
Modified: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/Db.java
===================================================================
--- jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/Db.java 2008-11-01 10:45:21 UTC (rev 2736)
+++ jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/Db.java 2008-11-01 11:13:54 UTC (rev 2737)
@@ -33,6 +33,7 @@
import org.hibernate.engine.SessionFactoryImplementor;
import org.hibernate.mapping.ForeignKey;
import org.hibernate.mapping.Table;
+import org.jbpm.ProcessEngine;
import org.jbpm.pvm.env.EnvironmentFactory;
@@ -43,6 +44,10 @@
private static final String CLEAN_SQL_KEY = "cleanSql";
+ public static void clean(ProcessEngine processEngine) {
+ clean((EnvironmentFactory) processEngine);
+ }
+
public static void clean(EnvironmentFactory environmentFactory) {
SessionFactory sessionFactory = environmentFactory.get(SessionFactory.class);
String[] cleanSql = (String[]) environmentFactory.get(CLEAN_SQL_KEY);
@@ -116,5 +121,4 @@
session.close();
}
}
-
}
Copied: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/OldDbTestCase.java (from rev 2734, jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/DbTestCase.java)
===================================================================
--- jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/OldDbTestCase.java (rev 0)
+++ jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/OldDbTestCase.java 2008-11-01 11:13:54 UTC (rev 2737)
@@ -0,0 +1,71 @@
+/*
+ * 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;
+
+import org.jbpm.ExecutionService;
+import org.jbpm.ManagementService;
+import org.jbpm.ProcessService;
+import org.jbpm.cmd.CommandService;
+
+
+/** for tests that use persistence through a command service.
+ *
+ * The DB is cleaned inbetween tests. No environment is created.
+ *
+ * @author Tom Baeyens
+ */
+public abstract class OldDbTestCase extends EnvironmentFactoryTestCase {
+
+ protected CommandService commandService;
+ protected ProcessService processService;
+ protected ExecutionService executionService;
+ protected ManagementService managementService;
+
+ public OldDbTestCase() {
+ super();
+ }
+
+ public OldDbTestCase(String configResource) {
+ super(configResource);
+ }
+
+ public void setUp() throws Exception {
+ super.setUp();
+
+ if (isEnvironmentFactoryCached()) {
+ Db.clean(getEnvironmentFactory());
+ }
+
+ commandService = getEnvironmentFactory().get(CommandService.class);
+ processService = getEnvironmentFactory().get(ProcessService.class);
+ executionService = getEnvironmentFactory().get(ExecutionService.class);
+ managementService = getEnvironmentFactory().get(ManagementService.class);
+ }
+
+ public void tearDown() throws Exception {
+ commandService = null;
+ processService = null;
+ executionService = null;
+ managementService = null;
+ super.tearDown();
+ }
+}
Modified: jbpm4/trunk/modules/test-db/.classpath
===================================================================
--- jbpm4/trunk/modules/test-db/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
+++ jbpm4/trunk/modules/test-db/.classpath 2008-11-01 11:13:54 UTC (rev 2737)
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/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/test-classes"/>
Modified: jbpm4/trunk/modules/test-db/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-db/pom.xml 2008-11-01 10:45:21 UTC (rev 2736)
+++ jbpm4/trunk/modules/test-db/pom.xml 2008-11-01 11:13:54 UTC (rev 2737)
@@ -32,18 +32,20 @@
<artifactId>jbpm-api</artifactId>
<version>${version}</version>
</dependency>
+
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
+ <groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm-test-base</artifactId>
+ <version>${version}</version>
</dependency>
+
+ <!-- TODO remove PVM dependency for compilation (keep it for test)-->
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
+ <groupId>org.jbpm.jbpm4</groupId>
+ <artifactId>jbpm-pvm</artifactId>
+ <version>${version}</version>
</dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </dependency>
+
</dependencies>
<!-- Plugins -->
@@ -52,50 +54,4 @@
</plugins>
</build>
- <!-- Profiles -->
- <profiles>
-
- <!--
- Name: no-impl
- Descr: The default implementation profile
- -->
- <profile>
- <id>no-impl</id>
- <activation>
- <property>
- <name>!impl</name>
- </property>
- </activation>
- <dependencies>
- <dependency>
- <groupId>org.jbpm.jbpm4</groupId>
- <artifactId>jbpm-pvm</artifactId>
- <version>4.0.0-SNAPSHOT</version>
- </dependency>
- </dependencies>
- </profile>
-
- <!--
- Name: impl-ri
- Descr: The RI implementation profile
- -->
- <profile>
- <id>impl-ri</id>
- <activation>
- <property>
- <name>impl</name>
- <value>ri</value>
- </property>
- </activation>
- <dependencies>
- <dependency>
- <groupId>org.jbpm.spec</groupId>
- <artifactId>jbpm-spec-ri</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- </dependency>
- </dependencies>
- </profile>
-
- </profiles>
-
</project>
\ No newline at end of file
Copied: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/BasicExecutionFlowDbTest.java (from rev 2734, jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/BasicExecutionFlowDbTest.java)
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/BasicExecutionFlowDbTest.java (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/BasicExecutionFlowDbTest.java 2008-11-01 11:13:54 UTC (rev 2737)
@@ -0,0 +1,112 @@
+/**
+ * Copyright (C) 2007 Bull S. A. S.
+ * Bull, Rue Jean Jaures, B.P.68, 78340, Les Clayes-sous-Bois
+ * This library 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
+ * version 2.1 of the License.
+ * This library 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
+ * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
+ * Floor, Boston, MA 02110-1301, USA.
+ **/
+package org.jbpm.test.basicfeatures;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.jbpm.Execution;
+import org.jbpm.pvm.DeploymentImpl;
+import org.jbpm.pvm.activity.Activity;
+import org.jbpm.pvm.activity.ActivityExecution;
+import org.jbpm.pvm.activity.ExternalActivity;
+import org.jbpm.pvm.client.ClientProcessDefinition;
+import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
+import org.jbpm.pvm.model.ProcessFactory;
+import org.jbpm.test.DbTestCase;
+
+
+/**
+ * @author Guillaume Porcher
+ *
+ */
+public class BasicExecutionFlowDbTest extends DbTestCase {
+
+ // automatic activity will log an event in a given list
+ public static List<String> recordedEvents;
+
+ public static class AutomaticActivity implements Activity {
+ private static final long serialVersionUID = 1L;
+
+ public void execute(ActivityExecution execution) {
+ recordedEvents.add("execute["+execution.getNodeName()+"]");
+ }
+ }
+
+ public static class WaitState implements ExternalActivity {
+ private static final long serialVersionUID = 1L;
+
+ public void execute(ActivityExecution execution) {
+ recordedEvents.add("execute["+execution.getNodeName()+"]");
+ execution.waitForSignal();
+ }
+ public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) throws Exception {
+ recordedEvents.add("signal["+execution.getNodeName()+"]");
+ execution.take(signalName);
+ }
+ }
+
+ public void testChainOfAutomaticActivitiesAndWaitStates() {
+ recordedEvents = new ArrayList<String>();
+
+ ClientProcessDefinition processDefinition = ProcessFactory.build("myProcess")
+ .node("a").initial().behaviour(new ObjectDescriptor(AutomaticActivity.class))
+ .transition().to("b")
+ .node("b").behaviour(AutomaticActivity.class)
+ .transition().to("c")
+ .node("c").behaviour(WaitState.class)
+ .transition().to("d")
+ .node("d").behaviour(WaitState.class)
+ .transition().to("e")
+ .node("e").behaviour(AutomaticActivity.class)
+ .transition().to("f")
+ .node("f").behaviour(AutomaticActivity.class)
+ .done();
+
+ DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
+ processService.deploy(deploymentImpl);
+
+ Execution processInstance = executionService.startExecution("myProcess:1", "one");
+
+ List<String> expectedEvents = new ArrayList<String>();
+
+ expectedEvents.add("execute[a]");
+ expectedEvents.add("execute[b]");
+ expectedEvents.add("execute[c]");
+
+ assertEquals("c", processInstance.getNodeName());
+ assertFalse(processInstance.isEnded());
+ assertEquals(expectedEvents, recordedEvents);
+
+ processInstance = executionService.signalExecution(processInstance.getId());
+
+ expectedEvents.add("signal[c]");
+ expectedEvents.add("execute[d]");
+
+ assertEquals("d", processInstance.getNodeName());
+ assertFalse(processInstance.isEnded());
+ assertEquals(expectedEvents, recordedEvents);
+
+ processInstance = executionService.signalExecution(processInstance.getId());
+
+ expectedEvents.add("signal[d]");
+ expectedEvents.add("execute[e]");
+ expectedEvents.add("execute[f]");
+
+ assertEquals("f", processInstance.getNodeName());
+ assertTrue(processInstance.isEnded());
+ assertEquals(expectedEvents, recordedEvents);
+ }
+}
Property changes on: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/BasicExecutionFlowDbTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:mergeinfo
+
Added: jbpm4/trunk/modules/test-db/src/test/resources/hibernate.properties
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/hibernate.properties (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/resources/hibernate.properties 2008-11-01 11:13:54 UTC (rev 2737)
@@ -0,0 +1,11 @@
+hibernate.dialect org.hibernate.dialect.HSQLDialect
+hibernate.connection.driver_class org.hsqldb.jdbcDriver
+hibernate.connection.url jdbc:hsqldb:mem:.
+hibernate.connection.username sa
+hibernate.connection.password
+hibernate.hbm2ddl.auto create-drop
+hibernate.cache.use_second_level_cache true
+hibernate.cache.provider_class org.hibernate.cache.HashtableCacheProvider
+# hibernate.show_sql true
+hibernate.format_sql true
+hibernate.use_sql_comments true
Added: jbpm4/trunk/modules/test-db/src/test/resources/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/jbpm.cfg.xml (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/resources/jbpm.cfg.xml 2008-11-01 11:13:54 UTC (rev 2737)
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<contexts xmlns="http://jbpm.org/pvm/1.0/wire">
+
+ <environment-factory>
+
+ <deployer-manager>
+ <language name="api">
+ <check-version />
+ <create-id />
+ <save-process />
+ </language>
+ </deployer-manager>
+
+ <process-service />
+ <execution-service />
+ <management-service />
+
+ <command-service>
+ <retry-interceptor />
+ <environment-interceptor />
+ <standard-transaction-interceptor />
+ </command-service>
+
+ <hibernate-configuration>
+ <properties resource="hibernate.properties" />
+ <mappings resource="org/jbpm/pvm/pvm.hibernate.mappings.xml" />
+ <cache-configuration resource="org/jbpm/pvm/pvm.cache.xml"
+ usage="nonstrict-read-write" />
+ </hibernate-configuration>
+
+ <hibernate-session-factory />
+
+ <job-executor auto-start="false" />
+ <job-test-helper />
+
+ <id-generator />
+ <variable-types resource="org/jbpm/pvm/pvm.types.xml" />
+
+ <business-calendar>
+ <monday hours="9:00-12:00 and 12:30-17:00"/>
+ <tuesday hours="9:00-12:00 and 12:30-17:00"/>
+ <wednesday hours="9:00-12:00 and 12:30-17:00"/>
+ <thursday hours="9:00-12:00 and 12:30-17:00"/>
+ <friday hours="9:00-12:00 and 12:30-17:00"/>
+ <holiday period="01/07/2008 - 31/08/2008"/>
+ </business-calendar>
+
+ </environment-factory>
+
+ <environment>
+ <hibernate-session />
+ <transaction />
+ <pvm-db-session />
+ <job-db-session />
+ <message-session />
+ <timer-session />
+ </environment>
+
+</contexts>
Property changes on: jbpm4/trunk/modules/test-db/src/test/resources/jbpm.cfg.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/test-db/src/test/resources/logging.properties
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/logging.properties (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/resources/logging.properties 2008-11-01 11:13:54 UTC (rev 2737)
@@ -0,0 +1,28 @@
+handlers= java.util.logging.ConsoleHandler
+# to add the error triggered file handler
+# handlers= java.util.logging.ConsoleHandler org.jbpm.util.ErrorTriggeredFileHandler
+
+redirect.commons.logging = enabled
+
+java.util.logging.ConsoleHandler.level = FINEST
+java.util.logging.ConsoleHandler.formatter = org.jbpm.log.LogFormatter
+
+# org.jbpm.util.ErrorTriggeredFileHandler.size = 500
+# org.jbpm.util.ErrorTriggeredFileHandler.push = OFF
+# org.jbpm.util.ErrorTriggeredFileHandler.pattern = %h/jbpm%u.log
+
+# For example, set the com.xyz.foo logger to only log SEVERE messages:
+# com.xyz.foo.level = SEVERE
+
+org.jbpm.level=FINEST
+org.jbpm.pvm.internal.tx.level=FINE
+org.jbpm.pvm.internal.wire.level=FINE
+org.jbpm.pvm.internal.util.level=FINE
+
+org.hibernate.cfg.HbmBinder.level=SEVERE
+org.hibernate.cfg.SettingsFactory.level=SEVERE
+# org.hibernate.level=FINE
+org.hibernate.SQL.level=FINEST
+# org.hibernate.type.level=FINEST
+# org.hibernate.tool.hbm2ddl.SchemaExport.level=FINEST
+# org.hibernate.transaction.level=FINEST
17 years, 5 months
JBoss JBPM SVN: r2736 - in projects/spec/trunk/modules: api/src/main/java/org/jbpm/api/runtime and 16 other directories.
by do-not-reply@jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2008-11-01 06:45:21 -0400 (Sat, 01 Nov 2008)
New Revision: 2736
Modified:
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/SequenceFlow.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ProcessCatalog.java
projects/spec/trunk/modules/cts/.classpath
projects/spec/trunk/modules/dialects/api10/.classpath
projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java
projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java
projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBFlow.java
projects/spec/trunk/modules/dialects/jpdl32/.classpath
projects/spec/trunk/modules/dialects/stp/.classpath
projects/spec/trunk/modules/dialects/xpdl21/.classpath
projects/spec/trunk/modules/ri/.classpath
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SequenceFlowImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/EndEventPersistenceTest.java
projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/NodePersistenceTest.java
projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java
projects/spec/trunk/modules/ri/src/test/resources/log4j.xml
projects/spec/trunk/modules/samples/airticket/client/.classpath
projects/spec/trunk/modules/samples/airticket/server/.classpath
Log:
Remove FetchType.EAGER
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/SequenceFlow.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/SequenceFlow.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/SequenceFlow.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -52,19 +52,14 @@
* Object is connected from. Note: there are restrictions as to what objects Sequence
* Flow and Message Flow can connect.
*/
- Node getSourceRef();
+ String getSourceRef();
/**
* TargetRef is an attribute that identifies which Graphical Element the Connecting
* Object is connected to. Note: there are restrictions as to what objects Sequence
* Flow and Message Flow can connect.
*/
- Node getTargetRef();
-
- /**
- * Get the required target name
- */
- String getTargetName();
+ String getTargetRef();
/**
* By default, the ConditionType of a Sequence Flow is None. This means that there is no evaluation at runtime to
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -24,6 +24,7 @@
// $Id$
import org.hibernate.Session;
+import org.jbpm.api.model.Process;
import org.jbpm.api.model.SequenceFlow;
/**
@@ -56,6 +57,11 @@
TokenStatus getTokenStatus();
/**
+ * Get the associated {@link Process}
+ */
+ Process getProcess();
+
+ /**
* Get the associated {@link ExecutionContext}
*/
ExecutionContext getExecutionContext();
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ProcessCatalog.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ProcessCatalog.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/ProcessCatalog.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -95,14 +95,12 @@
SequenceFlow startFlow = start.getOutFlow();
TestCase.assertNotNull("Start flow not null", startFlow);
- TestCase.assertEquals("Task", startFlow.getTargetName());
- TestCase.assertSame(start, startFlow.getSourceRef());
- TestCase.assertSame(task, startFlow.getTargetRef());
+ TestCase.assertEquals("Task", startFlow.getTargetRef());
+ TestCase.assertEquals("Start", startFlow.getSourceRef());
SequenceFlow taskFlow = task.getOutFlow();
TestCase.assertNotNull("Task flow not null", taskFlow);
- TestCase.assertEquals("End", taskFlow.getTargetName());
- TestCase.assertSame(task, taskFlow.getSourceRef());
- TestCase.assertSame(end, taskFlow.getTargetRef());
+ TestCase.assertEquals("End", taskFlow.getTargetRef());
+ TestCase.assertEquals("Task", taskFlow.getSourceRef());
}
}
Modified: projects/spec/trunk/modules/cts/.classpath
===================================================================
--- projects/spec/trunk/modules/cts/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/cts/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+ <classpathentry kind="src" path="src/test/java"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: projects/spec/trunk/modules/dialects/api10/.classpath
===================================================================
--- projects/spec/trunk/modules/dialects/api10/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/dialects/api10/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java
===================================================================
--- projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessMarshaller.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -423,7 +423,7 @@
{
throw new NotImplementedException("JBPM-1382", "Message Flow");
}
- jaxb.setTargetName(flow.getTargetName());
+ jaxb.setTargetRef(flow.getTargetRef());
return jaxb;
}
Modified: projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java
===================================================================
--- projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/ProcessUnmarshaller.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -359,15 +359,15 @@
if (jaxbSeq.getConditionType() == ConditionType.Expression)
{
JAXBExpression jaxbExpr = jaxbSeq.getCondition();
- gwBuilder.addConditionalGate(jaxbFlow.getTargetName(), jaxbExpr.getLang(), jaxbExpr.getBody());
+ gwBuilder.addConditionalGate(jaxbFlow.getTargetRef(), jaxbExpr.getLang(), jaxbExpr.getBody());
}
else if (jaxbSeq.getConditionType() == ConditionType.Default)
{
- gwBuilder.addDefaultGate(jaxbFlow.getTargetName());
+ gwBuilder.addDefaultGate(jaxbFlow.getTargetRef());
}
else
{
- gwBuilder.addGate(jaxbFlow.getTargetName());
+ gwBuilder.addGate(jaxbFlow.getTargetRef());
}
}
else if (jaxbFlow instanceof JAXBMessageFlow)
@@ -390,7 +390,7 @@
{
if (jaxbFlow instanceof JAXBSequenceFlow)
{
- procBuilder.addSequenceFlow(jaxbFlow.getTargetName());
+ procBuilder.addSequenceFlow(jaxbFlow.getTargetRef());
}
else if (jaxbFlow instanceof JAXBMessageFlow)
{
Modified: projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBFlow.java
===================================================================
--- projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBFlow.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/dialects/api10/src/main/java/org/jbpm/dialect/api10/model/JAXBFlow.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -39,16 +39,16 @@
@XmlType(name = "Flow")
public class JAXBFlow extends JAXBGraphicalElement
{
- private String targetName;
+ private String targetRef;
- public String getTargetName()
+ public String getTargetRef()
{
- return targetName;
+ return targetRef;
}
@XmlAttribute(name = "to", required = true)
- public void setTargetName(String targetName)
+ public void setTargetRef(String targetRef)
{
- this.targetName = targetName;
+ this.targetRef = targetRef;
}
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/dialects/jpdl32/.classpath
===================================================================
--- projects/spec/trunk/modules/dialects/jpdl32/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/dialects/jpdl32/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: projects/spec/trunk/modules/dialects/stp/.classpath
===================================================================
--- projects/spec/trunk/modules/dialects/stp/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/dialects/stp/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: projects/spec/trunk/modules/dialects/xpdl21/.classpath
===================================================================
--- projects/spec/trunk/modules/dialects/xpdl21/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/dialects/xpdl21/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: projects/spec/trunk/modules/ri/.classpath
===================================================================
--- projects/spec/trunk/modules/ri/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,9 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/AbstractElementImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -24,11 +24,12 @@
//$Id$
import javax.management.ObjectName;
-import javax.persistence.Column;
+import javax.persistence.Basic;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
+import org.hibernate.Session;
import org.jbpm.api.InvalidProcessException;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Process;
@@ -49,7 +50,7 @@
@Id @GeneratedValue
protected Integer id;
- @Column
+ @Basic
private String engineName;
protected AbstractElementImpl(ProcessEngine engine)
@@ -81,6 +82,9 @@
return ProcessEngine.getProcessEngine(engineName);
}
+ /** Initializes the persistent object */
+ public abstract void initialize(Session session);
+
protected void create(ProcessDefinition procDef)
{
// nothing to do
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EndEventImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -103,7 +103,7 @@
public void setInFlow(SequenceFlowImpl inFlow)
{
inFlow.setTargetIndex(inFlows.size());
- inFlow.setTargetRef(this);
+ inFlow.setTargetRef(getName());
inFlows.add(inFlow);
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/EventImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -27,7 +27,6 @@
import javax.persistence.CascadeType;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
import javax.persistence.MappedSuperclass;
import javax.persistence.OneToOne;
@@ -66,10 +65,10 @@
@Enumerated(EnumType.STRING)
protected EventDetailType detailType = EventDetailType.None;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = MessageImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = MessageImpl.class)
private Message messageRef;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = SignalImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = SignalImpl.class)
private Signal signalRef;
public EventImpl(ProcessStructure procStruct, String name)
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -124,7 +124,7 @@
public void execute(TokenExecutor tokenExecutor, Token token)
{
- Node sourceRef = token.getSequenceFlow().getSourceRef();
+ String sourceRef = token.getSequenceFlow().getSourceRef();
// Schedule the first token that arrives
if (token == receivedTokens.get(0))
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GateImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -29,7 +29,6 @@
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@@ -65,11 +64,11 @@
@GeneratedValue
protected Integer id;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = SequenceFlowImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = SequenceFlowImpl.class)
protected SequenceFlow outFlow;
@IndexColumn(name = "assignIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = AssignmentImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = AssignmentImpl.class)
private List<Assignment> assignments = new ArrayList<Assignment>();
@Override
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -103,7 +103,7 @@
public void addOutFlow(SequenceFlowImpl outFlow)
{
outFlow.setSourceIndex(outFlows.size());
- outFlow.setSourceRef(this);
+ outFlow.setSourceRef(getName());
outFlows.add(outFlow);
}
@@ -111,7 +111,7 @@
public void addInFlow(SequenceFlowImpl inFlow)
{
inFlow.setTargetIndex(inFlows.size());
- inFlow.setTargetRef(this);
+ inFlow.setTargetRef(getName());
inFlows.add(inFlow);
}
@@ -139,7 +139,7 @@
SequenceFlow gate = null;
for (SequenceFlow aux : outFlows)
{
- if (aux.getTargetName().equals(targetName))
+ if (aux.getTargetRef().equals(targetName))
{
gate = aux;
break;
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GroupImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -30,7 +30,6 @@
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@@ -53,7 +52,7 @@
@Id @GeneratedValue
protected int id;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = PropertySupportImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = PropertySupportImpl.class)
private PropertySupport propSupport = new PropertySupportImpl();
@Enumerated(EnumType.STRING)
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -84,7 +84,7 @@
public void execute(TokenExecutor tokenExecutor, Token token)
{
MutableToken mutableToken = (MutableToken)token;
- Node sourceRef = token.getSequenceFlow().getSourceRef();
+ String sourceRef = token.getSequenceFlow().getSourceRef();
log.debug("Propagate token comming from: " + sourceRef);
// Get the applicable gates
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InputSetImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -28,7 +28,6 @@
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@@ -54,7 +53,7 @@
@Basic
private int setIndex;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = PropertySupportImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = PropertySupportImpl.class)
protected PropertySupport propSupport = new PropertySupportImpl();
int getSetIndex()
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/MessageImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -28,7 +28,6 @@
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@@ -60,13 +59,13 @@
@Basic
private String name;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = ParticipantImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = ParticipantImpl.class)
private Participant fromRef;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = ParticipantImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = ParticipantImpl.class)
private Participant toRef;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = PropertySupportImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = PropertySupportImpl.class)
protected PropertySupport propSupport = new PropertySupportImpl();
public MessageImpl(String name)
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/NodeImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -31,13 +31,15 @@
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
+import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
+import org.hibernate.Hibernate;
+import org.hibernate.Session;
import org.hibernate.annotations.IndexColumn;
import org.jbpm.api.InvalidProcessException;
import org.jbpm.api.NameNotUniqueException;
@@ -91,18 +93,21 @@
private int nodeIndex;
@IndexColumn(name = "targetIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, mappedBy = "targetRef", targetEntity = SequenceFlowImpl.class)
+ @JoinTable(name = "BPMNodeInFlows")
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = SequenceFlowImpl.class)
protected List<SequenceFlow> inFlows = new ArrayList<SequenceFlow>();
@IndexColumn(name = "sourceIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, mappedBy = "sourceRef", targetEntity = SequenceFlowImpl.class)
+ @JoinTable(name = "BPMNodeOutFlows")
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = SequenceFlowImpl.class)
protected List<SequenceFlow> outFlows = new ArrayList<SequenceFlow>();
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = PropertySupportImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = PropertySupportImpl.class)
protected PropertySupport propSupport = new PropertySupportImpl();
@IndexColumn(name = "assignIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = AssignmentImpl.class)
+ @JoinTable(name = "BPMNodeAssignments")
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = AssignmentImpl.class)
private List<Assignment> assignments = new ArrayList<Assignment>();
@Basic
@@ -182,7 +187,7 @@
{
this.groupRef = groupRef;
}
-
+
@Override
public Property getProperty(String name)
{
@@ -233,12 +238,12 @@
public List<SequenceFlow> getInFlows()
{
- return inFlows;
+ return Collections.unmodifiableList(inFlows);
}
public List<SequenceFlow> getOutFlows()
{
- return outFlows;
+ return Collections.unmodifiableList(outFlows);
}
public void execute(RuntimeContext rtContext)
@@ -398,6 +403,16 @@
checkAndInitializeStructure(procStruct);
}
+ @Override
+ public void initialize(Session session)
+ {
+ Hibernate.initialize(this);
+ Hibernate.initialize(propSupport);
+ Hibernate.initialize(assignments);
+ Hibernate.initialize(outFlows);
+ Hibernate.initialize(inFlows);
+ }
+
private void checkAndInitializeStructure(ProcessStructure procStruct)
{
// Check required name
@@ -419,7 +434,7 @@
Group procGroup = procStruct.getGroup(grpName);
if (procGroup == null)
throw new InvalidProcessException("Cannot obtain group for name: " + grpName);
-
+
this.groupRef = procGroup;
}
@@ -467,7 +482,7 @@
{
if (flow != null)
{
- String name = flow.getTargetName();
+ String name = flow.getTargetRef();
Node target = procStruct.getNode(name);
if (target == null)
throw new InvalidProcessException("Cannot find target for out flow: " + name);
@@ -487,8 +502,8 @@
throw new InvalidProcessException("Target does not support in flow: " + target);
}
- flow.setSourceRef(this);
- flow.setTargetRef(target);
+ flow.setSourceRef(getName());
+ flow.setTargetRef(target.getName());
}
}
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/OutputSetImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -28,7 +28,6 @@
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@@ -54,7 +53,7 @@
@Basic
private int setIndex;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = PropertySupportImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = PropertySupportImpl.class)
protected PropertySupport propSupport = new PropertySupportImpl();
int getSetIndex()
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -199,7 +199,7 @@
private TokenImpl getMergedTokens()
{
- TokenImpl mergedToken = new TokenImpl(getProcessEngine(), null);
+ TokenImpl mergedToken = new TokenImpl(getProcess(), null);
for (Token auxToken : mergeTokens)
{
log.debug("mergeToken: " + auxToken);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessDefinitionImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -34,11 +34,12 @@
import javax.management.ObjectName;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.Lob;
import javax.persistence.OneToOne;
import javax.persistence.Transient;
+import org.hibernate.Hibernate;
+import org.hibernate.Session;
import org.jbpm.api.Constants;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Assignment;
@@ -67,7 +68,7 @@
// provide logging
final static Logger log = LoggerFactory.getLogger(ProcessDefinitionImpl.class);
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = ProcessStructureImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = ProcessStructureImpl.class)
private ProcessStructure procStruct;
@Lob
@@ -232,6 +233,14 @@
}
@Override
+ public void initialize(Session session)
+ {
+ Hibernate.initialize(this);
+ ProcessStructureImpl procStructImpl = (ProcessStructureImpl)procStruct;
+ procStructImpl.initialize(session);
+ }
+
+ @Override
protected void create(ProcessDefinition procDef)
{
super.create(procDef);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -31,11 +31,12 @@
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Transient;
+import org.hibernate.Hibernate;
+import org.hibernate.Session;
import org.jbpm.api.Constants;
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Assignment;
@@ -46,7 +47,6 @@
import org.jbpm.api.model.ProcessDefinition;
import org.jbpm.api.model.Property;
import org.jbpm.api.model.builder.ObjectNameFactory;
-import org.jbpm.api.model.internal.ProcessStructure;
import org.jbpm.api.runtime.Attachments;
import org.jbpm.api.service.ExecutionService;
import org.jbpm.api.service.ProcessService;
@@ -71,10 +71,10 @@
private ProcessStatus status = ProcessStatus.None;
@ManyToOne(targetEntity = ProcessDefinitionImpl.class)
- private ProcessDefinition procDef;
+ private ProcessDefinitionImpl procDef;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = ProcessStructureImpl.class)
- private ProcessStructure procStruct;
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = ProcessStructureImpl.class)
+ private ProcessStructureImpl procStruct;
@Transient
private transient RuntimeException runtimeException;
@@ -276,35 +276,39 @@
}
@Override
+ public void initialize(Session session)
+ {
+ Hibernate.initialize(this);
+ procDef.initialize(session);
+ procStruct.initialize(session);
+ }
+
+ @Override
protected void create(Process proc)
{
super.create(proc);
- ProcessStructureImpl procStructImpl = (ProcessStructureImpl)procStruct;
- procStructImpl.create(proc);
+ procStruct.create(proc);
}
@Override
public void register(Process proc)
{
super.register(proc);
- ProcessStructureImpl procStructImpl = (ProcessStructureImpl)procStruct;
- procStructImpl.register(proc);
+ procStruct.register(proc);
}
@Override
public void unregister(Process proc)
{
super.unregister(proc);
- ProcessStructureImpl procStructImpl = (ProcessStructureImpl)procStruct;
- procStructImpl.unregister(proc);
+ procStruct.unregister(proc);
}
@Override
protected void destroy(Process proc)
{
super.destroy(proc);
- ProcessStructureImpl procStructImpl = (ProcessStructureImpl)procStruct;
- procStructImpl.destroy(proc);
+ procStruct.destroy(proc);
}
public String toString()
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ProcessStructureImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -32,11 +32,12 @@
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Transient;
+import org.hibernate.Hibernate;
+import org.hibernate.Session;
import org.hibernate.annotations.IndexColumn;
import org.jbpm.api.Constants;
import org.jbpm.api.InvalidProcessException;
@@ -73,25 +74,25 @@
@Basic
private String name;
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = PropertySupportImpl.class)
+ protected PropertySupport propSupport = new PropertySupportImpl();
+
@IndexColumn(name = "nodeIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, mappedBy = "procStruct", targetEntity = NodeImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, mappedBy = "procStruct", targetEntity = NodeImpl.class)
private List<Node> nodes = new ArrayList<Node>();
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = PropertySupportImpl.class)
- protected PropertySupport propSupport = new PropertySupportImpl();
-
@IndexColumn(name = "msgIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = MessageImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = MessageImpl.class)
private List<Message> messages = new ArrayList<Message>();
@IndexColumn(name = "assignIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = AssignmentImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = AssignmentImpl.class)
private List<Assignment> assignments = new ArrayList<Assignment>();
@IndexColumn(name = "groupIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = GroupImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = GroupImpl.class)
private List<Group> groups = new ArrayList<Group>();
-
+
public ProcessStructureImpl(ProcessEngine engine, String name)
{
super(engine);
@@ -257,13 +258,13 @@
{
return propSupport.removeProperty(name);
}
-
+
public void addGroup(GroupImpl groupImpl)
{
groupImpl.setGroupIndex(groups.size());
groups.add(groupImpl);
}
-
+
@Override
public Group getGroup(String grpName)
{
@@ -286,6 +287,22 @@
}
@Override
+ public void initialize(Session session)
+ {
+ Hibernate.initialize(this);
+ Hibernate.initialize(propSupport);
+ Hibernate.initialize(messages);
+ Hibernate.initialize(assignments);
+ Hibernate.initialize(groups);
+
+ for (Node node : getNodes())
+ {
+ AbstractElementImpl elImpl = (AbstractElementImpl)node;
+ elImpl.initialize(session);
+ }
+ }
+
+ @Override
public void create(ProcessDefinition procDef)
{
super.create(procDef);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SequenceFlowImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SequenceFlowImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/SequenceFlowImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -28,14 +28,11 @@
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
-import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import org.jbpm.api.model.Expression;
-import org.jbpm.api.model.Node;
import org.jbpm.api.model.SequenceFlow;
/**
@@ -64,25 +61,22 @@
private ConditionType conditionType = ConditionType.None;
@Basic
- private String targetName;
+ private String targetRef;
- @ManyToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = NodeImpl.class)
- private Node sourceRef;
+ @Basic
+ private String sourceRef;
- @ManyToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = NodeImpl.class)
- private Node targetRef;
-
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = ExpressionImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = ExpressionImpl.class)
private Expression conditionExpression;
- public SequenceFlowImpl(String targetName)
+ public SequenceFlowImpl(String targetRef)
{
- this.targetName = targetName;
+ this.targetRef = targetRef;
}
- public SequenceFlowImpl(String targetName, ConditionType type, Expression expr)
+ public SequenceFlowImpl(String targetRef, ConditionType type, Expression expr)
{
- this.targetName = targetName;
+ this.targetRef = targetRef;
this.conditionType = type;
this.conditionExpression = (ExpressionImpl)expr;
}
@@ -112,36 +106,35 @@
this.targetIndex = targetIndex;
}
- public Node getSourceRef()
+ @Override
+ public String getSourceRef()
{
return sourceRef;
}
- protected void setSourceRef(Node source)
+ protected void setSourceRef(String sourceRef)
{
- this.sourceRef = source;
+ this.sourceRef = sourceRef;
}
- public Node getTargetRef()
+ @Override
+ public String getTargetRef()
{
return targetRef;
}
- protected void setTargetRef(Node target)
+ protected void setTargetRef(String targetRef)
{
- this.targetRef = target;
+ this.targetRef = targetRef;
}
- public String getTargetName()
- {
- return targetName;
- }
-
+ @Override
public ConditionType getConditionType()
{
return conditionType;
}
+ @Override
public Expression getConditionExpression()
{
return conditionExpression;
@@ -149,17 +142,6 @@
public String toString()
{
- Node sourceRef = getSourceRef();
- Node targetRef = getTargetRef();
-
- String srcName = null;
- if (sourceRef != null)
- srcName = (sourceRef.getName() != null ? sourceRef.getName() : sourceRef.getKey().getCanonicalName());
-
- String tarName = null;
- if (targetRef != null)
- tarName = (targetRef.getName() != null ? targetRef.getName() : targetRef.getKey().getCanonicalName());
-
- return "SequenceFlow[" + srcName + "->" + tarName + "]";
+ return "SequenceFlow[" + sourceRef + "->" + targetRef + "]";
}
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/StartEventImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -108,7 +108,7 @@
public void setOutFlow(SequenceFlowImpl outFlow)
{
outFlow.setSourceIndex(outFlows.size());
- outFlow.setSourceRef(this);
+ outFlow.setSourceRef(getName());
outFlows.add(outFlow);
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/TaskImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -32,7 +32,6 @@
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
import javax.persistence.OneToMany;
import javax.persistence.Transient;
@@ -78,15 +77,15 @@
protected TaskType taskType;
@IndexColumn(name = "setIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = InputSetImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = InputSetImpl.class)
private List<InputSet> inputSets = new ArrayList<InputSet>();
@IndexColumn(name = "setIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = OutputSetImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = OutputSetImpl.class)
private List<OutputSet> outputSets = new ArrayList<OutputSet>();
@IndexColumn(name = "exprIndex")
- @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = ExpressionImpl.class)
+ @OneToMany(cascade = { CascadeType.ALL }, targetEntity = ExpressionImpl.class)
private List<Expression> ioRules = new ArrayList<Expression>();
public TaskImpl(ProcessStructure procStruct, TaskType taskType, String name)
@@ -125,7 +124,7 @@
public void setInFlow(SequenceFlowImpl inFlow)
{
inFlow.setTargetIndex(inFlows.size());
- inFlow.setTargetRef(this);
+ inFlow.setTargetRef(getName());
inFlows.add(inFlow);
}
@@ -140,7 +139,7 @@
public void setOutFlow(SequenceFlowImpl outFlow)
{
outFlow.setSourceIndex(outFlows.size());
- outFlow.setSourceRef(this);
+ outFlow.setSourceRef(getName());
outFlows.add(outFlow);
}
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/UserTaskImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -29,7 +29,6 @@
import javax.management.ObjectName;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.OneToOne;
import javax.persistence.Transient;
@@ -62,10 +61,10 @@
final static Logger log = LoggerFactory.getLogger(UserTaskImpl.class);
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = MessageImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = MessageImpl.class)
protected MessageImpl outMessageRef;
- @OneToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, targetEntity = MessageImpl.class)
+ @OneToOne(cascade = { CascadeType.ALL }, targetEntity = MessageImpl.class)
protected MessageImpl inMessageRef;
@Transient
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -25,6 +25,7 @@
import org.hibernate.Session;
import org.jbpm.api.model.Node;
+import org.jbpm.api.model.Process;
import org.jbpm.api.model.SequenceFlow;
import org.jbpm.api.runtime.ExecutionContext;
import org.jbpm.api.runtime.Token;
@@ -44,9 +45,10 @@
{
this.delegateToken = token;
- Node targetRef = token.getSequenceFlow().getTargetRef();
+ String targetRef = token.getSequenceFlow().getTargetRef();
+ Node targetNode = token.getProcess().getNode(targetRef);
ExecutionContext exContext = token.getExecutionContext();
- this.delegateContext = new DelegatingExecutionContext(targetRef, exContext);
+ this.delegateContext = new DelegatingExecutionContext(targetNode, exContext);
}
@Override
@@ -80,6 +82,12 @@
}
@Override
+ public Process getProcess()
+ {
+ return delegateToken.getProcess();
+ }
+
+ @Override
public void mergeToken(Token token)
{
delegateToken.mergeToken(token);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -79,7 +79,8 @@
while (continueTokenThread())
{
// Get the target node
- Node node = token.getSequenceFlow().getTargetRef();
+ String targetRef = token.getSequenceFlow().getTargetRef();
+ Node node = proc.getNode(targetRef);
// Synchronize on the target Node
synchronized (node)
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -57,7 +57,8 @@
public Node getNode()
{
- return token.getSequenceFlow().getTargetRef();
+ String targetRef = token.getSequenceFlow().getTargetRef();
+ return token.getProcess().getNode(targetRef);
}
public Token getToken()
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -26,6 +26,7 @@
import org.hibernate.Session;
import org.jboss.util.id.UID;
import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.model.Process;
import org.jbpm.api.model.SequenceFlow;
import org.jbpm.api.runtime.Attachments;
import org.jbpm.api.runtime.BasicExecutionContext;
@@ -52,18 +53,18 @@
private SequenceFlow flow;
private ExecutionContext context;
private TokenStatus status;
- private ProcessEngine engine;
+ private Process process;
private Session session;
/**
* Construct a Token with given {@link Attachments}
*/
- public TokenImpl(ProcessEngine engine, Attachments att)
+ public TokenImpl(Process process, Attachments att)
{
this.context = new BasicExecutionContext(att);
this.id = new UID().toString();
this.status = TokenStatus.Created;
- this.engine = engine;
+ this.process = process;
}
@Override
@@ -85,6 +86,12 @@
}
@Override
+ public Process getProcess()
+ {
+ return process;
+ }
+
+ @Override
public ExecutionContext getExecutionContext()
{
return context;
@@ -107,6 +114,7 @@
{
if (session == null)
{
+ ProcessEngine engine = process.getProcessEngine();
PersistenceService service = engine.getService(PersistenceService.class);
session = service.createSession();
}
@@ -126,7 +134,7 @@
@Override
public MutableToken copyToken()
{
- return new TokenImpl(engine, context);
+ return new TokenImpl(process, context);
}
@Override
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -114,7 +114,6 @@
InitialFlow(StartEvent start)
{
super(start.getName());
- setTargetRef(start);
}
}
@@ -122,7 +121,7 @@
boolean startProcessThread = (rtProc == null);
// Create initial Token
- TokenImpl initialToken = new TokenImpl(getProcessEngine(), att);
+ TokenImpl initialToken = new TokenImpl(proc, att);
InitialFlow initialFlow = new InitialFlow(start);
initialToken.setSequenceFlow(initialFlow);
Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -29,7 +29,6 @@
import javax.management.ObjectName;
-import org.hibernate.Hibernate;
import org.hibernate.ObjectNotFoundException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
@@ -43,6 +42,7 @@
import org.jbpm.api.model.ProcessDefinition;
import org.jbpm.api.service.PersistenceService;
import org.jbpm.api.service.Service;
+import org.jbpm.ri.model.AbstractElementImpl;
import org.jbpm.ri.model.ProcessDefinitionImpl;
import org.jbpm.ri.model.ProcessImpl;
import org.slf4j.Logger;
@@ -108,13 +108,14 @@
public ProcessDefinition loadProcessDefinition(ObjectName procDefID)
{
log.debug("START loadProcessDefinition: " + procDefID);
- ProcessDefinitionImpl procDefImpl = null;
+ ProcessDefinition procDef = null;
Session session = getSessionFactory().openSession();
try
{
Integer id = Integer.valueOf(procDefID.getKeyProperty("id"));
- procDefImpl = (ProcessDefinitionImpl)session.load(ProcessDefinitionImpl.class, id);
- Hibernate.initialize(procDefImpl);
+ procDef = (ProcessDefinition)session.load(ProcessDefinitionImpl.class, id);
+ AbstractElementImpl elImpl = (AbstractElementImpl)procDef;
+ elImpl.initialize(session);
}
catch (ObjectNotFoundException ex)
{
@@ -125,7 +126,7 @@
session.close();
}
log.debug("END loadProcessDefinition: " + procDefID);
- return (ProcessDefinition)procDefImpl;
+ return (ProcessDefinition)procDef;
}
@Override
@@ -136,6 +137,9 @@
Transaction tx = session.beginTransaction();
try
{
+ ObjectName procDefID = procDef.getKey();
+ Integer id = Integer.valueOf(procDefID.getKeyProperty("id"));
+ procDef = (ProcessDefinition)session.load(ProcessDefinitionImpl.class, id);
session.delete(procDef);
tx.commit();
}
@@ -175,7 +179,8 @@
{
Integer id = Integer.valueOf(procID.getKeyProperty("id"));
proc = (Process)session.load(ProcessImpl.class, id);
- Hibernate.initialize(proc);
+ AbstractElementImpl elImpl = (AbstractElementImpl)proc;
+ elImpl.initialize(session);
}
catch (ObjectNotFoundException ex)
{
@@ -197,6 +202,9 @@
Transaction tx = session.beginTransaction();
try
{
+ ObjectName procID = proc.getKey();
+ Integer id = Integer.valueOf(procID.getKeyProperty("id"));
+ proc = (Process)session.load(ProcessImpl.class, id);
session.delete(proc);
tx.commit();
}
@@ -211,9 +219,9 @@
public ObjectName saveNode(Session session, Node node)
{
log.debug("START saveNode: " + node.getKey());
-
+
session.saveOrUpdate(node);
-
+
log.debug("END saveNode: " + node.getKey());
return node.getKey();
}
@@ -228,7 +236,6 @@
{
Integer id = Integer.valueOf(nodeID.getKeyProperty("id"));
node = (T)session.load(nodeClass, id);
- Hibernate.initialize(node);
}
catch (ObjectNotFoundException ex)
{
@@ -241,9 +248,7 @@
public void deleteNode(Session session, Node node)
{
log.debug("START deleteNode: " + node);
-
session.delete(node);
-
log.debug("END deleteNode: " + node);
}
Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/EndEventPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/EndEventPersistenceTest.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/EndEventPersistenceTest.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -25,14 +25,14 @@
import javax.management.ObjectName;
+import org.jbpm.api.model.EndEvent;
import org.jbpm.api.model.Message;
import org.jbpm.api.model.Signal;
-import org.jbpm.api.model.EndEvent;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Signal.SignalType;
+import org.jbpm.ri.model.EndEventImpl;
import org.jbpm.ri.model.MessageImpl;
import org.jbpm.ri.model.SignalImpl;
-import org.jbpm.ri.model.EndEventImpl;
/**
* Test the HibernatePersistenceService for EndEvent
Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/NodePersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/NodePersistenceTest.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/NodePersistenceTest.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -25,10 +25,7 @@
import javax.management.ObjectName;
-import org.hibernate.Hibernate;
import org.hibernate.Session;
-import org.hibernate.StaleStateException;
-import org.hibernate.Transaction;
import org.jbpm.api.model.Node;
import org.jbpm.api.service.PersistenceService;
import org.jbpm.api.test.CTSTestCase;
@@ -43,61 +40,37 @@
public abstract class NodePersistenceTest extends CTSTestCase
{
protected HibernatePersistenceServiceImpl service;
-
+ private Session session;
+
@Override
protected void setUp() throws Exception
{
super.setUp();
service = (HibernatePersistenceServiceImpl)PersistenceService.locatePersistenceService();
+ session = service.createSession();
}
+ @Override
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+ session.close();
+ }
+
protected ObjectName saveNode(Node node)
{
- Session session = service.createSession();
- Transaction tx = session.beginTransaction();
- try
- {
- service.saveNode(session, node);
- tx.commit();
-
- return node.getKey();
- }
- finally
- {
- session.close();
- }
+ service.saveNode(session, node);
+ return node.getKey();
}
-
+
protected <T extends Node> T loadNode(Class<T> nodeClass, ObjectName nodeID)
{
- Session session = service.createSession();
- try
- {
- T node = service.loadNode(session, nodeClass, nodeID);
- return node;
- }
- finally
- {
- session.close();
- }
+ T node = service.loadNode(session, nodeClass, nodeID);
+ return node;
}
protected void deleteNode(Node node)
{
- Session session = service.createSession();
- Transaction tx = session.beginTransaction();
- try
- {
- service.deleteNode(session, node);
- tx.commit();
- }
- catch(StaleStateException ex)
- {
- // ignore, because the node was already deleted by a cascade
- }
- finally
- {
- session.close();
- }
+ service.deleteNode(session, node);
}
}
Modified: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/TaskPersistenceTest.java 2008-11-01 10:45:21 UTC (rev 2736)
@@ -112,6 +112,25 @@
deleteNode(wasNode);
}
+ public void testOutFlow() throws Exception
+ {
+ TaskImpl taskA = new TaskImpl(null, TaskType.None, "TaskA");
+
+ SequenceFlowImpl flow = new SequenceFlowImpl("TaskB", ConditionType.Expression, new ExpressionImpl("expr"));
+ taskA.setOutFlow(flow);
+
+ ObjectName aID = saveNode(taskA);
+
+ Task wasA = loadNode(TaskImpl.class, aID);
+
+ SequenceFlow outFlowA = wasA.getOutFlow();
+ assertEquals("TaskB", outFlowA.getTargetRef());
+ assertEquals(ConditionType.Expression, outFlowA.getConditionType());
+ assertEquals("expr", outFlowA.getConditionExpression().getExpressionBody());
+
+ deleteNode(wasA);
+ }
+
public void testInOutFlows() throws Exception
{
TaskImpl taskA = new TaskImpl(null, TaskType.None, "TaskA");
@@ -128,14 +147,12 @@
Task wasB = loadNode(TaskImpl.class, bID);
SequenceFlow outFlowA = wasA.getOutFlow();
- assertEquals("TaskB", outFlowA.getTargetName());
- assertEquals("TaskB", outFlowA.getTargetRef().getName());
+ assertEquals("TaskB", outFlowA.getTargetRef());
assertEquals(ConditionType.Expression, outFlowA.getConditionType());
assertEquals("expr", outFlowA.getConditionExpression().getExpressionBody());
- assertSame(wasA, outFlowA.getSourceRef());
SequenceFlow inFlowB = wasB.getInFlow();
- assertEquals(outFlowA.getTargetName(), inFlowB.getTargetName());
+ assertEquals(outFlowA.getTargetRef(), inFlowB.getTargetRef());
deleteNode(wasA);
deleteNode(wasB);
Modified: projects/spec/trunk/modules/ri/src/test/resources/log4j.xml
===================================================================
--- projects/spec/trunk/modules/ri/src/test/resources/log4j.xml 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/ri/src/test/resources/log4j.xml 2008-11-01 10:45:21 UTC (rev 2736)
@@ -33,9 +33,6 @@
<!-- ================ -->
<category name="org.hibernate">
- <priority value="INFO" />
- </category>
- <category name="org.hibernate.persister">
<priority value="DEBUG" />
</category>
Modified: projects/spec/trunk/modules/samples/airticket/client/.classpath
===================================================================
--- projects/spec/trunk/modules/samples/airticket/client/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/samples/airticket/client/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: projects/spec/trunk/modules/samples/airticket/server/.classpath
===================================================================
--- projects/spec/trunk/modules/samples/airticket/server/.classpath 2008-11-01 10:19:43 UTC (rev 2735)
+++ projects/spec/trunk/modules/samples/airticket/server/.classpath 2008-11-01 10:45:21 UTC (rev 2736)
@@ -1,9 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
17 years, 5 months
JBoss JBPM SVN: r2735 - in jbpm4/trunk/modules: pvm/src/main/java/org/jbpm/cfg and 2 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2008-11-01 06:19:43 -0400 (Sat, 01 Nov 2008)
New Revision: 2735
Modified:
jbpm4/trunk/modules/api/src/main/java/org/jbpm/pvm/env/Environment.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/cfg/JbpmConfiguration.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/model/ProcessDefinitionDbTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/model/ProcessExecutionDbTest.java
jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/EnvironmentDbTestCase.java
Log:
unification api proposals
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/pvm/env/Environment.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/pvm/env/Environment.java 2008-11-01 09:59:11 UTC (rev 2734)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/pvm/env/Environment.java 2008-11-01 10:19:43 UTC (rev 2735)
@@ -242,7 +242,7 @@
/** pops the closing context from the stack of current contexts. This
* is the first thing that needs to be done when an environment is closed.
* @see EnvironmentFactory#push(Environment) */
- protected static synchronized Environment popEnvironment() {
+ public static synchronized Environment popEnvironment() {
Environment popped = currentEnvironment.get();
currentEnvironment.set(null);
Stack<Environment> stack = currentEnvironmentStack.get();
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/cfg/JbpmConfiguration.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/cfg/JbpmConfiguration.java 2008-11-01 09:59:11 UTC (rev 2734)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/cfg/JbpmConfiguration.java 2008-11-01 10:19:43 UTC (rev 2735)
@@ -180,11 +180,16 @@
// add the environment block context to the environment
environment.addContext(environmentContext);
- // finish the creation of the environment wire context
- environmentContext.create();
-
Environment.pushEnvironment(environment);
+ try {
+ // finish the creation of the environment wire context
+ environmentContext.create();
+ } catch (RuntimeException e) {
+ Environment.popEnvironment();
+ throw e;
+ }
+
// if all went well, return the created environment
return environment;
}
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/model/ProcessDefinitionDbTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/model/ProcessDefinitionDbTest.java 2008-11-01 09:59:11 UTC (rev 2734)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/model/ProcessDefinitionDbTest.java 2008-11-01 10:19:43 UTC (rev 2735)
@@ -65,7 +65,7 @@
{
OpenProcessDefinition processDefinition = ProcessFactory.build().node("a").initial().node("b").node("c").done();
- processDefinition = reload(processDefinition, OpenProcessDefinition.class); // / new transaction ////////////////////////////
+ processDefinition = reload(processDefinition, ProcessDefinitionImpl.class); // / new transaction ////////////////////////////
assertNotNull(processDefinition);
List<Node> nodes = processDefinition.getNodes();
@@ -90,7 +90,7 @@
{
OpenProcessDefinition processDefinition = ProcessFactory.build().node("a").initial().node("b").node("c").done();
- processDefinition = reload(processDefinition, OpenProcessDefinition.class); // / new transaction ////////////////////////////
+ processDefinition = reload(processDefinition, ProcessDefinitionImpl.class); // / new transaction ////////////////////////////
Node initial = processDefinition.getInitial();
assertNotNull(initial);
@@ -109,14 +109,14 @@
OpenProcessDefinition processDefinition = ProcessFactory.build().compositeNode("top").initial().node("a").compositeNode("b").node("b1")
.node("b2").node("b3").compositeEnd().node("c").compositeEnd().done();
- processDefinition = reload(processDefinition, OpenProcessDefinition.class); // / new transaction ////////////////////////////
+ processDefinition = reload(processDefinition, ProcessDefinitionImpl.class); // / new transaction ////////////////////////////
assertNotNull(processDefinition);
Node initial = processDefinition.getInitial();
assertNotNull(initial);
assertEquals(initial, processDefinition.getNode("top"));
- processDefinition = reload(processDefinition, OpenProcessDefinition.class); // / new transaction ////////////////////////////
+ processDefinition = reload(processDefinition, ProcessDefinitionImpl.class); // / new transaction ////////////////////////////
List<Node> nodes = processDefinition.getNodes();
assertNotNull(nodes);
@@ -138,7 +138,7 @@
assertEquals("b2", nodes.get(1).getName());
assertEquals("b3", nodes.get(2).getName());
- processDefinition = reload(processDefinition, OpenProcessDefinition.class); // / new transaction ////////////////////////////
+ processDefinition = reload(processDefinition, ProcessDefinitionImpl.class); // / new transaction ////////////////////////////
Node node = processDefinition.findNode("b2");
assertNotNull(node);
@@ -154,7 +154,7 @@
.transition("toc").to("c").node("b").transition("toa").to("a").transition().to("b").transition("toc").to("c").node("c")
.transition().to("c").node("d").done();
- processDefinition = reload(processDefinition, OpenProcessDefinition.class); // / new transaction ////////////////////////////
+ processDefinition = reload(processDefinition, ProcessDefinitionImpl.class); // / new transaction ////////////////////////////
assertEquals("a", processDefinition.getNode("a").getDefaultTransition().getDestination().getName());
assertEquals("a", processDefinition.getNode("b").getDefaultTransition().getDestination().getName());
@@ -169,7 +169,7 @@
OpenProcessDefinition processDefinition = ProcessFactory.build().node().initial().transition().to("a").transition().to("b").node("a")
.node("b").done();
- processDefinition = reload(processDefinition, OpenProcessDefinition.class); // / new transaction ////////////////////////////
+ processDefinition = reload(processDefinition, ProcessDefinitionImpl.class); // / new transaction ////////////////////////////
assertNotNull(processDefinition);
Node node = processDefinition.getInitial();
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/model/ProcessExecutionDbTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/model/ProcessExecutionDbTest.java 2008-11-01 09:59:11 UTC (rev 2734)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/model/ProcessExecutionDbTest.java 2008-11-01 10:19:43 UTC (rev 2735)
@@ -37,7 +37,7 @@
{
OpenProcessDefinition processDefinition = new ProcessDefinitionImpl();
- processDefinition = reload(processDefinition, OpenProcessDefinition.class); // new transaction /////////
+ processDefinition = reload(processDefinition, ProcessDefinitionImpl.class); // new transaction /////////
ExecutionImpl execution = new ExecutionImpl();
execution.setKey("businessKey");
Modified: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/EnvironmentDbTestCase.java
===================================================================
--- jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/EnvironmentDbTestCase.java 2008-11-01 09:59:11 UTC (rev 2734)
+++ jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/EnvironmentDbTestCase.java 2008-11-01 10:19:43 UTC (rev 2735)
@@ -120,7 +120,7 @@
}
}
- public <T> T reload(T object, Class<T> persistentClass) {
+ public <T> T reload(Object object, Class<T> persistentClass) {
environment.get(DbSession.class).save(object);
newTransaction();
17 years, 5 months
JBoss JBPM SVN: r2734 - in jbpm4/trunk/modules: test-base and 3 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2008-11-01 05:59:11 -0400 (Sat, 01 Nov 2008)
New Revision: 2734
Modified:
jbpm4/trunk/modules/pvm/pom.xml
jbpm4/trunk/modules/test-base/pom.xml
jbpm4/trunk/modules/test-db/pom.xml
jbpm4/trunk/modules/test-load/pom.xml
jbpm4/trunk/modules/test-pojo/pom.xml
Log:
unification api proposals
Modified: jbpm4/trunk/modules/pvm/pom.xml
===================================================================
--- jbpm4/trunk/modules/pvm/pom.xml 2008-11-01 09:51:25 UTC (rev 2733)
+++ jbpm4/trunk/modules/pvm/pom.xml 2008-11-01 09:59:11 UTC (rev 2734)
@@ -42,11 +42,11 @@
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
- <artifactId>jbpm-test-base</artifactId>
+ <artifactId>jbpm-log</artifactId>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
- <artifactId>jbpm-log</artifactId>
+ <artifactId>jbpm-test-base</artifactId>
</dependency>
<dependency>
<groupId>log4j</groupId>
Modified: jbpm4/trunk/modules/test-base/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-base/pom.xml 2008-11-01 09:51:25 UTC (rev 2733)
+++ jbpm4/trunk/modules/test-base/pom.xml 2008-11-01 09:59:11 UTC (rev 2734)
@@ -12,7 +12,7 @@
<!-- $Id$ -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
- <name>jBPM 4 - Test</name>
+ <name>jBPM 4 - Test Base</name>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-test-base</artifactId>
<packaging>jar</packaging>
Modified: jbpm4/trunk/modules/test-db/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-db/pom.xml 2008-11-01 09:51:25 UTC (rev 2733)
+++ jbpm4/trunk/modules/test-db/pom.xml 2008-11-01 09:59:11 UTC (rev 2734)
@@ -12,7 +12,7 @@
<!-- $Id$ -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
- <name>jBPM 4 - CTS DB</name>
+ <name>jBPM 4 - Test DB</name>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-test-db</artifactId>
<packaging>jar</packaging>
Modified: jbpm4/trunk/modules/test-load/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-load/pom.xml 2008-11-01 09:51:25 UTC (rev 2733)
+++ jbpm4/trunk/modules/test-load/pom.xml 2008-11-01 09:59:11 UTC (rev 2734)
@@ -12,7 +12,7 @@
<!-- $Id$ -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
- <name>jBPM 4 - CTS DB</name>
+ <name>jBPM 4 - Test Load</name>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-test-load</artifactId>
<packaging>jar</packaging>
Modified: jbpm4/trunk/modules/test-pojo/pom.xml
===================================================================
--- jbpm4/trunk/modules/test-pojo/pom.xml 2008-11-01 09:51:25 UTC (rev 2733)
+++ jbpm4/trunk/modules/test-pojo/pom.xml 2008-11-01 09:59:11 UTC (rev 2734)
@@ -12,7 +12,7 @@
<!-- $Id$ -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
- <name>jBPM 4 - CTS DB</name>
+ <name>jBPM 4 - Test POJO</name>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-test-pojo</artifactId>
<packaging>jar</packaging>
17 years, 5 months