JBoss JBPM SVN: r4865 - in jbpm4/trunk/modules: api/src/main/java/org/jbpm/api/activity and 27 other directories.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2009-05-21 02:16:03 -0400 (Thu, 21 May 2009)
New Revision: 4865
Added:
jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/notification/
jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/notification/MailNotificationTest.java
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/notification/
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/notification/process.jpdl.xml
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/events/TaskAssign.java
Modified:
jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/ExecutionService.java
jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/activity/ExternalActivityBehaviour.java
jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/client/ClientExecution.java
jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/OpenExecution.java
jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/task/OpenTask.java
jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/task/TaskHandler.java
jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/enterprise/internal/custom/WaitState.java
jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/mail/template/TemplateMailTest.java
jbpm4/trunk/modules/examples/src/test/resources/jbpm.mail.templates.examples.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/mail/template/process.jpdl.xml
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/GroupActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/MailBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StateActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SubProcessActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/SignalCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/StartProcessInstanceInLatestCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/VariablesCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/AttachmentTemplate.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailProducerImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailSessionImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/IdentitySessionImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ScopeInstanceImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/Signal.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ExecutionServiceImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/LifeCycleState.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskDefinitionImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/XmlUtil.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/MailTemplateBinding.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/activities/WaitState.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/executionmode/embedded/WaitState.java
jbpm4/trunk/modules/test-load/src/test/java/org/jbpm/test/load/async/ExclusiveMessagesTest.java
jbpm4/trunk/modules/test-load/src/test/java/org/jbpm/test/load/async/WaitState.java
jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/AutomaticDecisionTest.java
jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/BasicExecutionFlowTest.java
jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/EventTest.java
jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExceptionHandlerTest.java
jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExecutionStateTest.java
jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExternalDecisionTest.java
jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/FunctionalActivityTest.java
jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/LoopingTest.java
jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeStateTest.java
jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeVariableDeclarationTest.java
jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeVariableTest.java
jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/SubProcessTest.java
jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/VariableTest.java
jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/WaitState.java
Log:
CODING IN PROGRESS - issue JBPM-2254: task notify and reminder emails
https://jira.jboss.org/jira/browse/JBPM-2254
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/ExecutionService.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/ExecutionService.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/ExecutionService.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -70,14 +70,14 @@
* @param variables are the initial values of the process variables that
* will be set before the execution starts (read: before the initial
* activity is executed). */
- ProcessInstance startProcessInstanceByKey(String processDefinitionKey, Map<String, Object> variables);
+ ProcessInstance startProcessInstanceByKey(String processDefinitionKey, Map<String, ?> variables);
/** starts a new process instance in the latest version of the given processDefinitionName.
* @param processDefinitionKey is the key of the process definition for which the latest version will be taken.
* @param variables are the initial values of the process variables that will be set before the execution starts.
* @param processInstanceKey is a user provided reference for the new execution that must be unique over all
* process versions with the same name. */
- ProcessInstance startProcessInstanceByKey(String processDefinitionKey, Map<String, Object> variables, String processInstanceKey);
+ ProcessInstance startProcessInstanceByKey(String processDefinitionKey, Map<String, ?> variables, String processInstanceKey);
/** the path of execution that is uniquely defined by the execution id. */
Execution findExecutionById(String executionId);
@@ -92,10 +92,10 @@
ProcessInstance signalExecutionById(String executionId, String signalName);
/** provides a named external trigger to an execution with parameters. */
- ProcessInstance signalExecutionById(String executionId, String signalName, Map<String, Object> parameters);
+ ProcessInstance signalExecutionById(String executionId, String signalName, Map<String, ?> parameters);
/** provides a external trigger to an execution with parameters. */
- ProcessInstance signalExecutionById(String executionId, Map<String, Object> parameters);
+ ProcessInstance signalExecutionById(String executionId, Map<String, ?> parameters);
/** search for process instances with criteria */
@@ -105,7 +105,7 @@
void setVariable(String executionId, String name, Object value);
/** creates or overwrites the variable values on the referenced execution */
- void setVariables(String executionId, Map<String, Object> variables);
+ void setVariables(String executionId, Map<String, ?> variables);
/** retrieves a variable */
Object getVariable(String executionId, String variableName);
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/activity/ExternalActivityBehaviour.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/activity/ExternalActivityBehaviour.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/activity/ExternalActivityBehaviour.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -64,5 +64,5 @@
* considered non recoverable. After an Exception, the execution should not be
* used any more and if this is during a transaction, the transaction should be
* rolled back. */
- void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) throws Exception;
+ void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) throws Exception;
}
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/client/ClientExecution.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/client/ClientExecution.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/client/ClientExecution.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -94,7 +94,7 @@
*
* @see #signal() See the unnamed signal for more information
*/
- void signal(Map<String, Object> parameters);
+ void signal(Map<String, ?> parameters);
/** feeds a named {@link #signal() external trigger} into the execution with parameters.
*
@@ -111,7 +111,7 @@
*
* @see #signal() See the unnamed signal for more information
*/
- void signal(String signalName, Map<String, Object> parameters);
+ void signal(String signalName, Map<String, ?> parameters);
/** feeds a external trigger into the given execution.
*
@@ -154,7 +154,7 @@
*
* @see #signal() See the unnamed signal for more information
*/
- void signal(Map<String, Object> parameters, Execution execution);
+ void signal(Map<String, ?> parameters, Execution execution);
/** feeds a named {@link #signal() external trigger} into a given execution with parameters.
*
@@ -171,7 +171,7 @@
*
* @see #signal() See the unnamed signal for more information
*/
- void signal(String signalName, Map<String, Object> parameters, Execution execution);
+ void signal(String signalName, Map<String, ?> parameters, Execution execution);
/** suspends this execution and all it's child executions. Human tasks
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/OpenExecution.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/OpenExecution.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/OpenExecution.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -21,7 +21,6 @@
*/
package org.jbpm.api.model;
-import java.util.Collection;
import java.util.Map;
import java.util.Set;
@@ -29,7 +28,6 @@
import org.jbpm.api.JbpmException;
import org.jbpm.api.job.Timer;
-
/** execution that opens up access to the related
* objects in the execution and process definition
* model.
@@ -78,7 +76,7 @@
* variables will <b>not</b> be removed.
* @throws JbpmException is variables is not null and if null is present
* as a key in the provided variables map. */
- void setVariables(Map<String, Object> variables);
+ void setVariables(Map<String, ?> variables);
/** indicates presenve of the given key.
* No exception will be thrown if key is null.
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/task/OpenTask.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/task/OpenTask.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/task/OpenTask.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -37,6 +37,9 @@
/** fires a history event that marks the start of this task. */
void historyTaskStart();
+ /** fires a history event that marks the assignment of this task. */
+ void historyTaskAssign(String userId);
+
/** fires a history event that marks the completion of this task. */
void historyTaskComplete(String outcome);
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/task/TaskHandler.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/task/TaskHandler.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/task/TaskHandler.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -21,7 +21,6 @@
*/
package org.jbpm.api.task;
-
/** for advanced task customization.
*
* The default implementation can be found in {@link DefaultTaskHandler}.
@@ -30,7 +29,7 @@
*/
public class TaskHandler {
- /** is called after the task is created according
+ /** called after the task is created according
* to the task definition. This method allows to
* create subtasks.
* @return indicates if the process execution should wait. */
@@ -39,7 +38,7 @@
return true;
}
- /** is called when the related execution gets a
+ /** called when the related execution gets a
* signal. this method must either
* {@link OpenTask#setSignalling(boolean) remove signalling} from this task
* or {@link OpenTask#cancel(String) cancel} it. */
@@ -47,12 +46,17 @@
task.setSignalling(false);
}
- /** is called when this task is cancelled. */
+ /** called when the given task is assigned to an actor. */
+ public void taskAssign(OpenTask task, String userId) {
+ task.historyTaskAssign(userId);
+ }
+
+ /** called when the given task is cancelled. */
public void taskCancel(OpenTask task, String reason) {
task.historyTaskCancel(reason);
}
- /** is called when this task completes. The default behaviour
+ /** called when the given task completes. The default behaviour
* will send a signal to the execution if this task is still signalling. */
public void taskComplete(OpenTask task, String outcome) {
task.historyTaskComplete(outcome);
Modified: jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/enterprise/internal/custom/WaitState.java
===================================================================
--- jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/enterprise/internal/custom/WaitState.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/enterprise/internal/custom/WaitState.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -39,7 +39,7 @@
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters)
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters)
throws Exception {
if (parameters != null) {
execution.setVariables(parameters);
Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/mail/template/TemplateMailTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/mail/template/TemplateMailTest.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/mail/template/TemplateMailTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -98,7 +98,7 @@
// start process instance
executionService.startProcessInstanceByKey("TemplateMail", variables);
- // examine produced message
+ // examine produced messages
List<WiserMessage> wisMessages = wiser.getMessages();
// winston, bb, innerparty(obrien), thinkpol(charr, obrien)
assertEquals(5, wisMessages.size());
Added: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/notification/MailNotificationTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/notification/MailNotificationTest.java (rev 0)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/task/notification/MailNotificationTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -0,0 +1,99 @@
+/*
+ * 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.examples.task.notification;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import javax.mail.Address;
+import javax.mail.MessagingException;
+import javax.mail.Message.RecipientType;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+
+import org.subethamail.wiser.Wiser;
+import org.subethamail.wiser.WiserMessage;
+
+import org.jbpm.examples.task.assignee.Order;
+import org.jbpm.test.JbpmTestCase;
+
+/**
+ * @author Alejandro Guizar
+ */
+public class MailNotificationTest extends JbpmTestCase {
+
+ Wiser wiser = new Wiser();
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ // deploy process
+ long deploymentDbid = repositoryService.createDeployment()
+ .addResourceFromClasspath("org/jbpm/examples/task/notification/process.jpdl.xml")
+ .deploy();
+ registerDeployment(deploymentDbid);
+
+ // create actors
+ identityService.createUser("johndoe", "John", "Doe", "john@doe");
+
+ // start mail server
+ wiser.setPort(2525);
+ wiser.start();
+ }
+
+ protected void tearDown() throws Exception {
+ // stop mail server
+ wiser.stop();
+
+ // delete actors
+ identityService.deleteUser("johndoe");
+
+ super.tearDown();
+ }
+
+ public void testTaskNotification() throws MessagingException, IOException {
+ Map<String, Order> variables = Collections.singletonMap("order", new Order("johndoe"));
+ executionService.startProcessInstanceByKey("TaskAssignee", variables);
+
+ // examine produced messages
+ List<WiserMessage> wiserMessages = wiser.getMessages();
+ assertEquals(1, wiserMessages.size());
+
+ WiserMessage wiserMessage = wiserMessages.get(0);
+ MimeMessage message = wiserMessage.getMimeMessage();
+ // from
+ Address[] from = message.getFrom();
+ assertEquals(1, from.length);
+ assertEquals("noreply(a)jbpm.org", from[0].toString());
+ // to
+ Address[] expectedTo = InternetAddress.parse("john@doe");
+ Address[] to = message.getRecipients(RecipientType.TO);
+ assert Arrays.equals(expectedTo, to) : Arrays.asList(to);
+ // subject
+ assertEquals("review", message.getSubject());
+ // text
+ assertTextPresent("Task \"review\" has been assigned to you.", (String) message.getContent());
+ }
+}
Modified: jbpm4/trunk/modules/examples/src/test/resources/jbpm.mail.templates.examples.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/jbpm.mail.templates.examples.xml 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/examples/src/test/resources/jbpm.mail.templates.examples.xml 2009-05-21 06:16:03 UTC (rev 4865)
@@ -4,7 +4,29 @@
<process-engine-context>
- <mail-template name="rectify template">
+ <mail-template name='task-notification'>
+ <to users="${task.assignee}"/>
+ <subject>${task.name}</subject>
+ <text><![CDATA[Hi ${task.assignee},
+Task "${task.name}" has been assigned to you.
+${task.description}
+
+Sent by JBoss jBPM
+]]></text>
+ </mail-template>
+
+ <mail-template name='task-reminder'>
+ <to users="${task.assignee}"/>
+ <subject>${task.name}</subject>
+ <text><![CDATA[Hey ${task.assignee},
+Do not forget about task "${task.name}".
+${task.description}
+
+Sent by JBoss jBPM
+]]></text>
+ </mail-template>
+
+ <mail-template name="rectify-template">
<to addresses="${addressee}" />
<cc users="bb" groups="innerparty" />
<bcc groups="thinkpol" />
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/mail/template/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/mail/template/process.jpdl.xml 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/mail/template/process.jpdl.xml 2009-05-21 06:16:03 UTC (rev 4865)
@@ -6,7 +6,7 @@
<transition to="send rectify note" />
</start>
- <mail name="send rectify note" template="rectify template">
+ <mail name="send rectify note" template="rectify-template">
<transition to="end" />
</mail>
Added: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/notification/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/notification/process.jpdl.xml (rev 0)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/task/notification/process.jpdl.xml 2009-05-21 06:16:03 UTC (rev 4865)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<process name="TaskAssignee">
+
+ <start g="20,20,48,48">
+ <transition to="review"/>
+ </start>
+
+ <task name="review"
+ assignee="#{order.owner}"
+ g="96,16,127,52">
+ <notification/>
+ <transition to="wait"/>
+ </task>
+
+ <state name="wait" g="255,16,88,52"/>
+
+</process>
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/GroupActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/GroupActivity.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/GroupActivity.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -83,7 +83,7 @@
return startActivities;
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) throws Exception {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) throws Exception {
Transition transition = null;
Activity activity = execution.getActivity();
List<Transition> outgoingTransitions = activity.getOutgoingTransitions();
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/MailBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/MailBinding.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/MailBinding.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -23,14 +23,7 @@
import org.w3c.dom.Element;
-import org.jbpm.api.env.Environment;
-import org.jbpm.pvm.internal.email.impl.MailProducerImpl;
-import org.jbpm.pvm.internal.email.impl.MailTemplate;
-import org.jbpm.pvm.internal.email.impl.MailTemplateRegistry;
-import org.jbpm.pvm.internal.email.spi.MailProducer;
-import org.jbpm.pvm.internal.util.XmlUtil;
-import org.jbpm.pvm.internal.wire.binding.MailTemplateBinding;
-import org.jbpm.pvm.internal.wire.binding.ObjectBinding;
+import org.jbpm.jpdl.internal.xml.JpdlParser;
import org.jbpm.pvm.internal.xml.Parse;
import org.jbpm.pvm.internal.xml.Parser;
@@ -39,48 +32,13 @@
*/
public class MailBinding extends JpdlBinding {
- private static final ObjectBinding objectBinding = new ObjectBinding();
- private static final MailTemplateBinding templateBinding = new MailTemplateBinding();
-
public MailBinding() {
super("mail");
}
public Object parse(Element element, Parse parse, Parser parser) {
MailActivity activity = new MailActivity();
- activity.setMailProducer(parseProducer(element, parse, parser));
+ activity.setMailProducer(JpdlParser.parseMailProducer(element, parse, null));
return activity;
}
-
- protected MailProducer parseProducer(Element element, Parse parse, Parser parser) {
- // check whether the element is a generic object descriptor
- if (ObjectBinding.isObjectDescriptor(element)) {
- return (MailProducer) objectBinding.parse(element, parse, parser);
- }
-
- // parse the default producer
- MailProducerImpl mailProducer = new MailProducerImpl();
- mailProducer.setTemplate(parseTemplate(element, parse, parser));
- return mailProducer;
- }
-
- protected MailTemplate parseTemplate(Element element, Parse parse, Parser parser) {
- MailTemplate template;
-
- // look for template reference
- String templateName = XmlUtil.attribute(element, "template");
- if (templateName != null) {
- // load template from configuration
- MailTemplateRegistry templateRegistry = Environment.getFromCurrent(MailTemplateRegistry.class);
- template = templateRegistry.getTemplate(templateName);
- if (template == null) {
- parse.addProblem("mail template not found: " + templateName, element);
- }
- }
- else {
- // parse inline template
- template = templateBinding.parseMailTemplate(element, parse, parser);
- }
- return template;
- }
}
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StateActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StateActivity.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StateActivity.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -40,7 +40,7 @@
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) {
Activity activity = execution.getActivity();
if (parameters!=null) {
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SubProcessActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SubProcessActivity.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SubProcessActivity.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -87,7 +87,7 @@
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) {
JpdlExecution jpdlExecution = execution.getExtension(JpdlExecution.class);
ExecutionImpl subProcessInstance = jpdlExecution.getSubProcessInstance();
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskActivity.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskActivity.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -61,7 +61,7 @@
}
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) {
Activity activity = execution.getActivity();
if (parameters!=null) {
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -38,6 +38,10 @@
import org.jbpm.internal.log.Log;
import org.jbpm.jpdl.internal.activity.JpdlBinding;
import org.jbpm.jpdl.internal.model.JpdlProcessDefinition;
+import org.jbpm.pvm.internal.email.impl.MailProducerImpl;
+import org.jbpm.pvm.internal.email.impl.MailTemplate;
+import org.jbpm.pvm.internal.email.impl.MailTemplateRegistry;
+import org.jbpm.pvm.internal.email.spi.MailProducer;
import org.jbpm.pvm.internal.model.ActivityCoordinatesImpl;
import org.jbpm.pvm.internal.model.ActivityImpl;
import org.jbpm.pvm.internal.model.CompositeElementImpl;
@@ -58,6 +62,10 @@
import org.jbpm.pvm.internal.util.ReflectUtil;
import org.jbpm.pvm.internal.util.XmlUtil;
import org.jbpm.pvm.internal.wire.Descriptor;
+import org.jbpm.pvm.internal.wire.WireContext;
+import org.jbpm.pvm.internal.wire.WireDefinition;
+import org.jbpm.pvm.internal.wire.binding.MailTemplateBinding;
+import org.jbpm.pvm.internal.wire.binding.ObjectBinding;
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
import org.jbpm.pvm.internal.wire.operation.Operation;
import org.jbpm.pvm.internal.wire.xml.WireParser;
@@ -461,6 +469,13 @@
JpdlParser.parseAssignmentAttributes(element, taskDefinition, parse);
+ // parse notification mail producer
+ Element notificationElement = XmlUtil.element(element, "notification");
+ if (notificationElement != null) {
+ MailProducer mailProducer = parseMailProducer(notificationElement, parse, "task-notification");
+ taskDefinition.setNotificationMailProducer(mailProducer);
+ }
+
return taskDefinition;
}
@@ -552,4 +567,49 @@
return variableOutDefinitionSet;
}
+ public static MailProducer parseMailProducer(Element element, Parse parse,
+ String defaultTemplateName) {
+ // check whether the element is a generic object descriptor
+ if (ObjectBinding.isObjectDescriptor(element)) {
+ // TODO test custom mail producer
+ ObjectDescriptor objectDescriptor = parseObjectDescriptor(element, parse);
+ WireDefinition wireDefinition = parse.findObject(WireDefinition.class);
+ return (MailProducer) objectDescriptor.construct(new WireContext(wireDefinition));
+ }
+
+ // parse the default producer
+ MailProducerImpl mailProducer = new MailProducerImpl();
+ mailProducer.setTemplate(parseMailTemplate(element, parse, defaultTemplateName));
+ return mailProducer;
+ }
+
+ private static MailTemplate parseMailTemplate(Element element, Parse parse,
+ String defaultTemplateName) {
+ if (element.hasAttribute("template")) {
+ // fetch template from configuration
+ return findTemplate(element, parse, element.getAttribute("template"));
+ }
+ if (!XmlUtil.isTextOnly(element)) {
+ // parse inline template
+ return MailTemplateBinding.parseMailTemplate(element, parse);
+ }
+ if (defaultTemplateName != null) {
+ // fetch default template
+ return findTemplate(element, parse, defaultTemplateName);
+ }
+ parse.addProblem("mail template must be referenced in the 'template' attribute "
+ + "or specified inline", element);
+ return null;
+ }
+
+ private static MailTemplate findTemplate(Element element, Parse parse, String templateName) {
+ MailTemplateRegistry templateRegistry = Environment.getFromCurrent(MailTemplateRegistry.class);
+ if (templateRegistry != null) {
+ MailTemplate template = templateRegistry.getTemplate(templateName);
+ if (template != null) return template;
+ }
+ parse.addProblem("mail template not found: " + templateName, element);
+ return null;
+ }
+
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/SignalCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/SignalCmd.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/SignalCmd.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -38,9 +38,9 @@
protected String executionId;
protected String signalName;
- protected Map<String, Object> parameters;
+ protected Map<String, ?> parameters;
- public SignalCmd(String executionId, String signalName, Map<String, Object> parameters) {
+ public SignalCmd(String executionId, String signalName, Map<String, ?> parameters) {
if (executionId==null) {
throw new JbpmException("executionId is null");
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/StartProcessInstanceInLatestCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/StartProcessInstanceInLatestCmd.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/StartProcessInstanceInLatestCmd.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -25,14 +25,12 @@
import org.hibernate.Session;
import org.jbpm.api.JbpmException;
-import org.jbpm.api.ProcessDefinitionQuery;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.client.ClientProcessDefinition;
import org.jbpm.api.client.ClientProcessInstance;
import org.jbpm.api.env.Environment;
import org.jbpm.api.session.RepositorySession;
-
/**
* @author Tom Baeyens
*/
@@ -43,13 +41,13 @@
protected String processDefinitionKey;
protected String executionKey;
- public StartProcessInstanceInLatestCmd(String processDefinitionKey, Map<String, Object> variables, String executionKey) {
+ public StartProcessInstanceInLatestCmd(String processDefinitionKey, Map<String, ?> variables, String executionKey) {
if (processDefinitionKey==null) {
throw new JbpmException("processDefinitionKey is null");
}
this.processDefinitionKey = processDefinitionKey;
- this.variables = variables;
this.executionKey = executionKey;
+ setVariables(variables);
}
public ProcessInstance execute(Environment environment) throws Exception {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/VariablesCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/VariablesCmd.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/VariablesCmd.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -36,28 +36,32 @@
private static final long serialVersionUID = 1L;
- protected Map<String, Object> variables;
+ protected Map<String, ?> variables;
+ private Map<String, Object> internalMap;
public void addVariable(String key, Object variable) {
- if (variables==null) {
- variables = new HashMap<String, Object>();
+ if (internalMap == null) {
+ if (variables != null) {
+ throw new JbpmException("variables were set externally");
+ }
+ variables = internalMap = new HashMap<String, Object>();
}
- variables.put(key, variable);
+ internalMap.put(key, variable);
}
- public Map<String, Object> getVariables() {
+ public Map<String, ?> getVariables() {
return variables;
}
- public void setVariables(Map<String, Object> variables) {
+ public void setVariables(Map<String, ?> variables) {
this.variables = variables;
}
-
+
protected ClientExecution getExecution(Environment environment, String executionId) {
PvmDbSession dbSession = environment.get(PvmDbSession.class);
ClientExecution execution = dbSession.findExecutionById(executionId);
- if (execution==null) {
- throw new JbpmException("execution "+executionId+" doesn't exist");
+ if (execution == null) {
+ throw new JbpmException("execution " + executionId + " doesn't exist");
}
return execution;
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/AttachmentTemplate.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/AttachmentTemplate.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/AttachmentTemplate.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -21,8 +21,6 @@
*/
package org.jbpm.pvm.internal.email.impl;
-import java.net.URL;
-
/**
* @author Alejandro Guizar
*/
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailProducerImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailProducerImpl.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailProducerImpl.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -83,9 +83,16 @@
return new MimeMessage((Session) null);
}
+ /**
+ * Fills the <code>from</code> attribute of the given email. The sender addresses are an optional
+ * element in the mail template. If absent, each mail server supplies the current user's email
+ * address.
+ *
+ * @see {@link InternetAddress#getLocalAddress(Session)}
+ */
protected void fillFrom(Execution execution, Message email) {
AddressTemplate fromTemplate = template.getFrom();
- // from field is optional; if absent, each mail server will supply its "local address"
+ // "from" attribute is optional
if (fromTemplate == null) return;
// resolve and parse addresses
@@ -129,7 +136,10 @@
}
private String[] tokenizeActors(String recipients, Execution execution) {
- return evaluateExpression(recipients, execution).split("[,|\\s]+");
+ String[] actors = evaluateExpression(recipients, execution).split("[,|\\s]+");
+ if (actors.length == 0)
+ throw new JbpmException("recipient list is empty: " + recipients);
+ return actors;
}
/** construct recipient addresses from user entities */
@@ -219,16 +229,20 @@
}
protected void fillSubject(Execution execution, Message email) {
- String subject = evaluateExpression(template.getSubject(), execution);
- try {
- email.setSubject(subject);
+ String subject = template.getSubject();
+ if (subject != null) {
+ subject = evaluateExpression(subject, execution);
+ try {
+ email.setSubject(subject);
+ }
+ catch (MessagingException e) {
+ throw new JbpmException("failed to set subject to " + subject, e);
+ }
}
- catch (MessagingException e) {
- throw new JbpmException("failed to set subject to " + subject, e);
- }
}
protected void fillContent(Execution execution, Message email) {
+ String text = template.getText();
String html = template.getHtml();
List<AttachmentTemplate> attachmentTemplates = template.getAttachmentTemplates();
@@ -237,9 +251,9 @@
Multipart multipart = new MimeMultipart("related");
// text
- if (template.getText() != null) {
+ if (text != null) {
BodyPart textPart = new MimeBodyPart();
- String text = evaluateExpression(template.getText(), execution);
+ text = evaluateExpression(text, execution);
try {
textPart.setText(text);
multipart.addBodyPart(textPart);
@@ -274,9 +288,9 @@
throw new JbpmException("failed to set multipart content: " + multipart, e);
}
}
- else {
+ else if (text != null) {
// unipart
- String text = evaluateExpression(template.getText(), execution);
+ text = evaluateExpression(text, execution);
try {
email.setText(text);
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailSessionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailSessionImpl.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailSessionImpl.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -10,7 +10,6 @@
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeMessage;
import org.jbpm.api.JbpmException;
import org.jbpm.pvm.internal.email.spi.MailSession;
Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/events/TaskAssign.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/events/TaskAssign.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/history/events/TaskAssign.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.pvm.internal.history.events;
+
+import org.jbpm.pvm.internal.history.HistoryEvent;
+
+/**
+ * @author Alejandro Guizar
+ */
+public class TaskAssign extends HistoryEvent {
+
+ private static final long serialVersionUID = 1L;
+
+ protected String userId;
+
+ public TaskAssign(String userId) {
+ this.userId = userId;
+ }
+
+ @Override
+ public void process() {
+ // TODO
+ }
+
+}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/IdentitySessionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/IdentitySessionImpl.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/IdentitySessionImpl.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -21,9 +21,10 @@
*/
package org.jbpm.pvm.internal.identity.impl;
+import java.util.Arrays;
import java.util.List;
-import org.hibernate.Query;
+import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
@@ -39,7 +40,8 @@
protected Session session;
- public String createUser(String userName, String givenName, String familyName, String businessEmail) {
+ public String createUser(String userName, String givenName, String familyName,
+ String businessEmail) {
UserImpl user = new UserImpl(userName, givenName, familyName);
user.setBusinessEmail(businessEmail);
session.save(user);
@@ -54,7 +56,11 @@
}
public List<User> findUsersById(String... userIds) {
- return session.createCriteria(UserImpl.class).add(Restrictions.in("id", userIds)).list();
+ List users = session.createCriteria(UserImpl.class).add(Restrictions.in("id", userIds)).list();
+ if (userIds.length != users.size()) {
+ throw new JbpmException("not all users were found: " + Arrays.toString(userIds));
+ }
+ return users;
}
public List<User> findUsers() {
@@ -66,12 +72,9 @@
User user = findUserById(userId);
// cascade the deletion to the memberships
- Query query = session.createQuery("from "
- + MembershipImpl.class.getName()
- + " as m "
- + "where m.user is :user");
- query.setEntity("user", user);
- List<MembershipImpl> memberships = query.list();
+ List<MembershipImpl> memberships = session.createCriteria(MembershipImpl.class)
+ .add(Restrictions.eq("user", user))
+ .list();
// delete the related memberships
for (MembershipImpl membership : memberships) {
@@ -108,43 +111,33 @@
}
public GroupImpl findGroupById(String groupId) {
- GroupImpl group = (GroupImpl) session.createQuery("select group "
- + "from "
- + GroupImpl.class.getName()
- + " as group "
- + "where group.id = '"
- + groupId
- + "'").uniqueResult();
- return group;
+ return (GroupImpl) session.createCriteria(GroupImpl.class)
+ .add(Restrictions.eq("id", groupId))
+ .uniqueResult();
}
public List<Group> findGroupsByUserAndGroupType(String userId, String groupType) {
- Query query = session.createQuery("select distinct membership.group "
- + "from "
- + MembershipImpl.class.getName()
- + " as membership "
- + "where membership.user.id = '"
- + userId
- + "'"
- + " and membership.group.type = '"
- + groupType
- + "'");
- return query.list();
+ return session.createCriteria(MembershipImpl.class)
+ .createAlias("user", "u")
+ .createAlias("group", "g")
+ .add(Restrictions.eq("u.id", userId))
+ .add(Restrictions.eq("g.type", groupType))
+ .setProjection(Projections.property("group"))
+ .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
+ .list();
}
public List<Group> findGroupsByUser(String userId) {
- Query query = session.createQuery("select distinct membership.group "
- + "from "
- + MembershipImpl.class.getName()
- + " as membership "
- + "where membership.user.id = '"
- + userId
- + "'");
- return query.list();
+ return session.createCriteria(MembershipImpl.class)
+ .createAlias("user", "u")
+ .add(Restrictions.eq("u.id", userId))
+ .setProjection(Projections.property("group"))
+ .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
+ .list();
}
public List<Group> findGroups() {
- return session.createQuery("from " + GroupImpl.class.getName()).list();
+ return session.createCriteria(GroupImpl.class).list();
}
public void deleteGroup(String groupId) {
@@ -152,12 +145,9 @@
GroupImpl group = findGroupById(groupId);
// cascade the deletion to the memberships
- Query query = session.createQuery("from "
- + MembershipImpl.class.getName()
- + " as m "
- + "where m.group is :group");
- query.setEntity("group", group);
- List<MembershipImpl> memberships = query.list();
+ List<MembershipImpl> memberships = session.createCriteria(MembershipImpl.class)
+ .add(Restrictions.eq("group", group))
+ .list();
// delete the related memberships
for (MembershipImpl membership : memberships) {
@@ -173,7 +163,7 @@
if (user == null) {
throw new JbpmException("user " + userId + " doesn't exist");
}
- GroupImpl group = findGroupById(groupId);
+ Group group = findGroupById(groupId);
if (group == null) {
throw new JbpmException("group " + groupId + " doesn't exist");
}
@@ -187,7 +177,13 @@
}
public void deleteMembership(String userId, String groupId, String role) {
- throw new UnsupportedOperationException("please implement me");
+ MembershipImpl membership = (MembershipImpl) session.createCriteria(MembershipImpl.class)
+ .createAlias("user", "u")
+ .createAlias("group", "g")
+ .add(Restrictions.eq("u.id", userId))
+ .add(Restrictions.eq("g.id", groupId))
+ .uniqueResult();
+ session.delete(membership);
}
public void setSession(Session session) {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -363,18 +363,18 @@
// execution method : signal ////////////////////////////////////////////////
public void signal() {
- signal(null, (Map)null);
+ signal(null, (Map<String,?>)null);
}
public void signal(String signal) {
- signal(signal, (Map)null);
+ signal(signal, (Map<String,?>)null);
}
- public void signal(Map<String, Object> parameters) {
+ public void signal(Map<String, ?> parameters) {
signal(null, parameters);
}
- public void signal(String signal, Map<String, Object> parameters) {
+ public void signal(String signal, Map<String, ?> parameters) {
checkActive();
propagation = Propagation.EXPLICIT;
if (getActivity()!=null) {
@@ -387,18 +387,18 @@
}
public void signal(Execution execution) {
- ((ExecutionImpl)execution).signal(null, (Map)null);
+ ((ExecutionImpl)execution).signal(null, (Map<String,?>)null);
}
public void signal(String signalName, Execution execution) {
- ((ExecutionImpl)execution).signal(signalName, (Map)null);
+ ((ExecutionImpl)execution).signal(signalName, (Map<String,?>)null);
}
- public void signal(Map<String, Object> parameters, Execution execution) {
+ public void signal(Map<String, ?> parameters, Execution execution) {
((ExecutionImpl)execution).signal(null, parameters);
}
- public void signal(String signalName, Map<String, Object> parameters, Execution execution) {
+ public void signal(String signalName, Map<String, ?> parameters, Execution execution) {
((ExecutionImpl)execution).signal(signalName, parameters);
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ScopeInstanceImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ScopeInstanceImpl.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ScopeInstanceImpl.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -33,13 +33,10 @@
import org.jbpm.api.Execution;
import org.jbpm.api.JbpmException;
-import org.jbpm.api.client.ClientExecution;
-import org.jbpm.api.client.ClientProcessDefinition;
import org.jbpm.api.env.Environment;
import org.jbpm.api.job.Timer;
import org.jbpm.api.session.TimerSession;
import org.jbpm.internal.log.Log;
-import org.jbpm.pvm.internal.hibernate.HibernatePvmDbSession;
import org.jbpm.pvm.internal.job.TimerImpl;
import org.jbpm.pvm.internal.type.Converter;
import org.jbpm.pvm.internal.type.Type;
@@ -168,18 +165,15 @@
}
}
- public void setVariables(Map<String, Object> variables) {
+ public void setVariables(Map<String, ?> variables) {
if (variables!=null) {
- for (String key: variables.keySet()) {
- Object value = variables.get(key);
- setVariable(key, value);
- }
+ for (Map.Entry<String, ?> entry : variables.entrySet()) {
+ setVariable(entry.getKey(), entry.getValue());
+ }
}
}
public Object getVariable(String key) {
- Object value = null;
-
Variable variable = getVariableObject(key);
if (variable!=null) {
return variable.getValue();
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/Signal.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/Signal.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/Signal.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -39,10 +39,10 @@
private static final Log log = Log.getLog(Signal.class.getName());
String signalName;
- Map<String, Object> parameters;
+ Map<String, ?> parameters;
ActivityImpl activity;
- public Signal(String signalName, Map<String, Object> parameters, ActivityImpl activity) {
+ public Signal(String signalName, Map<String, ?> parameters, ActivityImpl activity) {
this.signalName = signalName;
this.parameters = parameters;
this.activity = activity;
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ExecutionServiceImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ExecutionServiceImpl.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ExecutionServiceImpl.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -22,7 +22,6 @@
package org.jbpm.pvm.internal.svc;
import java.util.HashSet;
-import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -33,7 +32,6 @@
import org.jbpm.pvm.internal.cmd.DeleteProcessInstance;
import org.jbpm.pvm.internal.cmd.EndProcessInstance;
import org.jbpm.pvm.internal.cmd.FindExecutionCmd;
-import org.jbpm.pvm.internal.cmd.FindExecutionsCmd;
import org.jbpm.pvm.internal.cmd.GetVariableNamesCmd;
import org.jbpm.pvm.internal.cmd.GetVariablesCmd;
import org.jbpm.pvm.internal.cmd.SetVariablesCmd;
@@ -42,7 +40,6 @@
import org.jbpm.pvm.internal.cmd.StartProcessInstanceInLatestCmd;
import org.jbpm.pvm.internal.query.ProcessInstanceQueryImpl;
-
/**
* @author Tom Baeyens
*/
@@ -68,7 +65,7 @@
return commandService.execute(new StartProcessInstanceInLatestCmd(processDefinitionKey, null, null));
}
- public ProcessInstance startProcessInstanceByKey(String processDefinitionKey, Map<String, Object> variables){
+ public ProcessInstance startProcessInstanceByKey(String processDefinitionKey, Map<String, ?> variables){
return commandService.execute(new StartProcessInstanceInLatestCmd(processDefinitionKey, variables, null));
}
@@ -76,7 +73,7 @@
return commandService.execute(new StartProcessInstanceInLatestCmd(processDefinitionKey, null, executionKey));
}
- public ProcessInstance startProcessInstanceByKey(String processDefinitionKey, Map<String, Object> variables, String executionKey){
+ public ProcessInstance startProcessInstanceByKey(String processDefinitionKey, Map<String, ?> variables, String executionKey){
return commandService.execute(new StartProcessInstanceInLatestCmd(processDefinitionKey, variables, executionKey));
}
@@ -90,11 +87,11 @@
return commandService.execute(new SignalCmd(executionId, signalName, null));
}
- public ProcessInstance signalExecutionById(String executionId, String signalName, Map<String, Object> parameters) {
+ public ProcessInstance signalExecutionById(String executionId, String signalName, Map<String, ?> parameters) {
return commandService.execute(new SignalCmd(executionId, signalName, parameters));
}
- public ProcessInstance signalExecutionById(String executionId, Map<String, Object> parameters) {
+ public ProcessInstance signalExecutionById(String executionId, Map<String, ?> parameters) {
return commandService.execute(new SignalCmd(executionId, null, parameters));
}
@@ -141,7 +138,7 @@
commandService.execute(cmd);
}
- public void setVariables(String executionId, Map<String, Object> variables) {
+ public void setVariables(String executionId, Map<String, ?> variables) {
SetVariablesCmd cmd = new SetVariablesCmd(executionId);
cmd.setVariables(variables);
commandService.execute(cmd);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/LifeCycleState.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/LifeCycleState.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/LifeCycleState.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -38,7 +38,7 @@
}
public void signal(ActivityExecution execution, String signalName,
- Map<String, Object> parameters) throws Exception {
+ Map<String, ?> parameters) throws Exception {
execution.take(signalName);
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskDefinitionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskDefinitionImpl.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskDefinitionImpl.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -24,6 +24,7 @@
import java.io.Serializable;
import java.util.List;
+import org.jbpm.pvm.internal.email.spi.MailProducer;
import org.jbpm.pvm.internal.util.Priority;
import org.jbpm.pvm.internal.wire.Descriptor;
@@ -41,6 +42,8 @@
protected SwimlaneDefinitionImpl swimlaneDefinition;
protected Descriptor taskHandlerDescriptor;
+ protected transient MailProducer notificationMailProducer;
+
public int getPriority() {
return priority;
}
@@ -77,4 +80,10 @@
public void setTaskHandlerDescriptor(Descriptor taskHandlerDescriptor) {
this.taskHandlerDescriptor = taskHandlerDescriptor;
}
+ public MailProducer getNotificationMailProducer() {
+ return notificationMailProducer;
+ }
+ public void setNotificationMailProducer(MailProducer notificationMailProducer) {
+ this.notificationMailProducer = notificationMailProducer;
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskImpl.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/task/TaskImpl.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -23,12 +23,15 @@
import java.io.Serializable;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import javax.mail.Message;
+
import org.jbpm.api.Execution;
import org.jbpm.api.JbpmException;
import org.jbpm.api.env.Environment;
@@ -40,6 +43,9 @@
import org.jbpm.api.task.Swimlane;
import org.jbpm.api.task.Task;
import org.jbpm.api.task.TaskHandler;
+import org.jbpm.pvm.internal.email.spi.MailProducer;
+import org.jbpm.pvm.internal.email.spi.MailSession;
+import org.jbpm.pvm.internal.history.events.TaskAssign;
import org.jbpm.pvm.internal.history.events.TaskCancel;
import org.jbpm.pvm.internal.history.events.TaskComplete;
import org.jbpm.pvm.internal.history.events.TaskStart;
@@ -52,16 +58,15 @@
import org.jbpm.pvm.internal.wire.WireContext;
/**
- * is one task instance that can be assigned to an actor (read: put in
- * someones task list) and that can trigger the continuation of execution
- * of the token upon completion.
+ * is one task instance that can be assigned to an actor (read: put in someone's task list) and that
+ * can trigger the continuation of execution of the token upon completion.
*/
public class TaskImpl extends ScopeInstanceImpl implements Serializable, OpenTask, Assignable {
private static final long serialVersionUID = 1L;
-
+
// private static Log log = Log.getLog(TaskImpl.class.getName());
-
+
private static final TaskHandler DEFAULT_TASK_HANDLER = new TaskHandler();
protected String name;
@@ -85,48 +90,66 @@
protected String taskDefinitionName;
protected TaskDefinitionImpl taskDefinition;
-
+
protected ExecutionImpl execution;
protected ExecutionImpl processInstance;
protected SwimlaneImpl swimlane;
-
+
protected TaskImpl superTask;
protected Set<TaskImpl> subTasks;
-
+
protected Long executionDbid;
protected Long superTaskDbid;
public TaskImpl() {
}
-
+
// parent for variable lookup ///////////////////////////////////////////////
public ScopeInstanceImpl getParentVariableScope() {
return execution;
}
-
+
// assignment ///////////////////////////////////////////////////////////////
-
+
public void take(String userId) {
- if (assignee!=null) {
- throw new JbpmException("task already taken by "+this.assignee);
+ if (assignee != null) {
+ throw new JbpmException("task already taken by " + this.assignee);
}
setAssignee(userId, true);
}
-
+
public void setAssignee(String userId) {
- this.assignee = userId;
+ setAssignee(userId, false);
}
public void setAssignee(String userId, boolean propagateToSwimlane) {
this.assignee = userId;
+ notifyAssignee();
if (propagateToSwimlane) {
propagateAssigneeToSwimlane();
}
}
+ protected void notifyAssignee() {
+ if (taskDefinition == null) return;
+
+ MailProducer mailProducer = taskDefinition.getNotificationMailProducer();
+ if (mailProducer == null) return;
+
+ // TODO how to insert predefined variables cleanly?
+ execution.setVariable("task", this);
+ try {
+ Collection<Message> messages = mailProducer.produce(execution);
+ Environment.getFromCurrent(MailSession.class).send(messages);
+ }
+ finally {
+ execution.removeVariable("task");
+ }
+ }
+
protected void propagateAssigneeToSwimlane() {
- if (swimlane!=null) {
+ if (swimlane != null) {
swimlane.setAssignee(assignee);
}
}
@@ -135,7 +158,7 @@
// TODO: Why does it return the impl. not the interface?
public Set<ParticipationImpl> getParticipations() {
- if (participations ==null) {
+ if (participations == null) {
return Collections.emptySet();
}
return participations;
@@ -143,17 +166,18 @@
public Set<ParticipationImpl> getAllParticipants() {
Set<ParticipationImpl> allRoles = null;
- if (participations !=null) {
+ if (participations != null) {
allRoles = new HashSet<ParticipationImpl>(participations);
- } else {
+ }
+ else {
allRoles = new HashSet<ParticipationImpl>();
}
- if (swimlane!=null) {
- allRoles.addAll((Set)swimlane.getParticipations());
+ if (swimlane != null) {
+ allRoles.addAll((Set) swimlane.getParticipations());
}
return allRoles;
}
-
+
public void addCandidateGroup(String groupId) {
addParticipation(null, groupId, Participation.CANDIDATE);
}
@@ -165,10 +189,10 @@
public Participation addParticipation(String userId, String groupId, String type) {
return addParticipant(new ParticipationImpl(userId, groupId, type));
}
-
+
private Participation addParticipant(ParticipationImpl participation) {
participation.setTask(this);
- if (participations ==null) {
+ if (participations == null) {
participations = new HashSet<ParticipationImpl>();
}
participations.add(participation);
@@ -176,16 +200,14 @@
}
public void removeParticipant(ParticipationImpl participation) {
- if (participation==null) {
+ if (participation == null) {
throw new JbpmException("participant is null");
}
- if ( (participations !=null)
- && (participations.remove(participation))
- ) {
+ if ((participations != null) && (participations.remove(participation))) {
participation.setTask(null);
}
}
-
+
// completion ///////////////////////////////////////////////////////////////
public void complete() {
@@ -194,7 +216,7 @@
public void complete(String outcome) {
getTaskHandler().taskComplete(this, outcome);
- if (superTask!=null) {
+ if (superTask != null) {
superTask.subTaskComplete(this, outcome);
}
}
@@ -206,23 +228,21 @@
public void cancel(String reason) {
getTaskHandler().taskCancel(this, reason);
}
-
+
// state ////////////////////////////////////////////////////////////////////
-
+
public boolean isCompleted() {
if (Task.STATE_COMPLETED.equals(state)) {
return true;
}
- if ( (Task.STATE_OPEN.equals(state))
- || (Task.STATE_SUSPENDED.equals(state))
- ) {
+ if ((Task.STATE_OPEN.equals(state)) || (Task.STATE_SUSPENDED.equals(state))) {
return false;
}
return true;
}
// variables ////////////////////////////////////////////////////////////////
-
+
public void setVariable(String key, Object value) {
super.setVariable(key, value);
getTaskHandler().taskVariableUpdate(this, key, value);
@@ -231,14 +251,14 @@
// comments /////////////////////////////////////////////////////////////////
public List<Comment> getComments() {
- if (comments==null) {
+ if (comments == null) {
return Collections.emptyList();
}
return (List) comments;
}
public Comment createComment(String commentText) {
- if (comments==null) {
+ if (comments == null) {
comments = new ArrayList<CommentImpl>();
}
CommentImpl comment = new CommentImpl(commentText);
@@ -247,18 +267,18 @@
}
public void removeComment(Comment comment) {
- if (comment==null) {
+ if (comment == null) {
throw new JbpmException("comment is null");
}
- if (comments!=null) {
+ if (comments != null) {
comments.remove(comment);
}
}
-
+
// subtasks /////////////////////////////////////////////////////////////////
-
+
public Set<Task> getSubTasks() {
- if (subTasks==null) {
+ if (subTasks == null) {
return Collections.emptySet();
}
return (Set) subTasks;
@@ -267,7 +287,7 @@
public TaskImpl createSubTask() {
TaskDbSession taskDbSession = Environment.getFromCurrent(TaskDbSession.class);
TaskImpl subTask = (TaskImpl) taskDbSession.createTask();
- if (subTasks==null) {
+ if (subTasks == null) {
subTasks = new HashSet<TaskImpl>();
}
addSubTask(subTask);
@@ -281,9 +301,9 @@
subtask.setName(name);
return subtask;
}
-
+
public TaskImpl addSubTask(TaskImpl subtask) {
- if (subTasks==null) {
+ if (subTasks == null) {
subTasks = new HashSet<TaskImpl>();
}
subtask.setSuperTask(this);
@@ -292,211 +312,242 @@
}
public void removeSubTask(Task subtask) {
- if (subtask==null) {
+ if (subtask == null) {
throw new JbpmException("subtask is null");
}
- if ( (subTasks!=null)
- && (subTasks.remove(subtask))
- ) {
- ((TaskImpl)subtask).setSuperTask(null);
+ if ((subTasks != null) && (subTasks.remove(subtask))) {
+ ((TaskImpl) subtask).setSuperTask(null);
}
}
-
+
// equals ///////////////////////////////////////////////////////////////////
// hack to support comparing hibernate proxies against the real objects
// since this always falls back to ==, we don't need to overwrite the hashcode
public boolean equals(Object o) {
return EqualsUtil.equals(this, o);
}
-
+
public String toString() {
- return "Task("+name+")";
+ return "Task(" + name + ")";
}
public String getLifeCycleResource() {
// the default lifecycle can be overridden in subclasses
return "jbpm.task.lifecycle.xml";
}
-
+
// modified getters and setters /////////////////////////////////////////////
public void setProgress(Integer progress) {
- if ( (progress<0)
- || (progress>100)
- ) {
- throw new JbpmException("task progress is a percentage (integer) and must be expressed between 0 and 100");
+ if ((progress < 0) || (progress > 100)) {
+ throw new JbpmException(
+ "task progress is a percentage (integer) and must be expressed between 0 and 100");
}
this.progress = progress;
}
public boolean isPersisted() {
- return dbid!=0;
+ return dbid != 0;
}
public void cancelExecution(String signal) {
- if (execution!=null){
+ if (execution != null) {
execution.end("cancel");
}
}
+ public void historyTaskStart() {
+ if (execution != null) {
+ execution.fireHistoryEvent(new TaskStart(this));
+ }
+ }
+
+ public void historyTaskAssign(String userId) {
+ if (execution != null) {
+ execution.fireHistoryEvent(new TaskAssign(userId));
+ }
+ }
+
public void historyTaskCancel(String reason) {
- if (execution!=null){
+ if (execution != null) {
execution.fireHistoryEvent(new TaskCancel(reason));
}
}
public void historyTaskComplete(String outcome) {
- if (execution!=null){
+ if (execution != null) {
execution.fireHistoryEvent(new TaskComplete(outcome));
}
}
- public void historyTaskStart() {
- if (execution!=null){
- execution.fireHistoryEvent(new TaskStart(this));
- }
- }
-
public void signalExecution(String signalName) {
- if (execution!=null){
+ if (execution != null) {
execution.signal(signalName);
}
}
public TaskHandler getTaskHandler() {
- if ( (getTaskDefinition()==null)
- || (taskDefinition.getTaskHandlerDescriptor()==null)
- ) {
+ if ((getTaskDefinition() == null) || (taskDefinition.getTaskHandlerDescriptor() == null)) {
return DEFAULT_TASK_HANDLER;
}
-
+
TaskHandler taskHandler = (TaskHandler) WireContext.create(taskDefinition.getTaskHandlerDescriptor());
return taskHandler;
}
-
+
// special getters and setters //////////////////////////////////////////////
-
+
public TaskDefinitionImpl getTaskDefinition() {
- if ( (taskDefinition==null)
- && (taskDefinitionName!=null)
- && (execution!=null)
- ) {
+ if ((taskDefinition == null) && (taskDefinitionName != null) && (execution != null)) {
ProcessDefinitionImpl processDefinition = execution.getProcessDefinition();
taskDefinition = processDefinition.getTaskDefinition(taskDefinitionName);
}
-
+
return taskDefinition;
}
-
+
public void setTaskDefinition(TaskDefinitionImpl taskDefinition) {
this.taskDefinition = taskDefinition;
this.taskDefinitionName = taskDefinition.getName();
}
-
// getters and setters //////////////////////////////////////////////////////
-
+
public long getDbid() {
return dbid;
}
+
public String getName() {
return name;
}
+
public void setName(String name) {
this.name = name;
}
+
public String getDescription() {
return description;
}
+
public void setDescription(String description) {
this.description = description;
}
+
public int getPriority() {
return priority;
}
+
public void setPriority(int priority) {
this.priority = priority;
}
+
public void setComments(List<CommentImpl> comments) {
this.comments = comments;
}
+
public Date getCreate() {
return create;
}
+
public void setCreate(Date create) {
this.create = create;
}
+
public Date getDueDate() {
return dueDate;
}
+
public void setDueDate(Date dueDate) {
this.dueDate = dueDate;
}
+
public ExecutionImpl getExecution() {
return execution;
}
+
public void setExecution(Execution execution) {
this.execution = (ExecutionImpl) execution;
}
+
public String getState() {
return state;
}
+
public String getAssignee() {
return assignee;
}
+
public Swimlane getSwimlane() {
return swimlane;
}
+
public void setSwimlane(SwimlaneImpl swimlane) {
this.swimlane = swimlane;
}
+
public TaskImpl getSuperTask() {
return superTask;
}
+
public void setSuperTask(TaskImpl superTask) {
this.superTask = superTask;
}
+
public Integer getProgress() {
return progress;
}
+
public Long getExecutionDbid() {
return executionDbid;
}
+
public void setExecutionDbid(Long executionDbid) {
this.executionDbid = executionDbid;
}
+
public Long getSuperTaskDbid() {
return superTaskDbid;
}
+
public void setSuperTaskDbid(Long parentTaskDbid) {
this.superTaskDbid = parentTaskDbid;
}
+
public void setParticipations(Set<ParticipationImpl> participations) {
this.participations = participations;
}
+
public void setState(String state) {
this.state = state;
}
+
public void setExecution(ExecutionImpl execution) {
this.execution = execution;
}
+
public void setSubTasks(Set<TaskImpl> subTasks) {
this.subTasks = subTasks;
}
+
public ExecutionImpl getProcessInstance() {
return processInstance;
}
+
public void setProcessInstance(ExecutionImpl processInstance) {
this.processInstance = processInstance;
}
+
public boolean isSignalling() {
return isSignalling;
}
+
public void setSignalling(boolean isSignalling) {
this.isSignalling = isSignalling;
}
+
public String getForm() {
return form;
}
+
public void setForm(String form) {
this.form = form;
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/XmlUtil.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/XmlUtil.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/util/XmlUtil.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -247,14 +247,11 @@
}
public static boolean isTextOnly(Element element) {
- boolean isTextOnly = true;
- NodeList activityList = element.getChildNodes();
- for (int i = 0; ((i < activityList.getLength()) && (isTextOnly)); i++) {
- if (Element.class.isAssignableFrom(activityList.item(i).getClass())) {
- isTextOnly = false;
- }
+ for (Node child = element.getFirstChild(); child != null; child = child.getNextSibling()) {
+ if (child.getNodeType() == Node.ELEMENT_NODE)
+ return false;
}
- return isTextOnly;
+ return true;
}
public static List<Attr> attributes(Element element) {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/MailTemplateBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/MailTemplateBinding.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/MailTemplateBinding.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -47,7 +47,7 @@
public Object parse(Element element, Parse parse, Parser parser) {
// MailTemplateRegistry is added to the WireDescriptor with a ProvidedObjectDescriptor
// The MailTemplateRegistry descriptor is lazy initialized by this binding
- // mail-templates will add a MailTemplate to the MailTemplateRegistry
+ // mail-template will add a MailTemplate to the MailTemplateRegistry
ProvidedObjectDescriptor templateRegistryDescriptor;
MailTemplateRegistry templateRegistry;
@@ -57,7 +57,6 @@
if (templateRegistryDescriptorName != null) {
templateRegistryDescriptor = (ProvidedObjectDescriptor) wireDefinition.getDescriptor(templateRegistryDescriptorName);
templateRegistry = (MailTemplateRegistry) templateRegistryDescriptor.getProvidedObject();
- templateRegistryDescriptor = null; // setting it to null so that the wire parser doesn't add it to the wiredefinition again
}
else {
templateRegistry = new MailTemplateRegistry();
@@ -65,21 +64,21 @@
}
// create the mail template and add it to the registry
- MailTemplate mailTemplate = parseMailTemplate(element, parse, parser);
+ MailTemplate mailTemplate = parseMailTemplate(element, parse);
String templateName = XmlUtil.attribute(element, "name", true, parse);
templateRegistry.addTemplate(templateName, mailTemplate);
return templateRegistryDescriptor;
}
- public MailTemplate parseMailTemplate(Element element, Parse parse, Parser parser) {
+ public static MailTemplate parseMailTemplate(Element element, Parse parse) {
MailTemplate mailTemplate = new MailTemplate();
mailTemplate.setLanguage(XmlUtil.attribute(element, "language"));
- mailTemplate.setFrom(parseRecipientTemplate(element, "from", parse, parser));
- mailTemplate.setTo(parseRecipientTemplate(element, "to", parse, parser));
- mailTemplate.setCc(parseRecipientTemplate(element, "cc", parse, parser));
- mailTemplate.setBcc(parseRecipientTemplate(element, "bcc", parse, parser));
+ mailTemplate.setFrom(parseRecipientTemplate(element, "from", parse));
+ mailTemplate.setTo(parseRecipientTemplate(element, "to", parse));
+ mailTemplate.setCc(parseRecipientTemplate(element, "cc", parse));
+ mailTemplate.setBcc(parseRecipientTemplate(element, "bcc", parse));
Element subjectElement = XmlUtil.element(element, "subject");
if (subjectElement != null) {
@@ -117,15 +116,22 @@
return mailTemplate;
}
- protected AddressTemplate parseRecipientTemplate(Element element, String tagName, Parse parse,
- Parser parser) {
+ private static AddressTemplate parseRecipientTemplate(Element element, String tagName, Parse parse) {
Element recipientElement = XmlUtil.element(element, tagName);
if (recipientElement == null) return null;
+ String addresses = XmlUtil.attribute(recipientElement, "addresses");
+ String users = XmlUtil.attribute(recipientElement, "users");
+ String groups = XmlUtil.attribute(recipientElement, "groups");
+
+ if (addresses == null && users == null && groups == null) {
+ parse.addProblem(tagName + " does not specify any recipient", element);
+ }
+
AddressTemplate addressTemplate = new AddressTemplate();
- addressTemplate.setAddresses(XmlUtil.attribute(recipientElement, "addresses"));
- addressTemplate.setUsers(XmlUtil.attribute(recipientElement, "users"));
- addressTemplate.setGroups(XmlUtil.attribute(recipientElement, "groups"));
+ addressTemplate.setAddresses(addresses);
+ addressTemplate.setUsers(users);
+ addressTemplate.setGroups(groups);
return addressTemplate;
}
}
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/activities/WaitState.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/activities/WaitState.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/activities/WaitState.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -39,7 +39,7 @@
public void signal(ActivityExecution execution,
String signalName,
- Map<String, Object> parameters) {
+ Map<String, ?> parameters) {
execution.setVariables(parameters);
execution.take(signalName);
}
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/executionmode/embedded/WaitState.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/executionmode/embedded/WaitState.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/executionmode/embedded/WaitState.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -40,7 +40,7 @@
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) throws Exception {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) throws Exception {
execution.take(signalName);
}
}
\ No newline at end of file
Modified: jbpm4/trunk/modules/test-load/src/test/java/org/jbpm/test/load/async/ExclusiveMessagesTest.java
===================================================================
--- jbpm4/trunk/modules/test-load/src/test/java/org/jbpm/test/load/async/ExclusiveMessagesTest.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-load/src/test/java/org/jbpm/test/load/async/ExclusiveMessagesTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -92,7 +92,7 @@
public void execute(ActivityExecution execution) throws Exception {
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) throws Exception {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) throws Exception {
execution.take(signalName);
}
}
Modified: jbpm4/trunk/modules/test-load/src/test/java/org/jbpm/test/load/async/WaitState.java
===================================================================
--- jbpm4/trunk/modules/test-load/src/test/java/org/jbpm/test/load/async/WaitState.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-load/src/test/java/org/jbpm/test/load/async/WaitState.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -40,7 +40,7 @@
ContinuationTest.recorder.record(execution.getId(), "execute("+execution.getActivity().getName()+")");
}
- public void signal(ActivityExecution execution, String signal, Map<String, Object> parameters) throws Exception {
+ public void signal(ActivityExecution execution, String signal, Map<String, ?> parameters) throws Exception {
throw new UnsupportedOperationException();
}
}
\ No newline at end of file
Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/AutomaticDecisionTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/AutomaticDecisionTest.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/AutomaticDecisionTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -60,7 +60,7 @@
public void execute(ActivityExecution execution) {
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) {
execution.take(signalName);
}
}
Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/BasicExecutionFlowTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/BasicExecutionFlowTest.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/BasicExecutionFlowTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -64,7 +64,7 @@
events.add("execute["+execution.getActivityName()+"]");
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) throws Exception {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) throws Exception {
events.add("signal["+execution.getActivityName()+"]");
execution.take(signalName);
}
Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/EventTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/EventTest.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/EventTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -170,7 +170,7 @@
public void execute(ActivityExecution execution) throws Exception {
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signal, Map<String, Object> parameters) throws Exception {
+ public void signal(ActivityExecution execution, String signal, Map<String, ?> parameters) throws Exception {
Activity activity = execution.getActivity();
if ( (signal!=null)
&& (activity!=null)
Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExceptionHandlerTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExceptionHandlerTest.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExceptionHandlerTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -44,7 +44,7 @@
public void execute(ActivityExecution execution) {
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters){
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters){
}
}
Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExecutionStateTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExecutionStateTest.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExecutionStateTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -70,7 +70,7 @@
assertEquals(Execution.STATE_ACTIVE_ROOT, execution.getState());
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) {
assertEquals(Execution.STATE_ACTIVE_ROOT, execution.getState());
execution.take(signalName);
}
Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExternalDecisionTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExternalDecisionTest.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ExternalDecisionTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -42,7 +42,7 @@
public void execute(ActivityExecution execution) throws Exception {
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) throws Exception {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) throws Exception {
execution.take(signalName);
}
}
@@ -52,7 +52,7 @@
public void execute(ActivityExecution execution) {
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) {
execution.take(signalName);
}
}
Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/FunctionalActivityTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/FunctionalActivityTest.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/FunctionalActivityTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -141,7 +141,7 @@
Activity nestedActivity = execution.getActivity().getActivities().get(0);
execution.execute(nestedActivity);
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) {
}
}
Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/LoopingTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/LoopingTest.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/LoopingTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -45,7 +45,7 @@
}
}
}
- public void signal(ActivityExecution execution, String signal, Map<String, Object> parameters) throws Exception {
+ public void signal(ActivityExecution execution, String signal, Map<String, ?> parameters) throws Exception {
throw new UnsupportedOperationException();
}
@@ -77,7 +77,7 @@
public void execute(ActivityExecution execution) {
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters){
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters){
}
}
Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeStateTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeStateTest.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeStateTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -51,7 +51,7 @@
assertEquals(Execution.STATE_ACTIVE_ROOT, execution.getState());
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) throws Exception {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) throws Exception {
assertEquals(Execution.STATE_ACTIVE_ROOT, execution.getState());
execution.take(signalName);
}
Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeVariableDeclarationTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeVariableDeclarationTest.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeVariableDeclarationTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -45,7 +45,7 @@
public void execute(ActivityExecution execution) {
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) {
execution.take(signalName);
}
}
@@ -56,7 +56,7 @@
Activity child = execution.getActivity().getActivities().get(0);
execution.execute(child);
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) {
}
}
Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeVariableTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeVariableTest.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/ScopeVariableTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -23,7 +23,6 @@
import java.util.Map;
-import org.jbpm.api.JbpmException;
import org.jbpm.api.activity.ActivityExecution;
import org.jbpm.api.activity.ExternalActivityBehaviour;
import org.jbpm.api.client.ClientExecution;
@@ -50,7 +49,7 @@
public void execute(ActivityExecution execution) {
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) {
execution.take(signalName);
}
}
Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/SubProcessTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/SubProcessTest.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/SubProcessTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -51,7 +51,7 @@
execution.waitForSignal();
}
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) throws Exception {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) throws Exception {
}
}
@@ -66,11 +66,12 @@
public void execute(ActivityExecution execution) {
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters){
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters){
}
}
public static class EndState implements ActivityBehaviour {
+ private static final long serialVersionUID = 1L;
public void execute(ActivityExecution execution) throws Exception {
execution.end();
}
Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/VariableTest.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/VariableTest.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/VariableTest.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -44,7 +44,7 @@
public void execute(ActivityExecution execution) {
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters){
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters){
}
}
@@ -195,7 +195,7 @@
execution.setVariable("message", "Killroy was here");
execution.waitForSignal();
}
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) {
+ public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) {
}
}
Modified: jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/WaitState.java
===================================================================
--- jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/WaitState.java 2009-05-20 21:27:46 UTC (rev 4864)
+++ jbpm4/trunk/modules/test-pojo/src/main/java/org/jbpm/test/activities/WaitState.java 2009-05-21 06:16:03 UTC (rev 4865)
@@ -39,6 +39,6 @@
public void signal(ActivityExecution execution,
String signalName,
- Map<String, Object> parameters) {
+ Map<String, ?> parameters) {
}
}
16 years, 11 months
JBoss JBPM SVN: r4864 - in projects/gwt-console/trunk/gui: profiles/jbpm/src/main/resources/org/jboss/bpm/console/public and 3 other directories.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2009-05-20 17:27:46 -0400 (Wed, 20 May 2009)
New Revision: 4864
Added:
projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/drools_logo.png
projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/jbpm_logo.png
Removed:
projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/images/
projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/images/jbpm_logo.png
Modified:
projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/console.config.js
projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/console.config.js
projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/LoginView.java
projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/ConsoleConfig.java
projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
Log:
Fix JBPM-2271. Fix ui profile logo in final webapp.
Modified: projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/console.config.js
===================================================================
--- projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/console.config.js 2009-05-20 20:04:49 UTC (rev 4863)
+++ projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/console.config.js 2009-05-20 21:27:46 UTC (rev 4864)
@@ -1,8 +1,7 @@
var consoleConfig = {
profileName: "DroolsFlow Console",
- logo: "images/drools_logo.png",
- consoleServerUrl: "http://localhost:8080/gwt-console-server",
- reportServerUrl: "http://localhost:8080/report-server",
+ logo: "drools_logo.png",
+ serverWebContext: "/gwt-console-server",
overviewReportFile: "process_activity.rptdesign",
definitionReportFile: "definition_report.rptdesign",
instanceReportFile: "instance_report.rptdesign"
Copied: projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/drools_logo.png (from rev 4862, projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/images/drools_logo.png)
===================================================================
(Binary files differ)
Property changes on: projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/drools_logo.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/console.config.js
===================================================================
--- projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/console.config.js 2009-05-20 20:04:49 UTC (rev 4863)
+++ projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/console.config.js 2009-05-20 21:27:46 UTC (rev 4864)
@@ -1,8 +1,7 @@
var consoleConfig = {
profileName: "jBPM Console",
- logo: "images/jbpm_logo.png",
- consoleServerUrl: "http://localhost:8080/gwt-console-server",
- reportServerUrl: "http://localhost:8080/report-server",
+ logo: "jbpm_logo.png",
+ serverWebContext: "/gwt-console-server",
overviewReportFile: "process_activity.rptdesign",
definitionReportFile: "definition_report.rptdesign",
instanceReportFile: "instance_report.rptdesign"
Deleted: projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/images/jbpm_logo.png
===================================================================
(Binary files differ)
Copied: projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/jbpm_logo.png (from rev 4862, projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/images/jbpm_logo.png)
===================================================================
(Binary files differ)
Property changes on: projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/jbpm_logo.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/LoginView.java
===================================================================
--- projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/LoginView.java 2009-05-20 20:04:49 UTC (rev 4863)
+++ projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/LoginView.java 2009-05-20 21:27:46 UTC (rev 4864)
@@ -28,15 +28,12 @@
import com.google.gwt.core.client.GWT;
import com.mvc4g.client.Controller;
import com.mvc4g.client.ViewInterface;
-import org.gwt.mosaic.forms.client.builder.DefaultFormBuilder;
-import org.gwt.mosaic.forms.client.layout.FormLayout;
import org.gwt.mosaic.ui.client.WindowPanel;
import org.gwt.mosaic.ui.client.layout.*;
import org.jboss.bpm.console.client.Authentication;
import org.jboss.bpm.console.client.ConsoleConfig;
import org.jboss.bpm.console.client.URLBuilder;
import org.jboss.bpm.console.client.MainLayout;
-import org.jboss.bpm.console.client.icons.ConsoleIconBundle;
import org.jboss.bpm.console.client.util.ConsoleLog;
/**
@@ -63,15 +60,23 @@
config = new ConsoleConfig();
// setup
-
if (!GWT.isScript())
{
String proxyUrl = GWT.getModuleBaseURL() + "xhp";
config.setConsoleServerUrl(proxyUrl);
}
+ else
+ {
+ // extract host
+ String base = GWT.getHostPageBaseURL();
+ String protocol = base.substring(0, base.indexOf("//")+2);
+ String noProtocol = base.substring(base.indexOf(protocol)+protocol.length(), base.length());
+ String host = noProtocol.substring(0, noProtocol.indexOf("/"));
+ config.setConsoleServerUrl(protocol + host + config.getServerWebContext());
+ }
+
ConsoleLog.debug("Console server: " + config.getConsoleServerUrl());
- ConsoleLog.debug("Report server: " + config.getReportServerUrl());
urlBuilder = new URLBuilder(config);
Modified: projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/ConsoleConfig.java
===================================================================
--- projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/ConsoleConfig.java 2009-05-20 20:04:49 UTC (rev 4863)
+++ projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/ConsoleConfig.java 2009-05-20 21:27:46 UTC (rev 4864)
@@ -38,8 +38,7 @@
*/
public class ConsoleConfig
{
- private String consoleServerUrl;
- private String reportServerUrl;
+ private String serverWebContext;
private String overviewReportFile;
private String definitionReportFile;
@@ -48,21 +47,16 @@
private String profileName;
private String logo;
- public ConsoleConfig(String consoleServerUrl, String reportServerUrl)
- {
- this.consoleServerUrl = consoleServerUrl;
- this.reportServerUrl = reportServerUrl;
- }
+ private String consoleServerUrl;
public ConsoleConfig()
{
Dictionary theme = Dictionary.getDictionary("consoleConfig");
profileName = theme.get("profileName");
logo = theme.get("logo");
-
- consoleServerUrl = theme.get("consoleServerUrl");
- reportServerUrl = theme.get("reportServerUrl");
+ serverWebContext = theme.get("serverWebContext");
+
overviewReportFile = theme.get("overviewReportFile");
definitionReportFile = theme.get("definitionReportFile");
instanceReportFile = theme.get("instanceReportFile");
@@ -80,6 +74,8 @@
public String getConsoleServerUrl()
{
+ if(consoleServerUrl ==null)
+ throw new RuntimeException("Config not properly setup: console server URL is null");
return consoleServerUrl;
}
@@ -88,15 +84,15 @@
this.consoleServerUrl = consoleServerUrl;
}
- public String getReportServerUrl()
+ public String getServerWebContext()
{
- return reportServerUrl;
+ return serverWebContext;
}
- public void setReportServerUrl(String reportServerUrl)
+ public void setServerWebContext(String serverWebContext)
{
- this.reportServerUrl = reportServerUrl;
- }
+ this.serverWebContext = serverWebContext;
+ }
public String getOverviewReportFile()
{
Modified: projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
===================================================================
--- projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/URLBuilder.java 2009-05-20 20:04:49 UTC (rev 4863)
+++ projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/URLBuilder.java 2009-05-20 21:27:46 UTC (rev 4864)
@@ -38,20 +38,16 @@
this.config = config;
}
- public String getConsoleServerUrl()
- {
- return config.getConsoleServerUrl();
- }
public String getProcessDefinitionsURL()
{
- return getConsoleServerUrl() + "/rs/process/definitions";
+ return config.getConsoleServerUrl() + "/rs/process/definitions";
}
public String getProcessInstancesURL(String processId)
{
String encodedId = URL.encode(processId);
- return getConsoleServerUrl() + "/rs/process/definitions/" + encodedId + "/instances";
+ return config.getConsoleServerUrl() + "/rs/process/definitions/" + encodedId + "/instances";
}
public String getUserInRoleURL(String[] possibleRoles)
@@ -63,124 +59,124 @@
if (i < possibleRoles.length - 1)
sb.append(",");
}
- return getConsoleServerUrl() + "/rs/identity/user/roles?roleCheck=" + sb.toString();
+ return config.getConsoleServerUrl() + "/rs/identity/user/roles?roleCheck=" + sb.toString();
}
public String getServerStatusURL()
{
- return getConsoleServerUrl() + "/rs/server/status";
+ return config.getConsoleServerUrl() + "/rs/server/status";
}
@Deprecated
public String getRemoveDefinitionURL(String processId)
{
String encodedId = URL.encode(processId);
- return getConsoleServerUrl() + "/rs/process/definitions/" + encodedId+ "/remove";
+ return config.getConsoleServerUrl() + "/rs/process/definitions/" + encodedId+ "/remove";
}
public String getProcessImageURL(String processId)
{
String encodedId = URL.encode(processId);
- return getConsoleServerUrl() + "/rs/jbpm3/definitions/" + encodedId+ "/image";
+ return config.getConsoleServerUrl() + "/rs/jbpm3/definitions/" + encodedId+ "/image";
}
public String getActiveNodeInfoURL(String instanceId)
{
- return getConsoleServerUrl() + "/rs/jbpm3/instances/" + instanceId + "/activeNodeInfo";
+ return config.getConsoleServerUrl() + "/rs/jbpm3/instances/" + instanceId + "/activeNodeInfo";
}
public String getStateChangeURL(String instanceId, ProcessInstanceRef.STATE state)
{
- return getConsoleServerUrl() + "/rs/process/instances/" + instanceId + "/state/" + state;
+ return config.getConsoleServerUrl() + "/rs/process/instances/" + instanceId + "/state/" + state;
}
public String getInstanceEndURL(String instanceId, ProcessInstanceRef.RESULT result)
{
- return getConsoleServerUrl() + "/rs/process/instances/" + instanceId + "/end/" + result;
+ return config.getConsoleServerUrl() + "/rs/process/instances/" + instanceId + "/end/" + result;
}
public String getInstanceDeleteURL(String instanceId)
{
- return getConsoleServerUrl() + "/rs/process/instances/" + instanceId + "/delete";
+ return config.getConsoleServerUrl() + "/rs/process/instances/" + instanceId + "/delete";
}
public String getStartNewInstanceURL(String processId)
{
String encodedID = URL.encode(processId);
- return getConsoleServerUrl() + "/rs/process/definitions/" + encodedID + "/instances/new";
+ return config.getConsoleServerUrl() + "/rs/process/definitions/" + encodedID + "/instances/new";
}
public String getUploadDefinitionURL()
{
- return getConsoleServerUrl() + "/rs/process/definitions/new";
+ return config.getConsoleServerUrl() + "/rs/process/definitions/new";
}
public String getTaskListURL(String idRef)
{
- return getConsoleServerUrl() + "/rs/tasks/" + URL.encode(idRef);
+ return config.getConsoleServerUrl() + "/rs/tasks/" + URL.encode(idRef);
}
public String getParticipationTaskListURL(String idRef)
{
- return getConsoleServerUrl() + "/rs/tasks/" + URL.encode(idRef) +"/participation";
+ return config.getConsoleServerUrl() + "/rs/tasks/" + URL.encode(idRef) +"/participation";
}
public String getTaskReleaseURL(long id)
{
- return getConsoleServerUrl() + "/rs/task/" + id + "/release";
+ return config.getConsoleServerUrl() + "/rs/task/" + id + "/release";
}
public String getTaskCompleteURL(long id)
{
- return getConsoleServerUrl() + "/rs/task/" + id + "/close";
+ return config.getConsoleServerUrl() + "/rs/task/" + id + "/close";
}
public String getTaskCompleteURL(long id, String outcome)
{
- return getConsoleServerUrl() + "/rs/task/" + id + "/close/" + URL.encode(outcome);
+ return config.getConsoleServerUrl() + "/rs/task/" + id + "/close/" + URL.encode(outcome);
}
public String getTaskAssignURL(long id, String idRef)
{
- return getConsoleServerUrl() + "/rs/task/" + id + "/assign/" + URL.encode(idRef);
+ return config.getConsoleServerUrl() + "/rs/task/" + id + "/assign/" + URL.encode(idRef);
}
public String getExecutionSignalUrl(TokenReference tok)
{
- return getConsoleServerUrl() + "/rs/process/tokens/" + tok.getId() + "/transition/default";
+ return config.getConsoleServerUrl() + "/rs/process/tokens/" + tok.getId() + "/transition/default";
}
public String getExecutionSignalUrl(TokenReference tok, String signal)
{
String encodedSignal = URL.encode(signal);
- return getConsoleServerUrl() + "/rs/process/tokens/" + tok.getId() + "/transition?signal=" + encodedSignal;
+ return config.getConsoleServerUrl() + "/rs/process/tokens/" + tok.getId() + "/transition?signal=" + encodedSignal;
}
public String getAvailableActorsUrl(String actorId)
{
- return getConsoleServerUrl() + "/rs/identity/user/" + actorId + "/actors";
+ return config.getConsoleServerUrl() + "/rs/identity/user/" + actorId + "/actors";
}
public String getProcessDefinitionByNameURL(String name)
{
- return getConsoleServerUrl() + "/rs/process/definitions/" + name;
+ return config.getConsoleServerUrl() + "/rs/process/definitions/" + name;
}
public String getDeployTestHarnessUrl()
{
- return getConsoleServerUrl() + "/rs/test/deploy/harness";
+ return config.getConsoleServerUrl() + "/rs/test/deploy/harness";
}
public String getUndeployTestHarnessUrl()
{
- return getConsoleServerUrl() + "/rs/test/undeploy/harness";
+ return config.getConsoleServerUrl() + "/rs/test/undeploy/harness";
}
public String getOverviewReportUrl()
{
String name = URL.encode(config.getOverviewReportFile());
- String url = config.getReportServerUrl() + "/rs/report/view/" + name;
+ String url = config.getConsoleServerUrl() + "/rs/report/view/" + name;
if (!GWT.isScript())
url += "?id=birt";
return url;
@@ -190,7 +186,7 @@
{
String reportName = URL.encode(name);
String reportFileName = URL.encode(config.getDefinitionReportFile());
- String url = config.getReportServerUrl() + "/rs/report/view/" + reportFileName + "?name=" + reportName;
+ String url = config.getConsoleServerUrl() + "/rs/report/view/" + reportFileName + "?name=" + reportName;
if (!GWT.isScript())
url += "&id=birt";
return url;
16 years, 11 months
JBoss JBPM SVN: r4863 - in jbpm3: tags and 1 other directory.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2009-05-20 16:04:49 -0400 (Wed, 20 May 2009)
New Revision: 4863
Added:
jbpm3/tags/jpdl-3.2.2-SOA-4.2/
Removed:
jbpm3/branches/jpdl-3.2.2-SOA-4.2/
Log:
turn branch jpdl-3.2.2-SOA-4.2 into tag, no further commits will be done there
Copied: jbpm3/tags/jpdl-3.2.2-SOA-4.2 (from rev 4862, jbpm3/branches/jpdl-3.2.2-SOA-4.2)
16 years, 11 months
JBoss JBPM SVN: r4862 - in projects/gwt-console/trunk: gui and 25 other directories.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2009-05-20 15:56:16 -0400 (Wed, 20 May 2009)
New Revision: 4862
Added:
projects/gwt-console/trunk/gui/profiles/
projects/gwt-console/trunk/gui/profiles/drools/
projects/gwt-console/trunk/gui/profiles/drools/pom.xml
projects/gwt-console/trunk/gui/profiles/drools/src/
projects/gwt-console/trunk/gui/profiles/drools/src/main/
projects/gwt-console/trunk/gui/profiles/drools/src/main/java/
projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/
projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/
projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/
projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/
projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/
projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/
projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/console.config.js
projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/images/
projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/images/drools_logo.png
projects/gwt-console/trunk/gui/profiles/jbpm/
projects/gwt-console/trunk/gui/profiles/jbpm/pom.xml
projects/gwt-console/trunk/gui/profiles/jbpm/src/
projects/gwt-console/trunk/gui/profiles/jbpm/src/main/
projects/gwt-console/trunk/gui/profiles/jbpm/src/main/java/
projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/
projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/
projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/
projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/
projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/
projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/
projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/console.config.js
projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/images/
projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/images/jbpm_logo.png
projects/gwt-console/trunk/gui/profiles/pom.xml
projects/gwt-console/trunk/gui/profiles/profiles.iml
Modified:
projects/gwt-console/trunk/README.txt
projects/gwt-console/trunk/gui/pom.xml
projects/gwt-console/trunk/gui/war/README.txt
projects/gwt-console/trunk/gui/war/pom.xml
projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/Header.java
projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/LoginView.java
projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/ServerStatusView.java
projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/SettingsEditor.java
projects/gwt-console/trunk/gui/war/src/main/resources/org/jboss/bpm/console/public/Application.html
projects/gwt-console/trunk/gui/war/src/main/resources/org/jboss/bpm/console/public/console.css
projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/ConsoleConfig.java
projects/gwt-console/trunk/pom.xml
Log:
Added console profiles. Updated build instructions. Add '-Dhosted' switch for quick turnaround when running in hosted mode (development)
Modified: projects/gwt-console/trunk/README.txt
===================================================================
--- projects/gwt-console/trunk/README.txt 2009-05-20 19:20:07 UTC (rev 4861)
+++ projects/gwt-console/trunk/README.txt 2009-05-20 19:56:16 UTC (rev 4862)
@@ -12,7 +12,7 @@
But the basics steps to get going are as follows:
-1) Build the top level module (gwt-console)
+1) Build the top level module
mvn clean install
@@ -22,11 +22,8 @@
3) Boot the AS and start the gwt console in hosted mode
- cd gui/war
- mvn com.totsp.gwt:maven-googlewebtoolkit2-plugin:gwt
+ See gui/war/README.txt for further information
- // optionally
- mvn com.totsp.gwt:maven-googlewebtoolkit2-plugin:debug
Troubleshooting
---------------
Modified: projects/gwt-console/trunk/gui/pom.xml
===================================================================
--- projects/gwt-console/trunk/gui/pom.xml 2009-05-20 19:20:07 UTC (rev 4861)
+++ projects/gwt-console/trunk/gui/pom.xml 2009-05-20 19:56:16 UTC (rev 4862)
@@ -17,6 +17,7 @@
</parent>
<modules>
+ <module>profiles</module>
<module>war</module>
<module>workspace-api</module>
</modules>
Added: projects/gwt-console/trunk/gui/profiles/drools/pom.xml
===================================================================
--- projects/gwt-console/trunk/gui/profiles/drools/pom.xml (rev 0)
+++ projects/gwt-console/trunk/gui/profiles/drools/pom.xml 2009-05-20 19:56:16 UTC (rev 4862)
@@ -0,0 +1,19 @@
+<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>JBoss BPM - GWT Console (GUI Profile Drools)</name>
+ <groupId>org.jboss.bpm</groupId>
+ <artifactId>gwt-console-profile-drools</artifactId>
+ <packaging>jar</packaging>
+
+ <!-- Parent -->
+ <parent>
+ <groupId>org.jboss.bpm</groupId>
+ <artifactId>gwt-console-profiles</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+</project>
Added: projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/console.config.js
===================================================================
--- projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/console.config.js (rev 0)
+++ projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/console.config.js 2009-05-20 19:56:16 UTC (rev 4862)
@@ -0,0 +1,9 @@
+var consoleConfig = {
+ profileName: "DroolsFlow Console",
+ logo: "images/drools_logo.png",
+ consoleServerUrl: "http://localhost:8080/gwt-console-server",
+ reportServerUrl: "http://localhost:8080/report-server",
+ overviewReportFile: "process_activity.rptdesign",
+ definitionReportFile: "definition_report.rptdesign",
+ instanceReportFile: "instance_report.rptdesign"
+};
\ No newline at end of file
Added: projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/images/drools_logo.png
===================================================================
(Binary files differ)
Property changes on: projects/gwt-console/trunk/gui/profiles/drools/src/main/resources/org/jboss/bpm/console/public/images/drools_logo.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: projects/gwt-console/trunk/gui/profiles/jbpm/pom.xml
===================================================================
--- projects/gwt-console/trunk/gui/profiles/jbpm/pom.xml (rev 0)
+++ projects/gwt-console/trunk/gui/profiles/jbpm/pom.xml 2009-05-20 19:56:16 UTC (rev 4862)
@@ -0,0 +1,19 @@
+<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>JBoss BPM - GWT Console (GUI Profile jBPM)</name>
+ <groupId>org.jboss.bpm</groupId>
+ <artifactId>gwt-console-profile-jbpm</artifactId>
+ <packaging>jar</packaging>
+
+ <!-- Parent -->
+ <parent>
+ <groupId>org.jboss.bpm</groupId>
+ <artifactId>gwt-console-profiles</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+</project>
Added: projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/console.config.js
===================================================================
--- projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/console.config.js (rev 0)
+++ projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/console.config.js 2009-05-20 19:56:16 UTC (rev 4862)
@@ -0,0 +1,9 @@
+var consoleConfig = {
+ profileName: "jBPM Console",
+ logo: "images/jbpm_logo.png",
+ consoleServerUrl: "http://localhost:8080/gwt-console-server",
+ reportServerUrl: "http://localhost:8080/report-server",
+ overviewReportFile: "process_activity.rptdesign",
+ definitionReportFile: "definition_report.rptdesign",
+ instanceReportFile: "instance_report.rptdesign"
+};
\ No newline at end of file
Added: projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/images/jbpm_logo.png
===================================================================
(Binary files differ)
Property changes on: projects/gwt-console/trunk/gui/profiles/jbpm/src/main/resources/org/jboss/bpm/console/public/images/jbpm_logo.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: projects/gwt-console/trunk/gui/profiles/pom.xml
===================================================================
--- projects/gwt-console/trunk/gui/profiles/pom.xml (rev 0)
+++ projects/gwt-console/trunk/gui/profiles/pom.xml 2009-05-20 19:56:16 UTC (rev 4862)
@@ -0,0 +1,25 @@
+<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>JBoss BPM - GWT Console (GUI Profiles)</name>
+ <groupId>org.jboss.bpm</groupId>
+ <artifactId>gwt-console-profiles</artifactId>
+ <packaging>pom</packaging>
+
+
+ <!-- Parent -->
+ <parent>
+ <groupId>org.jboss.bpm</groupId>
+ <artifactId>gwt-console-guimodule</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+
+ <modules>
+ <module>jbpm</module>
+ <module>drools</module>
+ </modules>
+</project>
Added: projects/gwt-console/trunk/gui/profiles/profiles.iml
===================================================================
--- projects/gwt-console/trunk/gui/profiles/profiles.iml (rev 0)
+++ projects/gwt-console/trunk/gui/profiles/profiles.iml 2009-05-20 19:56:16 UTC (rev 4862)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4" relativePaths="true" type="JAVA_MODULE">
+ <component name="ModuleRootManager" />
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/jbpm/src/main/java" isTestSource="false" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntryProperties />
+ </component>
+</module>
+
Modified: projects/gwt-console/trunk/gui/war/README.txt
===================================================================
--- projects/gwt-console/trunk/gui/war/README.txt 2009-05-20 19:20:07 UTC (rev 4861)
+++ projects/gwt-console/trunk/gui/war/README.txt 2009-05-20 19:56:16 UTC (rev 4862)
@@ -1,23 +1,26 @@
Running in hosted mode:
----------------------
-IMPORTANT:
-'mvn compile gwt:gwt' doesn't work anymore, until the plugins are merged.
-use 'mvn com.totsp.gwt:maven-googlewebtoolkit2-plugin:gwt' instead.
-(See http://code.google.com/p/gwt-maven/wiki/M2FAQ)
+Start the GWT shell with
-When the hosted browser is started, simple hit the 'refresh' button to recompile
+ mvn gwt-maven:gwt
+
+When the hosted browser is started, it's enough to hit the 'refresh' button to recompile
and verfiy changes.
-NOTE: Really quick turnaround through "mvn -o clean compile gwt:gwt"
+NOTE: Really quick turnaround through
+ mvn -Dhosted gwt-maven:gwt
+(Will run "mvn -o -Dgoogle.webtoolkit.compileSkip=true gwt-maven:gwt")
+
+
Running in web mode:
-------------------
mvn package
-Produces a war file in target/gwt-console-war-<version>.war,
+Produces a war file in target/gwt-console.war,
which can be deployed to a running jboss instance.
Please post any questions to the jbpm developer forum.
Modified: projects/gwt-console/trunk/gui/war/pom.xml
===================================================================
--- projects/gwt-console/trunk/gui/war/pom.xml 2009-05-20 19:20:07 UTC (rev 4861)
+++ projects/gwt-console/trunk/gui/war/pom.xml 2009-05-20 19:56:16 UTC (rev 4862)
@@ -179,7 +179,7 @@
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
- <id>unpack</id>
+ <id>unpack-gwt</id>
<phase>compile</phase>
<goals>
<goal>unpack</goal>
@@ -198,6 +198,7 @@
</artifactItems>
</configuration>
</execution>
+
</executions>
</plugin>
<!--
@@ -225,7 +226,116 @@
<!-- profiles (with activation per platform) -->
<profiles>
+
<profile>
+ <id>quick-hosted-mode</id>
+ <activation>
+ <property>
+ <name>hosted</name>
+ </property>
+ </activation>
+ <properties>
+ <google.webtoolkit.compileSkip>true</google.webtoolkit.compileSkip>
+ <o>true</o> <!-- offline -->
+ </properties>
+ </profile>
+
+ <profile>
+ <id>jbpm-console.profile</id>
+ <activation>
+ <property>
+ <name>!console.profile</name>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.bpm</groupId>
+ <artifactId>gwt-console-profile-jbpm</artifactId>
+ <version>${version}</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+
+ <execution>
+ <id>unpack-profile-jbpm</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.jboss.bpm</groupId>
+ <artifactId>gwt-console-profile-jbpm</artifactId>
+ <version>${version}</version>
+ <type>jar</type>
+ <overWrite>true</overWrite>
+ <outputDirectory>target/classes</outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <profile>
+ <id>drools-console.profile</id>
+ <activation>
+ <property>
+ <name>console.profile</name>
+ <value>drools</value>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.bpm</groupId>
+ <artifactId>gwt-console-profile-drools</artifactId>
+ <version>${version}</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+
+ <execution>
+ <id>unpack-profile-drools</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.jboss.bpm</groupId>
+ <artifactId>gwt-console-profile-drools</artifactId>
+ <version>${version}</version>
+ <type>jar</type>
+ <overWrite>true</overWrite>
+ <outputDirectory>target/classes</outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <profile>
<id>gwt-dev-windows</id>
<properties>
<platform>windows</platform>
Modified: projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/Header.java
===================================================================
--- projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/Header.java 2009-05-20 19:20:07 UTC (rev 4861)
+++ projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/Header.java 2009-05-20 19:56:16 UTC (rev 4862)
@@ -30,12 +30,15 @@
import java.util.List;
import org.gwt.mosaic.ui.client.layout.LayoutPanel;
+import org.gwt.mosaic.ui.client.layout.BoxLayout;
+import org.gwt.mosaic.ui.client.layout.BoxLayoutData;
+import org.gwt.mosaic.ui.client.layout.AbsoluteLayout;
import org.jboss.bpm.console.client.icons.ConsoleIconBundle;
/**
* @author Heiko.Braun <heiko.braun(a)jboss.com>
*/
-public class Header extends HorizontalPanel implements ViewInterface
+public class Header extends LayoutPanel implements ViewInterface
{
public final static String ID = Header.class.getName();
@@ -52,9 +55,7 @@
public Header(ApplicationContext appContext, String username, List<String> roles)
{
- super();
- this.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
- this.setVerticalAlignment(HasVerticalAlignment.ALIGN_BOTTOM);
+ super(new BoxLayout(BoxLayout.Orientation.HORIZONTAL));
this.setStyleName("bpm-header");
this.appContext = appContext;
@@ -64,12 +65,21 @@
private void createInfoPanel()
{
- // user info
- HorizontalPanel p = new HorizontalPanel();
- p.setVerticalAlignment(HasVerticalAlignment.ALIGN_BOTTOM);
- p.setStyleName("bpm-header-userinfo");
- // load status image
+ // ----------- logo panel
+ LayoutPanel logoPanel = new LayoutPanel(new BoxLayout());
+ logoPanel.setStyleName("bpm-header-left");
+
+ Image logo = new Image(appContext.getConfig().getLogo());
+ logo.setHeight("50");
+ logoPanel.add(logo);
+
+ // ----------- info panel
+ HorizontalPanel infoPanel = new HorizontalPanel();
+ infoPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_BOTTOM);
+ infoPanel.setSpacing(5);
+ infoPanel.setStyleName("bpm-header-right");
+
LayoutPanel loadingImageContainer = new LayoutPanel();
loadingImageContainer.setStyleName("bpm-loading-image");
@@ -92,14 +102,14 @@
}
}
);
+
+ infoPanel.add(loadingImageContainer);
+ infoPanel.add(img);
+ infoPanel.add(html);
+ infoPanel.add(btn);
- p.add(loadingImageContainer);
- p.add(img);
- p.add(html);
- p.add(btn);
-
- this.add(p);
-
+ this.add(logoPanel, new BoxLayoutData(BoxLayoutData.FillStyle.HORIZONTAL));
+ this.add(infoPanel, new BoxLayoutData(150, 50));
}
Modified: projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/LoginView.java
===================================================================
--- projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/LoginView.java 2009-05-20 19:20:07 UTC (rev 4861)
+++ projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/LoginView.java 2009-05-20 19:56:16 UTC (rev 4862)
@@ -93,7 +93,7 @@
* The 'layout' window panel.
*/
private void createLayoutWindowPanel() {
- window = new WindowPanel("jBPM Management Console");
+ window = new WindowPanel(config.getProfileName());
window.setAnimationEnabled(true);
window.setSize("320px", "180px");
Modified: projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/ServerStatusView.java
===================================================================
--- projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/ServerStatusView.java 2009-05-20 19:20:07 UTC (rev 4861)
+++ projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/ServerStatusView.java 2009-05-20 19:56:16 UTC (rev 4862)
@@ -21,20 +21,19 @@
*/
package org.jboss.bpm.console.client;
+import com.google.gwt.user.client.ui.Grid;
+import com.google.gwt.user.client.ui.Image;
import com.mvc4g.client.Controller;
import com.mvc4g.client.ViewInterface;
-import com.google.gwt.user.client.ui.Grid;
-import com.google.gwt.user.client.ui.Image;
import org.gwt.mosaic.ui.client.layout.LayoutPanel;
-import org.gwt.mosaic.ui.client.Label;
+import org.jboss.bpm.console.client.model.PluginInfo;
import org.jboss.bpm.console.client.model.ServerStatus;
-import org.jboss.bpm.console.client.model.PluginInfo;
/**
* @author Heiko.Braun <heiko.braun(a)jboss.com>
*/
public class ServerStatusView extends LayoutPanel
- implements ViewInterface
+ implements ViewInterface
{
public final static String ID = ServerStatusView.class.getName();
@@ -55,7 +54,9 @@
}
public void update(ServerStatus status)
- {
+ {
+ this.clear();
+
Grid g = new Grid(status.getPlugins().size(), 2);
g.setWidth("100%");
Modified: projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/SettingsEditor.java
===================================================================
--- projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/SettingsEditor.java 2009-05-20 19:20:07 UTC (rev 4861)
+++ projects/gwt-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/SettingsEditor.java 2009-05-20 19:56:16 UTC (rev 4862)
@@ -21,13 +21,17 @@
*/
package org.jboss.bpm.console.client;
-import com.google.gwt.user.client.ui.*;
-import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.ui.Grid;
import com.mvc4g.client.Event;
-import org.gwt.mosaic.ui.client.*;
+import org.gwt.mosaic.ui.client.DecoratedTabLayoutPanel;
import org.gwt.mosaic.ui.client.Label;
-import org.gwt.mosaic.ui.client.layout.*;
+import org.gwt.mosaic.ui.client.ScrollLayoutPanel;
+import org.gwt.mosaic.ui.client.TabLayoutPanel;
+import org.gwt.mosaic.ui.client.layout.BorderLayout;
+import org.gwt.mosaic.ui.client.layout.BorderLayoutData;
+import org.gwt.mosaic.ui.client.layout.BoxLayout;
+import org.gwt.mosaic.ui.client.layout.BoxLayoutData;
import org.jboss.bpm.console.client.icons.ConsoleIconBundle;
/**
@@ -86,7 +90,7 @@
g2.getColumnFormatter().setWidth(0, "20%");
- layoutPanel.add(g2, new BoxLayoutData(BoxLayoutData.FillStyle.HORIZONTAL));
+ layoutPanel.add(g2, new BoxLayoutData(BoxLayoutData.FillStyle.HORIZONTAL));
tabPanel.add(layoutPanel, "System Overview");
Modified: projects/gwt-console/trunk/gui/war/src/main/resources/org/jboss/bpm/console/public/Application.html
===================================================================
--- projects/gwt-console/trunk/gui/war/src/main/resources/org/jboss/bpm/console/public/Application.html 2009-05-20 19:20:07 UTC (rev 4861)
+++ projects/gwt-console/trunk/gui/war/src/main/resources/org/jboss/bpm/console/public/Application.html 2009-05-20 19:56:16 UTC (rev 4862)
@@ -3,25 +3,15 @@
<title>GWT Console Application</title>
<!-- BPM console configuration -->
- <script type="text/javascript">
- var consoleConfig = {
- consoleServerUrl: "http://localhost:8080/gwt-console-server",
- reportServerUrl: "http://localhost:8080/report-server",
- overviewReportFile:"process_activity.rptdesign",
- definitionReportFile:"definition_report.rptdesign",
- instanceReportFile:"instance_report.rptdesign"
- };
- </script>
+ <script type="text/javascript" src="console.config.js"/>
<!-- -->
<!-- This script loads your compiled module. -->
<!-- If you add any GWT meta tags, they must -->
<!-- be added before this line. -->
<!-- -->
- <script language='javascript' src='org.jboss.bpm.console.Application.nocache.js'>
+ <script language='javascript' src='org.jboss.bpm.console.Application.nocache.js'/>
- </script>
-
<link rel="stylesheet" href="console.css" type="text/css">
<style type="text/css">
Modified: projects/gwt-console/trunk/gui/war/src/main/resources/org/jboss/bpm/console/public/console.css
===================================================================
--- projects/gwt-console/trunk/gui/war/src/main/resources/org/jboss/bpm/console/public/console.css 2009-05-20 19:20:07 UTC (rev 4861)
+++ projects/gwt-console/trunk/gui/war/src/main/resources/org/jboss/bpm/console/public/console.css 2009-05-20 19:56:16 UTC (rev 4862)
@@ -4,13 +4,24 @@
margin: 10px;
}
-.bpm-header {
+.bpm-header{
+ background-color:#ffffff;
+}
+
+.bpm-header-left {
background-color:#ffffff;
- /*background-color:#4a5d75;*/
- background-image: url( images/Jbpm_logo_small.png);
- background-repeat:no-repeat;
+ vertical-align:bottom;
+ margin-left:15px;
+ //border:1px solid green;
}
+.bpm-header-right {
+ background-color:#ffffff;
+ vertical-align:bottom;
+ margin-right:15px;
+ //border:1px dashed red;
+}
+
.bpm-label-header {
background-color:#F8F8F8;
font-weight:BOLD;
Modified: projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/ConsoleConfig.java
===================================================================
--- projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/ConsoleConfig.java 2009-05-20 19:20:07 UTC (rev 4861)
+++ projects/gwt-console/trunk/gui/workspace-api/src/main/java/org/jboss/bpm/console/client/ConsoleConfig.java 2009-05-20 19:56:16 UTC (rev 4862)
@@ -45,6 +45,8 @@
private String definitionReportFile;
private String instanceReportFile;
+ private String profileName;
+ private String logo;
public ConsoleConfig(String consoleServerUrl, String reportServerUrl)
{
@@ -55,6 +57,9 @@
public ConsoleConfig()
{
Dictionary theme = Dictionary.getDictionary("consoleConfig");
+ profileName = theme.get("profileName");
+ logo = theme.get("logo");
+
consoleServerUrl = theme.get("consoleServerUrl");
reportServerUrl = theme.get("reportServerUrl");
@@ -63,6 +68,16 @@
instanceReportFile = theme.get("instanceReportFile");
}
+ public String getProfileName()
+ {
+ return profileName;
+ }
+
+ public String getLogo()
+ {
+ return logo;
+ }
+
public String getConsoleServerUrl()
{
return consoleServerUrl;
Modified: projects/gwt-console/trunk/pom.xml
===================================================================
--- projects/gwt-console/trunk/pom.xml 2009-05-20 19:20:07 UTC (rev 4861)
+++ projects/gwt-console/trunk/pom.xml 2009-05-20 19:56:16 UTC (rev 4862)
@@ -14,7 +14,8 @@
<version>1.0.0.GA</version>
</parent>
- <properties>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<commons.fileupload.version>1.2.1</commons.fileupload.version>
<commons.io.version>1.3.2</commons.io.version>
<commons.logging.version>1.1.1</commons.logging.version>
@@ -28,7 +29,7 @@
<jaf.version>1.1</jaf.version>
<javax.ejb.version>3.0</javax.ejb.version>
<javax.jaxb.version>2.1</javax.jaxb.version>
- <jboss.common.version>2.2.7.GA</jboss.common.version>
+ <jboss.common.version>2.2.7.GA</jboss.common.version>
<junit.version>3.8.1</junit.version>
<mvc4g.version>1.0.0-jboss</mvc4g.version>
<resteasy.version>1.0.2.GA</resteasy.version>
@@ -156,9 +157,9 @@
<version>${resteasy.version}</version>
</dependency>
<dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-multipart-provider</artifactId>
- <version>${resteasy.version}</version>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-multipart-provider</artifactId>
+ <version>${resteasy.version}</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
@@ -201,6 +202,7 @@
</plugins>
</build>
</profile>
+
</profiles>
16 years, 11 months
JBoss JBPM SVN: r4861 - in jbpm4/trunk/modules: examples/src/test/resources/org/jbpm/examples/async/activity and 1 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-05-20 15:20:07 -0400 (Wed, 20 May 2009)
New Revision: 4861
Modified:
jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/Application.java
jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/AsyncActivityTest.java
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml
jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch05-Jpdl.xml
Log:
JBPM-2256 add async activity docs
Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/Application.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/Application.java 2009-05-20 16:10:21 UTC (rev 4860)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/Application.java 2009-05-20 19:20:07 UTC (rev 4861)
@@ -32,7 +32,4 @@
public void calculatePrimes() {
}
-
- public void runTestSuite() {
- }
}
Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/AsyncActivityTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/AsyncActivityTest.java 2009-05-20 16:10:21 UTC (rev 4860)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/AsyncActivityTest.java 2009-05-20 19:20:07 UTC (rev 4861)
@@ -70,16 +70,6 @@
.uniqueResult();
managementService.executeJob(job.getDbid());
- processInstance = executionService.findProcessInstanceById(processInstanceId);
-
- assertEquals(Execution.STATE_ASYNC, processInstance.getState());
- assertEquals("run test suite", processInstance.getActivityName());
-
- job = managementService.createJobQuery()
- .processInstanceId(processInstanceId)
- .uniqueResult();
- managementService.executeJob(job.getDbid());
-
assertNull(executionService.findProcessInstanceById(processInstanceId));
}
}
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml 2009-05-20 16:10:21 UTC (rev 4860)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml 2009-05-20 19:20:07 UTC (rev 4861)
@@ -19,14 +19,6 @@
class="org.jbpm.examples.async.activity.Application"
method="calculatePrimes"
g="203,26,98,50">
- <transition to="run test suite"/>
- </java>
-
- <java name="run test suite"
- continue="async"
- class="org.jbpm.examples.async.activity.Application"
- method="runTestSuite"
- g="330,26,96,50">
<transition to="end"/>
</java>
Modified: jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch05-Jpdl.xml
===================================================================
--- jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch05-Jpdl.xml 2009-05-20 16:10:21 UTC (rev 4860)
+++ jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch05-Jpdl.xml 2009-05-20 19:20:07 UTC (rev 4861)
@@ -2207,10 +2207,96 @@
the jBPM engine remains in control for executing a series of automatic steps.
</para>
<para>Upon an asynchronous continuation, an asynchronous message will be sent as
- part of the currently ongoing transaction. And then originally invoked method
+ part of the currently ongoing transaction. And then the originally invoked method
like e.g. <literal>startProcessInstanceById(...)</literal>
- or <literal>signalProcessInstanceById(...)</literal> will return.
+ or <literal>signalProcessInstanceById(...)</literal> will return. When the
+ asynchronous message is committed and then processed, it will start a new transaction
+ and resume execution where it left off.
</para>
+- <table><title>Any activity attribute:</title>
+ <tgroup cols="5" rowsep="1" colsep="1">
+ <thead>
+ <row>
+ <entry>Attribute</entry>
+ <entry>Type</entry>
+ <entry>Default</entry>
+ <entry>Required?</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><literal>continue</literal></entry>
+ <entry>{sync | async | exclusive}</entry>
+ <entry>sync</entry>
+ <entry>optional</entry>
+ <entry>indicates if an asynchronous continuation should be performed
+ before the activity is executed.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <para>Let's look at a couple of examples.</para>
+
+ <section id="asyncactivity">
+ <title>Async activity</title>
+ <figure id="process.async.activity">
+ <title>The async activity example process</title>
+ <mediaobject><imageobject><imagedata align="center" fileref="images/process.async.activity.png"/></imageobject></mediaobject>
+ </figure>
+ <programlisting><process name="AsyncActivity" xmlns="http://jbpm.org/4.0/jpdl">
+
+ <start>
+ <transition to="generate pdf"/>
+ </start>
+
+ <java name="generate pdf"
+ <emphasis role="bold">continue="async"</emphasis>
+ class="org.jbpm.examples.async.activity.Application"
+ method="generatePdf" >
+ <transition to="calculate primes"/>
+ </java>
+
+ <java name="calculate primes"
+ <emphasis role="bold">continue="async"</emphasis>
+ class="org.jbpm.examples.async.activity.Application"
+ method="calculatePrimes">
+ <transition to="end"/>
+ </java>
+
+ <end name="end"/>
+
+</process></programlisting>
+ <programlisting>ProcessInstance processInstance =
+ executionService.startProcessInstanceByKey("AsyncActivity");
+String processInstanceId = processInstance.getId();</programlisting>
+ <para>Without the asynchronous continuations, this would be an all automatic
+ process and the process would execute all the way up to the end
+ in method <literal>startProcessInstanceByKey</literal>
+ </para>
+ <para>But with <literal>continue="async"</literal> the execution only
+ goes untill it is about to execute activity <literal>generate pdf</literal>. Then
+ An asynchronous continuation message is send and the <literal>startProcessInstanceByKey</literal>
+ method returns.
+ </para>
+ <para>In a normal configuration, the job executor will pick up the message and execute
+ it. But for testing scenarios and for these examples we want to control
+ when messages are executed so the job executor is not configured. Therefor
+ we have to execute the jobs manually like this:
+ </para>
+ <programlisting>Job job = managementService.createJobQuery()
+ .processInstanceId(processInstanceId)
+ .uniqueResult();
+managementService.executeJob(job.getDbid());</programlisting>
+ <para>That will bring the process until it's about to execute activity
+ <literal>calculate primes</literal> and again an asynchronous message is
+ send.
+ </para>
+ <para>Then the message can be looked up again and when that message
+ is executed, that transaction will run the execution till the end.
+ </para>
+ </section>
</section>
<section id="timer">
16 years, 11 months
JBoss JBPM SVN: r4860 - in jbpm4/trunk/modules: examples/src/test/resources/org/jbpm/examples/async/activity and 1 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-05-20 12:10:21 -0400 (Wed, 20 May 2009)
New Revision: 4860
Modified:
jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/AsyncActivityTest.java
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml
jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch05-Jpdl.xml
Log:
JBPM-2256 starting async continuations docs
Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/AsyncActivityTest.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/AsyncActivityTest.java 2009-05-20 14:07:38 UTC (rev 4859)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/AsyncActivityTest.java 2009-05-20 16:10:21 UTC (rev 4860)
@@ -22,6 +22,8 @@
package org.jbpm.examples.async.activity;
import org.jbpm.api.Execution;
+import org.jbpm.api.ProcessInstance;
+import org.jbpm.api.job.Job;
import org.jbpm.test.JbpmTestCase;
@@ -47,7 +49,37 @@
}
public void testJavaInstantiate() {
- Execution execution = executionService.startProcessInstanceByKey("AsyncActivity");
- String executionId = execution.getId();
+ ProcessInstance processInstance = executionService.startProcessInstanceByKey("AsyncActivity");
+ String processInstanceId = processInstance.getId();
+
+ assertEquals(Execution.STATE_ASYNC, processInstance.getState());
+ assertEquals("generate pdf", processInstance.getActivityName());
+
+ Job job = managementService.createJobQuery()
+ .processInstanceId(processInstanceId)
+ .uniqueResult();
+ managementService.executeJob(job.getDbid());
+
+ processInstance = executionService.findProcessInstanceById(processInstanceId);
+
+ assertEquals(Execution.STATE_ASYNC, processInstance.getState());
+ assertEquals("calculate primes", processInstance.getActivityName());
+
+ job = managementService.createJobQuery()
+ .processInstanceId(processInstanceId)
+ .uniqueResult();
+ managementService.executeJob(job.getDbid());
+
+ processInstance = executionService.findProcessInstanceById(processInstanceId);
+
+ assertEquals(Execution.STATE_ASYNC, processInstance.getState());
+ assertEquals("run test suite", processInstance.getActivityName());
+
+ job = managementService.createJobQuery()
+ .processInstanceId(processInstanceId)
+ .uniqueResult();
+ managementService.executeJob(job.getDbid());
+
+ assertNull(executionService.findProcessInstanceById(processInstanceId));
}
}
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml 2009-05-20 14:07:38 UTC (rev 4859)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml 2009-05-20 16:10:21 UTC (rev 4860)
@@ -1,32 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
-<process name="AsyncActivity" xmlns="http://jbpm.org/4.0/jpdl">
-
- <start>
- <transition to="generate pdf" />
- </start>
-
+<process name="AsyncActivity" xmlns="http://jbpm.org/4.0/jpdl">
+
+ <start g="14,28,80,40">
+ <transition to="generate pdf"/>
+ </start>
+
<java name="generate pdf"
+ continue="async"
class="org.jbpm.examples.async.activity.Application"
- method="generatePdf"
- continue="async">
- <transition to="calculate primes" />
- </java>
-
+ method="generatePdf"
+ g="86,26,87,50">
+ <transition to="calculate primes"/>
+ </java>
+
<java name="calculate primes"
+ continue="async"
class="org.jbpm.examples.async.activity.Application"
- method="calculatePrimes"
- continue="async">
- <transition to="run test suite" />
- </java>
-
+ method="calculatePrimes"
+ g="203,26,98,50">
+ <transition to="run test suite"/>
+ </java>
+
<java name="run test suite"
+ continue="async"
class="org.jbpm.examples.async.activity.Application"
- method="runTestSuite"
- continue="async">
- <transition to="end" />
- </java>
-
- <end name="end" />
-
+ method="runTestSuite"
+ g="330,26,96,50">
+ <transition to="end"/>
+ </java>
+
+ <end name="end" g="452,28,80,40"/>
+
</process>
\ No newline at end of file
Modified: jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch05-Jpdl.xml
===================================================================
--- jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch05-Jpdl.xml 2009-05-20 14:07:38 UTC (rev 4859)
+++ jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch05-Jpdl.xml 2009-05-20 16:10:21 UTC (rev 4860)
@@ -2184,6 +2184,35 @@
event(end) on process(EventListener)]</programlisting>
</section>
+ <section id="asynchronouscontinuations">
+ <title>Asynchronous continuations</title>
+ <para>Each invocation of <literal>ExecutionService.startProcessInstanceById(...)</literal>
+ or <literal>ExecutionService.signalProcessInstanceById(...)</literal> will cause
+ the process to be executed in the thread of the client. In other words, those
+ methods will only return after the process execution has arrived in a wait state.
+ </para>
+ <para>This default behaviour has a couple of advantages: user application transactions
+ can be easily propagated to jBPM to that jBPM's DB updates are done in the user's
+ transaction context. Secondly, it's possible for a client to get an exception in
+ case something goes wrong during execution of the process. Usually, the automatic
+ work that has to be done as part of the process inbetween two wait states is
+ relatively small. E.g. < 1 second, even if multiple automatic activities
+ are executed inbetween 2 wait states. So in most situations, it's good to
+ do all that work in a single transaction. This explains that the default behaviour
+ of jPDL is to perform all work of the process synchronously in the thread of client.
+ </para>
+ <para>For those cases where it is needed, jPDL allows for very fine grained control over
+ transaction boundaries. On various places in the process, asynchronous continuations
+ can be introduced. Asynchronous continuations are placed on places where logically
+ the jBPM engine remains in control for executing a series of automatic steps.
+ </para>
+ <para>Upon an asynchronous continuation, an asynchronous message will be sent as
+ part of the currently ongoing transaction. And then originally invoked method
+ like e.g. <literal>startProcessInstanceById(...)</literal>
+ or <literal>signalProcessInstanceById(...)</literal> will return.
+ </para>
+ </section>
+
<section id="timer">
<title><literal>timer</literal> </title>
<para>A timer can be specified in the <literal>transition</literal>
16 years, 11 months
JBoss JBPM SVN: r4859 - in jbpm4/trunk/modules: api/src/main/java/org/jbpm/api/model and 15 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-05-20 10:07:38 -0400 (Wed, 20 May 2009)
New Revision: 4859
Added:
jbpm4/trunk/modules/integration/form-plugin/.classpath
jbpm4/trunk/modules/integration/form-plugin/.project
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java
jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/deploy/
jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/deploy/ImageTest.jpdl.xml
jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/deploy/ImageTest.png
Modified:
jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/ProcessDefinition.java
jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/ProcessDefinitionQuery.java
jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/OpenProcessDefinition.java
jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/test/deployer/DeployerTestServlet.java
jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessManagementImpl.java
jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/TaskDispatcherPluginImpl.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/repository/JpdlDeployer.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ProcessDefinitionBuilder.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetResourceAsStreamCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessDefinitionImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/query/ProcessDefinitionQueryImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositorySessionImpl.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ActivityCoordinatesTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/DeploymentResourcesTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionQueryTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/RepositoryServiceTest.java
Log:
JBPM-2269 added image resource support for process definitions
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/ProcessDefinition.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/ProcessDefinition.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/ProcessDefinition.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -51,4 +51,8 @@
/** references the deployment in which this process definition is
* deployed. */
long getDeploymentDbid();
+
+ /** the name of the resource in the deployment which contains the image
+ * file for this process */
+ String getImageResourceName();
}
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/ProcessDefinitionQuery.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/ProcessDefinitionQuery.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/ProcessDefinitionQuery.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -34,10 +34,10 @@
String PROPERTY_VERSION = "versionProperty.longValue";
String PROPERTY_DEPLOYMENT_TIMESTAMP = "deployment.timestamp";
- ProcessDefinitionQuery id(String id);
- ProcessDefinitionQuery key(String key);
- ProcessDefinitionQuery nameLike(String name);
- ProcessDefinitionQuery name(String name);
+ ProcessDefinitionQuery processDefinitionId(String processDefinitionId);
+ ProcessDefinitionQuery processDefinitionKey(String key);
+ ProcessDefinitionQuery processDefinitionNameLike(String name);
+ ProcessDefinitionQuery processDefinitionName(String name);
ProcessDefinitionQuery deploymentDbid(long deploymentDbid);
ProcessDefinitionQuery suspended();
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/OpenProcessDefinition.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/OpenProcessDefinition.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/OpenProcessDefinition.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -56,6 +56,4 @@
/** the initial activity of this process definition */
Activity getInitial();
- /** retrieves an attachment of a process definition */
- byte[] getAttachment(String name);
}
\ No newline at end of file
Modified: jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/test/deployer/DeployerTestServlet.java
===================================================================
--- jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/test/deployer/DeployerTestServlet.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/test/deployer/DeployerTestServlet.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -61,7 +61,7 @@
RepositoryService repositoryService = processEngine.getRepositoryService();
ProcessDefinition def = repositoryService.createProcessDefinitionQuery()
- .key(JBPM_DEPLOYER_TEST_V5)
+ .processDefinitionKey(JBPM_DEPLOYER_TEST_V5)
.orderDesc(ProcessDefinitionQuery.PROPERTY_VERSION)
.uniqueResult();
Modified: jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessManagementImpl.java
===================================================================
--- jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessManagementImpl.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/integration/console/src/main/java/org/jbpm/integration/console/ProcessManagementImpl.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -78,7 +78,7 @@
{
RepositoryService repositoryService = this.processEngine.getRepositoryService();
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
- .id(procDefId)
+ .processDefinitionId(procDefId)
.uniqueResult();
return ModelAdaptor.adoptDefinition(processDefinition);
@@ -98,7 +98,7 @@
RepositoryService repositoryService = this.processEngine.getRepositoryService();
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
- .id(procDefId)
+ .processDefinitionId(procDefId)
.uniqueResult();
if (processDefinition!=null) {
repositoryService.deleteDeploymentCascade(processDefinition.getDeploymentDbid());
Added: jbpm4/trunk/modules/integration/form-plugin/.classpath
===================================================================
--- jbpm4/trunk/modules/integration/form-plugin/.classpath (rev 0)
+++ jbpm4/trunk/modules/integration/form-plugin/.classpath 2009-05-20 14:07:38 UTC (rev 4859)
@@ -0,0 +1,8 @@
+<?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="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Property changes on: jbpm4/trunk/modules/integration/form-plugin/.classpath
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/integration/form-plugin/.project
===================================================================
--- jbpm4/trunk/modules/integration/form-plugin/.project (rev 0)
+++ jbpm4/trunk/modules/integration/form-plugin/.project 2009-05-20 14:07:38 UTC (rev 4859)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>integration-forms-plugin</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.maven.ide.eclipse.maven2Nature</nature>
+ </natures>
+</projectDescription>
Property changes on: jbpm4/trunk/modules/integration/form-plugin/.project
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/TaskDispatcherPluginImpl.java
===================================================================
--- jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/TaskDispatcherPluginImpl.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/integration/form-plugin/src/main/java/org/jbpm/integration/console/forms/TaskDispatcherPluginImpl.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -110,7 +110,7 @@
RepositoryService repoService = processEngine.getRepositoryService();
ProcessDefinitionQuery query = repoService.createProcessDefinitionQuery();
- query.id(processId);
+ query.processDefinitionId(processId);
ProcessDefinition procDef = query.uniqueResult();
// check if a template exists
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/repository/JpdlDeployer.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/repository/JpdlDeployer.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/repository/JpdlDeployer.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -59,6 +59,11 @@
JpdlProcessDefinition processDefinition = (JpdlProcessDefinition) parse.getDocumentObject();
if ((processDefinition != null) && (processDefinition.getName() != null)) {
String processDefinitionName = processDefinition.getName();
+
+ String imageResourceName = resourceName.substring(0, resourceName.lastIndexOf(".jpdl.xml"))+".png";
+ if (deployment.getResourceNames().contains(imageResourceName)) {
+ processDefinition.setImageResourceName(imageResourceName);
+ }
processDefinition.setDeploymentDbid(deployment.getDbid());
@@ -101,7 +106,7 @@
RepositorySession repositorySession = Environment.getFromCurrent(RepositorySession.class);
List<ProcessDefinition> existingProcesses = repositorySession.createProcessDefinitionQuery()
- .name(processDefinitionName)
+ .processDefinitionName(processDefinitionName)
.list();
for (ProcessDefinition existingProcess: existingProcesses) {
@@ -111,7 +116,7 @@
}
existingProcesses = repositorySession.createProcessDefinitionQuery()
- .key(processDefinitionKey)
+ .processDefinitionKey(processDefinitionKey)
.list();
for (ProcessDefinition existingProcess: existingProcesses) {
@@ -131,7 +136,7 @@
RepositorySession repositorySession = Environment.getFromCurrent(RepositorySession.class);
ProcessDefinition existingProcessDefinition = repositorySession.createProcessDefinitionQuery()
- .id(id)
+ .processDefinitionId(id)
.uniqueResult();
if (existingProcessDefinition != null) {
deployment.addProblem("process '" + id + "' already exists");
@@ -146,7 +151,7 @@
ProcessDefinition latestDeployedVersion = repositorySession
.createProcessDefinitionQuery()
- .key(key)
+ .processDefinitionKey(key)
.orderDesc(ProcessDefinitionQuery.PROPERTY_VERSION)
.page(0, 1)
.uniqueResult();
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -87,6 +87,8 @@
};
static BindingsParser bindingsParser = new BindingsParser();
+ static final String CATEGORY_ACTIVITY = "activity";
+ static final String CATEGORY_EVENT_LISTENER = "eventlistener";
public JpdlParser() {
initialize();
@@ -115,7 +117,7 @@
.getDocumentObject();
for (JpdlBinding binding: activityBindings) {
- binding.setCategory("activity");
+ binding.setCategory(CATEGORY_ACTIVITY);
bindings.addBinding(binding);
}
@@ -138,7 +140,7 @@
.getDocumentObject();
for (JpdlBinding binding: activityBindings) {
- binding.setCategory("eventlistener");
+ binding.setCategory(CATEGORY_EVENT_LISTENER);
bindings.addBinding(binding);
}
@@ -230,7 +232,7 @@
&& !"timer".equals(tagName)
&& !"swimlane".equals(tagName)
) {
- JpdlBinding activityBinding = (JpdlBinding) getBinding(nestedElement, "activity");
+ JpdlBinding activityBinding = (JpdlBinding) getBinding(nestedElement, CATEGORY_ACTIVITY);
if (activityBinding != null) {
ActivityImpl activity = compositeElement.createActivity();
parse.pushObject(activity);
@@ -343,7 +345,7 @@
}
for (Element eventListenerElement: XmlUtil.elements(element)) {
- JpdlBinding eventBinding = (JpdlBinding) getBinding(eventListenerElement, "eventlistener");
+ JpdlBinding eventBinding = (JpdlBinding) getBinding(eventListenerElement, CATEGORY_EVENT_LISTENER);
if (eventBinding!=null) {
EventListener eventListener = (EventListener) eventBinding.parse(eventListenerElement, parse, this);
EventListenerReference eventListenerReference = event.createEventListenerReference(eventListener);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ProcessDefinitionBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ProcessDefinitionBuilder.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ProcessDefinitionBuilder.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -94,17 +94,6 @@
return this;
}
- public ProcessDefinitionBuilder attachment(String name, InputStream inputStream) {
- processDefinition.addAttachment(name, inputStream);
- return this;
- }
-
- public ProcessDefinitionBuilder attachment(String name, byte[] bytes) {
- processDefinition.addAttachment(name, bytes);
- return this;
- }
-
-
protected void addUnresolvedFlow(UnresolvedFlow unresolvedFlow) {
unresolvedFlows.add(unresolvedFlow);
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetResourceAsStreamCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetResourceAsStreamCmd.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetResourceAsStreamCmd.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -44,7 +44,6 @@
public InputStream execute(Environment environment) {
RepositorySession repositorySession = environment.get(RepositorySession.class);
- InputStream resourceStream = repositorySession.getResourceAsStream(deploymentDbid, resourceName);
- return resourceStream;
+ return repositorySession.getResourceAsStream(deploymentDbid, resourceName);
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessDefinitionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessDefinitionImpl.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ProcessDefinitionImpl.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -21,8 +21,6 @@
*/
package org.jbpm.pvm.internal.model;
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@@ -33,9 +31,7 @@
import org.jbpm.api.env.Environment;
import org.jbpm.api.model.OpenProcessDefinition;
import org.jbpm.internal.log.Log;
-import org.jbpm.pvm.internal.lob.Lob;
import org.jbpm.pvm.internal.task.TaskDefinitionImpl;
-import org.jbpm.pvm.internal.util.IoUtil;
/**
* @author Tom Baeyens
@@ -74,9 +70,9 @@
protected Map<String, TaskDefinitionImpl> taskDefinitions;
- /** the attachments */
- protected Map<String, Lob> attachments;
+ protected String imageResourceName = null;
+
public ProcessDefinitionImpl() {
this.processDefinition = this;
}
@@ -146,40 +142,6 @@
return null;
}
- // attachments //////////////////////////////////////////////////////////////
-
- public void addAttachment(String name, InputStream inputStream) {
- byte[] bytes = IoUtil.readBytes(inputStream);
- addAttachment(name, bytes);
- }
-
- public void addAttachment(String name, byte[] bytes) {
- Lob lob = new Lob(bytes);
- if (attachments==null) {
- attachments = new HashMap<String, Lob>();
- }
- attachments.put(name, lob);
- }
-
- public byte[] getAttachment(String name) {
- if (attachments==null) {
- return null;
- }
- Lob lob = attachments.get(name);
- if (lob==null) {
- return null;
- }
- return lob.extractBytes();
- }
-
- public InputStream getAttachmentInputStream(String name) {
- byte[] bytes = getAttachment(name);
- if (bytes==null) {
- return null;
- }
- return new ByteArrayInputStream(bytes);
- }
-
// basic methods ////////////////////////////////////////////////////////////
public String toString() {
@@ -230,4 +192,10 @@
public void setDeploymentDbid(long deploymentDbid) {
this.deploymentDbid = deploymentDbid;
}
+ public String getImageResourceName() {
+ return imageResourceName;
+ }
+ public void setImageResourceName(String imageResourceName) {
+ this.imageResourceName = imageResourceName;
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/query/ProcessDefinitionQueryImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/query/ProcessDefinitionQueryImpl.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/query/ProcessDefinitionQueryImpl.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -30,6 +30,7 @@
import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.ProcessDefinitionQuery;
import org.jbpm.api.cmd.CommandService;
+import org.jbpm.api.env.Environment;
import org.jbpm.api.session.RepositorySession;
import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
import org.jbpm.pvm.internal.repository.DeploymentImpl;
@@ -73,14 +74,10 @@
List<ProcessDefinition> processDefinitions = new ArrayList<ProcessDefinition>();
for (Map<String, Object> properties: propertyMaps) {
- ProcessDefinitionImpl processDefinition = new ProcessDefinitionImpl();
- processDefinition.setName((String)properties.get("name"));
- processDefinition.setKey((String)properties.get("key"));
- processDefinition.setId((String)properties.get("id"));
- processDefinition.setDeploymentDbid((Long)properties.get("deploymentDbid"));
- Long versionLong = (Long)properties.get("version");
- processDefinition.setVersion(versionLong.intValue());
-
+ Long deploymentDbid = (Long)properties.get("deploymentDbid");
+ String objectName = (String)properties.get("objectName");
+ RepositorySession repositorySession = Environment.getFromCurrent(RepositorySession.class);
+ ProcessDefinitionImpl processDefinition = (ProcessDefinitionImpl) repositorySession.getObject(deploymentDbid, objectName);
processDefinitions.add(processDefinition);
}
@@ -89,11 +86,8 @@
public String hql() {
StringBuffer hql = new StringBuffer();
- hql.append("select new map( idProperty.objectName as name, " +
- "idProperty.stringValue as id," +
- "idProperty.deployment.dbid as deploymentDbid, " +
- "keyProperty.stringValue as key, " +
- "versionProperty.longValue as version ) ");
+ hql.append("select new map( idProperty.objectName as objectName, " +
+ "idProperty.deployment.dbid as deploymentDbid ) ");
hql.append("from ");
hql.append(DeploymentImpl.class.getName());
hql.append(" as deployment, ");
@@ -157,12 +151,12 @@
return (ProcessDefinition) untypedUniqueResult();
}
- public ProcessDefinitionQuery id(String id) {
+ public ProcessDefinitionQuery processDefinitionId(String id) {
this.id = id;
return this;
}
- public ProcessDefinitionQuery key(String key) {
+ public ProcessDefinitionQuery processDefinitionKey(String key) {
this.key = key;
return this;
}
@@ -172,12 +166,12 @@
return this;
}
- public ProcessDefinitionQuery nameLike(String name) {
+ public ProcessDefinitionQuery processDefinitionNameLike(String name) {
this.nameLike = name;
return this;
}
- public ProcessDefinitionQuery name(String name) {
+ public ProcessDefinitionQuery processDefinitionName(String name) {
this.name = name;
return this;
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositorySessionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositorySessionImpl.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/RepositorySessionImpl.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -33,10 +33,10 @@
import org.jbpm.api.Problem;
import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.ProcessDefinitionQuery;
-import org.jbpm.api.client.ClientProcessDefinition;
import org.jbpm.api.session.RepositorySession;
import org.jbpm.internal.log.Log;
import org.jbpm.pvm.internal.model.ExecutionImpl;
+import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
import org.jbpm.pvm.internal.query.ProcessDefinitionQueryImpl;
/**
@@ -142,7 +142,7 @@
public InputStream getResourceAsStream(long deploymentDbid, String resourceName) {
DeploymentImpl deployment = getDeployment(deploymentDbid);
if (deployment==null) {
- throw new JbpmException("deployment "+deploymentDbid+" doesn't exist");
+ return null;
}
return deployment.getResourceAsStream(resourceName);
}
@@ -153,9 +153,9 @@
return new ProcessDefinitionQueryImpl(session);
}
- public ClientProcessDefinition findProcessDefinitionByKey(String processDefinitionKey) {
+ public ProcessDefinitionImpl findProcessDefinitionByKey(String processDefinitionKey) {
ProcessDefinition processDefinition = createProcessDefinitionQuery()
- .key(processDefinitionKey)
+ .processDefinitionKey(processDefinitionKey)
.orderDesc(ProcessDefinitionQuery.PROPERTY_VERSION)
.page(0, 1)
.uniqueResult();
@@ -167,21 +167,26 @@
return null;
}
- public ClientProcessDefinition findProcessDefinitionById(String processDefinitionId) {
- DeploymentProperty deploymentProperty = (DeploymentProperty) session.createQuery(
- "select deploymentProperty " +
- "from "+DeploymentProperty.class.getName()+" as deploymentProperty " +
- "where deploymentProperty.key = '"+DeploymentImpl.KEY_PROCESS_DEFINITION_ID+"' " +
- " and deploymentProperty.stringValue = '"+processDefinitionId+"' "
- ).setMaxResults(1).uniqueResult();
+ public ProcessDefinitionImpl findProcessDefinitionById(String processDefinitionId) {
+ DeploymentProperty deploymentProperty = findDeploymentPropertyByProcessDefinitionId(processDefinitionId);
if (deploymentProperty!=null) {
long deploymentDbid = deploymentProperty.getDeployment().getDbid();
String objectName = deploymentProperty.getObjectName();
- return (ClientProcessDefinition) getObject(deploymentDbid, objectName);
+ return (ProcessDefinitionImpl) getObject(deploymentDbid, objectName);
}
return null;
}
+
+ public DeploymentProperty findDeploymentPropertyByProcessDefinitionId(String processDefinitionId) {
+ DeploymentProperty deploymentProperty = (DeploymentProperty) session.createQuery(
+ "select deploymentProperty " +
+ "from "+DeploymentProperty.class.getName()+" as deploymentProperty " +
+ "where deploymentProperty.key = '"+DeploymentImpl.KEY_PROCESS_DEFINITION_ID+"' " +
+ " and deploymentProperty.stringValue = '"+processDefinitionId+"' "
+ ).setMaxResults(1).uniqueResult();
+ return deploymentProperty;
+ }
}
Added: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -0,0 +1,62 @@
+/*
+ * 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.deploy;
+
+import java.io.InputStream;
+import java.util.Arrays;
+
+import org.jbpm.api.ProcessDefinition;
+import org.jbpm.pvm.internal.util.IoUtil;
+import org.jbpm.test.JbpmTestCase;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class ImageTest extends JbpmTestCase {
+
+ public void testImage() {
+ long deploymentDbid = repositoryService
+ .createDeployment()
+ .addResourceFromClasspath("org/jbpm/test/deploy/ImageTest.jpdl.xml")
+ .addResourceFromClasspath("org/jbpm/test/deploy/ImageTest.png")
+ .deploy();
+
+ ProcessDefinition processDefinition = repositoryService
+ .createProcessDefinitionQuery()
+ .processDefinitionKey("ImageTest")
+ .uniqueResult();
+
+ String imageResourceName = processDefinition.getImageResourceName();
+ assertEquals("org/jbpm/test/deploy/ImageTest.png", imageResourceName);
+
+ InputStream inputStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentDbid(), imageResourceName);
+ byte[] imageBytes = IoUtil.readBytes(inputStream);
+
+ inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("org/jbpm/test/deploy/ImageTest.png");
+ byte[] expectedImageBytes = IoUtil.readBytes(inputStream);
+
+ assertTrue(Arrays.equals(expectedImageBytes, imageBytes));
+
+ repositoryService.deleteDeploymentCascade(deploymentDbid);
+ }
+}
Property changes on: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/deploy/ImageTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ActivityCoordinatesTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ActivityCoordinatesTest.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ActivityCoordinatesTest.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -41,7 +41,7 @@
);
String processDefinitionId = repositoryService.createProcessDefinitionQuery()
- .key("ActivityCoordinatesProcess")
+ .processDefinitionKey("ActivityCoordinatesProcess")
.uniqueResult()
.getId();
@@ -63,7 +63,7 @@
);
String processDefinitionId = repositoryService.createProcessDefinitionQuery()
- .key("ActivityCoordinatesProcess")
+ .processDefinitionKey("ActivityCoordinatesProcess")
.uniqueResult()
.getId();
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/DeploymentResourcesTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/DeploymentResourcesTest.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/DeploymentResourcesTest.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -78,7 +78,7 @@
registerDeployment(deploymentDbid);
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
- .key("Resource")
+ .processDefinitionKey("Resource")
.uniqueResult();
assertNotNull(processDefinition);
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionQueryTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionQueryTest.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/ProcessDefinitionQueryTest.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -73,7 +73,7 @@
);
List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery()
- .nameLike("%make%")
+ .processDefinitionNameLike("%make%")
.orderAsc(ProcessDefinitionQuery.PROPERTY_NAME)
.list();
@@ -126,7 +126,7 @@
);
List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery()
- .nameLike("make%")
+ .processDefinitionNameLike("make%")
.orderAsc(ProcessDefinitionQuery.PROPERTY_ID)
.list();
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/RepositoryServiceTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/RepositoryServiceTest.java 2009-05-20 12:37:04 UTC (rev 4858)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/RepositoryServiceTest.java 2009-05-20 14:07:38 UTC (rev 4859)
@@ -43,7 +43,7 @@
);
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
- .key("Insurance_claim")
+ .processDefinitionKey("Insurance_claim")
.orderDesc(ProcessDefinitionQuery.PROPERTY_VERSION)
.page(0,1)
.uniqueResult();
@@ -63,7 +63,7 @@
);
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
- .key("ICL")
+ .processDefinitionKey("ICL")
.orderDesc(ProcessDefinitionQuery.PROPERTY_VERSION)
.page(0,1)
.uniqueResult();
@@ -85,7 +85,7 @@
);
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
- .key("Name_with_spaces")
+ .processDefinitionKey("Name_with_spaces")
.orderDesc(ProcessDefinitionQuery.PROPERTY_VERSION)
.page(0,1)
.uniqueResult();
@@ -101,7 +101,7 @@
deployMultipleVersionsOfProcesses();
List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery()
- .key("nuclear_fusion")
+ .processDefinitionKey("nuclear_fusion")
.orderDesc(ProcessDefinitionQuery.PROPERTY_VERSION)
.list();
assertNotNull(processDefinitions);
@@ -121,7 +121,7 @@
deployMultipleVersionsOfProcesses();
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
- .key("nuclear_fusion")
+ .processDefinitionKey("nuclear_fusion")
.orderDesc(ProcessDefinitionQuery.PROPERTY_VERSION)
.page(0,1)
.uniqueResult();
@@ -141,7 +141,7 @@
// load it
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
- .id("given-33")
+ .processDefinitionId("given-33")
.uniqueResult();
assertNotNull(processDefinition);
@@ -224,7 +224,7 @@
// look it up again
List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery()
- .key("versionme")
+ .processDefinitionKey("versionme")
.orderDesc(ProcessDefinitionQuery.PROPERTY_VERSION)
.list();
@@ -243,7 +243,7 @@
// look them up again
processDefinitions = repositoryService.createProcessDefinitionQuery()
- .key("versionme")
+ .processDefinitionKey("versionme")
.orderDesc(ProcessDefinitionQuery.PROPERTY_VERSION)
.list();
@@ -263,7 +263,7 @@
// load it
List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery()
- .key("takethis")
+ .processDefinitionKey("takethis")
.list();
assertNotNull(processDefinitions);
Added: jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/deploy/ImageTest.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/deploy/ImageTest.jpdl.xml (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/deploy/ImageTest.jpdl.xml 2009-05-20 14:07:38 UTC (rev 4859)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<process name="ImageTest" xmlns="http://jbpm.org/4.0/jpdl">
+
+ <start g="20,20,48,48">
+ <transition to="wait"/>
+ </start>
+
+ <state name="wait" g="115,17,88,52" />
+
+</process>
Property changes on: jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/deploy/ImageTest.jpdl.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/deploy/ImageTest.png
===================================================================
(Binary files differ)
Property changes on: jbpm4/trunk/modules/test-db/src/test/resources/org/jbpm/test/deploy/ImageTest.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
16 years, 11 months
JBoss JBPM SVN: r4858 - in jbpm4/trunk/modules: examples/src/test/java/org/jbpm/examples/async/activity and 7 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-05-20 08:37:04 -0400 (Wed, 20 May 2009)
New Revision: 4858
Added:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Continuation.java
Modified:
jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/Activity.java
jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/Application.java
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ActivityBuilder.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/ExecuteActivity.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/async/AsyncBasicsTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/mgmt/JobQueryTest.java
Log:
JBPM-2256 adding async continuations
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/Activity.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/Activity.java 2009-05-20 09:35:25 UTC (rev 4857)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/model/Activity.java 2009-05-20 12:37:04 UTC (rev 4858)
@@ -109,10 +109,6 @@
* to the parent activities. It doesn't take into account the process definition. */
Activity getParentActivity();
- /** indicates if this activity should be executed
- * <a href="package-summary.html#asynchronouscontinuations">asynchronously</a>. */
- boolean isAsync();
-
/** the type of this activity which corresponds to the xml tag */
String getType();
}
\ No newline at end of file
Modified: jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/Application.java
===================================================================
--- jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/Application.java 2009-05-20 09:35:25 UTC (rev 4857)
+++ jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/async/activity/Application.java 2009-05-20 12:37:04 UTC (rev 4858)
@@ -27,4 +27,12 @@
*/
public class Application {
+ public void generatePdf() {
+ }
+
+ public void calculatePrimes() {
+ }
+
+ public void runTestSuite() {
+ }
}
Modified: jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml 2009-05-20 09:35:25 UTC (rev 4857)
+++ jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/async/activity/process.jpdl.xml 2009-05-20 12:37:04 UTC (rev 4858)
@@ -9,21 +9,21 @@
<java name="generate pdf"
class="org.jbpm.examples.async.activity.Application"
method="generatePdf"
- async="true">
+ continue="async">
<transition to="calculate primes" />
</java>
<java name="calculate primes"
class="org.jbpm.examples.async.activity.Application"
method="calculatePrimes"
- async="true">
+ continue="async">
<transition to="run test suite" />
</java>
<java name="run test suite"
class="org.jbpm.examples.async.activity.Application"
method="runTestSuite"
- async="true">
+ continue="async">
<transition to="end" />
</java>
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-05-20 09:35:25 UTC (rev 4857)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-05-20 12:37:04 UTC (rev 4858)
@@ -41,6 +41,7 @@
import org.jbpm.pvm.internal.model.ActivityCoordinatesImpl;
import org.jbpm.pvm.internal.model.ActivityImpl;
import org.jbpm.pvm.internal.model.CompositeElementImpl;
+import org.jbpm.pvm.internal.model.Continuation;
import org.jbpm.pvm.internal.model.EventImpl;
import org.jbpm.pvm.internal.model.EventListenerReference;
import org.jbpm.pvm.internal.model.ObservableElementImpl;
@@ -238,8 +239,11 @@
activityBinding.parseName(nestedElement, activity, parse);
parseTransitions(nestedElement, activity, parse);
- if (XmlUtil.attributeBoolean(nestedElement, "async", false, parse, Boolean.FALSE)) {
- activity.setAsync(true);
+ String continuationText = XmlUtil.attribute(nestedElement, "continue");
+ if ("async".equals(continuationText)) {
+ activity.setContinuation(Continuation.ASYNCHRONOUS);
+ } else if ("exclusive".equals(continuationText)) {
+ activity.setContinuation(Continuation.EXCLUSIVE);
}
ActivityBehaviour activityBehaviour = (ActivityBehaviour) activityBinding.parse(nestedElement, parse, this);
@@ -331,8 +335,11 @@
event = scopeElement.createEvent(eventName);
}
- if (XmlUtil.attributeBoolean(element, "async", false, parse, Boolean.FALSE)) {
- event.setAsync(true);
+ String continuationText = XmlUtil.attribute(element, "continue");
+ if ("async".equals(continuationText)) {
+ event.setContinuation(Continuation.ASYNCHRONOUS);
+ } else if ("exclusive".equals(continuationText)) {
+ event.setContinuation(Continuation.EXCLUSIVE);
}
for (Element eventListenerElement: XmlUtil.elements(element)) {
@@ -341,8 +348,11 @@
EventListener eventListener = (EventListener) eventBinding.parse(eventListenerElement, parse, this);
EventListenerReference eventListenerReference = event.createEventListenerReference(eventListener);
- if (XmlUtil.attributeBoolean(eventListenerElement, "async", false, parse, Boolean.FALSE)) {
- eventListenerReference.setAsync(true);
+ continuationText = XmlUtil.attribute(eventListenerElement, "continue");
+ if ("async".equals(continuationText)) {
+ eventListenerReference.setContinuation(Continuation.ASYNCHRONOUS);
+ } else if ("exclusive".equals(continuationText)) {
+ eventListenerReference.setContinuation(Continuation.EXCLUSIVE);
}
} else {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ActivityBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ActivityBuilder.java 2009-05-20 09:35:25 UTC (rev 4857)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ActivityBuilder.java 2009-05-20 12:37:04 UTC (rev 4858)
@@ -24,6 +24,7 @@
import java.lang.reflect.Constructor;
import org.jbpm.pvm.internal.model.ActivityImpl;
+import org.jbpm.pvm.internal.model.Continuation;
import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
/**
@@ -97,7 +98,7 @@
}
public ActivityBuilder asyncExecute() {
- activity.setAsync(true);
+ activity.setContinuation(Continuation.ASYNCHRONOUS);
return this;
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java 2009-05-20 09:35:25 UTC (rev 4857)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ActivityImpl.java 2009-05-20 12:37:04 UTC (rev 4858)
@@ -46,7 +46,7 @@
protected ActivityImpl parentActivity;
protected String type;
- protected boolean isAsync;
+ protected Continuation continuation = Continuation.SYNCHRONOUS;
protected ActivityCoordinatesImpl coordinates;
@@ -395,6 +395,10 @@
return chain;
}
+ public boolean isAsync() {
+ return ! (continuation==Continuation.SYNCHRONOUS);
+ }
+
// getters and setters //////////////////////////////////////////////////////
public ObservableElementImpl getParent() {
@@ -419,12 +423,6 @@
public void setParentActivity(ActivityImpl parentActivity) {
this.parentActivity = parentActivity;
}
- public boolean isAsync() {
- return isAsync;
- }
- public void setAsync(boolean isExecutionAsync) {
- this.isAsync = isExecutionAsync;
- }
public String getType() {
return type;
}
@@ -437,4 +435,10 @@
public void setCoordinates(ActivityCoordinatesImpl coordinates) {
this.coordinates = coordinates;
}
+ public Continuation getContinuation() {
+ return continuation;
+ }
+ public void setContinuation(Continuation continuation) {
+ this.continuation = continuation;
+ }
}
Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Continuation.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Continuation.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Continuation.java 2009-05-20 12:37:04 UTC (rev 4858)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.pvm.internal.model;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public enum Continuation {
+
+ SYNCHRONOUS,
+
+ ASYNCHRONOUS,
+
+ EXCLUSIVE
+}
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/Continuation.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventImpl.java 2009-05-20 09:35:25 UTC (rev 4857)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventImpl.java 2009-05-20 12:37:04 UTC (rev 4858)
@@ -38,7 +38,7 @@
protected String name;
protected List<EventListenerReference> listenerReferences;
- protected boolean isAsync;
+ protected Continuation continuation = Continuation.SYNCHRONOUS;
public String toString() {
return (name != null ? "event(" + name + ")" : "event");
@@ -73,6 +73,10 @@
return eventListenerReference;
}
+ public boolean isAsync() {
+ return ! (continuation==Continuation.SYNCHRONOUS);
+ }
+
// getters and setters //////////////////////////////////////////////////////
public long getDbid() {
@@ -90,10 +94,10 @@
public void setListenerReferences(List<EventListenerReference> eventListenerReferences) {
this.listenerReferences = eventListenerReferences;
}
- public boolean isAsync() {
- return isAsync;
+ public Continuation getContinuation() {
+ return continuation;
}
- public void setAsync(boolean isAsync) {
- this.isAsync = isAsync;
+ public void setContinuation(Continuation continuation) {
+ this.continuation = continuation;
}
}
\ No newline at end of file
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.java 2009-05-20 09:35:25 UTC (rev 4857)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/EventListenerReference.java 2009-05-20 12:37:04 UTC (rev 4858)
@@ -31,8 +31,8 @@
private static final long serialVersionUID = 1L;
/** does this action accept propagated events ? */
- boolean isPropagationEnabled = false;
- boolean isAsync = false;
+ protected boolean isPropagationEnabled = false;
+ protected Continuation continuation = Continuation.SYNCHRONOUS;
/** does this action accept propagated events ? Default is false. */
public boolean isPropagationEnabled() {
@@ -45,10 +45,13 @@
}
public boolean isAsync() {
- return isAsync;
+ return Continuation.SYNCHRONOUS!=continuation;
}
- public void setAsync(boolean isAsync) {
- this.isAsync = isAsync;
+ public Continuation getContinuation() {
+ return continuation;
}
+ public void setContinuation(Continuation continuation) {
+ this.continuation = continuation;
+ }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java 2009-05-20 09:35:25 UTC (rev 4857)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java 2009-05-20 12:37:04 UTC (rev 4858)
@@ -613,7 +613,7 @@
}
/** fires the given event without propagation */
- void fire(EventImpl event, ObservableElement eventSource, ObservableElement observableElement) {
+ public void fire(EventImpl event, ObservableElement eventSource, ObservableElement observableElement) {
List<EventListenerReference> eventListenerReferences = event.getListenerReferences();
if (eventListenerReferences!=null) {
for (EventListenerReference eventListenerReference: eventListenerReferences) {
@@ -626,7 +626,7 @@
}
}
}
-
+
public void handleException(ObservableElementImpl observableElement,
EventImpl event,
EventListenerReference eventListenerReference,
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/ExecuteActivity.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/ExecuteActivity.java 2009-05-20 09:35:25 UTC (rev 4857)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/op/ExecuteActivity.java 2009-05-20 12:37:04 UTC (rev 4858)
@@ -24,6 +24,7 @@
import org.jbpm.api.activity.ActivityBehaviour;
import org.jbpm.internal.log.Log;
import org.jbpm.pvm.internal.job.MessageImpl;
+import org.jbpm.pvm.internal.model.Continuation;
import org.jbpm.pvm.internal.model.ExecutionImpl;
import org.jbpm.pvm.internal.model.ActivityImpl;
import org.jbpm.pvm.internal.model.ExecutionImpl.Propagation;
@@ -70,6 +71,10 @@
}
public MessageImpl<?> createAsyncMessage(ExecutionImpl execution) {
- return new ExecuteActivityMessage(execution);
+ ExecuteActivityMessage executeActivityMessage = new ExecuteActivityMessage(execution);
+ if (execution.getActivity().getContinuation()==Continuation.EXCLUSIVE) {
+ executeActivityMessage.setExclusive(true);
+ }
+ return executeActivityMessage;
}
-}
\ No newline at end of file
+}
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/async/AsyncBasicsTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/async/AsyncBasicsTest.java 2009-05-20 09:35:25 UTC (rev 4857)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/async/AsyncBasicsTest.java 2009-05-20 12:37:04 UTC (rev 4858)
@@ -55,10 +55,10 @@
" <start>" +
" <transition to='a' />" +
" </start>" +
- " <java name='a' async='true' class='"+Do.class.getName()+"' method='something'>" +
+ " <java name='a' continue='async' class='"+Do.class.getName()+"' method='something'>" +
" <transition to='b' />" +
" </java>" +
- " <java name='b' async='true' class='"+Do.class.getName()+"' method='something'>" +
+ " <java name='b' continue='async' class='"+Do.class.getName()+"' method='something'>" +
" <transition to='end' />" +
" </java>" +
" <end name='end' />" +
@@ -112,10 +112,10 @@
" <transition to='a' />" +
" </start>" +
" <java name='a' class='"+Do.class.getName()+"' method='something'>" +
- " <transition async='true' to='b' />" +
+ " <transition continue='async' to='b' />" +
" </java>" +
" <java name='b' class='"+Do.class.getName()+"' method='something'>" +
- " <transition async='true' to='end' />" +
+ " <transition continue='async' to='end' />" +
" </java>" +
" <end name='end' />" +
"</process>"
@@ -165,7 +165,7 @@
" <start>" +
" <transition to='a' />" +
" </start>" +
- " <state name='a' async='true'>" +
+ " <state name='a' continue='async'>" +
" <transition to='end' />" +
" </state>" +
" <end name='end' />" +
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/mgmt/JobQueryTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/mgmt/JobQueryTest.java 2009-05-20 09:35:25 UTC (rev 4857)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/mgmt/JobQueryTest.java 2009-05-20 12:37:04 UTC (rev 4858)
@@ -40,7 +40,7 @@
" <start>" +
" <transition to='t' />" +
" </start>" +
- " <state name='t' async='true' />" +
+ " <state name='t' continue='async' />" +
"</process>"
);
@@ -69,7 +69,7 @@
" <transition to='t' />" +
" </start>" +
" <java name='t' " +
- " async='true' " +
+ " continue='async' " +
" class='"+Dog.class.getName()+"'" +
" method='bark'>" +
" </java>" +
16 years, 11 months
JBoss JBPM SVN: r4857 - jbpm3/branches.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-05-20 05:35:25 -0400 (Wed, 20 May 2009)
New Revision: 4857
Removed:
jbpm3/branches/jbpm-3.2.5.SP/
Log:
renaming jbpm 3 soa branch
16 years, 11 months
JBoss JBPM SVN: r4856 - jbpm3/branches.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2009-05-20 05:34:52 -0400 (Wed, 20 May 2009)
New Revision: 4856
Added:
jbpm3/branches/jbpm-3.2.5-soa/
Log:
renaming jbpm 3 soa branch
Copied: jbpm3/branches/jbpm-3.2.5-soa (from rev 4855, jbpm3/branches/jbpm-3.2.5.SP)
16 years, 11 months