[jbpm-commits] JBoss JBPM SVN: r2448 - in projects/spec/trunk/modules: api/src/main/java/org/jbpm/api/model and 9 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Tue Sep 30 06:39:07 EDT 2008
Author: thomas.diesler at jboss.com
Date: 2008-09-30 06:39:06 -0400 (Tue, 30 Sep 2008)
New Revision: 2448
Added:
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/AbstractService.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/MutableService.java
Modified:
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Deployment.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Process.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/MessageBuilderService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilderService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/MessageService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/PersistenceService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/Service.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/SignalService.java
projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestCase.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/processbuilder/ProcessBuilderTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/client/ProcessEngineImpl.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/EndEventImpl.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/EventImpl.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/ProcessImpl.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/StartEventImpl.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/TaskImpl.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/EventBuilderImpl.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/GatewayBuilderImpl.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/TaskBuilderImpl.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/MessageServiceImpl.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/PersistenceServiceImpl.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java
projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/SignalServiceImpl.java
Log:
Improve engine scoping
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Deployment.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Deployment.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/client/Deployment.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -82,11 +82,10 @@
this.process = process;
}
- public Process getProcess()
+ public Process getProcess(ProcessEngine engine)
{
if (process == null)
{
- ProcessEngine engine = ProcessEngine.getProcessEngine();
DialectHandlerService dhService = engine.getService(DialectHandlerService.class);
if (dhService == null)
throw new IllegalStateException("DialectHandlerService not registered");
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Process.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Process.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/Process.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -27,6 +27,7 @@
import javax.management.ObjectName;
+import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.runtime.Attachments;
/**
@@ -46,6 +47,11 @@
}
/**
+ * Get the associated ProcessEngine
+ */
+ ProcessEngine getProcessEngine();
+
+ /**
* Get the unique name.
*/
String getName();
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/MessageBuilderService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/MessageBuilderService.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/MessageBuilderService.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -25,7 +25,7 @@
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Message;
-import org.jbpm.api.service.Service;
+import org.jbpm.api.service.AbstractService;
/**
* The MessageBuilder can be used to build a {@link Message} dynamically.
@@ -33,7 +33,7 @@
* @author thomas.diesler at jboss.com
* @since 08-Jul-2008
*/
-public abstract class MessageBuilderService implements Service
+public abstract class MessageBuilderService extends AbstractService
{
/**
* Locate the default MessageBuilder
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilderService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilderService.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/model/builder/ProcessBuilderService.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -25,7 +25,7 @@
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Process;
-import org.jbpm.api.service.Service;
+import org.jbpm.api.service.AbstractService;
/**
* The ProcessBuilder can be used to build a {@link Process} dynamically.
@@ -33,7 +33,7 @@
* @author thomas.diesler at jboss.com
* @since 08-Jul-2008
*/
-public abstract class ProcessBuilderService implements Service
+public abstract class ProcessBuilderService extends AbstractService
{
/**
* Locate the default ProcessBuilder
Added: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/AbstractService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/AbstractService.java (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/AbstractService.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -0,0 +1,48 @@
+/*
+ * 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.api.service;
+
+// $Id$
+
+import org.jbpm.api.client.ProcessEngine;
+
+/**
+ * An abstract Service that gives access to the ProcessEngine
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 18-Jun-2008
+ */
+public class AbstractService implements Service
+{
+ private ProcessEngine engine;
+
+ public ProcessEngine getProcessEngine()
+ {
+ return engine;
+ }
+
+ // Do not expose through the API
+ protected void setProcessEngine(ProcessEngine engine)
+ {
+ this.engine = engine;
+ }
+}
Property changes on: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/AbstractService.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ExecutionService.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -37,7 +37,7 @@
* @author thomas.diesler at jboss.com
* @since 18-Jun-2008
*/
-public abstract class ExecutionService implements Service
+public abstract class ExecutionService extends AbstractService
{
private ExecutorService procExecutor = Executors.newCachedThreadPool();
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/MessageService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/MessageService.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/MessageService.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -51,7 +51,7 @@
* @author thomas.diesler at jboss.com
* @since 18-Jun-2008
*/
-public abstract class MessageService implements Service
+public abstract class MessageService extends AbstractService
{
// Provide logging
final Logger log = LoggerFactory.getLogger(MessageService.class);
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/PersistenceService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/PersistenceService.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/PersistenceService.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -34,7 +34,7 @@
* @author thomas.diesler at jboss.com
* @since 17-Sep-2008
*/
-public abstract class PersistenceService implements Service
+public abstract class PersistenceService extends AbstractService
{
/**
* Locate the default PersistenceService
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessService.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessService.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -44,7 +44,7 @@
* @author thomas.diesler at jboss.com
* @since 25-Sep-2008
*/
-public abstract class ProcessService implements Service
+public abstract class ProcessService extends AbstractService
{
// Provide logging
final static Logger log = LoggerFactory.getLogger(ProcessService.class);
@@ -71,13 +71,15 @@
*/
public ObjectName deploy(Deployment dep)
{
+ // Get the associated engine
+ ProcessEngine engine = getProcessEngine();
+
// Get the process from the deployment
- Process proc = dep.getProcess();
+ Process proc = dep.getProcess(engine);
if (proc == null)
throw new IllegalStateException("Cannot obtain process from: " + dep);
// Save the process if the PersistenceService is registered
- ProcessEngine engine = ProcessEngine.getProcessEngine();
PersistenceService dbService = engine.getService(PersistenceService.class);
if (dbService != null)
dbService.saveProcess(proc);
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/Service.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/Service.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/Service.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -21,7 +21,9 @@
*/
package org.jbpm.api.service;
+import org.jbpm.api.client.ProcessEngine;
+
//$Id$
/**
@@ -32,4 +34,8 @@
*/
public interface Service
{
+ /**
+ * Get the associated ProcessEngine
+ */
+ ProcessEngine getProcessEngine();
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/SignalService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/SignalService.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/SignalService.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -40,7 +40,7 @@
* @author thomas.diesler at jboss.com
* @since 18-Jun-2008
*/
-public abstract class SignalService implements Service
+public abstract class SignalService extends AbstractService
{
// provide logging
final static Logger log = LoggerFactory.getLogger(SignalService.class);
Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestCase.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestCase.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestCase.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -68,15 +68,21 @@
// The messages caught by this test case
private List<Message> messages = new ArrayList<Message>();
+ protected ProcessEngine getProcessEngine()
+ {
+ return ProcessEngine.getProcessEngine();
+ }
+
@Override
protected void setUp() throws Exception
{
log.debug("### START " + getLongName());
super.setUp();
+ ProcessEngine engine = getProcessEngine();
+
// Setup the SignalListener
clearAllSignalListeners();
- ProcessEngine engine = ProcessEngine.getProcessEngine();
SignalService sigService = engine.getService(SignalService.class);
sigService.addSignalListener(getSignalListener());
synchronized (signals)
@@ -86,30 +92,31 @@
// Setup the MessageListener
clearAllMessageListeners();
- MessageService msgService = MessageService.locateMessageService();
+ MessageService msgService = engine.getService(MessageService.class);
msgService.addMessageListener(getMessageListener());
}
@Override
protected void tearDown() throws Exception
{
+ ProcessEngine engine = getProcessEngine();
+
// Tear down the SignalListener
- ProcessEngine engine = ProcessEngine.getProcessEngine();
SignalService sigService = engine.getService(SignalService.class);
sigService.removeSignalListener(getSignalListener());
// Tear down the MessageListener
- MessageService msgService = MessageService.locateMessageService();
+ MessageService msgService = engine.getService(MessageService.class);
msgService.removeMessageListener(getTestID());
// Check that there are no registered processes left
- ProcessService procManager = ProcessService.locateProcessService();
+ ProcessService procManager = engine.getService(ProcessService.class);
Set<Process> procs = procManager.getProcesses();
if (procs.size() > 0)
{
String logMsg = "Registered processes on tear down of " + getName() + ": " + procs;
System.out.println(logMsg);
- log.warn(logMsg);
+ System.exit(1);
}
// Check that there are no registered signal listeners left
@@ -118,7 +125,7 @@
{
String logMsg = "Registered signal listeners on tear down of " + getName() + ": " + sigListeners;
System.out.println(logMsg);
- log.warn(logMsg);
+ System.exit(1);
}
// Check that there are no registered message listeners left
@@ -127,7 +134,7 @@
{
String logMsg = "Registered message listeners on tear down of " + getName() + ": " + msgListeners;
System.out.println(logMsg);
- log.warn(logMsg);
+ System.exit(1);
}
super.tearDown();
@@ -196,18 +203,17 @@
private void clearAllSignalListeners()
{
- ProcessEngine engine = ProcessEngine.getProcessEngine();
- SignalService sigService = engine.getService(SignalService.class);
+ SignalService sigService = getProcessEngine().getService(SignalService.class);
Set<SignalListener> sigListeners = sigService.getSignalListeners();
for (SignalListener sigListener : sigListeners)
{
sigService.removeSignalListener(sigListener);
}
}
-
+
private void clearAllMessageListeners()
{
- MessageService msgService = MessageService.locateMessageService();
+ MessageService msgService = getProcessEngine().getService(MessageService.class);
Set<MessageListener> msgListeners = msgService.getMessageListeners();
for (MessageListener msgListener : msgListeners)
{
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/processbuilder/ProcessBuilderTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/processbuilder/ProcessBuilderTest.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/processbuilder/ProcessBuilderTest.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -45,11 +45,11 @@
public void testNoProcessName() throws Exception
{
- ProcessBuilder builder = ProcessBuilderService.locateProcessBuilder();
- builder.addProcess(null).addStartEvent("Start").addSequenceFlow("Task");
- builder.addTask("Task").addSequenceFlow("End").addEndEvent("End");
try
{
+ ProcessBuilder builder = ProcessBuilderService.locateProcessBuilder();
+ builder.addProcess(null).addStartEvent("Start").addSequenceFlow("Task");
+ builder.addTask("Task").addSequenceFlow("End").addEndEvent("End");
builder.getProcess();
fail("Process name required");
}
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequenceTest.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -45,12 +45,9 @@
{
public void testSequence() throws Exception
{
- // Start the Process
Process proc = getProcess();
- ProcessService procService = ProcessService.locateProcessService();
- procService.registerProcess(proc);
-
+ // Start the Process
proc.startProcess();
proc.waitForEnd();
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/client/ProcessEngineImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/client/ProcessEngineImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/client/ProcessEngineImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -27,6 +27,7 @@
import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.service.Service;
+import org.jbpm.ri.service.MutableService;
/**
* A process engine with public access
@@ -39,5 +40,15 @@
public void setServices(Set<Service> services)
{
this.services = services;
+
+ // Set this engine on every mutable service
+ for (Service service : services)
+ {
+ if (service instanceof MutableService)
+ {
+ MutableService mutService = (MutableService)service;
+ mutService.setProcessEngine(this);
+ }
+ }
}
}
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/EndEventImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/EndEventImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/EndEventImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -119,7 +119,7 @@
{
private static final long serialVersionUID = 1L;
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = getProcess().getProcessEngine();
SignalService sigService = engine.getService(SignalService.class);
public void throwEnterSignal(Token token)
{
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/EventImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/EventImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/EventImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -85,7 +85,7 @@
{
private static final long serialVersionUID = 1L;
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = getProcess().getProcessEngine();
SignalService sigService = engine.getService(SignalService.class);
public void throwEnterSignal(Token token)
{
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/ProcessImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/ProcessImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -82,10 +82,19 @@
private Set<Property> properties = new HashSet<Property>();
@Transient
+ private transient ProcessEngine engine;
+
+ @Transient
private transient RuntimeException runtimeException;
- public ProcessImpl(String name)
+ public ProcessImpl(ProcessEngine engine, String name)
{
+ if (engine == null)
+ throw new InvalidProcessException("Process engine cannot be null");
+ if (name == null)
+ throw new InvalidProcessException("Process name cannot be null");
+
+ this.engine = engine;
this.name = name;
}
@@ -94,6 +103,12 @@
{
}
+ @Transient
+ public ProcessEngine getProcessEngine()
+ {
+ return engine;
+ }
+
@Override
@Transient
public ObjectName getKey()
@@ -267,7 +282,7 @@
private ObjectName startProcessInternal(Attachments att)
{
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = getProcessEngine();
ExecutionService exService = engine.getService(ExecutionService.class);
exService.startProcess(this, att);
return getKey();
@@ -290,7 +305,7 @@
*/
private ProcessStatus waitForEndInternal(long timeout)
{
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = getProcessEngine();
ExecutionService exService = engine.getService(ExecutionService.class);
return exService.waitForEnd(this, timeout);
}
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/StartEventImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/StartEventImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/StartEventImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -113,7 +113,7 @@
{
private static final long serialVersionUID = 1L;
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = getProcess().getProcessEngine();
SignalService sigService = engine.getService(SignalService.class);
public void throwEnterSignal(Token token)
{
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/TaskImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/TaskImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/TaskImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -120,7 +120,7 @@
{
private static final long serialVersionUID = 1L;
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = getProcess().getProcessEngine();
SignalService sigService = engine.getService(SignalService.class);
public void throwEnterSignal(Token token)
{
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/EventBuilderImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/EventBuilderImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/EventBuilderImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -27,8 +27,6 @@
import org.jbpm.api.model.Event;
import org.jbpm.api.model.Signal.SignalType;
import org.jbpm.api.model.builder.EventBuilder;
-import org.jbpm.ri.model.NodeImpl;
-import org.jbpm.ri.model.ProcessImpl;
/**
* The EventBuilder can be used to build an {@link Event} dynamically.
@@ -38,9 +36,9 @@
*/
public class EventBuilderImpl extends ProcessBuilderImpl implements EventBuilder
{
- public EventBuilderImpl(ProcessImpl proc, NodeImpl node)
+ public EventBuilderImpl(ProcessBuilderImpl procBuilder)
{
- super(proc, node);
+ super(procBuilder);
}
public EventBuilder addMessageRef(String msgName)
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/GatewayBuilderImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/GatewayBuilderImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/GatewayBuilderImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -24,10 +24,9 @@
//$Id$
import org.jbpm.api.NotImplementedException;
+import org.jbpm.api.model.Gateway;
import org.jbpm.api.model.Expression.ExpressionLanguage;
import org.jbpm.api.model.builder.GatewayBuilder;
-import org.jbpm.ri.model.NodeImpl;
-import org.jbpm.ri.model.ProcessImpl;
/**
* The GatewayBuilder can be used to build a {@link Gateway} dynamically.
@@ -37,9 +36,9 @@
*/
public class GatewayBuilderImpl extends ProcessBuilderImpl implements GatewayBuilder
{
- public GatewayBuilderImpl(ProcessImpl proc, NodeImpl node)
+ public GatewayBuilderImpl(ProcessBuilderImpl procBuilder)
{
- super(proc, node);
+ super(procBuilder);
}
public GatewayBuilder addConditionalGate(String targetName, ExpressionLanguage exprLang, String exprBody)
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/ProcessBuilderImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -24,6 +24,7 @@
//$Id$
import org.jbpm.api.NotImplementedException;
+import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Process;
import org.jbpm.api.model.EndEvent.ResultType;
import org.jbpm.api.model.Gateway.GatewayType;
@@ -54,22 +55,25 @@
*/
public class ProcessBuilderImpl implements ProcessBuilder
{
+ protected ProcessEngine engine;
protected ProcessImpl proc;
protected NodeImpl node;
- public ProcessBuilderImpl()
+ public ProcessBuilderImpl(ProcessEngine engine)
{
+ this.engine = engine;
}
- protected ProcessBuilderImpl(ProcessImpl proc, NodeImpl node)
+ protected ProcessBuilderImpl(ProcessBuilderImpl procBuilder)
{
- this.proc = proc;
- this.node = node;
+ this.engine = procBuilder.engine;
+ this.proc = procBuilder.proc;
+ this.node = procBuilder.node;
}
public ProcessBuilder addProcess(String procName)
{
- proc = new ProcessImpl(procName);
+ proc = new ProcessImpl(engine, procName);
return this;
}
@@ -102,7 +106,7 @@
public EventBuilder addStartEvent(String name)
{
addNode(node = new StartEventImpl(name));
- return new EventBuilderImpl(proc, node);
+ return new EventBuilderImpl(this);
}
public EventBuilder addStartEvent(String name, TriggerType triggerType)
@@ -110,19 +114,19 @@
StartEventImpl startImpl = new StartEventImpl(name);
startImpl.setTriggerType(triggerType);
addNode(node = startImpl);
- return new EventBuilderImpl(proc, node);
+ return new EventBuilderImpl(this);
}
public EventBuilder addEvent(String name)
{
addNode(node = new EventImpl(name));
- return new EventBuilderImpl(proc, node);
+ return new EventBuilderImpl(this);
}
public EventBuilder addEndEvent(String name)
{
addNode(node = new EndEventImpl(name));
- return new EventBuilderImpl(proc, node);
+ return new EventBuilderImpl(this);
}
public EventBuilder addEndEvent(String name, ResultType resultType)
@@ -130,13 +134,13 @@
EndEventImpl endImpl = new EndEventImpl(name);
endImpl.setResultType(resultType);
addNode(node = endImpl);
- return new EventBuilderImpl(proc, node);
+ return new EventBuilderImpl(this);
}
public TaskBuilder addTask(String name)
{
addTask(name, TaskType.None);
- return new TaskBuilderImpl(proc, node);
+ return new TaskBuilderImpl(this);
}
public TaskBuilder addTask(String name, TaskType type)
@@ -178,7 +182,7 @@
throw new IllegalStateException("Task type: " + type);
}
addNode(node);
- return new TaskBuilderImpl(proc, node);
+ return new TaskBuilderImpl(this);
}
public GatewayBuilder addGateway(String name, GatewayType type)
@@ -200,7 +204,7 @@
throw new NotImplementedException();
}
addNode(node);
- return new GatewayBuilderImpl(proc, node);
+ return new GatewayBuilderImpl(this);
}
public <T extends ExecutionHandler> ProcessBuilder addExecutionHandler(Class<T> clazz)
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/TaskBuilderImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/TaskBuilderImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/model/builder/TaskBuilderImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -24,9 +24,8 @@
//$Id$
import org.jbpm.api.NotImplementedException;
+import org.jbpm.api.model.Task;
import org.jbpm.api.model.builder.TaskBuilder;
-import org.jbpm.ri.model.NodeImpl;
-import org.jbpm.ri.model.ProcessImpl;
/**
* The TaskBuilder can be used to dynamically build {@link Task}.
@@ -36,9 +35,9 @@
*/
public class TaskBuilderImpl extends ProcessBuilderImpl implements TaskBuilder
{
- public TaskBuilderImpl(ProcessImpl proc, NodeImpl node)
+ public TaskBuilderImpl(ProcessBuilderImpl procBuilder)
{
- super(proc, node);
+ super(procBuilder);
}
public TaskBuilder addMessageRef(String msgName)
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -57,7 +57,7 @@
* @author thomas.diesler at jboss.com
* @since 18-Jun-2008
*/
-public class ExecutionServiceImpl extends ExecutionService
+public class ExecutionServiceImpl extends ExecutionService implements MutableService
{
// provide logging
private static final Log log = LogFactory.getLog(ExecutionServiceImpl.class);
@@ -66,6 +66,12 @@
private Map<ObjectName, RuntimeProcess> runtimeProcesses = new HashMap<ObjectName, RuntimeProcess>();
@Override
+ public void setProcessEngine(ProcessEngine engine)
+ {
+ super.setProcessEngine(engine);
+ }
+
+ @Override
public void startProcess(Process proc, Attachments att)
{
// Prepare the process for start
@@ -157,7 +163,7 @@
throw new IllegalStateException("Cannot start process in state: " + procStatus);
// Register the process if needed
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = getProcessEngine();
ProcessService procService = engine.getService(ProcessService.class);
if (procService.getProcessByKey(proc.getKey()) == null)
procService.registerProcess(proc);
@@ -233,7 +239,7 @@
// Unregister the process if not done already
// this could happen when the Process never received a start signal
// and then we get here because of a ProcessTimeoutException
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = getProcessEngine();
ProcessService procService = engine.getService(ProcessService.class);
if (procService.getProcessByKey(proc.getKey()) != null)
procService.unregisterProcess(proc);
@@ -298,7 +304,7 @@
ProcessImpl procImpl = (ProcessImpl)rtProc.getProcess();
Process proc = rtProc.getProcess();
- ProcessEngine engine = ProcessEngine.getProcessEngine();
+ ProcessEngine engine = getProcessEngine();
SignalService sigService = engine.getService(SignalService.class);
ObjectName procID = proc.getKey();
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/MessageServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/MessageServiceImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/MessageServiceImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -24,6 +24,7 @@
// $Id$
import org.jbpm.api.client.MessageListener;
+import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Message;
import org.jbpm.api.service.MessageService;
@@ -36,6 +37,11 @@
* @author thomas.diesler at jboss.com
* @since 17-Sep-2008
*/
-public class MessageServiceImpl extends MessageService
+public class MessageServiceImpl extends MessageService implements MutableService
{
+ @Override
+ public void setProcessEngine(ProcessEngine engine)
+ {
+ super.setProcessEngine(engine);
+ }
}
Added: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/MutableService.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/MutableService.java (rev 0)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/MutableService.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -0,0 +1,38 @@
+/*
+ * 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.service;
+
+// $Id$
+
+import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.service.Service;
+
+/**
+ * A mutable service
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 18-Jun-2008
+ */
+public interface MutableService extends Service
+{
+ void setProcessEngine(ProcessEngine engine);
+}
\ No newline at end of file
Property changes on: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/MutableService.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/PersistenceServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/PersistenceServiceImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/PersistenceServiceImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -36,6 +36,7 @@
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.classic.Session;
import org.jbpm.api.ProcessNotFoundException;
+import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Process;
import org.jbpm.api.service.PersistenceService;
import org.jbpm.api.service.Service;
@@ -49,7 +50,7 @@
* @author thomas.diesler at jboss.com
* @since 17-Sep-2008
*/
-public class PersistenceServiceImpl extends PersistenceService
+public class PersistenceServiceImpl extends PersistenceService implements MutableService
{
// Provide logging
final Logger log = LoggerFactory.getLogger(PersistenceServiceImpl.class);
@@ -58,6 +59,12 @@
private SessionFactory sessionFactory;
private Set<String> annotatedClasses = new HashSet<String>();
+ @Override
+ public void setProcessEngine(ProcessEngine engine)
+ {
+ super.setProcessEngine(engine);
+ }
+
public void setHibernateConfig(String hibernateConfig)
{
this.hibernateConfig = hibernateConfig;
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/ProcessBuilderServiceImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -23,6 +23,7 @@
// $Id$
+import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.model.Process;
import org.jbpm.api.model.builder.ProcessBuilder;
import org.jbpm.api.model.builder.ProcessBuilderService;
@@ -34,11 +35,17 @@
* @author thomas.diesler at jboss.com
* @since 18-Jun-2008
*/
-public class ProcessBuilderServiceImpl extends ProcessBuilderService
+public class ProcessBuilderServiceImpl extends ProcessBuilderService implements MutableService
{
@Override
+ public void setProcessEngine(ProcessEngine engine)
+ {
+ super.setProcessEngine(engine);
+ }
+
+ @Override
public ProcessBuilder getProcessBuilder()
{
- return new ProcessBuilderImpl();
+ return new ProcessBuilderImpl(getProcessEngine());
}
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -23,6 +23,7 @@
// $Id$
+import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.service.ProcessService;
/**
@@ -31,6 +32,11 @@
* @author thomas.diesler at jboss.com
* @since 18-Jun-2008
*/
-public class ProcessServiceImpl extends ProcessService
+public class ProcessServiceImpl extends ProcessService implements MutableService
{
+ @Override
+ public void setProcessEngine(ProcessEngine engine)
+ {
+ super.setProcessEngine(engine);
+ }
}
\ No newline at end of file
Modified: projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/SignalServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/SignalServiceImpl.java 2008-09-30 09:14:19 UTC (rev 2447)
+++ projects/spec/trunk/modules/impl/src/main/java/org/jbpm/ri/service/SignalServiceImpl.java 2008-09-30 10:39:06 UTC (rev 2448)
@@ -23,6 +23,7 @@
// $Id$
+import org.jbpm.api.client.ProcessEngine;
import org.jbpm.api.service.SignalService;
/**
@@ -31,6 +32,11 @@
* @author thomas.diesler at jboss.com
* @since 17-Sep-2008
*/
-public class SignalServiceImpl extends SignalService
+public class SignalServiceImpl extends SignalService implements MutableService
{
+ @Override
+ public void setProcessEngine(ProcessEngine engine)
+ {
+ super.setProcessEngine(engine);
+ }
}
More information about the jbpm-commits
mailing list