JBoss JBPM SVN: r3184 - in jbpm4/trunk/modules: api/src/main/java/org/jbpm/session and 28 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2008-12-03 12:06:54 -0500 (Wed, 03 Dec 2008)
New Revision: 3184
Added:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionByIdCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionKeysCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionsByKeyCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessDeployer.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/CheckProcessBinding.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ManagementServiceTest.java
Removed:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionByNameCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionNamesCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionsCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessIdDeployer.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessVersionDeployer.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/CheckProcessIdBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/CheckProcessVersionBinding.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ExecutionServiceTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ManagementServiceTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ProcessServiceTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/WaitState.java
Modified:
jbpm4/trunk/modules/api/src/main/java/org/jbpm/ExecutionService.java
jbpm4/trunk/modules/api/src/main/java/org/jbpm/ProcessService.java
jbpm4/trunk/modules/api/src/main/java/org/jbpm/session/PvmDbSession.java
jbpm4/trunk/modules/api/src/main/resources/cfg.xsd
jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd
jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch02-ExecutionModes.xml
jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.cfg.xml
jbpm4/trunk/modules/pvm/pom.xml
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/StartExecutionInLatestCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/HibernatePvmDbSession.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/svc/ProcessServiceImpl.java
jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.definition.hbm.xml
jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.wire.bindings.xml
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/AutomaticDecisionDbTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/continuation/ContinuationTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/timer/TimerIntegrationTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/langext/LanguageExtensionsDbTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/jobexecutor/JobExecutorTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/samples/ex02/BasicProcessPersistenceTest.java
jbpm4/trunk/modules/pvm/src/test/resources/environment.cfg.xml
jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/pvm/api/db/svc/environment.cfg.xml
jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/pvm/api/timer/environment.cfg.xml
jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/pvm/internal/db/langext/environment.cfg.xml
jbpm4/trunk/modules/task/src/test/resources/jbpm.cfg.xml
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ExecutionServiceTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ProcessServiceTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/variables/BasicVariablesTest.java
jbpm4/trunk/modules/test-db/src/test/resources/jbpm.cfg.xml
jbpm4/trunk/modules/userguide/.settings/attachedFile.properties
jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch03-Services.xml
Log:
sanetized process service for usage with keys instead of names
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/ExecutionService.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/ExecutionService.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/ExecutionService.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -55,32 +55,6 @@
Execution startExecutionById(String processDefinitionId, Map<String, Object> variables, String executionKey);
/** starts a new execution in the latest version of the given process definition.
- * @param processDefinitionName is the name of the process definition for which the latest version will be taken. */
- Execution startExecutionByName(String processDefinitionName);
-
- /** starts a new execution in the latest version of the given processDefinitionName.
- * @param processDefinitionName is the name of the process definition
- * for which the latest version will be taken.
- * @param executionKey is a user provided reference for the new execution
- * that must be unique over all process versions with the same name. */
- Execution startExecutionByName(String processDefinitionName, String executionKey);
-
- /** starts a new execution in the latest version of the given processDefinitionName.
- * @param processDefinitionName is the name 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 (read: before the initial
- * node is executed). */
- Execution startExecutionByName(String processDefinitionName, Map<String, Object> variables);
-
- /** starts a new execution in the latest version of the given processDefinitionName.
- * @param processDefinitionName is the name 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 executionKey is a user provided reference for the new execution that must be unique over all
- * process versions with the same name. */
- Execution startExecutionByName(String processDefinitionName, Map<String, Object> variables, String executionKey);
-
- /** starts a new execution in the latest version of the given process definition.
* @param processDefinitionKey is the key of the process definition for which the latest version will be taken. */
Execution startExecutionByKey(String processDefinitionKey);
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/ProcessService.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/ProcessService.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/ProcessService.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -33,23 +33,17 @@
/** start a deployment */
Deployment createDeployment();
- /** TODO REMOVE: deploy a new process definition into the process repository. */
- List<ProcessDefinition> deploy(Deployment deployment);
+ /** all deployed process definition keys. */
+ List<String> findProcessDefinitionKeys();
- /** all deployed process names. */
- List<String> findProcessDefinitionNames();
-
/** all versions of the given process. */
- List<ProcessDefinition> findProcessDefinitions(String processDefinitionName);
+ List<ProcessDefinition> findProcessDefinitionsByKey(String processDefinitionKey);
- /** latest version of the processDefinition with the given name. */
- ProcessDefinition findLatestProcessDefinitionByName(String processDefinitionName);
-
/** latest version of the processDefinition with the given key. */
ProcessDefinition findLatestProcessDefinitionByKey(String processDefinitionKey);
/** specific version of a named processDefinition. */
- ProcessDefinition findProcessDefinition(String processDefinitionName, int processDefinitionVersion);
+ ProcessDefinition findProcessDefinitionById(String processDefinitionId);
/** deletes process definition if there are no existing executions.
* @throws JbpmException if there are existing executions. */
@@ -57,4 +51,8 @@
/** deletes process definition and the existing executions. */
void deleteProcessDefinitionAndInstances(String processDefinitionId);
+
+
+ /** TODO REMOVE: deploy a new process definition into the process repository. */
+ List<ProcessDefinition> deploy(Deployment deployment);
}
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/session/PvmDbSession.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/session/PvmDbSession.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/session/PvmDbSession.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -34,26 +34,35 @@
* @author Tom Baeyens
*/
public interface PvmDbSession extends DbSession {
+
+ // process definition queries ///////////////////////////////////////////////
/** all deployed process names. */
- List<String> findProcessDefinitionNames();
+ List<String> findProcessDefinitionKeys();
- /** all versions of the given process. */
- List<ClientProcessDefinition> findProcessDefinitionsByName(String name);
+ /** latest version of the processDefinition for the given key. */
+ ClientProcessDefinition findLatestProcessDefinitionByKey(String processDefinitionKey);
- /** specific version of a named processDefinition. */
- ClientProcessDefinition findProcessDefinitionByName(String name, int version);
+ /** all versions of the processDefinition for the given key. */
+ List<ClientProcessDefinition> findProcessDefinitionsByKey(String processDefinitionKey);
- /** latest version of the processDefinition for the given name. */
- ClientProcessDefinition findLatestProcessDefinitionByName(String name);
-
/** the process definition uniquely identified by the given
* processDefinition id. */
ClientProcessDefinition findProcessDefinitionById(String processDefinitionId);
- /** latest version of the processDefinition for the given key. */
- ClientProcessDefinition findLatestProcessDefinitionByKey(String processDefinitionKey);
+ /** the first key for an existing process definition with the given processDefinitionName
+ * @returns null in case no such processDefinitionName exists */
+ String findProcessDefinitionKeyByName(String processDefinitionName);
+ /** the first name for an existing process definition with the given processDefinitionKey
+ * @returns null in case no such processDefinitionKey exists */
+ String findProcessDefinitionNameByKey(String processDefinitionKey);
+
+ /** delete process definition */
+ void deleteProcessDefinition(String processDefinitionId, boolean deleteProcessInstances);
+
+ // process execution queries ////////////////////////////////////////////////
+
/** the execution uniquely identified by the given executionKey. */
ClientExecution findExecutionById(String executionId);
@@ -61,6 +70,14 @@
* and the execution key. */
Execution findExecutionByKey(String processDefinitionName, String executionKey);
+ /* find ids for all process instances for a given process definition. */
+ List<String> findProcessInstanceIds(String processDefinitionId);
+
+ /** delete the process instance */
+ void deleteProcessInstance(String processInstanceId);
+
+ // job queries //////////////////////////////////////////////////////////////
+
/** timers */
List<Timer> findTimers(int firstResult, int maxResults);
@@ -70,14 +87,4 @@
/** the jobs for which all the retries have failed and which will not be
* picked up any more by the jobImpl executor */
public List<Job> findJobsWithException(int firstResult, int maxResults);
-
- /* find ids for all process instances for a given process definition. */
- List<String> findProcessInstanceIds(String processDefinitionId);
-
- /** delete the process instance */
- void deleteProcessInstance(String processInstanceId);
-
- /** delete process definition */
- void deleteProcessDefinition(String processDefinitionId, boolean deleteProcessInstances);
-
}
Modified: jbpm4/trunk/modules/api/src/main/resources/cfg.xsd
===================================================================
--- jbpm4/trunk/modules/api/src/main/resources/cfg.xsd 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/api/src/main/resources/cfg.xsd 2008-12-03 17:06:54 UTC (rev 3184)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://jbpm.org/xsd/cfg"
- xmlns:tns="http://jbpm.org/xsd/cfg"
+ targetNamespace="http://jbpm.org/4/cfg"
+ xmlns:tns="http://jbpm.org/4/cfg"
elementFormDefault="qualified">
<annotation>
Modified: jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd
===================================================================
--- jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/api/src/main/resources/jpdl.xsd 2008-12-03 17:06:54 UTC (rev 3184)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://jbpm.org/jpdl4"
- xmlns:tns="http://jbpm.org/jpdl4"
+ targetNamespace="http://jbpm.org/4/jpdl"
+ xmlns:tns="http://jbpm.org/4/jpdl"
elementFormDefault="qualified"
attributeFormDefault="qualified">
Modified: jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch02-ExecutionModes.xml
===================================================================
--- jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch02-ExecutionModes.xml 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/devguide/src/main/docbook/en/modules/ch02-ExecutionModes.xml 2008-12-03 17:06:54 UTC (rev 3184)
@@ -111,8 +111,7 @@
<file extension=".jpdl.xml" type="jpdl" />
</assign-file-type>
<parse-jpdl />
- <check-process-version />
- <check-process-id />
+ <check-process />
<check-problems />
<save />
</deployer-manager>
Modified: jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.cfg.xml 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/jpdl/src/test/resources/jbpm.cfg.xml 2008-12-03 17:06:54 UTC (rev 3184)
@@ -9,8 +9,7 @@
<file extension=".jpdl.xml" type="jpdl" />
</assign-file-type>
<parse-jpdl />
- <check-process-version />
- <check-process-id />
+ <check-process />
<check-problems />
<save />
</deployer-manager>
Modified: jbpm4/trunk/modules/pvm/pom.xml
===================================================================
--- jbpm4/trunk/modules/pvm/pom.xml 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/pom.xml 2008-12-03 17:06:54 UTC (rev 3184)
@@ -180,6 +180,8 @@
<exclude>**/TimerIntegrationTest.java</exclude>
<exclude>**/ProcessServiceTest.java</exclude>
<exclude>**/JobExecutorTest.java</exclude>
+ <exclude>**/ContinuationTest.java</exclude>
+ <exclude>**/LanguageExtensionsDbTest.java</exclude>
</excludes>
</configuration>
</plugin>
Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionByNameCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionByNameCmd.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionByNameCmd.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -1,46 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.internal.cmd;
-
-import org.jbpm.cmd.Command;
-import org.jbpm.env.Environment;
-import org.jbpm.model.OpenProcessDefinition;
-import org.jbpm.session.PvmDbSession;
-
-
-/**
- * @author Tom Baeyens
- */
-public class FindLatestProcessDefinitionByNameCmd implements Command<OpenProcessDefinition> {
-
- private static final long serialVersionUID = 1L;
-
- protected String processDefinitionName;
-
- public FindLatestProcessDefinitionByNameCmd(String processDefinitionName) {
- this.processDefinitionName = processDefinitionName;
- }
-
- public OpenProcessDefinition execute(Environment environment) throws Exception {
- return environment.get(PvmDbSession.class).findLatestProcessDefinitionByName(processDefinitionName);
- }
-}
Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionByIdCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionByIdCmd.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionByIdCmd.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.pvm.internal.cmd;
+
+import org.jbpm.cmd.Command;
+import org.jbpm.env.Environment;
+import org.jbpm.model.OpenProcessDefinition;
+import org.jbpm.session.PvmDbSession;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class FindProcessDefinitionByIdCmd implements Command<OpenProcessDefinition> {
+
+ private static final long serialVersionUID = 1L;
+
+ protected String processDefinitionId;
+
+ public FindProcessDefinitionByIdCmd(String processDefinitionId) {
+ this.processDefinitionId = processDefinitionId;
+ }
+
+ public OpenProcessDefinition execute(Environment environment) throws Exception {
+ return environment.get(PvmDbSession.class).findProcessDefinitionById(processDefinitionId);
+ }
+}
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionByIdCmd.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionCmd.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionCmd.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -1,53 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.internal.cmd;
-
-import org.jbpm.JbpmException;
-import org.jbpm.cmd.Command;
-import org.jbpm.env.Environment;
-import org.jbpm.model.OpenProcessDefinition;
-import org.jbpm.session.PvmDbSession;
-
-
-/**
- * @author Tom Baeyens
- */
-public class FindProcessDefinitionCmd implements Command<OpenProcessDefinition> {
-
- private static final long serialVersionUID = 1L;
-
- protected String processDefinitionName;
- protected int processDefinitionVersion;
-
- public FindProcessDefinitionCmd(String processDefinitionName, int processDefinitionVersion) {
- if (processDefinitionName==null) {
- throw new JbpmException("processDefinitionName is null");
- }
- this.processDefinitionName = processDefinitionName;
- this.processDefinitionVersion = processDefinitionVersion;
- }
-
- public OpenProcessDefinition execute(Environment environment) throws Exception {
- PvmDbSession pvmDbSession = environment.get(PvmDbSession.class);
- return pvmDbSession.findProcessDefinitionByName(processDefinitionName, processDefinitionVersion);
- }
-}
Copied: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionKeysCmd.java (from rev 3143, jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionNamesCmd.java)
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionKeysCmd.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionKeysCmd.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -0,0 +1,42 @@
+/*
+ * 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.cmd;
+
+import java.util.List;
+
+import org.jbpm.cmd.Command;
+import org.jbpm.env.Environment;
+import org.jbpm.session.PvmDbSession;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class FindProcessDefinitionKeysCmd implements Command<List<String>> {
+
+ private static final long serialVersionUID = 1L;
+
+ public List<String> execute(Environment environment) throws Exception {
+ return environment.get(PvmDbSession.class).findProcessDefinitionKeys();
+ }
+
+}
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionKeysCmd.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:mergeinfo
+
Name: svn:eol-style
+ LF
Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionNamesCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionNamesCmd.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionNamesCmd.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -1,42 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.internal.cmd;
-
-import java.util.List;
-
-import org.jbpm.cmd.Command;
-import org.jbpm.env.Environment;
-import org.jbpm.session.PvmDbSession;
-
-
-/**
- * @author Tom Baeyens
- */
-public class FindProcessDefinitionNamesCmd implements Command<List<String>> {
-
- private static final long serialVersionUID = 1L;
-
- public List<String> execute(Environment environment) throws Exception {
- return environment.get(PvmDbSession.class).findProcessDefinitionNames();
- }
-
-}
Copied: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionsByKeyCmd.java (from rev 3143, jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionsCmd.java)
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionsByKeyCmd.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionsByKeyCmd.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.pvm.internal.cmd;
+
+import java.util.List;
+
+import org.jbpm.client.ClientProcessDefinition;
+import org.jbpm.cmd.Command;
+import org.jbpm.env.Environment;
+import org.jbpm.session.PvmDbSession;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class FindProcessDefinitionsByKeyCmd implements Command<List<ClientProcessDefinition>> {
+
+ private static final long serialVersionUID = 1L;
+
+ protected String processDefinitionKey;
+
+ public FindProcessDefinitionsByKeyCmd(String processDefinitionKey) {
+ this.processDefinitionKey = processDefinitionKey;
+ }
+
+ public List<ClientProcessDefinition> execute(Environment environment) throws Exception {
+ return environment.get(PvmDbSession.class).findProcessDefinitionsByKey(processDefinitionKey);
+ }
+}
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionsByKeyCmd.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:mergeinfo
+
Name: svn:eol-style
+ LF
Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionsCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionsCmd.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionsCmd.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -1,49 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.internal.cmd;
-
-import java.util.List;
-
-import org.jbpm.client.ClientProcessDefinition;
-import org.jbpm.cmd.Command;
-import org.jbpm.env.Environment;
-import org.jbpm.session.PvmDbSession;
-
-
-/**
- * @author Tom Baeyens
- */
-public class FindProcessDefinitionsCmd implements Command<List<ClientProcessDefinition>> {
-
- private static final long serialVersionUID = 1L;
-
- protected String processDefinitionName;
-
- public FindProcessDefinitionsCmd(String processDefinitionName) {
- this.processDefinitionName = processDefinitionName;
- }
-
- public List<ClientProcessDefinition> execute(Environment environment) throws Exception {
- return environment.get(PvmDbSession.class).findProcessDefinitionsByName(processDefinitionName);
- }
-
-}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/StartExecutionInLatestCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/StartExecutionInLatestCmd.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/StartExecutionInLatestCmd.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -38,24 +38,13 @@
private static final long serialVersionUID = 1L;
- protected String processDefinitionName;
protected String processDefinitionKey;
protected String executionKey;
- public StartExecutionInLatestCmd(String processDefinitionName, String processDefinitionKey, Map<String, Object> variables, String executionKey) {
- if ( (processDefinitionName==null)
- && (processDefinitionKey==null)
- ) {
- throw new JbpmException("processDefinitionName and processDefinitionKey are both null");
+ public StartExecutionInLatestCmd(String processDefinitionKey, Map<String, Object> variables, String executionKey) {
+ if (processDefinitionKey==null) {
+ throw new JbpmException("processDefinitionKey is null");
}
-
- if ( (processDefinitionName!=null)
- && (processDefinitionKey!=null)
- ) {
- throw new JbpmException("processDefinitionName and processDefinitionKey are both not-null. only one should be not null.");
- }
-
- this.processDefinitionName = processDefinitionName;
this.processDefinitionKey = processDefinitionKey;
this.variables = variables;
this.executionKey = executionKey;
@@ -66,14 +55,10 @@
ClientProcessDefinition processDefinition = null;
- if (processDefinitionName!=null) {
- processDefinition = pvmDbSession.findLatestProcessDefinitionByName(processDefinitionName);
- } else {
- processDefinition = pvmDbSession.findLatestProcessDefinitionByKey(processDefinitionKey);
- }
+ processDefinition = pvmDbSession.findLatestProcessDefinitionByKey(processDefinitionKey);
if (processDefinition==null) {
- throw new JbpmException("no process definition with "+(processDefinitionName!=null ? "name '"+processDefinitionName : "key '"+processDefinitionKey)+"'");
+ throw new JbpmException("no process definition with key '"+processDefinitionKey+"'");
}
ClientProcessInstance processInstance = processDefinition.createProcessInstance(executionKey);
@@ -84,12 +69,6 @@
return processInstance;
}
- public String getProcessDefinitionName() {
- return processDefinitionName;
- }
- public void setProcessDefinitionName(String processName) {
- this.processDefinitionName = processName;
- }
public String getExecutionKey() {
return executionKey;
}
Copied: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessDeployer.java (from rev 3159, jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessVersionDeployer.java)
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessDeployer.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessDeployer.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -0,0 +1,157 @@
+/*
+ * 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.deploy;
+
+import java.util.List;
+
+import org.jbpm.ProcessDefinition;
+import org.jbpm.client.ClientProcessDefinition;
+import org.jbpm.env.Environment;
+import org.jbpm.log.Log;
+import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
+import org.jbpm.pvm.internal.svc.DeploymentImpl;
+import org.jbpm.pvm.internal.wire.binding.CheckProcessBinding;
+import org.jbpm.session.PvmDbSession;
+
+/**
+ * @author Tom Baeyens
+ */
+public class CheckProcessDeployer implements Deployer {
+
+ private static final Log log = Log.getLog(CheckProcessDeployer.class.getName());
+
+ protected boolean assignVersion = true;
+ protected boolean assignKey = true;
+
+ public void deploy(DeploymentImpl deployment) {
+ Environment environment = Environment.getCurrent();
+ if (environment==null) {
+ deployment.addProblem("environment is required by deployer "+CheckProcessBinding.TAG);
+ return;
+ }
+
+ PvmDbSession pvmDbSession = environment.get(PvmDbSession.class);
+ if (pvmDbSession==null) {
+ deployment.addProblem(PvmDbSession.class.getName()+" is required in the environment by deployer "+CheckProcessBinding.TAG);
+ return;
+ }
+
+ for (String processSourceName : deployment.getObjectNames()) {
+ Object object = deployment.getObject(processSourceName);
+ if (object instanceof ProcessDefinition) {
+ checkProcessDefinition(processSourceName, (ProcessDefinitionImpl)object, deployment, pvmDbSession);
+ }
+ }
+ }
+
+ public void checkProcessDefinition(String processSourceName, ProcessDefinitionImpl processDefinition, DeploymentImpl deployment, PvmDbSession pvmDbSession) {
+ if ( (processDefinition.getName()==null)
+ || ("".equals(processDefinition.getName()))
+ ) {
+ // A problem was already added by the JpdlParser
+ return;
+ }
+
+ checkKey(processSourceName, processDefinition, deployment, pvmDbSession);
+ checkVersion(processSourceName, processDefinition, deployment, pvmDbSession);
+ checkId(processSourceName, processDefinition, deployment, pvmDbSession);
+
+ String key = processDefinition.getKey();
+
+ }
+
+ protected void checkKey(String processSourceName, ProcessDefinitionImpl processDefinition, DeploymentImpl deployment, PvmDbSession pvmDbSession) {
+ String name = processDefinition.getName();
+ String key = processDefinition.getKey();
+ if ( (key==null)
+ && assignKey
+ ) {
+ // replace any non-word character with an underscore
+ key = name.replaceAll("\\W", "_");
+
+ processDefinition.setKey(key);
+ }
+
+ String existingKey = pvmDbSession.findProcessDefinitionKeyByName(name);
+ if ( (existingKey!=null)
+ && (!existingKey.equals(key))
+ ) {
+ deployment.addProblem("invalid key '"+key+"' in process "+processSourceName+". Existing process has name '"+name+"' and key '"+existingKey+"'");
+ }
+
+ String existingName = pvmDbSession.findProcessDefinitionNameByKey(key);
+ if ( (existingName!=null)
+ && (!existingName.equals(name))
+ ) {
+ deployment.addProblem("invalid name '"+name+"' in process "+processSourceName+". Existing process has name '"+existingName+"' and key '"+key+"'");
+ }
+ }
+
+ protected void checkVersion(String processSourceName, ProcessDefinitionImpl processDefinition, DeploymentImpl deployment, PvmDbSession pvmDbSession) {
+ int version = processDefinition.getVersion();
+ String key = processDefinition.getKey();
+ if ( (version==ProcessDefinitionImpl.UNASSIGNED_VERSION)
+ && ! assignVersion
+ ) {
+ deployment.addProblem("no version specified in process definition "+key);
+ }
+
+ if ( (version==ProcessDefinitionImpl.UNASSIGNED_VERSION)
+ && assignVersion
+ ) {
+ ClientProcessDefinition latestDeployedVersion = pvmDbSession.findLatestProcessDefinitionByKey(key);
+ if (latestDeployedVersion!=null) {
+ version = latestDeployedVersion.getVersion() + 1;
+ } else {
+ version = 1;
+ }
+ log.debug("assigning version "+version+" to process definition "+key);
+ processDefinition.setVersion(version);
+
+ }
+ }
+
+ protected void checkId(String processSourceName, ProcessDefinitionImpl processDefinition, DeploymentImpl deployment, PvmDbSession pvmDbSession) {
+ String id = processDefinition.getId();
+ if (id==null) {
+ id = processDefinition.getKey()+":"+processDefinition.getVersion();
+ log.trace("created id '"+id+"' for "+processDefinition);
+ processDefinition.setId(id);
+ }
+
+ if (pvmDbSession.findProcessDefinitionById(id) != null) {
+ deployment.addProblem("process '" + id + "' already exists");
+ }
+ }
+
+ public void setAssignVersion(boolean assignVersion) {
+ this.assignVersion = assignVersion;
+ }
+
+ public void setAssignKey(boolean assignKey) {
+ this.assignKey = assignKey;
+ }
+
+ public String toString() {
+ return "check-process";
+ }
+}
Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessIdDeployer.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessIdDeployer.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessIdDeployer.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -1,74 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.internal.deploy;
-
-import org.jbpm.ProcessDefinition;
-import org.jbpm.log.Log;
-import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
-import org.jbpm.pvm.internal.svc.DeploymentImpl;
-
-
-/**
- * @author Tom Baeyens
- */
-public class CheckProcessIdDeployer implements Deployer {
-
- private static final Log log = Log.getLog(CheckProcessIdDeployer.class.getName());
-
- public void deploy(DeploymentImpl deployment) {
- for (String objectName : deployment.getObjectNames()) {
- Object object = deployment.getObject(objectName);
- if (object instanceof ProcessDefinition) {
- createId((ProcessDefinitionImpl)object, deployment);
- }
- }
- }
-
- private void createId(ProcessDefinitionImpl processDefinition, DeploymentImpl deployment) {
- if (processDefinition.getKey()==null) {
- String key = processDefinition.getKey();
- if (key==null) {
- key = processDefinition.getName();
- }
-
- if ("".equals(key)) {
- deployment.addProblem("empty string is not a valid key");
- }
-
- // replace any non-word character with an underscore
- key = key.replaceAll("\\W", "_");
-
- processDefinition.setKey(key);
- }
-
- if (processDefinition.getId()==null) {
- String id = processDefinition.getKey()+":"+processDefinition.getVersion();
-
- log.trace("created id '"+id+"' for "+processDefinition);
- processDefinition.setId(id);
- }
- }
-
- public String toString() {
- return "check-process-id";
- }
-}
Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessVersionDeployer.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessVersionDeployer.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessVersionDeployer.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -1,101 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.internal.deploy;
-
-import org.jbpm.ProcessDefinition;
-import org.jbpm.client.ClientProcessDefinition;
-import org.jbpm.env.Environment;
-import org.jbpm.log.Log;
-import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
-import org.jbpm.pvm.internal.svc.DeploymentImpl;
-import org.jbpm.session.PvmDbSession;
-
-/**
- * @author Tom Baeyens
- */
-public class CheckProcessVersionDeployer implements Deployer {
-
- private static final Log log = Log.getLog(CheckProcessVersionDeployer.class.getName());
-
- protected boolean assign = true;
-
- public void deploy(DeploymentImpl deployment) {
- for (String objectName : deployment.getObjectNames()) {
- Object object = deployment.getObject(objectName);
- if (object instanceof ProcessDefinition) {
- checkProcessDefinition((ProcessDefinitionImpl)object, deployment);
- }
- }
- }
-
- public void checkProcessDefinition(ProcessDefinitionImpl processDefinition, DeploymentImpl deployment) {
- String name = processDefinition.getName();
- if (name == null) {
- deployment.addProblem("process must have a name to deploy it");
- }
-
- int version = processDefinition.getVersion();
- if ( (version==ProcessDefinitionImpl.UNASSIGNED_VERSION)
- && ! assign
- ) {
- deployment.addProblem("no version specified in process definition "+name);
- }
-
- Environment environment = Environment.getCurrent();
- if (environment==null) {
- deployment.addProblem("environment is required by deployer check-version");
- return;
- }
-
- PvmDbSession pvmDbSession = environment.get(PvmDbSession.class);
- if (pvmDbSession==null) {
- deployment.addProblem(PvmDbSession.class.getName()+" is required in the environment by "+getClass().getName());
- return;
- }
-
- if ( (version==ProcessDefinitionImpl.UNASSIGNED_VERSION)
- && assign
- ) {
- ClientProcessDefinition latestDeployedVersion = pvmDbSession.findLatestProcessDefinitionByName(name);
- if (latestDeployedVersion!=null) {
- version = latestDeployedVersion.getVersion() + 1;
- } else {
- version = 1;
- }
- log.debug("assigning version "+version+" to process definition "+name);
- processDefinition.setVersion(version);
-
- } else {
- if (pvmDbSession.findProcessDefinitionByName(name, version) != null) {
- deployment.addProblem("process '" + name + "' version " + version + " already exists");
- }
- }
- }
-
- public void setAssign(boolean assign) {
- this.assign = assign;
- }
-
- public String toString() {
- return "check-process-version";
- }
-}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/HibernatePvmDbSession.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/HibernatePvmDbSession.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/HibernatePvmDbSession.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -45,11 +45,73 @@
public HibernatePvmDbSession() {
}
- public List<String> findProcessDefinitionNames() {
+ // process definition queries ///////////////////////////////////////////////
+
+ public List<String> findProcessDefinitionKeys() {
// query definition can be found at the bottom of resource jbpm.pvm.definition.hbm.xml
- return session.getNamedQuery("findProcessDefinitionNames").list();
+ return session.getNamedQuery("findProcessDefinitionKeys").list();
}
+ public ClientProcessDefinition findLatestProcessDefinitionByKey(String processDefinitionKey) {
+ // query definition can be found at the bottom of resource jbpm.pvm.definition.hbm.xml
+ Query query = session.getNamedQuery("findProcessDefinitionsByKey");
+ query.setString("key", processDefinitionKey);
+ query.setMaxResults(1);
+ ClientProcessDefinition processDefinition = (ClientProcessDefinition) query.uniqueResult();
+ return processDefinition;
+ }
+
+ public List<ClientProcessDefinition> findProcessDefinitionsByKey(String processDefinitionKey) {
+ // query definition can be found at the bottom of resource jbpm.pvm.definition.hbm.xml
+ Query query = session.getNamedQuery("findProcessDefinitionsByKey");
+ query.setString("key", processDefinitionKey);
+ return query.list();
+ }
+
+ public ClientProcessDefinition findProcessDefinitionById(String processDefinitionId) {
+ // query definition can be found at the bottom of resource jbpm.pvm.definition.hbm.xml
+ Query query = session.getNamedQuery("findProcessDefinitionById");
+ query.setString("id", processDefinitionId);
+ query.setMaxResults(1);
+ ClientProcessDefinition processDefinition = (ClientProcessDefinition) query.uniqueResult();
+ return processDefinition;
+ }
+
+ public String findProcessDefinitionKeyByName(String processDefinitionName) {
+ // query definition can be found at the bottom of resource jbpm.pvm.definition.hbm.xml
+ Query query = session.getNamedQuery("findProcessDefinitionKeysByName");
+ query.setString("name", processDefinitionName);
+ query.setMaxResults(1);
+ return (String) query.uniqueResult();
+ }
+
+ public String findProcessDefinitionNameByKey(String processDefinitionKey) {
+ // query definition can be found at the bottom of resource jbpm.pvm.definition.hbm.xml
+ Query query = session.getNamedQuery("findProcessDefinitionNamesByKey");
+ query.setString("key", processDefinitionKey);
+ query.setMaxResults(1);
+ return (String) query.uniqueResult();
+ }
+
+ public void deleteProcessDefinition(String processDefinitionId, boolean deleteProcessInstances) {
+ List<String> processInstanceIds = findProcessInstanceIds(processDefinitionId);
+
+ if (deleteProcessInstances) {
+ for (String processInstanceId : processInstanceIds) {
+ deleteProcessInstance(processInstanceId);
+ }
+ } else {
+ if (processInstanceIds.size()>0) {
+ throw new JbpmException("still "+processInstanceIds.size()+" process instances for process definition "+processDefinitionId);
+ }
+ }
+
+ ProcessDefinition processDefinition = findProcessDefinitionById(processDefinitionId);
+ session.delete(processDefinition);
+ }
+
+ // process execution queries ////////////////////////////////////////////////
+
public List<ClientProcessDefinition> findProcessDefinitionsByName(String processDefinitionName) {
// query definition can be found at the bottom of resource jbpm.pvm.definition.hbm.xml
Query query = session.getNamedQuery("findProcessDefinitionsByName");
@@ -75,24 +137,6 @@
return processDefinition;
}
- public ClientProcessDefinition findLatestProcessDefinitionByKey(String processDefinitionKey) {
- // query definition can be found at the bottom of resource jbpm.pvm.definition.hbm.xml
- Query query = session.getNamedQuery("findProcessDefinitionsByKey");
- query.setString("key", processDefinitionKey);
- query.setMaxResults(1);
- ClientProcessDefinition processDefinition = (ClientProcessDefinition) query.uniqueResult();
- return processDefinition;
- }
-
- public ClientProcessDefinition findProcessDefinitionById(String processDefinitionId) {
- // query definition can be found at the bottom of resource jbpm.pvm.definition.hbm.xml
- Query query = session.getNamedQuery("findProcessDefinitionsById");
- query.setString("id", processDefinitionId);
- query.setMaxResults(1);
- ClientProcessDefinition processDefinition = (ClientProcessDefinition) query.uniqueResult();
- return processDefinition;
- }
-
public ClientExecution findExecutionById(String executionId) {
// query definition can be found at the bottom of resource jbpm.pvm.execution.hbm.xml
Query query = session.getNamedQuery("findExecutionById");
@@ -146,21 +190,4 @@
log.debug("deleting process instance "+processInstanceId);
session.delete(processInstance);
}
-
- public void deleteProcessDefinition(String processDefinitionId, boolean deleteProcessInstances) {
- List<String> processInstanceIds = findProcessInstanceIds(processDefinitionId);
-
- if (deleteProcessInstances) {
- for (String processInstanceId : processInstanceIds) {
- deleteProcessInstance(processInstanceId);
- }
- } else {
- if (processInstanceIds.size()>0) {
- throw new JbpmException("still "+processInstanceIds.size()+" process instances for process definition "+processDefinitionId);
- }
- }
-
- ProcessDefinition processDefinition = findProcessDefinitionById(processDefinitionId);
- session.delete(processDefinition);
- }
}
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 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ExecutionServiceImpl.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -62,37 +62,20 @@
}
- public Execution startExecutionByName(String processDefinitionName) {
- return commandService.execute(new StartExecutionInLatestCmd(processDefinitionName, null, null, null));
- }
-
- public Execution startExecutionByName(String processDefinitionName, Map<String, Object> variables){
- return commandService.execute(new StartExecutionInLatestCmd(processDefinitionName, null, variables, null));
- }
-
- public Execution startExecutionByName(String processDefinitionName, String executionKey) {
- return commandService.execute(new StartExecutionInLatestCmd(processDefinitionName, null, null, executionKey));
- }
-
- public Execution startExecutionByName(String processDefinitionName, Map<String, Object> variables, String executionKey){
- return commandService.execute(new StartExecutionInLatestCmd(processDefinitionName, null, variables, executionKey));
- }
-
-
public Execution startExecutionByKey(String processDefinitionKey) {
- return commandService.execute(new StartExecutionInLatestCmd(null, processDefinitionKey, null, null));
+ return commandService.execute(new StartExecutionInLatestCmd(processDefinitionKey, null, null));
}
public Execution startExecutionByKey(String processDefinitionKey, Map<String, Object> variables){
- return commandService.execute(new StartExecutionInLatestCmd(null, processDefinitionKey, variables, null));
+ return commandService.execute(new StartExecutionInLatestCmd(processDefinitionKey, variables, null));
}
public Execution startExecutionByKey(String processDefinitionKey, String executionKey) {
- return commandService.execute(new StartExecutionInLatestCmd(null, processDefinitionKey, null, executionKey));
+ return commandService.execute(new StartExecutionInLatestCmd(processDefinitionKey, null, executionKey));
}
public Execution startExecutionByKey(String processDefinitionKey, Map<String, Object> variables, String executionKey){
- return commandService.execute(new StartExecutionInLatestCmd(null, processDefinitionKey, variables, executionKey));
+ return commandService.execute(new StartExecutionInLatestCmd(processDefinitionKey, variables, executionKey));
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ProcessServiceImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ProcessServiceImpl.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ProcessServiceImpl.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -31,10 +31,9 @@
import org.jbpm.pvm.internal.cmd.DeleteProcessDefinitionCmd;
import org.jbpm.pvm.internal.cmd.DeployCmd;
import org.jbpm.pvm.internal.cmd.FindLatestProcessDefinitionByKeyCmd;
-import org.jbpm.pvm.internal.cmd.FindLatestProcessDefinitionByNameCmd;
-import org.jbpm.pvm.internal.cmd.FindProcessDefinitionCmd;
-import org.jbpm.pvm.internal.cmd.FindProcessDefinitionNamesCmd;
-import org.jbpm.pvm.internal.cmd.FindProcessDefinitionsCmd;
+import org.jbpm.pvm.internal.cmd.FindProcessDefinitionByIdCmd;
+import org.jbpm.pvm.internal.cmd.FindProcessDefinitionKeysCmd;
+import org.jbpm.pvm.internal.cmd.FindProcessDefinitionsByKeyCmd;
/** {@link ProcessService} implementation that delegates execution of the
* methods to a {@link CommandService}.
@@ -45,39 +44,26 @@
protected CommandService commandService;
- public List<ProcessDefinition> deploy(OpenProcessDefinition processDefinition) {
- DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
- return commandService.execute(new DeployCmd(deploymentImpl));
- }
-
public Deployment createDeployment() {
return new DeploymentImpl(this);
}
- public List<ProcessDefinition> deploy(Deployment deployment) {
- return commandService.execute(new DeployCmd((DeploymentImpl)deployment));
+ public List<String> findProcessDefinitionKeys() {
+ return commandService.execute(new FindProcessDefinitionKeysCmd());
}
- public ProcessDefinition findLatestProcessDefinitionByName(String processDefinitionName) {
- return commandService.execute(new FindLatestProcessDefinitionByNameCmd(processDefinitionName));
- }
-
public ProcessDefinition findLatestProcessDefinitionByKey(String processDefinitionKey) {
return commandService.execute(new FindLatestProcessDefinitionByKeyCmd(processDefinitionKey));
}
- public ProcessDefinition findProcessDefinition(String processDefinitionName, int version) {
- return commandService.execute(new FindProcessDefinitionCmd(processDefinitionName, version));
+ public List<ProcessDefinition> findProcessDefinitionsByKey(String processDefinitionName) {
+ return (List)commandService.execute(new FindProcessDefinitionsByKeyCmd(processDefinitionName));
}
- public List<String> findProcessDefinitionNames() {
- return commandService.execute(new FindProcessDefinitionNamesCmd());
+ public ProcessDefinition findProcessDefinitionById(String processDefinitionId) {
+ return commandService.execute(new FindProcessDefinitionByIdCmd(processDefinitionId));
}
- public List<ProcessDefinition> findProcessDefinitions(String processDefinitionName) {
- return (List)commandService.execute(new FindProcessDefinitionsCmd(processDefinitionName));
- }
-
public void deleteProcessDefinition(String processDefinitionId) {
commandService.execute(new DeleteProcessDefinitionCmd(processDefinitionId));
}
@@ -86,6 +72,18 @@
commandService.execute(new DeleteProcessDefinitionCmd(processDefinitionId, true));
}
+
+
+ public List<ProcessDefinition> deploy(Deployment deployment) {
+ return commandService.execute(new DeployCmd((DeploymentImpl)deployment));
+ }
+
+ public List<ProcessDefinition> deploy(OpenProcessDefinition processDefinition) {
+ DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
+ return commandService.execute(new DeployCmd(deploymentImpl));
+ }
+
+
public CommandService getCommandService() {
return commandService;
}
Copied: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/CheckProcessBinding.java (from rev 3159, jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/CheckProcessVersionBinding.java)
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/CheckProcessBinding.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/CheckProcessBinding.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.pvm.internal.wire.binding;
+
+import org.jbpm.pvm.internal.deploy.CheckProcessDeployer;
+import org.jbpm.pvm.internal.util.XmlUtil;
+import org.jbpm.pvm.internal.wire.descriptor.ProvidedObjectDescriptor;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.jbpm.pvm.internal.xml.Parser;
+import org.w3c.dom.Element;
+
+
+/** parses a descriptor creating a {@link CheckProcessDeployer version verification deployer}.
+ *
+ * See schema docs for more details.
+ *
+ * @author Tom Baeyens
+ */
+public class CheckProcessBinding extends WireDescriptorBinding {
+
+ public static final String TAG = "check-process";
+
+ public CheckProcessBinding() {
+ super(TAG);
+ }
+
+ public Object parse(Element element, Parse parse, Parser parser) {
+ CheckProcessDeployer checkProcessDeployer = new CheckProcessDeployer();
+
+ Boolean assignVersion = XmlUtil.attributeBoolean(element, "assign-version", false, parse, null);
+ if (assignVersion!=null) {
+ checkProcessDeployer.setAssignVersion(assignVersion);
+ }
+
+ Boolean assignKey = XmlUtil.attributeBoolean(element, "assign-key", false, parse, null);
+ if (assignKey!=null) {
+ checkProcessDeployer.setAssignKey(assignKey);
+ }
+
+ return new ProvidedObjectDescriptor(checkProcessDeployer);
+ }
+}
Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/CheckProcessIdBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/CheckProcessIdBinding.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/CheckProcessIdBinding.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -1,45 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.internal.wire.binding;
-
-import org.jbpm.pvm.internal.deploy.CheckProcessIdDeployer;
-import org.jbpm.pvm.internal.wire.descriptor.ProvidedObjectDescriptor;
-import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
-import org.w3c.dom.Element;
-
-
-/**
- * @author Tom Baeyens
- */
-public class CheckProcessIdBinding extends WireDescriptorBinding {
-
- public CheckProcessIdBinding() {
- super("check-process-id");
- }
-
- public Object parse(Element element, Parse parse, Parser parser) {
- CheckProcessIdDeployer checkProcessIdDeployer = new CheckProcessIdDeployer();
- return new ProvidedObjectDescriptor(checkProcessIdDeployer);
- }
-
-}
Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/CheckProcessVersionBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/CheckProcessVersionBinding.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/CheckProcessVersionBinding.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -1,58 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.internal.wire.binding;
-
-import org.jbpm.pvm.internal.deploy.CheckProcessVersionDeployer;
-import org.jbpm.pvm.internal.util.XmlUtil;
-import org.jbpm.pvm.internal.wire.Descriptor;
-import org.jbpm.pvm.internal.wire.descriptor.FalseDescriptor;
-import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
-import org.jbpm.pvm.internal.wire.descriptor.ProvidedObjectDescriptor;
-import org.jbpm.pvm.internal.wire.descriptor.TrueDescriptor;
-import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
-import org.w3c.dom.Element;
-
-
-/** parses a descriptor creating a {@link CheckProcessVersionDeployer version verification deployer}.
- *
- * See schema docs for more details.
- *
- * @author Tom Baeyens
- */
-public class CheckProcessVersionBinding extends WireDescriptorBinding {
-
- public CheckProcessVersionBinding() {
- super("check-process-version");
- }
-
- public Object parse(Element element, Parse parse, Parser parser) {
- CheckProcessVersionDeployer checkProcessVersionDeployer = new CheckProcessVersionDeployer();
-
- Boolean assign = XmlUtil.attributeBoolean(element, "assign", false, parse, null);
- if (assign!=null) {
- checkProcessVersionDeployer.setAssign(assign);
- }
-
- return new ProvidedObjectDescriptor(checkProcessVersionDeployer);
- }
-}
Modified: jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.definition.hbm.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.definition.hbm.xml 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.definition.hbm.xml 2008-12-03 17:06:54 UTC (rev 3184)
@@ -383,49 +383,45 @@
<!-- ### QUERIES ######################################################## -->
- <query name="findProcessDefinitionNames">
+ <query name="findProcessDefinitionKeys">
<![CDATA[
- select distinct process.name
+ select distinct process.key
from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
- order by process.name asc
+ order by process.key asc
]]>
</query>
- <query name="findProcessDefinitionsByName">
+ <query name="findProcessDefinitionsByKey">
<![CDATA[
select process
from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
- where process.name = :name
+ where process.key = :key
order by process.version desc
]]>
</query>
- <query name="findProcessDefinitionsByKey">
+ <query name="findProcessDefinitionById">
<![CDATA[
select process
from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
- where process.key = :key
- order by process.version desc
+ where process.id = :id
]]>
</query>
-
- <query name="findProcessDefinitionByNameAndVersion">
+
+ <query name="findProcessDefinitionKeysByName">
<![CDATA[
- select process
+ select process.key
from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
where process.name = :name
- and process.version = :version
]]>
</query>
- <query name="findProcessDefinitionsById">
+ <query name="findProcessDefinitionNamesByKey">
<![CDATA[
- select process
+ select process.name
from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
- where process.id = :id
+ where process.key = :key
]]>
</query>
-
-
-
+
</hibernate-mapping>
\ No newline at end of file
Modified: jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.wire.bindings.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.wire.bindings.xml 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.wire.bindings.xml 2008-12-03 17:06:54 UTC (rev 3184)
@@ -59,8 +59,7 @@
<!-- deployers -->
<binding class="org.jbpm.pvm.internal.wire.binding.DeployerManagerBinding" />
<binding class="org.jbpm.pvm.internal.wire.binding.AssignFileTypesBinding" />
- <binding class="org.jbpm.pvm.internal.wire.binding.CheckProcessVersionBinding" />
- <binding class="org.jbpm.pvm.internal.wire.binding.CheckProcessIdBinding" />
+ <binding class="org.jbpm.pvm.internal.wire.binding.CheckProcessBinding" />
<binding class="org.jbpm.pvm.internal.wire.binding.CheckProblemsBinding" />
<binding class="org.jbpm.pvm.internal.wire.binding.SaveBinding" />
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/AutomaticDecisionDbTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/AutomaticDecisionDbTest.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/AutomaticDecisionDbTest.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -78,7 +78,7 @@
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("creditRate", 7);
- Execution execution = executionService.startExecutionByName("creditProcess", variables);
+ Execution execution = executionService.startExecutionByKey("creditProcess", variables);
assertEquals("priority delivery", execution.getNodeName());
}
@@ -90,7 +90,7 @@
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("creditRate", 2);
- Execution execution = executionService.startExecutionByName("creditProcess", variables);
+ Execution execution = executionService.startExecutionByKey("creditProcess", variables);
assertEquals("bulk delivery", execution.getNodeName());
@@ -103,7 +103,7 @@
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("creditRate", -7);
- Execution execution = executionService.startExecutionByName("creditProcess", variables);
+ Execution execution = executionService.startExecutionByKey("creditProcess", variables);
assertEquals("payment upfront", execution.getNodeName());
}
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/continuation/ContinuationTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/continuation/ContinuationTest.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/continuation/ContinuationTest.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -105,9 +105,14 @@
public Object execute(Environment environment) throws Exception
{
log.debug("building process 'continuations'");
- OpenProcessDefinition processDefinition = ProcessFactory.build("continuations").node("start").initial().behaviour(
- AutomaticActivity.class).asyncExecute().transition().to("a").node("a").behaviour(AutomaticActivity.class).asyncExecute()
- .transition().to("b").node("b").behaviour(AutomaticActivity.class).asyncExecute().transition().to("c").node("c").behaviour(
+ OpenProcessDefinition processDefinition = ProcessFactory.build("continuations")
+ .node("start").initial().behaviour(AutomaticActivity.class)
+ .asyncExecute()
+ .transition().to("a")
+ .node("a").behaviour(AutomaticActivity.class)
+ .asyncExecute()
+ .transition().to("b")
+ .node("b").behaviour(AutomaticActivity.class).asyncExecute().transition().to("c").node("c").behaviour(
AutomaticActivity.class).asyncExecute().transition().to("end").node("end").behaviour(WaitState.class).done();
log.debug("saving process 'continuations'");
@@ -126,7 +131,7 @@
public Object execute(Environment environment) throws Exception
{
PvmDbSession pvmDbSession = environment.get(PvmDbSession.class);
- ClientProcessDefinition processDefinition = pvmDbSession.findLatestProcessDefinitionByName("continuations");
+ ClientProcessDefinition processDefinition = pvmDbSession.findLatestProcessDefinitionByKey("continuations");
ClientExecution execution = processDefinition.startProcessInstance();
pvmDbSession.save(execution);
return null;
Deleted: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ExecutionServiceTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ExecutionServiceTest.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ExecutionServiceTest.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -1,325 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.api.db.svc;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import junit.framework.Test;
-
-import org.jbpm.Execution;
-import org.jbpm.ExecutionService;
-import org.jbpm.ProcessDefinition;
-import org.jbpm.ProcessService;
-import org.jbpm.client.ClientProcessDefinition;
-import org.jbpm.pvm.internal.svc.DeploymentImpl;
-import org.jbpm.pvm.model.ProcessFactory;
-import org.jbpm.test.EnvironmentFactoryTestSetup;
-import org.jbpm.test.OldDbTestCase;
-
-/**
- * @author Tom Baeyens
- */
-public class ExecutionServiceTest extends OldDbTestCase
-{
-
- public static Test suite()
- {
- return new EnvironmentFactoryTestSetup(ExecutionServiceTest.class);
- }
-
- public void testStartExecutionById()
- {
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- // deploy process with key 'NCLFU' and version 1
- // then we know that the key for this process will be 'NCLFU:1'
- ClientProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion")
- .version(1)
- .key("NCLFU")
- .node("initial").initial()
- .behaviour(WaitState.class)
- .done();
-
- DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
-
- // start an execution for the process with the given id
- Execution execution = executionService.startExecutionById("NCLFU:1");
- assertNotNull(execution);
-
- // checking the state
- assertEquals("initial", execution.getNodeName());
-
- // checking the generated id
- assertNull(execution.getName());
- assertNull(execution.getKey());
- // if there is no user defined name or key specified in the execution,
- // the default id generator will create a unique id like this: processDefinitionId/execution.dbid
- assertEquals("NCLFU:1/", execution.getId().substring(0, 8));
- // the last part of the execution key should be the dbid.
- Long.parseLong(execution.getId().substring(8));
- }
-
- public void testStartExecutionByIdWithGivenExecutionKey()
- {
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- // deploy the same process with a given key and version
- ClientProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").version(1).key("NCLFU").node("initial").initial()
- .behaviour(WaitState.class).done();
-
- DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
-
- Execution execution = executionService.startExecutionById("NCLFU:1", "TheFirstTime");
- assertNotNull(execution);
-
- // checking the state
- assertEquals("initial", execution.getNodeName());
-
- // checking the generated id
- assertNull(execution.getName());
- assertEquals("TheFirstTime", execution.getKey());
- // if there is a user provided key in the execution, the default
- // id generator will take that to create the id
- assertEquals("NCLFU:1/TheFirstTime", execution.getId());
- }
-
- public void testStartExecutionByIdWithVariables()
- {
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- ClientProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").version(1).key("NCLFU").node("initial").initial()
- .behaviour(WaitState.class).done();
-
- processService.deploy(new DeploymentImpl(processDefinition));
-
- // create the map with variables
- Map<String, Object> variables = new HashMap<String, Object>();
- variables.put("a", new Integer(1));
- variables.put("b", "text");
-
- ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
-
- // provide the variables in the start execution method
- Execution execution = executionService.startExecutionById("NCLFU:1", variables);
- String executionId = execution.getId();
-
- assertEquals(new Integer(1), executionService.getVariable(executionId, "a"));
- assertEquals("text", executionService.getVariable(executionId, "b"));
- }
-
- public void testStartExecutionInLatest()
- {
- // deploy following processes
- // 'nuclear fusion' with id NFU:1
- // 'ultimate seduction' with id USD:1
- // 'ultimate seduction' with id USD:2
- // 'nuclear fusion' with id NFU:2
- // 'publish book' with id PBO:1
- // 'nuclear fusion' with id NFU:3
- deployMultipleVersionsOfProcesses();
-
- ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
-
- // start a nuclear fusion in the latest version of
- // the process definition with name 'nuclear fusion'
- Execution execution = executionService.startExecutionByName("nuclear fusion");
- assertNotNull(execution);
-
- // in the generated id, we can see if the right process definition version was taken
- assertTrue("the execution id shows that the execution is not started in the latest version of the process: " + execution.getId(),
- execution.getId().startsWith("NFU:3/"));
- }
-
- public void testStartExecutionInLatestByNameWithVariables()
- {
- // deploy following processes
- // 'nuclear fusion' with id NFU:1
- // 'ultimate seduction' with id USD:1
- // 'ultimate seduction' with id USD:2
- // 'nuclear fusion' with id NFU:2
- // 'publish book' with id PBO:1
- // 'nuclear fusion' with id NFU:3
- deployMultipleVersionsOfProcesses();
-
- ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
-
- // create variables that are fed into the process before it starts executing
- Map<String, Object> variables = new HashMap<String, Object>();
- variables.put("a", new Integer(1));
- variables.put("b", "text");
-
- // feed the variables in
- Execution execution = executionService.startExecutionByName("nuclear fusion", variables);
- String executionId = execution.getId();
-
- // verify that the variables are actually set
- assertEquals(new Integer(1), executionService.getVariable(executionId, "a"));
- assertEquals("text", executionService.getVariable(executionId, "b"));
-
- // in the generated id, we can see if the right process definition version was taken
- assertTrue("the execution id shows that the execution is not started in the latest version of the process: " + execution.getId(),
- execution.getId().startsWith("NFU:3/"));
- }
-
- public void testStartExecutionByNameWithKey()
- {
- // deploy following processes
- // 'nuclear fusion' with id NFU:1
- // 'ultimate seduction' with id USD:1
- // 'ultimate seduction' with id USD:2
- // 'nuclear fusion' with id NFU:2
- // 'publish book' with id PBO:1
- // 'nuclear fusion' with id NFU:3
- deployMultipleVersionsOfProcesses();
-
- ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
-
- Execution execution = executionService.startExecutionByName("nuclear fusion", "TheFirstTime");
- assertNotNull(execution);
- assertEquals("TheFirstTime", execution.getKey());
- assertEquals("NFU:3/TheFirstTime", execution.getId());
- }
-
- public void testFindExecution()
- {
- // create an arbitrary execution
- Execution execution = startExecution();
- // take the id and see if the execution service can still find it back
- execution = executionService.findExecution(execution.getId());
- assertNotNull(execution);
- }
-
- public void testSetVariable()
- {
- Execution execution = startExecution();
-
- String executionId = execution.getId();
- // set variable a to value text
- executionService.setVariable(executionId, "a", "text");
- // check if we can read that value back
- assertEquals("text", executionService.getVariable(executionId, "a"));
-
- // overwrite the value of variable a with another text
- executionService.setVariable(executionId, "a", "another text");
- // see if we can read another text back from the variable
- assertEquals("another text", executionService.getVariable(executionId, "a"));
- }
-
- public void testSetVariables()
- {
- Execution execution = startExecution();
-
- Map<String, Object> variables = new HashMap<String, Object>();
- variables.put("a", new Integer(1));
- variables.put("b", "text");
-
- // set variables in bulk by providing a map
- executionService.setVariables(execution.getId(), variables);
-
- Map<String, Object> expected = new HashMap<String, Object>(variables);
-
- Set<String> variableNames = new HashSet<String>();
- variableNames.add("a");
- variableNames.add("b");
-
- // read the variables back and compare
- assertEquals(expected, executionService.getVariables(execution.getId(), variableNames));
-
- // now set variables b and c with a map
- variables = new HashMap<String, Object>();
- variables.put("b", new Integer(99));
- variables.put("c", "another text");
-
- // this should leave a untouched, overwrite b and create c
- executionService.setVariables(execution.getId(), variables);
-
- // update the expected map
- expected.put("b", new Integer(99));
- expected.put("c", "another text");
-
- // add c to the variable names that should be collected
- variableNames.add("c");
-
- // read the variables back and compare
- assertEquals(expected, executionService.getVariables(execution.getId(), variableNames));
- }
-
- // helper methods ///////////////////////////////////////////////////////////
-
- /**
- * deploys 3 versions of process with name 'nuclear fusion', 2 versions of the processes 'ultimate seduction' and
- * 'publish book'
- */
- void deployMultipleVersionsOfProcesses()
- {
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- ProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").key("NFU").node("initial").initial().behaviour(
- WaitState.class).done();
- DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- processDefinition = ProcessFactory.build("ultimate seduction").key("USD").node("initial").initial().behaviour(WaitState.class).done();
- deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- processDefinition = ProcessFactory.build("ultimate seduction").key("USD").node("initial").initial().behaviour(WaitState.class).done();
- deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- processDefinition = ProcessFactory.build("nuclear fusion").key("NFU").node("initial").initial().behaviour(WaitState.class).done();
- deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- processDefinition = ProcessFactory.build("publish book").key("PBO").node("initial").initial().behaviour(WaitState.class).done();
- deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- processDefinition = ProcessFactory.build("nuclear fusion").key("NFU").node("initial").initial().behaviour(WaitState.class).done();
- deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
- }
-
- Execution startExecution()
- {
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- ProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").node("initial").initial().behaviour(WaitState.class)
- .done();
- DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
-
- return executionService.startExecutionByName("nuclear fusion");
- }
-}
Deleted: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ManagementServiceTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ManagementServiceTest.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ManagementServiceTest.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -1,48 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.api.db.svc;
-
-import junit.framework.Test;
-
-import org.jbpm.ManagementService;
-import org.jbpm.test.OldDbTestCase;
-import org.jbpm.test.EnvironmentFactoryTestSetup;
-
-/**
- * @author Tom Baeyens
- */
-public class ManagementServiceTest extends OldDbTestCase
-{
-
- public static Test suite()
- {
- return new EnvironmentFactoryTestSetup(ManagementServiceTest.class);
- }
-
- public void testGetJobs()
- {
- ManagementService managementService = getEnvironmentFactory().get(ManagementService.class);
- assertEquals(0, managementService.getTimers(0, 10).size());
- assertEquals(0, managementService.getMessages(0, 10).size());
- }
-
-}
Deleted: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ProcessServiceTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ProcessServiceTest.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ProcessServiceTest.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -1,322 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.api.db.svc;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-
-import org.jbpm.ProcessDefinition;
-import org.jbpm.ProcessService;
-import org.jbpm.JbpmException;
-import org.jbpm.pvm.internal.svc.DeploymentImpl;
-import org.jbpm.pvm.model.ProcessFactory;
-import org.jbpm.test.OldDbTestCase;
-import org.jbpm.test.EnvironmentFactoryTestSetup;
-
-/**
- * @author Tom Baeyens
- */
-public class ProcessServiceTest extends OldDbTestCase
-{
-
- public static Test suite()
- {
- return new EnvironmentFactoryTestSetup(ProcessServiceTest.class);
- }
-
- public void testSimplestDeployment()
- {
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- // create the simplest possible process
- ProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").node("initial").initial().behaviour(WaitState.class)
- .done();
-
- // deploy it
- DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- // fetch it back from the process service
- List<ProcessDefinition> processDefinitions = processService.findProcessDefinitions("nuclear fusion");
- assertNotNull(processDefinitions);
-
- // verify there is only one
- assertEquals(processDefinitions.toString(), 1, processDefinitions.size());
- processDefinition = processDefinitions.get(0);
-
- // verify that it is the right one
- assertEquals("nuclear fusion", processDefinition.getName());
- }
-
- public void testAutomaticVersioning()
- {
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- // create first process and only give it a name
- ProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").node("initial").initial().behaviour(WaitState.class)
- .done();
-
- // deploy it
- DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- // look it up again
- List<ProcessDefinition> processDefinitions = processService.findProcessDefinitions("nuclear fusion");
- assertNotNull(processDefinitions);
-
- // verify that there is only one
- assertEquals(processDefinitions.toString(), 1, processDefinitions.size());
- processDefinition = processDefinitions.get(0);
- // and check that automatically assigned version starts with 1
- assertEquals(1, processDefinition.getVersion());
-
- // create a second process with the same name
- processDefinition = ProcessFactory.build("nuclear fusion").node("initial").initial().behaviour(WaitState.class).done();
-
- // deploy the second process
- deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- // verify that there now are 2 process definitions with that name
- processDefinitions = processService.findProcessDefinitions("nuclear fusion");
- assertNotNull(processDefinitions);
- assertEquals(processDefinitions.toString(), 2, processDefinitions.size());
- // the process definitions are ordered by version in descending order
- // so the first one
- processDefinition = processDefinitions.get(0);
- // is the one that is last deployed
- // and hence it should have the version number 2
- assertEquals(2, processDefinition.getVersion());
- }
-
- public void testUserProvidedVersion()
- {
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- // create a process with a user specified version
- ProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").version(35).node("initial").initial().behaviour(
- WaitState.class).done();
-
- // deploy it
- DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- // load it
- List<ProcessDefinition> processDefinitions = processService.findProcessDefinitions("nuclear fusion");
- assertNotNull(processDefinitions);
- assertEquals(processDefinitions.toString(), 1, processDefinitions.size());
- processDefinition = processDefinitions.get(0);
-
- // verify that the user specified version was used
- // (and not overwritten by an automatically assigned versioning)
- assertEquals(35, processDefinition.getVersion());
- }
-
- public void testIdGenerationFromName()
- {
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- // specify only a name, no key or version in the process
- ProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").node("initial").initial().behaviour(WaitState.class)
- .done();
-
- DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- List<ProcessDefinition> processDefinitions = processService.findProcessDefinitions("nuclear fusion");
- assertNotNull(processDefinitions);
- assertEquals(processDefinitions.toString(), 1, processDefinitions.size());
- processDefinition = processDefinitions.get(0);
- assertEquals("nuclear fusion", processDefinition.getName());
-
- // now check that the generated id. the id generator always replaces all non-word
- // chars [a-zA-Z_0-9] with underscores
- assertEquals("nuclear_fusion:1", processDefinition.getId());
- assertNull(processDefinition.getKey());
- }
-
- public void testIdGenerationFromKey()
- {
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- // now we specify a name and a key
- ProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").key("NCF").node("initial").initial().behaviour(
- WaitState.class).done();
-
- DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- List<ProcessDefinition> processDefinitions = processService.findProcessDefinitions("nuclear fusion");
- assertNotNull(processDefinitions);
- assertEquals(processDefinitions.toString(), 1, processDefinitions.size());
- processDefinition = processDefinitions.get(0);
- assertEquals("nuclear fusion", processDefinition.getName());
-
- // and we check that the id is based on the key (and not on the name)
- assertEquals("NCF:1", processDefinition.getId());
- assertEquals("NCF", processDefinition.getKey());
- }
-
- public void testDuplicateDeployment()
- {
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- // we create a simple process definition
- ProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").version(1).node("initial").initial().behaviour(
- WaitState.class).done();
-
- // deploy it
- processService.deploy(new DeploymentImpl(processDefinition));
-
- // then we create a process definition with the same name and version
- processDefinition = ProcessFactory.build("nuclear fusion").version(1).node("initial").initial().behaviour(WaitState.class).done();
-
- try
- {
- // and then we verify that the deployment fails
- processService.deploy(new DeploymentImpl(processDefinition));
- fail("expected exception");
- }
- catch (JbpmException e)
- {
- assertTextPresent(e.getMessage(), "process 'nuclear fusion' version 1 already exists");
- }
- }
-
- public void testFindProcessDefinitionByNameAndVersion()
- {
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- // create a process with a user specified version
- ProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").version(35).node("initial").initial().behaviour(
- WaitState.class).done();
-
- // deploy it
- DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- // load it with by name and version
- processDefinition = processService.findProcessDefinition("nuclear fusion", 35);
-
- // verify that the right process definition was returned
- assertEquals("nuclear fusion", processDefinition.getName());
- assertEquals(35, processDefinition.getVersion());
- }
-
- public void testFindProcessDefinitionNames()
- {
- deployMultipleVersionsOfProcesses();
-
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- List<String> processNames = processService.findProcessDefinitionNames();
-
- List<String> expected = new ArrayList<String>();
- expected.add("nuclear fusion");
- expected.add("publish book");
- expected.add("ultimate seduction");
-
- assertEquals(expected, processNames);
- }
-
- public void testFindProcessDefinitions()
- {
- deployMultipleVersionsOfProcesses();
-
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- List<ProcessDefinition> processDefinitions = processService.findProcessDefinitions("nuclear fusion");
- assertNotNull(processDefinitions);
-
- assertEquals("expected 3 but was " + processDefinitions.size() + ": " + processDefinitions, 3, processDefinitions.size());
- assertEquals("nuclear fusion", processDefinitions.get(0).getName());
- assertEquals(3, processDefinitions.get(0).getVersion());
-
- assertEquals("nuclear fusion", processDefinitions.get(1).getName());
- assertEquals(2, processDefinitions.get(1).getVersion());
-
- assertEquals("nuclear fusion", processDefinitions.get(2).getName());
- assertEquals(1, processDefinitions.get(2).getVersion());
- }
-
- public void testFindLatestProcessDefinition()
- {
- deployMultipleVersionsOfProcesses();
-
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- ProcessDefinition retrieved = processService.findLatestProcessDefinitionByName("nuclear fusion");
- assertNotNull(retrieved);
-
- assertEquals("nuclear fusion", retrieved.getName());
- assertEquals(3, retrieved.getVersion());
- }
-
- public void testLatestProcessDefinition()
- {
- deployMultipleVersionsOfProcesses();
-
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- ProcessDefinition retrieved = processService.findLatestProcessDefinitionByName("nuclear fusion");
- assertNotNull(retrieved);
-
- assertEquals("nuclear fusion", retrieved.getName());
- assertEquals(3, retrieved.getVersion());
- }
-
- /**
- * deploys 3 versions of process with name 'nuclear fusion', 2 versions of the processes 'ultimate seduction' and
- * 'publish book'
- */
- void deployMultipleVersionsOfProcesses()
- {
- ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
-
- ProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").node("initial").initial().behaviour(WaitState.class)
- .done();
- DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- processDefinition = ProcessFactory.build("ultimate seduction").node("initial").initial().behaviour(WaitState.class).done();
- deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- processDefinition = ProcessFactory.build("ultimate seduction").node("initial").initial().behaviour(WaitState.class).done();
- deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- processDefinition = ProcessFactory.build("nuclear fusion").node("initial").initial().behaviour(WaitState.class).done();
- deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- processDefinition = ProcessFactory.build("publish book").node("initial").initial().behaviour(WaitState.class).done();
- deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
-
- processDefinition = ProcessFactory.build("nuclear fusion").node("initial").initial().behaviour(WaitState.class).done();
- deploymentImpl = new DeploymentImpl(processDefinition);
- processService.deploy(deploymentImpl);
- }
-}
Deleted: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/WaitState.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/WaitState.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/WaitState.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -1,37 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.api.db.svc;
-
-import java.util.Map;
-
-import org.jbpm.activity.ActivityExecution;
-import org.jbpm.activity.ExternalActivity;
-
-public class WaitState implements ExternalActivity {
- private static final long serialVersionUID = 1L;
- public void execute(ActivityExecution execution) {
- execution.waitForSignal();
- }
- public void signal(ActivityExecution execution, String signalName, Map<String, Object> parameters) {
- throw new UnsupportedOperationException();
- }
-}
\ No newline at end of file
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/timer/TimerIntegrationTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/timer/TimerIntegrationTest.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/timer/TimerIntegrationTest.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -74,7 +74,7 @@
DeploymentImpl deploymentImpl = new DeploymentImpl(definition);
processService.deploy(deploymentImpl);
- Execution processInstance = getExecutionService().startExecutionByName(definition.getName());
+ Execution processInstance = getExecutionService().startExecutionByKey(definition.getKey());
return (ExecutionImpl) processInstance;
}
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/langext/LanguageExtensionsDbTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/langext/LanguageExtensionsDbTest.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/db/langext/LanguageExtensionsDbTest.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -74,7 +74,7 @@
newTransaction();
PvmDbSession pvmDbSession = environment.get(PvmDbSession.class);
- Execution execution = pvmDbSession.findLatestProcessDefinitionByName("addresses").startProcessInstance();
+ Execution execution = pvmDbSession.findLatestProcessDefinitionByKey("addresses").startProcessInstance();
assertTrue(execution.isEnded());
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/jobexecutor/JobExecutorTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/jobexecutor/JobExecutorTest.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/jobexecutor/JobExecutorTest.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -42,16 +42,14 @@
import org.jbpm.job.Job;
import org.jbpm.log.Log;
import org.jbpm.model.Comment;
-import org.jbpm.pvm.api.db.svc.ExecutionServiceTest;
import org.jbpm.pvm.internal.job.CommandMessage;
import org.jbpm.pvm.internal.job.JobImpl;
-import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
import org.jbpm.pvm.internal.svc.DeploymentImpl;
import org.jbpm.pvm.model.ProcessFactory;
import org.jbpm.session.MessageSession;
import org.jbpm.session.PvmDbSession;
-import org.jbpm.test.OldDbTestCase;
import org.jbpm.test.EnvironmentFactoryTestSetup;
+import org.jbpm.test.OldDbTestCase;
/**
* @author Tom Baeyens
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/samples/ex02/BasicProcessPersistenceTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/samples/ex02/BasicProcessPersistenceTest.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/samples/ex02/BasicProcessPersistenceTest.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -60,7 +60,7 @@
ExecutionService executionService = ExamplesConfiguration.getExecutionService();
- Execution execution = executionService.startExecutionByName("basic", "one");
+ Execution execution = executionService.startExecutionByKey("basic", "one");
assertEquals("a", execution.getNodeName());
Modified: jbpm4/trunk/modules/pvm/src/test/resources/environment.cfg.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/resources/environment.cfg.xml 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/test/resources/environment.cfg.xml 2008-12-03 17:06:54 UTC (rev 3184)
@@ -8,8 +8,7 @@
<assign-file-type>
<file extension=".jpdl.xml" type="jpdl" />
</assign-file-type>
- <check-process-version />
- <check-process-id />
+ <check-process />
<check-problems />
<save />
</deployer-manager>
Modified: jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/pvm/api/db/svc/environment.cfg.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/pvm/api/db/svc/environment.cfg.xml 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/pvm/api/db/svc/environment.cfg.xml 2008-12-03 17:06:54 UTC (rev 3184)
@@ -8,8 +8,7 @@
<assign-file-type>
<file extension=".jpdl.xml" type="jpdl" />
</assign-file-type>
- <check-process-version />
- <check-process-id />
+ <check-process />
<check-problems />
<save />
</deployer-manager>
Modified: jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/pvm/api/timer/environment.cfg.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/pvm/api/timer/environment.cfg.xml 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/pvm/api/timer/environment.cfg.xml 2008-12-03 17:06:54 UTC (rev 3184)
@@ -20,8 +20,7 @@
<assign-file-type>
<file extension=".jpdl.xml" type="jpdl" />
</assign-file-type>
- <check-process-version />
- <check-process-id />
+ <check-process />
<check-problems />
<save />
</deployer-manager>
Modified: jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/pvm/internal/db/langext/environment.cfg.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/pvm/internal/db/langext/environment.cfg.xml 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/pvm/src/test/resources/org/jbpm/pvm/internal/db/langext/environment.cfg.xml 2008-12-03 17:06:54 UTC (rev 3184)
@@ -8,8 +8,7 @@
<assign-file-type>
<file extension=".jpdl.xml" type="jpdl" />
</assign-file-type>
- <check-process-version />
- <check-process-id />
+ <check-process />
<check-problems />
<save />
</deployer-manager>
Modified: jbpm4/trunk/modules/task/src/test/resources/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/task/src/test/resources/jbpm.cfg.xml 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/task/src/test/resources/jbpm.cfg.xml 2008-12-03 17:06:54 UTC (rev 3184)
@@ -8,8 +8,7 @@
<assign-file-type>
<file extension=".jpdl.xml" type="jpdl" />
</assign-file-type>
- <check-process-version />
- <check-process-id />
+ <check-process />
<check-problems />
<save />
</deployer-manager>
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -75,7 +75,7 @@
"</process>"
);
- Execution execution = executionService.startExecutionByName("p", "one");
+ Execution execution = executionService.startExecutionByKey("p", "one");
assertEquals("ed", execution.getNodeName());
execution = executionService.signalExecution("p/one", "left");
assertEquals("b", execution.getNodeName());
@@ -106,7 +106,7 @@
"</process>"
);
- executionService.startExecutionByName("p", "one");
+ executionService.startExecutionByKey("p", "one");
try {
executionService.signalExecution("p/one", "left");
} catch (JbpmException e) {
@@ -131,7 +131,7 @@
"</process>"
);
- executionService.startExecutionByName("p", "one");
+ executionService.startExecutionByKey("p", "one");
Execution execution = executionService.signalExecution("p/one", "up");
assertEquals("a", execution.getNodeName());
}
@@ -146,7 +146,7 @@
"</process>"
);
- executionService.startExecutionByName("p", "one");
+ executionService.startExecutionByKey("p", "one");
Execution execution = executionService.signalExecution("p/one");
assertEquals("a", execution.getNodeName());
}
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ExecutionServiceTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ExecutionServiceTest.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ExecutionServiceTest.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -21,7 +21,6 @@
*/
package org.jbpm.test.svc;
-import org.jbpm.Execution;
import org.jbpm.test.DbTestCase;
@@ -29,7 +28,11 @@
* @author Tom Baeyens
*/
public class ExecutionServiceTest extends DbTestCase {
-
+
+ public void testDummy() {
+ }
+
+ /*
public void testDefaultSignalWithoutTransitions() {
deployJpdlXmlString(
"<process name='p'>" +
@@ -44,4 +47,278 @@
Execution execution = executionService.signalExecution("p/one");
assertEquals("a", execution.getNodeName());
}
+
+ public void testStartExecutionById()
+ {
+ ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
+
+ // deploy process with key 'NCLFU' and version 1
+ // then we know that the key for this process will be 'NCLFU:1'
+ ClientProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion")
+ .version(1)
+ .key("NCLFU")
+ .node("initial").initial()
+ .behaviour(WaitState.class)
+ .done();
+
+ DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
+ processService.deploy(deploymentImpl);
+
+ ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
+
+ // start an execution for the process with the given id
+ Execution execution = executionService.startExecutionById("NCLFU:1");
+ assertNotNull(execution);
+
+ // checking the state
+ assertEquals("initial", execution.getNodeName());
+
+ // checking the generated id
+ assertNull(execution.getName());
+ assertNull(execution.getKey());
+ // if there is no user defined name or key specified in the execution,
+ // the default id generator will create a unique id like this: processDefinitionId/execution.dbid
+ assertEquals("NCLFU:1/", execution.getId().substring(0, 8));
+ // the last part of the execution key should be the dbid.
+ Long.parseLong(execution.getId().substring(8));
+ }
+
+ public void testStartExecutionByIdWithGivenExecutionKey()
+ {
+ ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
+
+ // deploy the same process with a given key and version
+ ClientProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").version(1).key("NCLFU").node("initial").initial()
+ .behaviour(WaitState.class).done();
+
+ DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
+ processService.deploy(deploymentImpl);
+
+ ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
+
+ Execution execution = executionService.startExecutionById("NCLFU:1", "TheFirstTime");
+ assertNotNull(execution);
+
+ // checking the state
+ assertEquals("initial", execution.getNodeName());
+
+ // checking the generated id
+ assertNull(execution.getName());
+ assertEquals("TheFirstTime", execution.getKey());
+ // if there is a user provided key in the execution, the default
+ // id generator will take that to create the id
+ assertEquals("NCLFU:1/TheFirstTime", execution.getId());
+ }
+
+ public void testStartExecutionByIdWithVariables()
+ {
+ ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
+
+ ClientProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").version(1).key("NCLFU").node("initial").initial()
+ .behaviour(WaitState.class).done();
+
+ processService.deploy(new DeploymentImpl(processDefinition));
+
+ // create the map with variables
+ Map<String, Object> variables = new HashMap<String, Object>();
+ variables.put("a", new Integer(1));
+ variables.put("b", "text");
+
+ ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
+
+ // provide the variables in the start execution method
+ Execution execution = executionService.startExecutionById("NCLFU:1", variables);
+ String executionId = execution.getId();
+
+ assertEquals(new Integer(1), executionService.getVariable(executionId, "a"));
+ assertEquals("text", executionService.getVariable(executionId, "b"));
+ }
+
+ public void testStartExecutionInLatest()
+ {
+ // deploy following processes
+ // 'nuclear fusion' with id NFU:1
+ // 'ultimate seduction' with id USD:1
+ // 'ultimate seduction' with id USD:2
+ // 'nuclear fusion' with id NFU:2
+ // 'publish book' with id PBO:1
+ // 'nuclear fusion' with id NFU:3
+ deployMultipleVersionsOfProcesses();
+
+ ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
+
+ // start a nuclear fusion in the latest version of
+ // the process definition with name 'nuclear fusion'
+ Execution execution = executionService.startExecutionByKey("NFU");
+ assertNotNull(execution);
+
+ // in the generated id, we can see if the right process definition version was taken
+ assertTrue("the execution id shows that the execution is not started in the latest version of the process: " + execution.getId(),
+ execution.getId().startsWith("NFU:3/"));
+ }
+
+ public void testStartExecutionInLatestByNameWithVariables()
+ {
+ // deploy following processes
+ // 'nuclear fusion' with id NFU:1
+ // 'ultimate seduction' with id USD:1
+ // 'ultimate seduction' with id USD:2
+ // 'nuclear fusion' with id NFU:2
+ // 'publish book' with id PBO:1
+ // 'nuclear fusion' with id NFU:3
+ deployMultipleVersionsOfProcesses();
+
+ ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
+
+ // create variables that are fed into the process before it starts executing
+ Map<String, Object> variables = new HashMap<String, Object>();
+ variables.put("a", new Integer(1));
+ variables.put("b", "text");
+
+ // feed the variables in
+ Execution execution = executionService.startExecutionByName("nuclear fusion", variables);
+ String executionId = execution.getId();
+
+ // verify that the variables are actually set
+ assertEquals(new Integer(1), executionService.getVariable(executionId, "a"));
+ assertEquals("text", executionService.getVariable(executionId, "b"));
+
+ // in the generated id, we can see if the right process definition version was taken
+ assertTrue("the execution id shows that the execution is not started in the latest version of the process: " + execution.getId(),
+ execution.getId().startsWith("NFU:3/"));
+ }
+
+ public void testStartExecutionByNameWithKey()
+ {
+ // deploy following processes
+ // 'nuclear fusion' with id NFU:1
+ // 'ultimate seduction' with id USD:1
+ // 'ultimate seduction' with id USD:2
+ // 'nuclear fusion' with id NFU:2
+ // 'publish book' with id PBO:1
+ // 'nuclear fusion' with id NFU:3
+ deployMultipleVersionsOfProcesses();
+
+ ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
+
+ Execution execution = executionService.startExecutionByName("nuclear fusion", "TheFirstTime");
+ assertNotNull(execution);
+ assertEquals("TheFirstTime", execution.getKey());
+ assertEquals("NFU:3/TheFirstTime", execution.getId());
+ }
+
+ public void testFindExecution()
+ {
+ // create an arbitrary execution
+ Execution execution = startExecution();
+ // take the id and see if the execution service can still find it back
+ execution = executionService.findExecution(execution.getId());
+ assertNotNull(execution);
+ }
+
+ public void testSetVariable()
+ {
+ Execution execution = startExecution();
+
+ String executionId = execution.getId();
+ // set variable a to value text
+ executionService.setVariable(executionId, "a", "text");
+ // check if we can read that value back
+ assertEquals("text", executionService.getVariable(executionId, "a"));
+
+ // overwrite the value of variable a with another text
+ executionService.setVariable(executionId, "a", "another text");
+ // see if we can read another text back from the variable
+ assertEquals("another text", executionService.getVariable(executionId, "a"));
+ }
+
+ public void testSetVariables()
+ {
+ Execution execution = startExecution();
+
+ Map<String, Object> variables = new HashMap<String, Object>();
+ variables.put("a", new Integer(1));
+ variables.put("b", "text");
+
+ // set variables in bulk by providing a map
+ executionService.setVariables(execution.getId(), variables);
+
+ Map<String, Object> expected = new HashMap<String, Object>(variables);
+
+ Set<String> variableNames = new HashSet<String>();
+ variableNames.add("a");
+ variableNames.add("b");
+
+ // read the variables back and compare
+ assertEquals(expected, executionService.getVariables(execution.getId(), variableNames));
+
+ // now set variables b and c with a map
+ variables = new HashMap<String, Object>();
+ variables.put("b", new Integer(99));
+ variables.put("c", "another text");
+
+ // this should leave a untouched, overwrite b and create c
+ executionService.setVariables(execution.getId(), variables);
+
+ // update the expected map
+ expected.put("b", new Integer(99));
+ expected.put("c", "another text");
+
+ // add c to the variable names that should be collected
+ variableNames.add("c");
+
+ // read the variables back and compare
+ assertEquals(expected, executionService.getVariables(execution.getId(), variableNames));
+ }
+
+ // helper methods ///////////////////////////////////////////////////////////
+
+ /**
+ * deploys 3 versions of process with name 'nuclear fusion', 2 versions of the processes 'ultimate seduction' and
+ * 'publish book'
+ void deployMultipleVersionsOfProcesses()
+ {
+ ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
+
+ ProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").key("NFU").node("initial").initial().behaviour(
+ WaitState.class).done();
+ DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
+ processService.deploy(deploymentImpl);
+
+ processDefinition = ProcessFactory.build("ultimate seduction").key("USD").node("initial").initial().behaviour(WaitState.class).done();
+ deploymentImpl = new DeploymentImpl(processDefinition);
+ processService.deploy(deploymentImpl);
+
+ processDefinition = ProcessFactory.build("ultimate seduction").key("USD").node("initial").initial().behaviour(WaitState.class).done();
+ deploymentImpl = new DeploymentImpl(processDefinition);
+ processService.deploy(deploymentImpl);
+
+ processDefinition = ProcessFactory.build("nuclear fusion").key("NFU").node("initial").initial().behaviour(WaitState.class).done();
+ deploymentImpl = new DeploymentImpl(processDefinition);
+ processService.deploy(deploymentImpl);
+
+ processDefinition = ProcessFactory.build("publish book").key("PBO").node("initial").initial().behaviour(WaitState.class).done();
+ deploymentImpl = new DeploymentImpl(processDefinition);
+ processService.deploy(deploymentImpl);
+
+ processDefinition = ProcessFactory.build("nuclear fusion").key("NFU").node("initial").initial().behaviour(WaitState.class).done();
+ deploymentImpl = new DeploymentImpl(processDefinition);
+ processService.deploy(deploymentImpl);
+ }
+
+ Execution startExecution()
+ {
+ ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
+
+ ProcessDefinition processDefinition = ProcessFactory.build("nuclear fusion").node("initial").initial().behaviour(WaitState.class)
+ .done();
+ DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
+ processService.deploy(deploymentImpl);
+
+ ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
+
+ return executionService.startExecutionByName("nuclear fusion");
+ }
+
+ */
}
Copied: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ManagementServiceTest.java (from rev 3143, jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ManagementServiceTest.java)
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ManagementServiceTest.java (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ManagementServiceTest.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -0,0 +1,36 @@
+/*
+ * 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.svc;
+
+import org.jbpm.test.DbTestCase;
+
+/**
+ * @author Tom Baeyens
+ */
+public class ManagementServiceTest extends DbTestCase {
+
+ public void testGetJobs() {
+ assertEquals(0, managementService.getTimers(0, 10).size());
+ assertEquals(0, managementService.getMessages(0, 10).size());
+ }
+
+}
Property changes on: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ManagementServiceTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:mergeinfo
+
Name: svn:eol-style
+ LF
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ProcessServiceTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ProcessServiceTest.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ProcessServiceTest.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -21,7 +21,11 @@
*/
package org.jbpm.test.svc;
+import java.util.ArrayList;
+import java.util.List;
+
import org.jbpm.Execution;
+import org.jbpm.JbpmException;
import org.jbpm.ProcessDefinition;
import org.jbpm.test.DbTestCase;
@@ -41,7 +45,7 @@
"</process>"
);
- Execution execution = executionService.startExecutionByName("minimal");
+ Execution execution = executionService.startExecutionByKey("minimal");
assertEquals("end", execution.getNodeName());
assertTrue(execution.isEnded());
@@ -56,7 +60,7 @@
"</process>"
);
- Execution execution = executionService.startExecutionByName("minimal");
+ Execution execution = executionService.startExecutionByKey("minimal");
assertTrue(execution.isEnded());
assertTrue(execution.isFinished());
@@ -116,24 +120,178 @@
"</process>"
);
- ProcessDefinition processDefinition = processService.findLatestProcessDefinitionByName("minimal");
+ ProcessDefinition processDefinition = processService.findLatestProcessDefinitionByKey("M");
-
assertEquals("M", processDefinition.getKey());
assertEquals("M:1", processDefinition.getId());
assertEquals(1, processDefinition.getVersion());
}
- public void testGivenVersion() {
+ public void testAutomaticVersioning()
+ {
deployJpdlXmlString(
- "<process name='minimal' version='23'>" +
+ "<process name='versionme'>" +
" <start />" +
"</process>"
);
- ProcessDefinition processDefinition = processService.findLatestProcessDefinitionByName("minimal");
-
- assertEquals(23, processDefinition.getVersion());
- assertEquals("minimal:23", processDefinition.getId());
+ // look it up again
+ List<ProcessDefinition> processDefinitions = processService.findProcessDefinitionsByKey("versionme");
+ assertNotNull(processDefinitions);
+ // verify that there is only one
+ assertEquals(processDefinitions.toString(), 1, processDefinitions.size());
+ ProcessDefinition processDefinition = processDefinitions.get(0);
+ // and check that automatically assigned version starts with 1
+ assertEquals(1, processDefinition.getVersion());
+
+ deployJpdlXmlString(
+ "<process name='versionme'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ // look it up again
+ processDefinitions = processService.findProcessDefinitionsByKey("versionme");
+ // verify that there is only one
+ assertEquals(processDefinitions.toString(), 2, processDefinitions.size());
+ // and check that automatically assigned version starts with 1
+ assertEquals(2, processDefinitions.get(0).getVersion());
+ assertEquals(1, processDefinitions.get(1).getVersion());
}
+
+ public void testUserProvidedVersion() {
+ deployJpdlXmlString(
+ "<process name='takethis' version='234'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ // load it
+ List<ProcessDefinition> processDefinitions = processService.findProcessDefinitionsByKey("takethis");
+ assertNotNull(processDefinitions);
+ assertEquals(processDefinitions.toString(), 1, processDefinitions.size());
+ ProcessDefinition processDefinition = processDefinitions.get(0);
+ // verify that the user specified version was used
+ // (and not overwritten by an automatically assigned versioning)
+ assertEquals(234, processDefinition.getVersion());
+ }
+
+ public void testDuplicateUserProvidedVersion() {
+ deployJpdlXmlString(
+ "<process name='takethis' version='234'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ try {
+ deployJpdlXmlString(
+ "<process name='takethis' version='234'>" +
+ " <start />" +
+ "</process>"
+ );
+ fail("expected exception");
+ } catch (JbpmException e) {
+ assertTextPresent("process 'takethis:234' already exists", e.getMessage());
+ }
+ }
+
+ public void testFindProcessDefinitionNames() {
+ deployMultipleVersionsOfProcesses();
+
+ List<String> processKeys = processService.findProcessDefinitionKeys();
+
+ List<String> expected = new ArrayList<String>();
+ expected.add("nuclear_fusion");
+ expected.add("publish_book");
+ expected.add("ultimate_seduction");
+
+ assertEquals(expected, processKeys);
+ }
+
+ public void testFindProcessDefinitions()
+ {
+ deployMultipleVersionsOfProcesses();
+
+ List<ProcessDefinition> processDefinitions = processService.findProcessDefinitionsByKey("nuclear_fusion");
+ assertNotNull(processDefinitions);
+
+ assertEquals("expected 3 but was " + processDefinitions.size() + ": " + processDefinitions, 3, processDefinitions.size());
+ assertEquals("nuclear fusion", processDefinitions.get(0).getName());
+ assertEquals(3, processDefinitions.get(0).getVersion());
+
+ assertEquals("nuclear fusion", processDefinitions.get(1).getName());
+ assertEquals(2, processDefinitions.get(1).getVersion());
+
+ assertEquals("nuclear fusion", processDefinitions.get(2).getName());
+ assertEquals(1, processDefinitions.get(2).getVersion());
+ }
+
+ public void testFindLatestProcessDefinition() {
+ deployMultipleVersionsOfProcesses();
+
+ ProcessDefinition retrieved = processService.findLatestProcessDefinitionByKey("nuclear_fusion");
+ assertNotNull(retrieved);
+
+ assertEquals(3, retrieved.getVersion());
+ assertEquals("nuclear fusion", retrieved.getName());
+ assertEquals("nuclear_fusion", retrieved.getKey());
+ }
+
+ /**
+ * deploys 3 versions of process with name 'nuclear fusion', 2 versions of the processes 'ultimate seduction' and
+ * 'publish book'
+ */
+ void deployMultipleVersionsOfProcesses()
+ {
+ deployJpdlXmlString(
+ "<process name='nuclear fusion'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ deployJpdlXmlString(
+ "<process name='ultimate seduction'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ deployJpdlXmlString(
+ "<process name='ultimate seduction'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ deployJpdlXmlString(
+ "<process name='ultimate seduction'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ deployJpdlXmlString(
+ "<process name='ultimate seduction'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ deployJpdlXmlString(
+ "<process name='publish book'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ deployJpdlXmlString(
+ "<process name='nuclear fusion'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ deployJpdlXmlString(
+ "<process name='nuclear fusion'>" +
+ " <start />" +
+ "</process>"
+ );
+ }
+
+
+
}
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/variables/BasicVariablesTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/variables/BasicVariablesTest.java 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/variables/BasicVariablesTest.java 2008-12-03 17:06:54 UTC (rev 3184)
@@ -44,7 +44,7 @@
"</process>"
);
- executionService.startExecutionByName("var", "one");
+ executionService.startExecutionByKey("var", "one");
Set<String> variableNames = executionService.getVariableNames("var/one");
assertNotNull(variableNames);
assertEquals(0, variableNames.size());
@@ -68,7 +68,7 @@
Set<String> expectedVariableNames = new HashSet<String>(variables.keySet());
Map<String, Object> expectedVariables = new HashMap<String, Object>(variables);
- executionService.startExecutionByName("var", variables, "one");
+ executionService.startExecutionByKey("var", variables, "one");
Set<String> variableNames = executionService.getVariableNames("var/one");
assertNotNull(variableNames);
Modified: jbpm4/trunk/modules/test-db/src/test/resources/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/resources/jbpm.cfg.xml 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/test-db/src/test/resources/jbpm.cfg.xml 2008-12-03 17:06:54 UTC (rev 3184)
@@ -9,8 +9,7 @@
<file extension=".jpdl.xml" type="jpdl" />
</assign-file-type>
<parse-jpdl />
- <check-process-version />
- <check-process-id />
+ <check-process />
<check-problems />
<save />
</deployer-manager>
Modified: jbpm4/trunk/modules/userguide/.settings/attachedFile.properties
===================================================================
--- jbpm4/trunk/modules/userguide/.settings/attachedFile.properties 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/userguide/.settings/attachedFile.properties 2008-12-03 17:06:54 UTC (rev 3184)
@@ -1,2 +1,2 @@
## index of importer -> set(imports)
-#Wed Dec 03 08:29:43 CET 2008
+#Wed Dec 03 17:57:37 CET 2008
Modified: jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch03-Services.xml
===================================================================
--- jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch03-Services.xml 2008-12-03 14:28:41 UTC (rev 3183)
+++ jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch03-Services.xml 2008-12-03 17:06:54 UTC (rev 3184)
@@ -70,20 +70,20 @@
definition. The <literal>id</literal> will have format
<literal>{key}:{version}</literal>
</para>
- <para>Process definition properties <literal>name</literal>, <literal>key</literal>
- and <literal>id</literal> are important for referencing the deployed process
- definition later on.
+ <para>If <literal>key</literal> is not provided, it is generated automatically
+ based on the name. All non alpha numeric characters in the name will be replaced
+ by underscores to generate the key.
</para>
- <para>If a <literal>key</literal> is not provided, it is generated based on the
- name. All non alpha numeric characters in the name will be replaced by underscores.
+ <para>The same <literal>name</literal> can only be associated to one
+ <literal>key</literal> and vice verca.
</para>
- <para>If no <literal>version</literal> is specified,
- a <literal>version</literal> (<literal>int</literal>) will be assigned. For version
+ <para>If <literal>version</literal> is not provided, a <literal>version</literal>
+ will be automatically be assigned. For version
assignment, the versions of all deployed process definitions with the same name will
be taken into account. The assigned <literal>version</literal> will be one higher
then the highest <literal>version</literal> number of deployed process definitions
- with the same name. If no similarly named process definitions have been deployed,
- version number 1 is assigned.
+ with the same <literal>key</literal>. If no process definitions with a similar
+ <literal>key</literal> have been deployed, version number 1 is assigned.
</para>
<para>In this first example, we'll supply a name and nothing else.</para>
<programlisting><process name="Insurance claim">
@@ -93,36 +93,40 @@
Then it will get the following properties:
</para>
<table><title>Process properties without key</title>
- <tgroup cols="2" rowsep="1" colsep="1">
+ <tgroup cols="3" rowsep="1" colsep="1">
<thead>
<row>
<entry>Property</entry>
<entry>Value</entry>
+ <entry>Source</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>name</literal></entry>
<entry>Insurance claim</entry>
+ <entry>process xml</entry>
</row>
<row>
<entry><literal>key</literal></entry>
<entry>Insurance_claim</entry>
+ <entry>generated</entry>
</row>
<row>
<entry><literal>version</literal></entry>
<entry>1</entry>
+ <entry>generated</entry>
</row>
<row>
<entry><literal>id</literal></entry>
<entry>Insurance_claim:1</entry>
+ <entry>generated</entry>
</row>
</tbody>
</tgroup>
</table>
-
<para>And as a second example, we'll show how you can get shorter ids by
- specifying a process key in the process element:</para>
+ specifying a process key:</para>
<programlisting><process name="Insurance claim" key="ICL">
...
</process></programlisting>
@@ -133,24 +137,29 @@
<row>
<entry>Property</entry>
<entry>Value</entry>
+ <entry>Source</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>name</literal></entry>
<entry>Insurance claim</entry>
+ <entry>process xml</entry>
</row>
<row>
<entry><literal>key</literal></entry>
<entry>ICL</entry>
+ <entry>process xml</entry>
</row>
<row>
<entry><literal>version</literal></entry>
<entry>1</entry>
+ <entry>generated</entry>
</row>
<row>
<entry><literal>id</literal></entry>
<entry>ICL:1</entry>
+ <entry>generated</entry>
</row>
</tbody>
</tgroup>
15 years, 5 months
JBoss JBPM SVN: r3183 - in projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client: metric and 1 other directories.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-12-03 09:28:41 -0500 (Wed, 03 Dec 2008)
New Revision: 3183
Modified:
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/metric/MetricOverviewEditor.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessDefinitionList.java
Log:
More work on BIRT integration
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java 2008-12-03 13:48:29 UTC (rev 3182)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java 2008-12-03 14:28:41 UTC (rev 3183)
@@ -42,7 +42,7 @@
return config.getConsoleServerUrl();
}
- public String getProcessDefinitionURL()
+ public String getProcessDefinitionsURL()
{
return getConsoleServerUrl() + "/rs/process/definitions";
}
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/metric/MetricOverviewEditor.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/metric/MetricOverviewEditor.java 2008-12-03 13:48:29 UTC (rev 3182)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/metric/MetricOverviewEditor.java 2008-12-03 14:28:41 UTC (rev 3183)
@@ -23,10 +23,16 @@
import com.google.gwt.user.client.ui.Frame;
import com.gwtext.client.core.EventObject;
-import com.gwtext.client.widgets.*;
+import com.gwtext.client.data.*;
+import com.gwtext.client.widgets.Button;
+import com.gwtext.client.widgets.Component;
+import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.event.PanelListenerAdapter;
-import com.gwtext.client.widgets.layout.FitLayout;
+import com.gwtext.client.widgets.form.ComboBox;
+import com.gwtext.client.widgets.form.FormPanel;
+import com.gwtext.client.widgets.layout.HorizontalLayout;
+import com.gwtext.client.widgets.layout.VerticalLayout;
import org.jboss.bpm.console.client.Editor;
import org.jboss.bpm.console.client.MainView;
import org.jboss.bpm.console.client.util.ConsoleLog;
@@ -48,9 +54,9 @@
this.view = view;
this.setId(ID);
this.setPaddings(10);
-
+
// -------------------------------------
- this.setLayout(new FitLayout() );
+ this.setLayout(new VerticalLayout(10) );
this.addListener(
new PanelListenerAdapter()
@@ -58,27 +64,30 @@
public void onRender(Component component)
{
+
final String reportUrl= view.getUrlBuilder().getDefaultReportUrl();
ConsoleLog.debug("Report resource:" + reportUrl);
-
- //final String url = "http://localhost:8080/birt-viewer/preview?__report=process_activity.rptde...";
+
final Frame frame = new Frame(reportUrl);
- frame.setWidth("676");
+ frame.setWidth("600");
frame.setHeight("448");
Panel container = new Panel();
container.setHeader(false);
- container.setWidth(680);
+ container.setWidth(600);
container.setHeight(450);
+ container.add(frame);
+ // ---------
+ Panel tools = new Panel();
+ tools.setLayout(new HorizontalLayout(10));
- container.add(frame);
+ // --
- Toolbar toolbar = new Toolbar();
- toolbar.addButton(
- new ToolbarButton("Refresh", new ButtonListenerAdapter(){
+ tools.addButton(
+ new Button("Refresh", new ButtonListenerAdapter(){
public void onClick(Button button, EventObject eventObject)
{
@@ -86,14 +95,60 @@
}
})
);
- container.setTopToolbar(toolbar);
-
+
+ // --
+
+ FormPanel form = new FormPanel();
+ form.setBorder(false);
+ form.add( createProcessSelection() );
+
+ // --
+
+ add(form);
add(container);
}
}
);
}
+ private ComboBox createProcessSelection()
+ {
+
+ final RecordDef recordDef = new RecordDef(
+ new FieldDef[]{
+ new IntegerFieldDef("processId"),
+ new StringFieldDef("name"),
+ new StringFieldDef("version")
+ }
+ );
+
+ final JsonReader reader = new JsonReader(recordDef);
+ reader.setRoot("definitions");
+ reader.setTotalProperty("totalCount");
+ reader.setId("processId");
+
+ DataProxy dataProxy = new ScriptTagProxy(
+ view.getUrlBuilder().getProcessDefinitionsURL(), 1000*10);
+
+ final Store store = new Store(dataProxy, reader, false);
+ store.load();
+
+ ComboBox cb = new ComboBox();
+ cb.setMinChars(1);
+ cb.setFieldLabel("Process");
+ cb.setStore(store);
+ cb.setDisplayField("name");
+ cb.setMode(ComboBox.LOCAL);
+ cb.setTriggerAction(ComboBox.ALL);
+ cb.setEmptyText("Please enter a process name");
+ cb.setLoadingText("Searching...");
+ cb.setTypeAhead(true);
+ cb.setSelectOnFocus(true);
+ cb.setWidth(100);
+
+ return cb;
+ }
+
public String getEditorId()
{
return ID;
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessDefinitionList.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessDefinitionList.java 2008-12-03 13:48:29 UTC (rev 3182)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/process/ProcessDefinitionList.java 2008-12-03 14:28:41 UTC (rev 3183)
@@ -52,7 +52,7 @@
private static String getResourceUrl(MainView view)
{
- return view.getUrlBuilder().getProcessDefinitionURL();
+ return view.getUrlBuilder().getProcessDefinitionsURL();
}
protected ColumnModel createColumnModel()
15 years, 5 months
JBoss JBPM SVN: r3182 - in jbpm4/trunk/modules: api/src/main/java/org/jbpm and 9 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2008-12-03 08:48:29 -0500 (Wed, 03 Dec 2008)
New Revision: 3182
Added:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionByKeyCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionByNameCmd.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ExecutionServiceTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ProcessServiceTest.java
Removed:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionCmd.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/ConfigurationTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/ProcessTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/
Modified:
jbpm4/trunk/modules/api/pom.xml
jbpm4/trunk/modules/api/src/main/java/org/jbpm/ProcessService.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/DeleteProcessDefinitionCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionCmd.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/svc/ProcessServiceImpl.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ProcessServiceTest.java
jbpm4/trunk/modules/userguide/src/main/diagrams/diagrams.mdzip
jbpm4/trunk/modules/userguide/src/main/docbook/en/images/loan.executions.png
jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch03-Services.xml
jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch04-Jpdl.xml
Log:
service api and docs updates
Modified: jbpm4/trunk/modules/api/pom.xml
===================================================================
--- jbpm4/trunk/modules/api/pom.xml 2008-12-03 13:19:19 UTC (rev 3181)
+++ jbpm4/trunk/modules/api/pom.xml 2008-12-03 13:48:29 UTC (rev 3182)
@@ -59,6 +59,9 @@
<profiles>
<profile>
<id>distro</id>
+ <properties>
+ <xsddocs>true</xsddocs>
+ </properties>
<build>
<plugins>
<plugin>
@@ -75,6 +78,21 @@
<show>public</show>
</configuration>
</plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>xsddocs</id>
+ <activation>
+ <os>
+ <family>Windows</family>
+ </os>
+ <property>
+ <name>xsddocs</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/ProcessService.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/ProcessService.java 2008-12-03 13:19:19 UTC (rev 3181)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/ProcessService.java 2008-12-03 13:48:29 UTC (rev 3182)
@@ -43,8 +43,11 @@
List<ProcessDefinition> findProcessDefinitions(String processDefinitionName);
/** latest version of the processDefinition with the given name. */
- ProcessDefinition findLatestProcessDefinition(String processDefinitionName);
+ ProcessDefinition findLatestProcessDefinitionByName(String processDefinitionName);
+ /** latest version of the processDefinition with the given key. */
+ ProcessDefinition findLatestProcessDefinitionByKey(String processDefinitionKey);
+
/** specific version of a named processDefinition. */
ProcessDefinition findProcessDefinition(String processDefinitionName, int processDefinitionVersion);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/DeleteProcessDefinitionCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/DeleteProcessDefinitionCmd.java 2008-12-03 13:19:19 UTC (rev 3181)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/DeleteProcessDefinitionCmd.java 2008-12-03 13:48:29 UTC (rev 3182)
@@ -21,10 +21,7 @@
*/
package org.jbpm.pvm.internal.cmd;
-import java.util.List;
-
import org.jbpm.JbpmException;
-import org.jbpm.ProcessDefinition;
import org.jbpm.cmd.Command;
import org.jbpm.env.Environment;
import org.jbpm.session.PvmDbSession;
Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionByKeyCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionByKeyCmd.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionByKeyCmd.java 2008-12-03 13:48:29 UTC (rev 3182)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.pvm.internal.cmd;
+
+import org.jbpm.ProcessDefinition;
+import org.jbpm.cmd.Command;
+import org.jbpm.env.Environment;
+import org.jbpm.model.OpenProcessDefinition;
+import org.jbpm.session.PvmDbSession;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class FindLatestProcessDefinitionByKeyCmd implements Command<ProcessDefinition> {
+
+ private static final long serialVersionUID = 1L;
+
+ protected String processDefinitionKey;
+
+ public FindLatestProcessDefinitionByKeyCmd(String processDefinitionKey) {
+ this.processDefinitionKey = processDefinitionKey;
+ }
+
+ public OpenProcessDefinition execute(Environment environment) throws Exception {
+ return environment.get(PvmDbSession.class).findLatestProcessDefinitionByKey(processDefinitionKey);
+ }
+}
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionByKeyCmd.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Copied: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionByNameCmd.java (from rev 3143, jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionCmd.java)
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionByNameCmd.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionByNameCmd.java 2008-12-03 13:48:29 UTC (rev 3182)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.pvm.internal.cmd;
+
+import org.jbpm.cmd.Command;
+import org.jbpm.env.Environment;
+import org.jbpm.model.OpenProcessDefinition;
+import org.jbpm.session.PvmDbSession;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class FindLatestProcessDefinitionByNameCmd implements Command<OpenProcessDefinition> {
+
+ private static final long serialVersionUID = 1L;
+
+ protected String processDefinitionName;
+
+ public FindLatestProcessDefinitionByNameCmd(String processDefinitionName) {
+ this.processDefinitionName = processDefinitionName;
+ }
+
+ public OpenProcessDefinition execute(Environment environment) throws Exception {
+ return environment.get(PvmDbSession.class).findLatestProcessDefinitionByName(processDefinitionName);
+ }
+}
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionByNameCmd.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:mergeinfo
+
Name: svn:eol-style
+ LF
Deleted: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionCmd.java 2008-12-03 13:19:19 UTC (rev 3181)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindLatestProcessDefinitionCmd.java 2008-12-03 13:48:29 UTC (rev 3182)
@@ -1,47 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.pvm.internal.cmd;
-
-import org.jbpm.cmd.Command;
-import org.jbpm.env.Environment;
-import org.jbpm.model.OpenProcessDefinition;
-import org.jbpm.session.PvmDbSession;
-
-
-/**
- * @author Tom Baeyens
- */
-public class FindLatestProcessDefinitionCmd implements Command<OpenProcessDefinition> {
-
- private static final long serialVersionUID = 1L;
-
- protected String processDefinitionName;
-
- public FindLatestProcessDefinitionCmd(String processDefinitionName) {
- this.processDefinitionName = processDefinitionName;
- }
-
- public OpenProcessDefinition execute(Environment environment) throws Exception {
- return environment.get(PvmDbSession.class).findLatestProcessDefinitionByName(processDefinitionName);
- }
-
-}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionCmd.java 2008-12-03 13:19:19 UTC (rev 3181)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/FindProcessDefinitionCmd.java 2008-12-03 13:48:29 UTC (rev 3182)
@@ -25,7 +25,6 @@
import org.jbpm.cmd.Command;
import org.jbpm.env.Environment;
import org.jbpm.model.OpenProcessDefinition;
-import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
import org.jbpm.session.PvmDbSession;
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 2008-12-03 13:19:19 UTC (rev 3181)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/VariablesCmd.java 2008-12-03 13:48:29 UTC (rev 3182)
@@ -29,6 +29,8 @@
*/
public abstract class VariablesCmd<T> extends AbstractCommand<T> {
+ private static final long serialVersionUID = 1L;
+
Map<String, Object> variables;
public void addVariable(String key, Object variable) {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ProcessServiceImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ProcessServiceImpl.java 2008-12-03 13:19:19 UTC (rev 3181)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ProcessServiceImpl.java 2008-12-03 13:48:29 UTC (rev 3182)
@@ -30,7 +30,8 @@
import org.jbpm.model.OpenProcessDefinition;
import org.jbpm.pvm.internal.cmd.DeleteProcessDefinitionCmd;
import org.jbpm.pvm.internal.cmd.DeployCmd;
-import org.jbpm.pvm.internal.cmd.FindLatestProcessDefinitionCmd;
+import org.jbpm.pvm.internal.cmd.FindLatestProcessDefinitionByKeyCmd;
+import org.jbpm.pvm.internal.cmd.FindLatestProcessDefinitionByNameCmd;
import org.jbpm.pvm.internal.cmd.FindProcessDefinitionCmd;
import org.jbpm.pvm.internal.cmd.FindProcessDefinitionNamesCmd;
import org.jbpm.pvm.internal.cmd.FindProcessDefinitionsCmd;
@@ -57,10 +58,14 @@
return commandService.execute(new DeployCmd((DeploymentImpl)deployment));
}
- public ProcessDefinition findLatestProcessDefinition(String processDefinitionName) {
- return commandService.execute(new FindLatestProcessDefinitionCmd(processDefinitionName));
+ public ProcessDefinition findLatestProcessDefinitionByName(String processDefinitionName) {
+ return commandService.execute(new FindLatestProcessDefinitionByNameCmd(processDefinitionName));
}
+ public ProcessDefinition findLatestProcessDefinitionByKey(String processDefinitionKey) {
+ return commandService.execute(new FindLatestProcessDefinitionByKeyCmd(processDefinitionKey));
+ }
+
public ProcessDefinition findProcessDefinition(String processDefinitionName, int version) {
return commandService.execute(new FindProcessDefinitionCmd(processDefinitionName, version));
}
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ProcessServiceTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ProcessServiceTest.java 2008-12-03 13:19:19 UTC (rev 3181)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ProcessServiceTest.java 2008-12-03 13:48:29 UTC (rev 3182)
@@ -266,7 +266,7 @@
ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
- ProcessDefinition retrieved = processService.findLatestProcessDefinition("nuclear fusion");
+ ProcessDefinition retrieved = processService.findLatestProcessDefinitionByName("nuclear fusion");
assertNotNull(retrieved);
assertEquals("nuclear fusion", retrieved.getName());
@@ -279,7 +279,7 @@
ProcessService processService = getEnvironmentFactory().get(ProcessService.class);
- ProcessDefinition retrieved = processService.findLatestProcessDefinition("nuclear fusion");
+ ProcessDefinition retrieved = processService.findLatestProcessDefinitionByName("nuclear fusion");
assertNotNull(retrieved);
assertEquals("nuclear fusion", retrieved.getName());
Copied: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities (from rev 3143, jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures)
Property changes on: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities
___________________________________________________________________
Name: svn:mergeinfo
+
Deleted: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/ConfigurationTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/ConfigurationTest.java 2008-11-28 11:05:29 UTC (rev 3143)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/ConfigurationTest.java 2008-12-03 13:48:29 UTC (rev 3182)
@@ -1,72 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.test.basicfeatures;
-
-import org.jbpm.Configuration;
-import org.jbpm.ProcessEngine;
-import org.jbpm.test.JbpmTestCase;
-
-/**
- * @author Tom Baeyens
- */
-public class ConfigurationTest extends JbpmTestCase {
-
- public void testDefaultConfiguration() {
- ProcessEngine processEngine = new Configuration()
- .buildProcessEngine();
- assertNotNull(processEngine);
- }
-
- /*
- public void testResourceConfiguration() {
- ProcessEngine processEngine = new Configuration()
- .setResource("my-jbpm-configuration.xml")
- .buildProcessEngine();
- assertNotNull(processEngine);
- }
- */
-
- public void testMinimalConfiguration() {
- ProcessEngine processEngine = new Configuration()
- .setXmlString("<jbpm-configuration />")
- .buildProcessEngine();
- assertNotNull(processEngine);
- }
-
- public void testConfigurationServices() {
- ProcessEngine processEngine = new Configuration()
- .setXmlString(
- "<jbpm-configuration>" +
- " <process-engine>" +
- " <process-service />" +
- " <execution-service />" +
- " <management-service />" +
- " </process-engine>" +
- "</jbpm-configuration>"
- )
- .buildProcessEngine();
- assertNotNull(processEngine);
- assertNotNull(processEngine.getProcessService());
- assertNotNull(processEngine.getExecutionService());
- assertNotNull(processEngine.getManagementService());
- }
-}
Deleted: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/ProcessTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/ProcessTest.java 2008-11-28 11:05:29 UTC (rev 3143)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/ProcessTest.java 2008-12-03 13:48:29 UTC (rev 3182)
@@ -1,93 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.test.basicfeatures;
-
-import org.jbpm.Execution;
-import org.jbpm.ProcessDefinition;
-import org.jbpm.test.DbTestCase;
-
-
-/**
- * @author Tom Baeyens
- */
-public class ProcessTest extends DbTestCase {
-
- public void testMinimalProcess() {
- deployJpdlXmlString(
- "<process name='minimal'>" +
- " <start>" +
- " <flow to='end' />" +
- " </start>" +
- " <end name='end' />" +
- "</process>"
- );
-
- Execution execution = executionService.startExecutionInLatest("minimal");
-
- assertEquals("end", execution.getNodeName());
- assertTrue(execution.isEnded());
- assertTrue(execution.isFinished());
- assertFalse(execution.isActive());
- }
-
- public void testMostMinimalProcess() {
- deployJpdlXmlString(
- "<process name='minimal'>" +
- " <start />" +
- "</process>"
- );
-
- Execution execution = executionService.startExecutionInLatest("minimal");
-
- assertTrue(execution.isEnded());
- assertTrue(execution.isFinished());
- assertFalse(execution.isActive());
- }
-
- public void testGivenKey() {
- deployJpdlXmlString(
- "<process name='minimal' key='M'>" +
- " <start />" +
- "</process>"
- );
-
- ProcessDefinition processDefinition = processService.findLatestProcessDefinition("minimal");
-
- assertEquals("M", processDefinition.getKey());
- assertEquals("M:1", processDefinition.getId());
- assertEquals(1, processDefinition.getVersion());
- }
-
- public void testGivenVersion() {
- deployJpdlXmlString(
- "<process name='minimal' version='23'>" +
- " <start />" +
- "</process>"
- );
-
- ProcessDefinition processDefinition = processService.findLatestProcessDefinition("minimal");
-
-
- assertEquals(23, processDefinition.getVersion());
- assertEquals("minimal:23", processDefinition.getId());
- }
-}
Deleted: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/StateTest.java 2008-11-28 11:05:29 UTC (rev 3143)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java 2008-12-03 13:48:29 UTC (rev 3182)
@@ -1,155 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.test.basicfeatures;
-
-import org.jbpm.Execution;
-import org.jbpm.JbpmException;
-import org.jbpm.test.DbTestCase;
-
-/**
- * @author Tom Baeyens
- */
-public class StateTest extends DbTestCase {
-
- public void testWaitStatesSequence() {
- deployJpdlXmlString(
- "<process name='ThreeStates'>" +
- " <start name='a'>" +
- " <flow to='b' />" +
- " </start>" +
- " <state name='b'>" +
- " <flow to='c' />" +
- " </state>" +
- " <state name='c'>" +
- " <flow to='d' />" +
- " </state>" +
- " <end name='d' />" +
- "</process>"
- );
-
- Execution execution = executionService.startExecution("ThreeStates:1");
- assertEquals("b", execution.getNodeName());
-
- String executionId = execution.getId();
- execution = executionService.signalExecution(executionId);
- assertEquals("c", execution.getNodeName());
-
- execution = executionService.signalExecution(executionId);
- assertEquals("d", execution.getNodeName());
- assertTrue(execution.isEnded());
- }
-
- public void testExternalDecision() {
- deployJpdlXmlString(
- "<process name='p'>" +
- " <start>" +
- " <flow to='ed' />" +
- " </start>" +
- " <state name='ed'>" +
- " <flow name='left' to='b' />" +
- " <flow name='middle' to='c' />" +
- " <flow name='right' to='d' />" +
- " </state>" +
- " <state name='b' />" +
- " <state name='c' />" +
- " <state name='d' />" +
- "</process>"
- );
-
- Execution execution = executionService.startExecution("p:1", "one");
- assertEquals("ed", execution.getNodeName());
- execution = executionService.signalExecution("p:1/one", "left");
- assertEquals("b", execution.getNodeName());
-
- executionService.startExecution("p:1", "two");
- execution = executionService.signalExecution("p:1/two", "middle");
- assertEquals("c", execution.getNodeName());
-
- executionService.startExecution("p:1", "three");
- execution = executionService.signalExecution("p:1/three", "right");
- assertEquals("d", execution.getNodeName());
- }
-
- public void testDefaultSignalWithNamedTransitions() {
- deployJpdlXmlString(
- "<process name='p'>" +
- " <start>" +
- " <flow to='a' />" +
- " </start>" +
- " <state name='a'>" +
- " <flow name='left' to='b' />" +
- " <flow name='middle' to='c' />" +
- " <flow name='right' to='d' />" +
- " </state>" +
- " <state name='b' />" +
- " <state name='c' />" +
- " <state name='d' />" +
- "</process>"
- );
-
- executionService.startExecution("p:1", "one");
- try {
- executionService.signalExecution("p:1/one", "left");
- } catch (JbpmException e) {
- assertTextPresent("no matching transition or event for default signal in state(a)", e.getMessage());
- }
- }
-
- /*
- public void testNamedSignalWithoutMatchingTransition() {
- ClientProcessDefinition processDefinition = parseJpdl(
- "<process initial='a' name='p'>" +
- " <state name='a'>" +
- " <transition name='left' to='b' />" +
- " <transition name='middle' to='c' />" +
- " <transition name='right' to='d' />" +
- " </state>" +
- " <state name='b' />" +
- " <state name='c' />" +
- " <state name='d' />" +
- "</process>"
- );
-
- ClientExecution execution = processDefinition.startProcessInstance();
- try {
- execution.signal("up");
- } catch (PvmException e) {
- assertTextPresent("no matching transition or event for signal 'up' in state(a)", e.getMessage());
- }
- }
-
- public void testDefaultSignalWithoutTransitions() {
- ClientProcessDefinition processDefinition = parseJpdl(
- "<process initial='a' name='p'>" +
- " <state name='a' />" +
- "</process>"
- );
-
- ClientExecution execution = processDefinition.startProcessInstance();
- try {
- execution.signal();
- } catch (PvmException e) {
- assertTextPresent("no matching transition or event for default signal in state(a)", e.getMessage());
- }
- }
- */
-}
Copied: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java (from rev 3179, jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/StateTest.java)
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java 2008-12-03 13:48:29 UTC (rev 3182)
@@ -0,0 +1,153 @@
+/*
+ * 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.activities;
+
+import org.jbpm.Execution;
+import org.jbpm.JbpmException;
+import org.jbpm.test.DbTestCase;
+
+/**
+ * @author Tom Baeyens
+ */
+public class StateTest extends DbTestCase {
+
+ public void testWaitStatesSequence() {
+ deployJpdlXmlString(
+ "<process name='ThreeStates'>" +
+ " <start name='a'>" +
+ " <flow to='b' />" +
+ " </start>" +
+ " <state name='b'>" +
+ " <flow to='c' />" +
+ " </state>" +
+ " <state name='c'>" +
+ " <flow to='d' />" +
+ " </state>" +
+ " <end name='d' />" +
+ "</process>"
+ );
+
+ Execution execution = executionService.startExecutionById("ThreeStates:1");
+ assertEquals("b", execution.getNodeName());
+
+ String executionId = execution.getId();
+ execution = executionService.signalExecution(executionId);
+ assertEquals("c", execution.getNodeName());
+
+ execution = executionService.signalExecution(executionId);
+ assertEquals("d", execution.getNodeName());
+ assertTrue(execution.isEnded());
+ }
+
+ public void testExternalDecision() {
+ deployJpdlXmlString(
+ "<process name='p'>" +
+ " <start>" +
+ " <flow to='ed' />" +
+ " </start>" +
+ " <state name='ed'>" +
+ " <flow name='left' to='b' />" +
+ " <flow name='middle' to='c' />" +
+ " <flow name='right' to='d' />" +
+ " </state>" +
+ " <state name='b' />" +
+ " <state name='c' />" +
+ " <state name='d' />" +
+ "</process>"
+ );
+
+ Execution execution = executionService.startExecutionByName("p", "one");
+ assertEquals("ed", execution.getNodeName());
+ execution = executionService.signalExecution("p/one", "left");
+ assertEquals("b", execution.getNodeName());
+
+ executionService.startExecutionById("p:1", "two");
+ execution = executionService.signalExecution("p/two", "middle");
+ assertEquals("c", execution.getNodeName());
+
+ executionService.startExecutionById("p:1", "three");
+ execution = executionService.signalExecution("p/three", "right");
+ assertEquals("d", execution.getNodeName());
+ }
+
+ public void testDefaultSignalWithNamedTransitions() {
+ deployJpdlXmlString(
+ "<process name='p'>" +
+ " <start>" +
+ " <flow to='a' />" +
+ " </start>" +
+ " <state name='a'>" +
+ " <flow name='left' to='b' />" +
+ " <flow name='middle' to='c' />" +
+ " <flow name='right' to='d' />" +
+ " </state>" +
+ " <state name='b' />" +
+ " <state name='c' />" +
+ " <state name='d' />" +
+ "</process>"
+ );
+
+ executionService.startExecutionByName("p", "one");
+ try {
+ executionService.signalExecution("p/one", "left");
+ } catch (JbpmException e) {
+ assertTextPresent("no matching transition or event for default signal in state(a)", e.getMessage());
+ }
+ }
+
+ public void testNamedSignalWithoutMatchingTransition() {
+ deployJpdlXmlString(
+ "<process name='p'>" +
+ " <start>" +
+ " <flow to='a' />" +
+ " </start>" +
+ " <state name='a'>" +
+ " <flow name='left' to='b' />" +
+ " <flow name='middle' to='c' />" +
+ " <flow name='right' to='d' />" +
+ " </state>" +
+ " <state name='b' />" +
+ " <state name='c' />" +
+ " <state name='d' />" +
+ "</process>"
+ );
+
+ executionService.startExecutionByName("p", "one");
+ Execution execution = executionService.signalExecution("p/one", "up");
+ assertEquals("a", execution.getNodeName());
+ }
+
+ public void testDefaultSignalWithoutTransitions() {
+ deployJpdlXmlString(
+ "<process name='p'>" +
+ " <start>" +
+ " <flow to='a' />" +
+ " </start>" +
+ " <state name='a' />" +
+ "</process>"
+ );
+
+ executionService.startExecutionByName("p", "one");
+ Execution execution = executionService.signalExecution("p/one");
+ assertEquals("a", execution.getNodeName());
+ }
+}
Added: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ExecutionServiceTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ExecutionServiceTest.java (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ExecutionServiceTest.java 2008-12-03 13:48:29 UTC (rev 3182)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.test.svc;
+
+import org.jbpm.Execution;
+import org.jbpm.test.DbTestCase;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class ExecutionServiceTest extends DbTestCase {
+
+ public void testDefaultSignalWithoutTransitions() {
+ deployJpdlXmlString(
+ "<process name='p'>" +
+ " <start>" +
+ " <flow to='a' />" +
+ " </start>" +
+ " <state name='a' />" +
+ "</process>"
+ );
+
+ executionService.startExecutionByName("p", "one");
+ Execution execution = executionService.signalExecution("p/one");
+ assertEquals("a", execution.getNodeName());
+ }
+}
Property changes on: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ExecutionServiceTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Copied: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ProcessServiceTest.java (from rev 3179, jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/ProcessTest.java)
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ProcessServiceTest.java (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ProcessServiceTest.java 2008-12-03 13:48:29 UTC (rev 3182)
@@ -0,0 +1,139 @@
+/*
+ * 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.svc;
+
+import org.jbpm.Execution;
+import org.jbpm.ProcessDefinition;
+import org.jbpm.test.DbTestCase;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class ProcessServiceTest extends DbTestCase {
+
+ public void testMinimalProcess() {
+ deployJpdlXmlString(
+ "<process name='minimal'>" +
+ " <start>" +
+ " <flow to='end' />" +
+ " </start>" +
+ " <end name='end' />" +
+ "</process>"
+ );
+
+ Execution execution = executionService.startExecutionByName("minimal");
+
+ assertEquals("end", execution.getNodeName());
+ assertTrue(execution.isEnded());
+ assertTrue(execution.isFinished());
+ assertFalse(execution.isActive());
+ }
+
+ public void testMostMinimalProcess() {
+ deployJpdlXmlString(
+ "<process name='minimal'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ Execution execution = executionService.startExecutionByName("minimal");
+
+ assertTrue(execution.isEnded());
+ assertTrue(execution.isFinished());
+ assertFalse(execution.isActive());
+ }
+
+ // user guide tests /////////////////////////////////////////////////////////
+
+ public void testProcessWithNameOnly() {
+ ProcessDefinition processDefinition = deployJpdlXmlString(
+ "<process name='Insurance claim'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ assertNotNull(processDefinition);
+ assertEquals("Insurance claim", processDefinition.getName());
+ assertEquals("Insurance_claim", processDefinition.getKey());
+ assertEquals(1, processDefinition.getVersion());
+ assertEquals("Insurance_claim:1", processDefinition.getId());
+ }
+
+ public void testProcessWithNameAndKey() {
+ ProcessDefinition processDefinition = deployJpdlXmlString(
+ "<process name='Insurance claim' key='ICL'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ assertNotNull(processDefinition);
+ assertEquals("Insurance claim", processDefinition.getName());
+ assertEquals("ICL", processDefinition.getKey());
+ assertEquals(1, processDefinition.getVersion());
+ assertEquals("ICL:1", processDefinition.getId());
+ }
+
+
+ public void testFindProcessByKey() {
+ deployJpdlXmlString(
+ "<process name='Name with spaces'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ ProcessDefinition processDefinition = processService.findLatestProcessDefinitionByKey("Name_with_spaces");
+ assertNotNull(processDefinition);
+ assertEquals("Name with spaces", processDefinition.getName());
+ assertEquals("Name_with_spaces", processDefinition.getKey());
+ assertEquals(1, processDefinition.getVersion());
+ assertEquals("Name_with_spaces:1", processDefinition.getId());
+ }
+
+ public void testGivenKey() {
+ deployJpdlXmlString(
+ "<process name='minimal' key='M'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ ProcessDefinition processDefinition = processService.findLatestProcessDefinitionByName("minimal");
+
+
+ assertEquals("M", processDefinition.getKey());
+ assertEquals("M:1", processDefinition.getId());
+ assertEquals(1, processDefinition.getVersion());
+ }
+
+ public void testGivenVersion() {
+ deployJpdlXmlString(
+ "<process name='minimal' version='23'>" +
+ " <start />" +
+ "</process>"
+ );
+
+ ProcessDefinition processDefinition = processService.findLatestProcessDefinitionByName("minimal");
+
+ assertEquals(23, processDefinition.getVersion());
+ assertEquals("minimal:23", processDefinition.getId());
+ }
+}
Property changes on: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/svc/ProcessServiceTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: jbpm4/trunk/modules/userguide/src/main/diagrams/diagrams.mdzip
===================================================================
(Binary files differ)
Modified: jbpm4/trunk/modules/userguide/src/main/docbook/en/images/loan.executions.png
===================================================================
(Binary files differ)
Modified: jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch03-Services.xml
===================================================================
--- jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch03-Services.xml 2008-12-03 13:19:19 UTC (rev 3181)
+++ jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch03-Services.xml 2008-12-03 13:48:29 UTC (rev 3182)
@@ -225,20 +225,33 @@
variables.put("customer", "John Doe");
variables.put("type", "Accident");
variables.put("amount", new Float(763.74));
-executionService.startExecution("insurance_claim:1", variables);</programlisting>
+
+executionService.startExecutionByKey("ICL", variables);</programlisting>
</section>
</section>
- <section id="retrievinganexecution">
- <title>Retrieving an execution</title>
- <para>
- </para>
- </section>
-
<section id="singallingawaitingexecution">
<title>Signalling a waiting execution</title>
- <para>
+ <para>When an execution is in a wait state, it can be given an external trigger
+ with one of the signal methods. The recommended way to reference an execution
+ is by using the process definition and execution key. In the next code snippet,
+ <literal>ICL</literal> refers to the process definition key and <literal>82436</literal>
+ refers to the execution key.
</para>
+ <programlisting>executionService.signalExecutionByKey("ICL", "82436");</programlisting>
+ <para>Alternatively, the execution that must be signaled can be referenced
+ by a unique execution id. In the next snippet, <literal>ICL/82436</literal>
+ refers to the executionId.</para>
+ <programlisting>executionService.signalExecutionById("ICL/82436");</programlisting>
+ <para>Optionally some data can be passed along with a signal: a <literal>signalName</literal>
+ and <literal>parameters</literal>. How the signalName gets used depends on
+ the execution's current activity. The parameters get stored as process variables.
+ </para>
+ <programlisting>Map<String,Object> parameters = new HashMap<String,Object>();
+parameters.put("quality", "a+");
+parameters.put("target", "profit");
+
+executionService.signalExecutionById("ICL/82436", "Accept", parameters);</programlisting>
</section>
<section id="taskservice">
Modified: jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch04-Jpdl.xml
===================================================================
--- jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch04-Jpdl.xml 2008-12-03 13:19:19 UTC (rev 3181)
+++ jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch04-Jpdl.xml 2008-12-03 13:48:29 UTC (rev 3182)
@@ -20,4 +20,4 @@
</section>
</section>
-</chapter>
\ No newline at end of file
+</chapter>
15 years, 5 months
JBoss JBPM SVN: r3181 - in projects/gwt-console/trunk/war/src/main: java/org/jboss/bpm/console/client and 3 other directories.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-12-03 08:19:19 -0500 (Wed, 03 Dec 2008)
New Revision: 3181
Added:
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/ConsoleConfig.java
Modified:
projects/gwt-console/trunk/war/src/main/java/jmaki/xhp/XmlHttpProxyServlet.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/MainView.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
projects/gwt-console/trunk/war/src/main/resources/jmaki/xhp/xhp.json
projects/gwt-console/trunk/war/src/main/resources/org/jboss/bpm/console/Application.gwt.xml
projects/gwt-console/trunk/war/src/main/resources/org/jboss/bpm/console/public/Application.html
Log:
Fix JBPM-1896: Make integration URL's configurable
Modified: projects/gwt-console/trunk/war/src/main/java/jmaki/xhp/XmlHttpProxyServlet.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/jmaki/xhp/XmlHttpProxyServlet.java 2008-12-03 13:17:22 UTC (rev 3180)
+++ projects/gwt-console/trunk/war/src/main/java/jmaki/xhp/XmlHttpProxyServlet.java 2008-12-03 13:19:19 UTC (rev 3181)
@@ -30,7 +30,7 @@
private static boolean allowXDomain = false;
private static boolean requireSession = false;
private static boolean createSession = false;
- private static String responseContentType = "application/json;charset=UTF-8";
+ private static String defaultContentType = "application/json;charset=UTF-8";
private static boolean rDebug = false;
private Logger logger = null;
private XmlHttpProxy xhp = null;
@@ -52,7 +52,7 @@
ctx = config.getServletContext();
// set the response content type
if (ctx.getInitParameter("responseContentType") != null) {
- responseContentType = ctx.getInitParameter("responseContentType");
+ defaultContentType = ctx.getInitParameter("responseContentType");
}
// allow for resources dir over-ride at the xhp level otherwise allow
// for the jmaki level resources
@@ -243,11 +243,14 @@
if("xtest-pass".equals(name)) password = req.getHeader("xtest-pass");
}
}
+
+ String contentType = null;
try
{
String actualServiceKey = serviceKey != null ? serviceKey : "default";
if (services.has(actualServiceKey))
{
+
JSONObject service = services.getJSONObject(actualServiceKey);
String serviceURL = service.getString("url");
if(null==serviceURL)
@@ -256,6 +259,8 @@
if (service.has("passthrough")) passthrough =
Boolean.valueOf(service.getString("passthrough"));
+ if(service.has("contentType")) contentType = service.getString("contentType");
+
if (service.has("username")) userName = service.getString("username");
if (service.has("password")) password = service.getString("password");
@@ -339,7 +344,9 @@
urlString = processURL(urlString, req, res);
}
// default to JSON
- res.setContentType(responseContentType);
+ String actualContentType = contentType!=null ? contentType : defaultContentType;
+ res.setContentType(actualContentType);
+
out = res.getOutputStream();
// get the stream for the xsl stylesheet
if (xslURLString != null) {
Added: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/ConsoleConfig.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/ConsoleConfig.java (rev 0)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/ConsoleConfig.java 2008-12-03 13:19:19 UTC (rev 3181)
@@ -0,0 +1,70 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.jboss.bpm.console.client;
+
+import com.google.gwt.i18n.client.Dictionary;
+
+/**
+ * Initialize console config from host page (<code>Application.html</code>) variable:
+ * <pre>
+ * var consoleConfig = {
+ consoleServerUrl: "http://localhost:8080/gwt-console-server",
+ reportServerUrl: "http://localhost:8080/report"
+ };
+ * </pre>
+ *
+ * @see com.google.gwt.i18n.client.Dictionary
+ *
+ * @author Heiko.Braun <heiko.braun(a)jboss.com>
+ */
+public class ConsoleConfig
+{
+ private String consoleServerUrl;
+ private String reportServerUrl;
+
+ public ConsoleConfig()
+ {
+ Dictionary theme = Dictionary.getDictionary("consoleConfig");
+ consoleServerUrl = theme.get("consoleServerUrl");
+ reportServerUrl = theme.get("reportServerUrl");
+ }
+
+ public String getConsoleServerUrl()
+ {
+ return consoleServerUrl;
+ }
+
+ public void setConsoleServerUrl(String consoleServerUrl)
+ {
+ this.consoleServerUrl = consoleServerUrl;
+ }
+
+ public String getReportServerUrl()
+ {
+ return reportServerUrl;
+ }
+
+ public void setReportServerUrl(String reportServerUrl)
+ {
+ this.reportServerUrl = reportServerUrl;
+ }
+}
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/MainView.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/MainView.java 2008-12-03 13:17:22 UTC (rev 3180)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/MainView.java 2008-12-03 13:19:19 UTC (rev 3181)
@@ -63,13 +63,22 @@
private Authentication auth;
+ public boolean isAttached()
+ {
+ return super.isAttached(); //To change body of overridden methods use File | Settings | File Templates.
+ }
+
public MainView()
{
+ ConsoleConfig config = new ConsoleConfig();
+
if(!GWT.isScript()) // hosted mode used proxy by default
- urlBuilder = new URLBuilder(GWT.getModuleBaseURL(), "xhp");
- else
- urlBuilder = new URLBuilder( "http://localhost:8080", "gwt-console-server"); // TODO: make configureable
+ config.setConsoleServerUrl(GWT.getModuleBaseURL()+"xhp");
+ ConsoleLog.debug("Console server: " + config.getConsoleServerUrl());
+ ConsoleLog.debug("Report server: " + config.getReportServerUrl());
+
+ urlBuilder = new URLBuilder(config);
Panel mainPanel = createMainPanel();
assembleMainApplication(mainPanel);
forceLogin(mainPanel);
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java 2008-12-03 13:17:22 UTC (rev 3180)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java 2008-12-03 13:19:19 UTC (rev 3181)
@@ -21,7 +21,6 @@
*/
package org.jboss.bpm.console.client;
-import org.jboss.bpm.console.client.util.ConsoleLog;
import com.google.gwt.http.client.URL;
import org.jboss.bpm.console.client.model.ProcessInstanceRef;
import org.jboss.bpm.console.client.model.jbpm3.TokenReference;
@@ -31,40 +30,26 @@
*/
public class URLBuilder
{
- private final String consoleServerUrl;
- private final String webContext;
+ ConsoleConfig config;
- public URLBuilder(String consoleServerUrl, String webContext)
+ public URLBuilder(ConsoleConfig config)
{
- this.consoleServerUrl = consoleServerUrl;
- this.webContext = webContext;
-
- ConsoleLog.debug("Using gwt-console-server: " + getBaseUrl());
+ this.config = config;
}
public String getConsoleServerUrl()
{
- return consoleServerUrl;
+ return config.getConsoleServerUrl();
}
- public String getWebContext()
- {
- return webContext;
- }
-
- private String getBaseUrl()
- {
- return consoleServerUrl + "/" + webContext;
- }
-
public String getProcessDefinitionURL()
{
- return getBaseUrl() + "/rs/process/definitions";
+ return getConsoleServerUrl() + "/rs/process/definitions";
}
public String getProcessInstanceURL(long processId)
{
- return getBaseUrl() + "/rs/process/definitions/"+processId+"/instances";
+ return getConsoleServerUrl() + "/rs/process/definitions/"+processId+"/instances";
}
public String getUserInRoleURL(String[] possibleRoles)
@@ -76,104 +61,104 @@
if(i<possibleRoles.length-1)
sb.append(",");
}
- return getBaseUrl() + "/rs/identity/user/roles?roleCheck="+sb.toString();
+ return getConsoleServerUrl() + "/rs/identity/user/roles?roleCheck="+sb.toString();
}
@Deprecated
public String getRemoveDefinitionURL(long processId)
{
- return getBaseUrl() + "/rs/process/definitions/" + processId + "/remove";
+ return getConsoleServerUrl() + "/rs/process/definitions/" + processId + "/remove";
}
public String getProcessImageURL(long processId)
{
- return getBaseUrl() + "/rs/jbpm3/definitions/" + processId + "/image";
+ return getConsoleServerUrl() + "/rs/jbpm3/definitions/" + processId + "/image";
}
public String getDiagramInfoURL(long processId)
{
- return getBaseUrl() + "/rs/jbpm3/definitions/" + processId + "/diagramInfo";
+ return getConsoleServerUrl() + "/rs/jbpm3/definitions/" + processId + "/diagramInfo";
}
public String getActiveNodeInfoURL(long instanceId)
{
- return getBaseUrl() + "/rs/jbpm3/instances/" + instanceId + "/activeNodeInfo";
+ return getConsoleServerUrl() + "/rs/jbpm3/instances/" + instanceId + "/activeNodeInfo";
}
public String getStateChangeURL(long instanceId, ProcessInstanceRef.STATE state)
{
- return getBaseUrl() + "/rs/process/instances/" + instanceId + "/state/"+state;
+ return getConsoleServerUrl() + "/rs/process/instances/" + instanceId + "/state/"+state;
}
public String getStartNewInstanceURL(long processId)
{
- return getBaseUrl() + "/rs/process/definitions/"+processId+"/instances/new";
+ return getConsoleServerUrl() + "/rs/process/definitions/"+processId+"/instances/new";
}
public String getUploadDefinitionURL()
{
- return getBaseUrl() + "/rs/jbpm3/definitions/new";
+ return getConsoleServerUrl() + "/rs/jbpm3/definitions/new";
}
public String getTaskListByActorURL(String actor)
{
- return getBaseUrl() + "/rs/tasks/actor/"+URL.encode(actor);
+ return getConsoleServerUrl() + "/rs/tasks/actor/"+URL.encode(actor);
}
public String getTaskFormDefURL(long processId, long taskId)
{
- return getBaseUrl() + "/rs/tasks/forms/"+processId+"/"+taskId;
+ return getConsoleServerUrl() + "/rs/tasks/forms/"+processId+"/"+taskId;
}
public String getTaskEndURL(long id)
{
- return getBaseUrl() + "/rs/tasks/"+id+"/close/transition/default";
+ return getConsoleServerUrl() + "/rs/tasks/"+id+"/close/transition/default";
}
public String getTaskEndURL(long id, String signalName)
{
- return getBaseUrl() + "/rs/tasks/"+id+"/close/transition?signal=" + URL.encode(signalName);
+ return getConsoleServerUrl() + "/rs/tasks/"+id+"/close/transition?signal=" + URL.encode(signalName);
}
public String getTaskAssignmentURL(long id, String actor)
{
String actualActor = actor == null ? "" : "/"+actor;
- return getBaseUrl() + "/rs/tasks/"+id+"/assignment"+URL.encode(actualActor);
+ return getConsoleServerUrl() + "/rs/tasks/"+id+"/assignment"+URL.encode(actualActor);
}
public String getTokenSignalUrl(TokenReference tok)
{
- return getBaseUrl() + "/rs/jbpm3/tokens/"+tok.getId()+"/transition/default";
+ return getConsoleServerUrl() + "/rs/jbpm3/tokens/"+tok.getId()+"/transition/default";
}
public String getTokenSignalUrl(TokenReference tok, String signal)
{
String encodedSignal = URL.encode(signal);
- return getBaseUrl() + "/rs/jbpm3/tokens/"+tok.getId()+"/transition?signal="+encodedSignal;
+ return getConsoleServerUrl() + "/rs/jbpm3/tokens/"+tok.getId()+"/transition?signal="+encodedSignal;
}
public String getAvailableActorsUrl(String actorId)
{
- return getBaseUrl() + "/rs/identity/user/"+actorId+"/actors";
+ return getConsoleServerUrl() + "/rs/identity/user/"+actorId+"/actors";
}
public String getProcessDefinitionByNameURL(String name)
{
- return getBaseUrl() + "/rs/process/definitions/"+name;
+ return getConsoleServerUrl() + "/rs/process/definitions/"+name;
}
public String getDeployTestHarnessUrl()
{
- return getBaseUrl()+ "/rs/test/deploy/harness";
+ return getConsoleServerUrl()+ "/rs/test/deploy/harness";
}
public String getUndeployTestHarnessUrl()
{
- return getBaseUrl()+ "/rs/test/undeploy/harness";
+ return getConsoleServerUrl()+ "/rs/test/undeploy/harness";
}
public String getDefaultReportUrl()
{
- return getBaseUrl()+"/run?__report=process_activity.rptdesign&id=birt";
+ return config.getReportServerUrl()+"/preview?__report=process_activity.rptdesign";
}
}
Modified: projects/gwt-console/trunk/war/src/main/resources/jmaki/xhp/xhp.json
===================================================================
--- projects/gwt-console/trunk/war/src/main/resources/jmaki/xhp/xhp.json 2008-12-03 13:17:22 UTC (rev 3180)
+++ projects/gwt-console/trunk/war/src/main/resources/jmaki/xhp/xhp.json 2008-12-03 13:19:19 UTC (rev 3181)
@@ -8,8 +8,9 @@
"password":"manager"
},
{"id": "birt",
- "url":"http://localhost:8080/birt-viewer",
- "passthrough":true
+ "url":"http://localhost:8080/report",
+ "passthrough":true,
+ "contentType":"text/html"
}
]
}
Modified: projects/gwt-console/trunk/war/src/main/resources/org/jboss/bpm/console/Application.gwt.xml
===================================================================
--- projects/gwt-console/trunk/war/src/main/resources/org/jboss/bpm/console/Application.gwt.xml 2008-12-03 13:17:22 UTC (rev 3180)
+++ projects/gwt-console/trunk/war/src/main/resources/org/jboss/bpm/console/Application.gwt.xml 2008-12-03 13:19:19 UTC (rev 3181)
@@ -3,6 +3,7 @@
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User' />
<inherits name='com.google.gwt.json.JSON'/>
+ <inherits name="com.google.gwt.i18n.I18N"/>
<inherits name='com.gwtext.GwtExt' />
<inherits name='com.googlecode.gchart.GChart'/>
Modified: projects/gwt-console/trunk/war/src/main/resources/org/jboss/bpm/console/public/Application.html
===================================================================
--- projects/gwt-console/trunk/war/src/main/resources/org/jboss/bpm/console/public/Application.html 2008-12-03 13:17:22 UTC (rev 3180)
+++ projects/gwt-console/trunk/war/src/main/resources/org/jboss/bpm/console/public/Application.html 2008-12-03 13:19:19 UTC (rev 3181)
@@ -1,15 +1,24 @@
<html>
- <head>
- <title>GWT Console Application</title>
-<!-- -->
-<!-- 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>
- <meta name="gwt:property" id="bpm-server-url" content="localhost:8080"/>
- <link rel="stylesheet" href="console.css" type="text/css">
+<head>
+ <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"
+ };
+ </script>
+
+ <!-- -->
+ <!-- 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'/>
+
+ <link rel="stylesheet" href="console.css" type="text/css">
+
</head>
<!-- -->
@@ -21,13 +30,6 @@
<!-- OPTIONAL: include this if you want history support -->
<iframe src="javascript:''" id="__gwt_historyFrame" style="width: 0; height: 0; border: 0"></iframe>
-<!--table align=center>
- <tr align="center">
- <td>GWT Console<hr/></td>
- </tr>
- <tr align="center">
- <td id="mainpanel"></td>
- </tr>
-</table-->
+
</body>
</html>
15 years, 5 months
JBoss JBPM SVN: r3180 - projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/metric.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-12-03 08:17:22 -0500 (Wed, 03 Dec 2008)
New Revision: 3180
Modified:
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/metric/MetricOverviewEditor.java
Log:
Get report URL form UrlBuilder
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/metric/MetricOverviewEditor.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/metric/MetricOverviewEditor.java 2008-12-03 12:25:57 UTC (rev 3179)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/metric/MetricOverviewEditor.java 2008-12-03 13:17:22 UTC (rev 3180)
@@ -22,20 +22,14 @@
package org.jboss.bpm.console.client.metric;
import com.google.gwt.user.client.ui.Frame;
+import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.*;
-import com.gwtext.client.widgets.event.PanelListenerAdapter;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
+import com.gwtext.client.widgets.event.PanelListenerAdapter;
import com.gwtext.client.widgets.layout.FitLayout;
-import com.gwtext.client.widgets.layout.ColumnLayoutData;
-import com.gwtext.client.widgets.layout.ColumnLayout;
-import com.gwtext.client.core.EventObject;
import org.jboss.bpm.console.client.Editor;
import org.jboss.bpm.console.client.MainView;
-import org.jboss.bpm.console.client.UIConstants;
-import org.jboss.bpm.console.client.widgets.HelpPanel;
-import org.jboss.bpm.console.client.widgets.TeaserPanel;
-import org.jboss.bpm.console.client.model.HelpDAO;
-import org.jboss.bpm.console.client.model.DAOFactory;
+import org.jboss.bpm.console.client.util.ConsoleLog;
/**
* @author Heiko.Braun <heiko.braun(a)jboss.com>
@@ -64,9 +58,11 @@
public void onRender(Component component)
{
- //final String reportUrl= view.getUrlBuilder().getDefaultReportUrl();
- final String url = "http://localhost:8080/birt-viewer/preview?__report=process_activity.rptde...";
- final Frame frame = new Frame(url);
+ final String reportUrl= view.getUrlBuilder().getDefaultReportUrl();
+ ConsoleLog.debug("Report resource:" + reportUrl);
+
+ //final String url = "http://localhost:8080/birt-viewer/preview?__report=process_activity.rptde...";
+ final Frame frame = new Frame(reportUrl);
frame.setWidth("676");
frame.setHeight("448");
@@ -86,7 +82,7 @@
public void onClick(Button button, EventObject eventObject)
{
- frame.setUrl(url);
+ frame.setUrl(reportUrl);
}
})
);
15 years, 5 months
JBoss JBPM SVN: r3179 - in jbpm4/trunk/modules: api/src/main/java/org/jbpm/session and 26 other directories.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2008-12-03 07:25:57 -0500 (Wed, 03 Dec 2008)
New Revision: 3179
Added:
jbpm4/trunk/modules/distro/.project
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetVariableNamesCmd.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/cfg/
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/cfg/ConfigurationTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/variables/
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/variables/BasicVariablesTest.java
jbpm4/trunk/modules/userguide/.settings/
jbpm4/trunk/modules/userguide/.settings/attachedFile.properties
jbpm4/trunk/modules/userguide/src/main/diagrams/bpmn/
jbpm4/trunk/modules/userguide/src/main/diagrams/bpmn/loan.process.bpm
jbpm4/trunk/modules/userguide/src/main/docbook/en/images/loan.executions.png
jbpm4/trunk/modules/userguide/src/main/docbook/en/images/loan.process.definition.png
jbpm4/trunk/modules/userguide/src/main/docbook/en/images/loan.process.instance.png
jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch02-Installation.xml
jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch04-Jpdl.xml
Removed:
jbpm4/trunk/modules/task/src/main/resources/jbpm.task.queries.hbm.xml
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/ConfigurationTest.java
jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch02-Environments.xml
Modified:
jbpm4/trunk/modules/api/src/main/java/org/jbpm/ExecutionService.java
jbpm4/trunk/modules/api/src/main/java/org/jbpm/ProcessEngine.java
jbpm4/trunk/modules/api/src/main/java/org/jbpm/session/PvmDbSession.java
jbpm4/trunk/modules/distro/
jbpm4/trunk/modules/distro/src/main/resources/readme.html
jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/enterprise/test/TimerTest.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetVariablesCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/StartExecutionInLatestCmd.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessIdDeployer.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/HibernatePvmDbSession.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/DefaultIdGenerator.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/svc/ExecutionServiceImpl.java
jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.definition.hbm.xml
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/AutomaticDecisionDbTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ExecutionServiceTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/timer/TimerIntegrationTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/example02/PersistentExecutionModeTest.java
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/samples/ex02/BasicProcessPersistenceTest.java
jbpm4/trunk/modules/task/src/main/resources/jbpm.task.hbm.xml
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/ProcessTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/StateTest.java
jbpm4/trunk/modules/userguide/.project
jbpm4/trunk/modules/userguide/src/main/diagrams/diagrams.mdzip
jbpm4/trunk/modules/userguide/src/main/docbook/en/master.xml
jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch01-Introduction.xml
jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch03-Services.xml
Log:
docs and api improvements
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/ExecutionService.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/ExecutionService.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/ExecutionService.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -23,6 +23,7 @@
import java.util.List;
import java.util.Map;
+import java.util.Set;
/** manages runtime process executions.
@@ -33,36 +34,36 @@
/** starts a new execution for the ProcessDefinition with the given processDefinitionDbid.
* @param processDefinitionId the {@link ProcessDefinition#getId() unique id} of the process definition. */
- Execution startExecution(String processDefinitionId);
+ Execution startExecutionById(String processDefinitionId);
/** starts a new execution for the ProcessDefinition with the given processDefinitionDbid.
* @param processDefinitionId the {@link ProcessDefinition#getId() unique id} of the process definition.
* @param executionKey is a user provided reference for the new execution that must be unique over all
* process versions with the same name. */
- Execution startExecution(String processDefinitionId, String executionKey);
+ Execution startExecutionById(String processDefinitionId, String executionKey);
/** starts a new execution for the ProcessDefinition with the given processDefinitionDbid.
* @param processDefinitionId the {@link ProcessDefinition#getId() unique id} of the process definition.
* @param variables are the initial values of the process variables that will be set before the execution starts. */
- Execution startExecution(String processDefinitionId, Map<String, Object> variables);
+ Execution startExecutionById(String processDefinitionId, Map<String, Object> variables);
/** starts a new execution for the ProcessDefinition with the given processDefinitionDbid.
* @param processDefinitionId the {@link ProcessDefinition#getId() unique id} of the process definition.
* @param variables are the initial values of the process variables that will be set before the execution starts.
* @param executionKey is a user provided reference for the new execution that must be unique over all
* process versions with the same name. */
- Execution startExecution(String processDefinitionId, Map<String, Object> variables, String executionKey);
+ Execution startExecutionById(String processDefinitionId, Map<String, Object> variables, String executionKey);
/** starts a new execution in the latest version of the given process definition.
* @param processDefinitionName is the name of the process definition for which the latest version will be taken. */
- Execution startExecutionInLatest(String processDefinitionName);
+ Execution startExecutionByName(String processDefinitionName);
/** starts a new execution in the latest version of the given processDefinitionName.
* @param processDefinitionName is the name of the process definition
* for which the latest version will be taken.
* @param executionKey is a user provided reference for the new execution
* that must be unique over all process versions with the same name. */
- Execution startExecutionInLatest(String processDefinitionName, String executionKey);
+ Execution startExecutionByName(String processDefinitionName, String executionKey);
/** starts a new execution in the latest version of the given processDefinitionName.
* @param processDefinitionName is the name of the process definition
@@ -70,15 +71,41 @@
* @param variables are the initial values of the process variables that
* will be set before the execution starts (read: before the initial
* node is executed). */
- Execution startExecutionInLatest(String processDefinitionName, Map<String, Object> variables);
+ Execution startExecutionByName(String processDefinitionName, Map<String, Object> variables);
/** starts a new execution in the latest version of the given processDefinitionName.
* @param processDefinitionName is the name 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 executionKey is a user provided reference for the new execution that must be unique over all
* process versions with the same name. */
- Execution startExecutionInLatest(String processDefinitionName, Map<String, Object> variables, String executionKey);
+ Execution startExecutionByName(String processDefinitionName, Map<String, Object> variables, String executionKey);
+ /** starts a new execution in the latest version of the given process definition.
+ * @param processDefinitionKey is the key of the process definition for which the latest version will be taken. */
+ Execution startExecutionByKey(String processDefinitionKey);
+
+ /** starts a new execution 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 executionKey is a user provided reference for the new execution
+ * that must be unique over all process versions with the same name. */
+ Execution startExecutionByKey(String processDefinitionKey, String executionKey);
+
+ /** starts a new execution 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 (read: before the initial
+ * node is executed). */
+ Execution startExecutionByKey(String processDefinitionKey, Map<String, Object> variables);
+
+ /** starts a new execution 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 executionKey is a user provided reference for the new execution that must be unique over all
+ * process versions with the same name. */
+ Execution startExecutionByKey(String processDefinitionKey, Map<String, Object> variables, String executionKey);
+
/** the execution that is uniquely defined by the process definition and the business key. */
Execution findExecution(String processDefinitionName, String executionKey);
@@ -112,6 +139,7 @@
Execution signalExecutionByKey(String processDefinitionName, String executionKey, String signalName, Map<String, Object> parameters);
+
/** creates or overwrites a variable value on the referenced execution */
Execution setVariable(String executionId, String name, Object value);
@@ -120,9 +148,12 @@
/** retrieves a variable */
Object getVariable(String executionId, String variableName);
-
+
+ /** all the variables visible in the given execution scope */
+ Set<String> getVariableNames(String executionId);
+
/** retrieves a map of variables */
- Map<String, Object> getVariables(String executionId, List<String> variableNames);
+ Map<String, Object> getVariables(String executionId, Set<String> variableNames);
/* delete a process instance */
void deleteProcessInstance(String processInstanceId);
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/ProcessEngine.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/ProcessEngine.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/ProcessEngine.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -30,14 +30,46 @@
*/
public interface ProcessEngine {
+ /** the {@link ProcessService process service} that provides access
+ * to the process repository. */
ProcessService getProcessService();
+
+ /** the {@link ProcessService process service} and supply some
+ * transactional resources. The given transactional resources will only
+ * be associated to the returned process service. */
ProcessService getProcessService(Map<String, Object> txResources);
+
+ /** the {@link ExecutionService execution service} that provides access
+ * to the runtime executions repository. */
ExecutionService getExecutionService();
+
+ /** the {@link ExecutionService execution service} and supply some
+ * transactional resources. The given transactional resources will only
+ * be associated to the returned execution service. */
ExecutionService getExecutionService(Map<String, Object> txResources);
+
+ /** the {@link TaskService task service} that exposes the
+ * runtime human task lists. */
TaskService getTaskService();
+
+ /** the {@link TaskService task service} and supply some
+ * transactional resources. The given transactional resources will only
+ * be associated to the returned task service. */
TaskService getTaskService(Map<String, Object> txResources);
+
+ /** the {@link ManagementService management service} that exposes the
+ * management operations to operators that have to keep the jBPM system
+ * up and running. */
ManagementService getManagementService();
+
+ /** the {@link ManagementService management service} and supply some
+ * transactional resources. The given transactional resources will only
+ * be associated to the returned management service. */
ManagementService getManagementService(Map<String, Object> txResources);
+ /** retrieve and object defined in the process engine by type */
<T> T get(Class<T> type);
+
+ /** retrieve and object defined in the process engine by name */
+ Object get(String name);
}
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/session/PvmDbSession.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/session/PvmDbSession.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/session/PvmDbSession.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -31,7 +31,7 @@
import org.jbpm.job.Timer;
/**
- * @author Tom Baeyens, Pascal Verdage
+ * @author Tom Baeyens
*/
public interface PvmDbSession extends DbSession {
@@ -44,13 +44,16 @@
/** specific version of a named processDefinition. */
ClientProcessDefinition findProcessDefinitionByName(String name, int version);
- /** latest version of the processDefinition with the given name. */
+ /** latest version of the processDefinition for the given name. */
ClientProcessDefinition findLatestProcessDefinitionByName(String name);
/** the process definition uniquely identified by the given
* processDefinition id. */
ClientProcessDefinition findProcessDefinitionById(String processDefinitionId);
+ /** latest version of the processDefinition for the given key. */
+ ClientProcessDefinition findLatestProcessDefinitionByKey(String processDefinitionKey);
+
/** the execution uniquely identified by the given executionKey. */
ClientExecution findExecutionById(String executionId);
@@ -76,4 +79,5 @@
/** delete process definition */
void deleteProcessDefinition(String processDefinitionId, boolean deleteProcessInstances);
+
}
Property changes on: jbpm4/trunk/modules/distro
___________________________________________________________________
Name: svn:ignore
- target
+ target
.settings
Added: jbpm4/trunk/modules/distro/.project
===================================================================
--- jbpm4/trunk/modules/distro/.project (rev 0)
+++ jbpm4/trunk/modules/distro/.project 2008-12-03 12:25:57 UTC (rev 3179)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>distro</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.maven.ide.eclipse.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.stp.bpmn.validation.BatchValidationBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.maven.ide.eclipse.maven2Nature</nature>
+ <nature>org.eclipse.stp.bpmn.validation.BatchValidationBuildAbleNature</nature>
+ </natures>
+</projectDescription>
Modified: jbpm4/trunk/modules/distro/src/main/resources/readme.html
===================================================================
--- jbpm4/trunk/modules/distro/src/main/resources/readme.html 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/distro/src/main/resources/readme.html 2008-12-03 12:25:57 UTC (rev 3179)
@@ -5,6 +5,11 @@
<body>
<h1>Docs</h1>
+ <p>Currently the userguide and devguide only show well in <a href="http://www.mozilla.com/firefox">firefox</a>.
+ We'll fix this in one of the next versions.
+ See <a href="https://jira.jboss.org/jira/browse/JBPM-1895">JBPM-1895</a>.
+ </p>
+
<table>
<tr>
<th>Link</th>
Modified: jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/enterprise/test/TimerTest.java
===================================================================
--- jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/enterprise/test/TimerTest.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/enterprise/src/test/java/org/jbpm/enterprise/test/TimerTest.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -21,9 +21,9 @@
*/
package org.jbpm.enterprise.test;
-import java.util.ArrayList;
import java.util.Date;
-import java.util.List;
+import java.util.HashSet;
+import java.util.Set;
import javax.ejb.CreateException;
import javax.naming.InitialContext;
@@ -155,7 +155,7 @@
Date executionDate = NoisyActivity.waitFor();
assertTrue(dueDate.compareTo(executionDate) <= 0);
- List<String> variableNames = new ArrayList<String>();
+ Set<String> variableNames = new HashSet<String>();
variableNames.add("executionDate");
Object variableValue = commandExecutor.execute(new GetVariablesCmd(execution.getId(), variableNames));
assertNull(variableValue);
Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetVariableNamesCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetVariableNamesCmd.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetVariableNamesCmd.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -0,0 +1,55 @@
+/*
+ * 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.cmd;
+
+import java.util.Set;
+
+import org.jbpm.JbpmException;
+import org.jbpm.client.ClientExecution;
+import org.jbpm.cmd.Command;
+import org.jbpm.env.Environment;
+import org.jbpm.session.PvmDbSession;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class GetVariableNamesCmd implements Command<Set<String>> {
+
+ private static final long serialVersionUID = 1L;
+
+ String executionId;
+
+ public GetVariableNamesCmd(String executionId) {
+ if (executionId==null) {
+ throw new JbpmException("executionId is null");
+ }
+ this.executionId = executionId;
+ }
+
+ public Set<String> execute(Environment environment) throws Exception {
+ PvmDbSession pvmDbSession = environment.get(PvmDbSession.class);
+ ClientExecution execution = pvmDbSession.findExecutionById(executionId);
+ return execution.getVariableKeys();
+ }
+
+}
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetVariableNamesCmd.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetVariablesCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetVariablesCmd.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/GetVariablesCmd.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -22,8 +22,8 @@
package org.jbpm.pvm.internal.cmd;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
+import java.util.Set;
import org.jbpm.JbpmException;
import org.jbpm.client.ClientExecution;
@@ -39,9 +39,9 @@
private static final long serialVersionUID = 1L;
protected String executionId;
- protected List<String> variableNames;
+ protected Set<String> variableNames;
- public GetVariablesCmd(String executionId, List<String> variableNames) {
+ public GetVariablesCmd(String executionId, Set<String> variableNames) {
if (executionId==null) {
throw new JbpmException("executionId is null");
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/StartExecutionInLatestCmd.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/StartExecutionInLatestCmd.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cmd/StartExecutionInLatestCmd.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -39,10 +39,24 @@
private static final long serialVersionUID = 1L;
protected String processDefinitionName;
+ protected String processDefinitionKey;
protected String executionKey;
- public StartExecutionInLatestCmd(String processDefinitionName, Map<String, Object> variables, String executionKey) {
+ public StartExecutionInLatestCmd(String processDefinitionName, String processDefinitionKey, Map<String, Object> variables, String executionKey) {
+ if ( (processDefinitionName==null)
+ && (processDefinitionKey==null)
+ ) {
+ throw new JbpmException("processDefinitionName and processDefinitionKey are both null");
+ }
+
+ if ( (processDefinitionName!=null)
+ && (processDefinitionKey!=null)
+ ) {
+ throw new JbpmException("processDefinitionName and processDefinitionKey are both not-null. only one should be not null.");
+ }
+
this.processDefinitionName = processDefinitionName;
+ this.processDefinitionKey = processDefinitionKey;
this.variables = variables;
this.executionKey = executionKey;
}
@@ -52,9 +66,14 @@
ClientProcessDefinition processDefinition = null;
- processDefinition = pvmDbSession.findLatestProcessDefinitionByName(processDefinitionName);
+ if (processDefinitionName!=null) {
+ processDefinition = pvmDbSession.findLatestProcessDefinitionByName(processDefinitionName);
+ } else {
+ processDefinition = pvmDbSession.findLatestProcessDefinitionByKey(processDefinitionKey);
+ }
+
if (processDefinition==null) {
- throw new JbpmException("no process definition with name '"+processDefinitionName+"'");
+ throw new JbpmException("no process definition with "+(processDefinitionName!=null ? "name '"+processDefinitionName : "key '"+processDefinitionKey)+"'");
}
ClientProcessInstance processInstance = processDefinition.createProcessInstance(executionKey);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessIdDeployer.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessIdDeployer.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/deploy/CheckProcessIdDeployer.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -44,7 +44,7 @@
}
private void createId(ProcessDefinitionImpl processDefinition, DeploymentImpl deployment) {
- if (processDefinition.getId()==null) {
+ if (processDefinition.getKey()==null) {
String key = processDefinition.getKey();
if (key==null) {
key = processDefinition.getName();
@@ -57,7 +57,11 @@
// replace any non-word character with an underscore
key = key.replaceAll("\\W", "_");
- String id = key+":"+processDefinition.getVersion();
+ processDefinition.setKey(key);
+ }
+
+ if (processDefinition.getId()==null) {
+ String id = processDefinition.getKey()+":"+processDefinition.getVersion();
log.trace("created id '"+id+"' for "+processDefinition);
processDefinition.setId(id);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/HibernatePvmDbSession.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/HibernatePvmDbSession.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/hibernate/HibernatePvmDbSession.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -50,30 +50,39 @@
return session.getNamedQuery("findProcessDefinitionNames").list();
}
- public List<ClientProcessDefinition> findProcessDefinitionsByName(String name) {
+ public List<ClientProcessDefinition> findProcessDefinitionsByName(String processDefinitionName) {
// query definition can be found at the bottom of resource jbpm.pvm.definition.hbm.xml
Query query = session.getNamedQuery("findProcessDefinitionsByName");
- query.setString("name", name);
+ query.setString("name", processDefinitionName);
return query.list();
}
- public ClientProcessDefinition findProcessDefinitionByName(String name, int version) {
+ public ClientProcessDefinition findProcessDefinitionByName(String processDefinitionName, int version) {
// query definition can be found at the bottom of resource jbpm.pvm.definition.hbm.xml
Query query = session.getNamedQuery("findProcessDefinitionByNameAndVersion");
- query.setString("name", name);
+ query.setString("name", processDefinitionName);
query.setInteger("version", version);
ClientProcessDefinition processDefinition = (ClientProcessDefinition) query.uniqueResult();
return processDefinition;
}
- public ClientProcessDefinition findLatestProcessDefinitionByName(String name) {
+ public ClientProcessDefinition findLatestProcessDefinitionByName(String processDefinitionName) {
// query definition can be found at the bottom of resource jbpm.pvm.definition.hbm.xml
Query query = session.getNamedQuery("findProcessDefinitionsByName");
- query.setString("name", name);
+ query.setString("name", processDefinitionName);
query.setMaxResults(1);
ClientProcessDefinition processDefinition = (ClientProcessDefinition) query.uniqueResult();
return processDefinition;
}
+
+ public ClientProcessDefinition findLatestProcessDefinitionByKey(String processDefinitionKey) {
+ // query definition can be found at the bottom of resource jbpm.pvm.definition.hbm.xml
+ Query query = session.getNamedQuery("findProcessDefinitionsByKey");
+ query.setString("key", processDefinitionKey);
+ query.setMaxResults(1);
+ ClientProcessDefinition processDefinition = (ClientProcessDefinition) query.uniqueResult();
+ return processDefinition;
+ }
public ClientProcessDefinition findProcessDefinitionById(String processDefinitionId) {
// query definition can be found at the bottom of resource jbpm.pvm.definition.hbm.xml
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/DefaultIdGenerator.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/DefaultIdGenerator.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/DefaultIdGenerator.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -25,6 +25,7 @@
import org.jbpm.Execution;
import org.jbpm.ProcessDefinition;
import org.jbpm.env.Environment;
+import org.jbpm.log.Log;
import org.jbpm.model.IdGenerator;
@@ -32,12 +33,16 @@
* @author Tom Baeyens
*/
public class DefaultIdGenerator implements IdGenerator {
+
+ private static Log log = Log.getLog(DefaultIdGenerator.class.getName());
public String createId(ProcessDefinition processDefinition, Execution parent, Execution execution) {
String base = null;
if (parent!=null) {
base = parent.getId();
+ } else if (processDefinition.getKey()!=null){
+ base = processDefinition.getKey();
} else {
base = processDefinition.getId();
}
@@ -56,7 +61,11 @@
executionPart = Long.toString(executionImpl.getDbid());
}
- return base+"/"+executionPart;
+ String executionId = base+"/"+executionPart;
+
+ if (log.isDebugEnabled()) log.debug("generated execution id "+executionId);
+
+ return executionId;
}
}
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 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ScopeInstanceImpl.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -28,6 +28,8 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
import org.jbpm.Execution;
import org.jbpm.JbpmException;
@@ -240,7 +242,7 @@
if (parentScope!=null) {
variableKeys = parentScope.getVariableKeys();
} else {
- variableKeys = new HashSet<String>();
+ variableKeys = new TreeSet<String>();
}
if (hasVariables) {
variableKeys.addAll(variables.keySet());
@@ -254,7 +256,7 @@
if (parentScope!=null) {
values = parentScope.getVariables();
} else {
- values = new HashMap<String, Object>();
+ values = new TreeMap<String, Object>();
}
if (hasVariables) {
for (Map.Entry<String, Variable> entry: variables.entrySet()) {
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 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/svc/ExecutionServiceImpl.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -21,15 +21,16 @@
*/
package org.jbpm.pvm.internal.svc;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
import org.jbpm.Execution;
import org.jbpm.ExecutionService;
import org.jbpm.cmd.CommandService;
import org.jbpm.pvm.internal.cmd.DeleteProcessInstance;
import org.jbpm.pvm.internal.cmd.FindExecutionCmd;
+import org.jbpm.pvm.internal.cmd.GetVariableNamesCmd;
import org.jbpm.pvm.internal.cmd.GetVariablesCmd;
import org.jbpm.pvm.internal.cmd.SetVariablesCmd;
import org.jbpm.pvm.internal.cmd.SignalCmd;
@@ -44,39 +45,57 @@
protected CommandService commandService;
- public Execution startExecution(String processDefinitionId){
+ public Execution startExecutionById(String processDefinitionId){
return commandService.execute(new StartExecutionCmd(processDefinitionId, null, null));
}
- public Execution startExecution(String processDefinitionId, String executionKey) {
+ public Execution startExecutionById(String processDefinitionId, String executionKey) {
return commandService.execute(new StartExecutionCmd(processDefinitionId, null, executionKey));
}
- public Execution startExecution(String processDefinitionId, Map<String, Object> variables){
+ public Execution startExecutionById(String processDefinitionId, Map<String, Object> variables){
return commandService.execute(new StartExecutionCmd(processDefinitionId, variables, null));
}
- public Execution startExecution(String processDefinitionId, Map<String, Object> variables, String executionKey){
+ public Execution startExecutionById(String processDefinitionId, Map<String, Object> variables, String executionKey){
return commandService.execute(new StartExecutionCmd(processDefinitionId, variables, executionKey));
}
- public Execution startExecutionInLatest(String processDefinitionName) {
- return commandService.execute(new StartExecutionInLatestCmd(processDefinitionName, null, null));
+
+ public Execution startExecutionByName(String processDefinitionName) {
+ return commandService.execute(new StartExecutionInLatestCmd(processDefinitionName, null, null, null));
}
- public Execution startExecutionInLatest(String processDefinitionName, Map<String, Object> variables){
- return commandService.execute(new StartExecutionInLatestCmd(processDefinitionName, variables, null));
+ public Execution startExecutionByName(String processDefinitionName, Map<String, Object> variables){
+ return commandService.execute(new StartExecutionInLatestCmd(processDefinitionName, null, variables, null));
}
- public Execution startExecutionInLatest(String processDefinitionName, String executionKey) {
- return commandService.execute(new StartExecutionInLatestCmd(processDefinitionName, null, executionKey));
+ public Execution startExecutionByName(String processDefinitionName, String executionKey) {
+ return commandService.execute(new StartExecutionInLatestCmd(processDefinitionName, null, null, executionKey));
}
- public Execution startExecutionInLatest(String processDefinitionName, Map<String, Object> variables, String executionKey){
- return commandService.execute(new StartExecutionInLatestCmd(processDefinitionName, variables, executionKey));
+ public Execution startExecutionByName(String processDefinitionName, Map<String, Object> variables, String executionKey){
+ return commandService.execute(new StartExecutionInLatestCmd(processDefinitionName, null, variables, executionKey));
}
+ public Execution startExecutionByKey(String processDefinitionKey) {
+ return commandService.execute(new StartExecutionInLatestCmd(null, processDefinitionKey, null, null));
+ }
+
+ public Execution startExecutionByKey(String processDefinitionKey, Map<String, Object> variables){
+ return commandService.execute(new StartExecutionInLatestCmd(null, processDefinitionKey, variables, null));
+ }
+
+ public Execution startExecutionByKey(String processDefinitionKey, String executionKey) {
+ return commandService.execute(new StartExecutionInLatestCmd(null, processDefinitionKey, null, executionKey));
+ }
+
+ public Execution startExecutionByKey(String processDefinitionKey, Map<String, Object> variables, String executionKey){
+ return commandService.execute(new StartExecutionInLatestCmd(null, processDefinitionKey, variables, executionKey));
+ }
+
+
public Execution signalExecution(String executionId) {
return commandService.execute(new SignalCmd(executionId, null, null));
}
@@ -139,13 +158,17 @@
}
public Object getVariable(String executionId, String variableName) {
- List<String> variableNames = new ArrayList<String>();
+ Set<String> variableNames = new HashSet<String>();
variableNames.add(variableName);
Map<String, Object> variables = commandService.execute(new GetVariablesCmd(executionId, variableNames));
return variables.get(variableName);
}
- public Map<String, Object> getVariables(String executionId, List<String> variableNames) {
+ public Set<String> getVariableNames(String executionId) {
+ return commandService.execute(new GetVariableNamesCmd(executionId));
+ }
+
+ public Map<String, Object> getVariables(String executionId, Set<String> variableNames) {
return commandService.execute(new GetVariablesCmd(executionId, variableNames));
}
Modified: jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.definition.hbm.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.definition.hbm.xml 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/pvm/src/main/resources/jbpm.pvm.definition.hbm.xml 2008-12-03 12:25:57 UTC (rev 3179)
@@ -400,6 +400,15 @@
]]>
</query>
+ <query name="findProcessDefinitionsByKey">
+ <![CDATA[
+ select process
+ from org.jbpm.pvm.internal.model.ProcessDefinitionImpl as process
+ where process.key = :key
+ order by process.version desc
+ ]]>
+ </query>
+
<query name="findProcessDefinitionByNameAndVersion">
<![CDATA[
select process
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/AutomaticDecisionDbTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/AutomaticDecisionDbTest.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/basicfeatures/AutomaticDecisionDbTest.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -78,7 +78,7 @@
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("creditRate", 7);
- Execution execution = executionService.startExecutionInLatest("creditProcess", variables);
+ Execution execution = executionService.startExecutionByName("creditProcess", variables);
assertEquals("priority delivery", execution.getNodeName());
}
@@ -90,7 +90,7 @@
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("creditRate", 2);
- Execution execution = executionService.startExecutionInLatest("creditProcess", variables);
+ Execution execution = executionService.startExecutionByName("creditProcess", variables);
assertEquals("bulk delivery", execution.getNodeName());
@@ -103,7 +103,7 @@
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("creditRate", -7);
- Execution execution = executionService.startExecutionInLatest("creditProcess", variables);
+ Execution execution = executionService.startExecutionByName("creditProcess", variables);
assertEquals("payment upfront", execution.getNodeName());
}
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ExecutionServiceTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ExecutionServiceTest.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/db/svc/ExecutionServiceTest.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -23,8 +23,9 @@
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.List;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
import junit.framework.Test;
@@ -35,8 +36,8 @@
import org.jbpm.client.ClientProcessDefinition;
import org.jbpm.pvm.internal.svc.DeploymentImpl;
import org.jbpm.pvm.model.ProcessFactory;
+import org.jbpm.test.EnvironmentFactoryTestSetup;
import org.jbpm.test.OldDbTestCase;
-import org.jbpm.test.EnvironmentFactoryTestSetup;
/**
* @author Tom Baeyens
@@ -68,7 +69,7 @@
ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
// start an execution for the process with the given id
- Execution execution = executionService.startExecution("NCLFU:1");
+ Execution execution = executionService.startExecutionById("NCLFU:1");
assertNotNull(execution);
// checking the state
@@ -97,7 +98,7 @@
ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
- Execution execution = executionService.startExecution("NCLFU:1", "TheFirstTime");
+ Execution execution = executionService.startExecutionById("NCLFU:1", "TheFirstTime");
assertNotNull(execution);
// checking the state
@@ -128,7 +129,7 @@
ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
// provide the variables in the start execution method
- Execution execution = executionService.startExecution("NCLFU:1", variables);
+ Execution execution = executionService.startExecutionById("NCLFU:1", variables);
String executionId = execution.getId();
assertEquals(new Integer(1), executionService.getVariable(executionId, "a"));
@@ -150,7 +151,7 @@
// start a nuclear fusion in the latest version of
// the process definition with name 'nuclear fusion'
- Execution execution = executionService.startExecutionInLatest("nuclear fusion");
+ Execution execution = executionService.startExecutionByName("nuclear fusion");
assertNotNull(execution);
// in the generated id, we can see if the right process definition version was taken
@@ -177,7 +178,7 @@
variables.put("b", "text");
// feed the variables in
- Execution execution = executionService.startExecutionInLatest("nuclear fusion", variables);
+ Execution execution = executionService.startExecutionByName("nuclear fusion", variables);
String executionId = execution.getId();
// verify that the variables are actually set
@@ -202,7 +203,7 @@
ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
- Execution execution = executionService.startExecutionInLatest("nuclear fusion", "TheFirstTime");
+ Execution execution = executionService.startExecutionByName("nuclear fusion", "TheFirstTime");
assertNotNull(execution);
assertEquals("TheFirstTime", execution.getKey());
assertEquals("NFU:3/TheFirstTime", execution.getId());
@@ -246,7 +247,7 @@
Map<String, Object> expected = new HashMap<String, Object>(variables);
- List<String> variableNames = new ArrayList<String>();
+ Set<String> variableNames = new HashSet<String>();
variableNames.add("a");
variableNames.add("b");
@@ -319,6 +320,6 @@
ExecutionService executionService = getEnvironmentFactory().get(ExecutionService.class);
- return executionService.startExecutionInLatest("nuclear fusion");
+ return executionService.startExecutionByName("nuclear fusion");
}
}
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/timer/TimerIntegrationTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/timer/TimerIntegrationTest.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/api/timer/TimerIntegrationTest.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -74,7 +74,7 @@
DeploymentImpl deploymentImpl = new DeploymentImpl(definition);
processService.deploy(deploymentImpl);
- Execution processInstance = getExecutionService().startExecutionInLatest(definition.getName());
+ Execution processInstance = getExecutionService().startExecutionByName(definition.getName());
return (ExecutionImpl) processInstance;
}
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/example02/PersistentExecutionModeTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/example02/PersistentExecutionModeTest.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/example02/PersistentExecutionModeTest.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -61,7 +61,7 @@
DeploymentImpl deploymentImpl = new DeploymentImpl(processDefinition);
processService.deploy(deploymentImpl);
- Execution execution = executionService.startExecution("loan:1", "request7836");
+ Execution execution = executionService.startExecutionById("loan:1", "request7836");
assertEquals("evaluate", execution.getNodeName());
Modified: jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/samples/ex02/BasicProcessPersistenceTest.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/samples/ex02/BasicProcessPersistenceTest.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/samples/ex02/BasicProcessPersistenceTest.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -60,7 +60,7 @@
ExecutionService executionService = ExamplesConfiguration.getExecutionService();
- Execution execution = executionService.startExecutionInLatest("basic", "one");
+ Execution execution = executionService.startExecutionByName("basic", "one");
assertEquals("a", execution.getNodeName());
Modified: jbpm4/trunk/modules/task/src/main/resources/jbpm.task.hbm.xml
===================================================================
--- jbpm4/trunk/modules/task/src/main/resources/jbpm.task.hbm.xml 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/task/src/main/resources/jbpm.task.hbm.xml 2008-12-03 12:25:57 UTC (rev 3179)
@@ -150,5 +150,15 @@
</set>
</class>
+
+
+ <!-- ### QUERIES ######################################################## -->
+ <query name="findTasks">
+ <![CDATA[
+ select task
+ from org.jbpm.task.impl.TaskImpl as task
+ ]]>
+ </query>
+
</hibernate-mapping>
Deleted: jbpm4/trunk/modules/task/src/main/resources/jbpm.task.queries.hbm.xml
===================================================================
--- jbpm4/trunk/modules/task/src/main/resources/jbpm.task.queries.hbm.xml 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/task/src/main/resources/jbpm.task.queries.hbm.xml 2008-12-03 12:25:57 UTC (rev 3179)
@@ -1,18 +0,0 @@
-<?xml version="1.0"?>
-
-<!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
-
-<hibernate-mapping>
-
-
- <query name="findTasks">
- <![CDATA[
- select task
- from org.jbpm.task.impl.TaskImpl as task
- ]]>
- </query>
-
-
-</hibernate-mapping>
\ No newline at end of file
Deleted: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/ConfigurationTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/ConfigurationTest.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/ConfigurationTest.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -1,63 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.test.basicfeatures;
-
-import org.jbpm.Configuration;
-import org.jbpm.ProcessEngine;
-import org.jbpm.test.JbpmTestCase;
-
-/**
- * @author Tom Baeyens
- */
-public class ConfigurationTest extends JbpmTestCase {
-
- public void testDefaultConfiguration() {
- ProcessEngine processEngine = new Configuration()
- .buildProcessEngine();
- assertNotNull(processEngine);
- }
-
- public void testMinimalConfiguration() {
- ProcessEngine processEngine = new Configuration()
- .setXmlString("<jbpm-configuration />")
- .buildProcessEngine();
- assertNotNull(processEngine);
- }
-
- public void testConfigurationServices() {
- ProcessEngine processEngine = new Configuration()
- .setXmlString(
- "<jbpm-configuration>" +
- " <process-engine>" +
- " <process-service />" +
- " <execution-service />" +
- " <management-service />" +
- " </process-engine>" +
- "</jbpm-configuration>"
- )
- .buildProcessEngine();
- assertNotNull(processEngine);
- assertNotNull(processEngine.getProcessService());
- assertNotNull(processEngine.getExecutionService());
- assertNotNull(processEngine.getManagementService());
- }
-}
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/ProcessTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/ProcessTest.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/ProcessTest.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -23,6 +23,7 @@
import org.jbpm.Execution;
import org.jbpm.ProcessDefinition;
+import org.jbpm.pvm.internal.model.ProcessDefinitionImpl;
import org.jbpm.test.DbTestCase;
@@ -41,7 +42,7 @@
"</process>"
);
- Execution execution = executionService.startExecutionInLatest("minimal");
+ Execution execution = executionService.startExecutionByName("minimal");
assertEquals("end", execution.getNodeName());
assertTrue(execution.isEnded());
@@ -56,7 +57,7 @@
"</process>"
);
- Execution execution = executionService.startExecutionInLatest("minimal");
+ Execution execution = executionService.startExecutionByName("minimal");
assertTrue(execution.isEnded());
assertTrue(execution.isFinished());
@@ -72,6 +73,7 @@
ProcessDefinition processDefinition = processService.findLatestProcessDefinition("minimal");
+
assertEquals("M", processDefinition.getKey());
assertEquals("M:1", processDefinition.getId());
assertEquals(1, processDefinition.getVersion());
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/StateTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/StateTest.java 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/StateTest.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -46,7 +46,7 @@
"</process>"
);
- Execution execution = executionService.startExecution("ThreeStates:1");
+ Execution execution = executionService.startExecutionById("ThreeStates:1");
assertEquals("b", execution.getNodeName());
String executionId = execution.getId();
@@ -75,17 +75,17 @@
"</process>"
);
- Execution execution = executionService.startExecution("p:1", "one");
+ Execution execution = executionService.startExecutionByName("p", "one");
assertEquals("ed", execution.getNodeName());
- execution = executionService.signalExecution("p:1/one", "left");
+ execution = executionService.signalExecution("p/one", "left");
assertEquals("b", execution.getNodeName());
- executionService.startExecution("p:1", "two");
- execution = executionService.signalExecution("p:1/two", "middle");
+ executionService.startExecutionById("p:1", "two");
+ execution = executionService.signalExecution("p/two", "middle");
assertEquals("c", execution.getNodeName());
- executionService.startExecution("p:1", "three");
- execution = executionService.signalExecution("p:1/three", "right");
+ executionService.startExecutionById("p:1", "three");
+ execution = executionService.signalExecution("p/three", "right");
assertEquals("d", execution.getNodeName());
}
@@ -106,9 +106,9 @@
"</process>"
);
- executionService.startExecution("p:1", "one");
+ executionService.startExecutionByName("p", "one");
try {
- executionService.signalExecution("p:1/one", "left");
+ executionService.signalExecution("p/one", "left");
} catch (JbpmException e) {
assertTextPresent("no matching transition or event for default signal in state(a)", e.getMessage());
}
@@ -131,8 +131,8 @@
"</process>"
);
- executionService.startExecution("p:1", "one");
- Execution execution = executionService.signalExecution("p:1/one", "up");
+ executionService.startExecutionByName("p", "one");
+ Execution execution = executionService.signalExecution("p/one", "up");
assertEquals("a", execution.getNodeName());
}
@@ -146,8 +146,8 @@
"</process>"
);
- executionService.startExecution("p:1", "one");
- Execution execution = executionService.signalExecution("p:1/one");
+ executionService.startExecutionByName("p", "one");
+ Execution execution = executionService.signalExecution("p/one");
assertEquals("a", execution.getNodeName());
}
}
Copied: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/cfg/ConfigurationTest.java (from rev 3150, jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/basicfeatures/ConfigurationTest.java)
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/cfg/ConfigurationTest.java (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/cfg/ConfigurationTest.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -0,0 +1,63 @@
+/*
+ * 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.cfg;
+
+import org.jbpm.Configuration;
+import org.jbpm.ProcessEngine;
+import org.jbpm.test.JbpmTestCase;
+
+/**
+ * @author Tom Baeyens
+ */
+public class ConfigurationTest extends JbpmTestCase {
+
+ public void testDefaultConfiguration() {
+ ProcessEngine processEngine = new Configuration()
+ .buildProcessEngine();
+ assertNotNull(processEngine);
+ }
+
+ public void testMinimalConfiguration() {
+ ProcessEngine processEngine = new Configuration()
+ .setXmlString("<jbpm-configuration />")
+ .buildProcessEngine();
+ assertNotNull(processEngine);
+ }
+
+ public void testConfigurationServices() {
+ ProcessEngine processEngine = new Configuration()
+ .setXmlString(
+ "<jbpm-configuration>" +
+ " <process-engine>" +
+ " <process-service />" +
+ " <execution-service />" +
+ " <management-service />" +
+ " </process-engine>" +
+ "</jbpm-configuration>"
+ )
+ .buildProcessEngine();
+ assertNotNull(processEngine);
+ assertNotNull(processEngine.getProcessService());
+ assertNotNull(processEngine.getExecutionService());
+ assertNotNull(processEngine.getManagementService());
+ }
+}
Property changes on: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/cfg/ConfigurationTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:mergeinfo
+
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/variables/BasicVariablesTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/variables/BasicVariablesTest.java (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/variables/BasicVariablesTest.java 2008-12-03 12:25:57 UTC (rev 3179)
@@ -0,0 +1,82 @@
+/*
+ * 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.variables;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.jbpm.test.DbTestCase;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class BasicVariablesTest extends DbTestCase {
+
+ public void testNoVariables() {
+ deployJpdlXmlString(
+ "<process name='var'>" +
+ " <start name='a'>" +
+ " <flow to='b' />" +
+ " </start>" +
+ " <state name='b'/>" +
+ "</process>"
+ );
+
+ executionService.startExecutionByName("var", "one");
+ Set<String> variableNames = executionService.getVariableNames("var/one");
+ assertNotNull(variableNames);
+ assertEquals(0, variableNames.size());
+ }
+
+ public void testThreeVariables() {
+ deployJpdlXmlString(
+ "<process name='var'>" +
+ " <start name='a'>" +
+ " <flow to='b' />" +
+ " </start>" +
+ " <state name='b'/>" +
+ "</process>"
+ );
+
+ Map<String, Object> variables = new HashMap<String, Object>();
+ variables.put("customer", "John Doe");
+ variables.put("type", "Accident");
+ variables.put("amount", new Float(763.74));
+
+ Set<String> expectedVariableNames = new HashSet<String>(variables.keySet());
+ Map<String, Object> expectedVariables = new HashMap<String, Object>(variables);
+
+ executionService.startExecutionByName("var", variables, "one");
+
+ Set<String> variableNames = executionService.getVariableNames("var/one");
+ assertNotNull(variableNames);
+
+ assertEquals(expectedVariableNames, variableNames);
+
+ variables = executionService.getVariables("var/one", variableNames);
+
+ assertEquals(expectedVariables, variables);
+ }
+}
Property changes on: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/variables/BasicVariablesTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: jbpm4/trunk/modules/userguide/.project
===================================================================
--- jbpm4/trunk/modules/userguide/.project 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/userguide/.project 2008-12-03 12:25:57 UTC (rev 3179)
@@ -1,17 +1,23 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>userguide</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.maven.ide.eclipse.maven2Builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.maven.ide.eclipse.maven2Nature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>userguide</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.maven.ide.eclipse.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.stp.bpmn.validation.BatchValidationBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.maven.ide.eclipse.maven2Nature</nature>
+ <nature>org.eclipse.stp.bpmn.validation.BatchValidationBuildAbleNature</nature>
+ </natures>
+</projectDescription>
Added: jbpm4/trunk/modules/userguide/.settings/attachedFile.properties
===================================================================
--- jbpm4/trunk/modules/userguide/.settings/attachedFile.properties (rev 0)
+++ jbpm4/trunk/modules/userguide/.settings/attachedFile.properties 2008-12-03 12:25:57 UTC (rev 3179)
@@ -0,0 +1,2 @@
+## index of importer -> set(imports)
+#Wed Dec 03 08:29:43 CET 2008
Added: jbpm4/trunk/modules/userguide/src/main/diagrams/bpmn/loan.process.bpm
===================================================================
(Binary files differ)
Property changes on: jbpm4/trunk/modules/userguide/src/main/diagrams/bpmn/loan.process.bpm
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: jbpm4/trunk/modules/userguide/src/main/diagrams/diagrams.mdzip
===================================================================
(Binary files differ)
Added: jbpm4/trunk/modules/userguide/src/main/docbook/en/images/loan.executions.png
===================================================================
(Binary files differ)
Property changes on: jbpm4/trunk/modules/userguide/src/main/docbook/en/images/loan.executions.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: jbpm4/trunk/modules/userguide/src/main/docbook/en/images/loan.process.definition.png
===================================================================
(Binary files differ)
Property changes on: jbpm4/trunk/modules/userguide/src/main/docbook/en/images/loan.process.definition.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: jbpm4/trunk/modules/userguide/src/main/docbook/en/images/loan.process.instance.png
===================================================================
(Binary files differ)
Property changes on: jbpm4/trunk/modules/userguide/src/main/docbook/en/images/loan.process.instance.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: jbpm4/trunk/modules/userguide/src/main/docbook/en/master.xml
===================================================================
--- jbpm4/trunk/modules/userguide/src/main/docbook/en/master.xml 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/userguide/src/main/docbook/en/master.xml 2008-12-03 12:25:57 UTC (rev 3179)
@@ -2,8 +2,9 @@
<!DOCTYPE book [
<!ENTITY ch01-Introduction SYSTEM "modules/ch01-Introduction.xml">
- <!ENTITY ch02-Environments SYSTEM "modules/ch02-Environments.xml">
+ <!ENTITY ch02-Installation SYSTEM "modules/ch02-Installation.xml">
<!ENTITY ch03-Services SYSTEM "modules/ch03-Services.xml">
+ <!ENTITY ch04-Jpdl SYSTEM "modules/ch04-Jpdl.xml">
]>
<book lang="en">
@@ -15,7 +16,8 @@
<toc />
&ch01-Introduction;
- &ch02-Environments;
+ &ch02-Installation;
&ch03-Services;
+ &ch04-Jpdl;
</book>
\ No newline at end of file
Modified: jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch01-Introduction.xml
===================================================================
--- jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch01-Introduction.xml 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch01-Introduction.xml 2008-12-03 12:25:57 UTC (rev 3179)
@@ -44,6 +44,49 @@
The developers guide explains more advanced customization options that
are not supported.
</para>
- </section>
+ </section>
+
+ <section id="processdefinitionprocessinstanceandexecutions">
+ <title>Process definition, process instance and executions</title>
+ <para>A process definition is description of the steps in a procedure.
+ For example, an insurance company could have a <literal>loan</literal>
+ process definition that describes the steps of how the company deals
+ with loan requests.
+ </para>
+ <figure id="loan.process.definition.example">
+ <title>The loan process definition example</title>
+ <mediaobject><imageobject><imagedata align="center" fileref="images/loan.process.definition.png"/></imageobject></mediaobject>
+ </figure>
+ <para>One process instance represents one particular run of a process definition.
+ For example, the loan request of John Doe last Friday to finance his new boat
+ is represented in one process instance of the loan process definition.
+ </para>
+ <para>A process instance contains all the runtime state. The
+ most prominent property is the pointer that keeps track of the current node.
+ </para>
+ <figure id="loan.process.instance.example">
+ <title>The loan process instance example</title>
+ <mediaobject><imageobject><imagedata align="center" fileref="images/loan.process.instance.png"/></imageobject></mediaobject>
+ </figure>
+ <para>Suppose that wiring the money and archiving can be done in parallel.
+ Then the main process instance will have two child executions to keep
+ track of the state like this:
+ </para>
+ <figure id="loan.executions.example">
+ <title>The loan executions example</title>
+ <mediaobject><imageobject><imagedata align="center" fileref="images/loan.executions.png"/></imageobject></mediaobject>
+ </figure>
+ <para>More general, a process instance is the root of a tree of executions.
+ When a new process instance is started, the process instance is in fact the root
+ execution scope. Only leaf executions can be active.
+ </para>
+ <para>The motivation to work with a tree structure like this is that
+ this conceptually remains simple in the case where there is only one path
+ of execution. The services API doesn't need to make a functional difference
+ between process instances and executions. Therefore, the API has only
+ Execution as a type to refer to both <literal>ProcessInstance</literal>s and
+ <literal>Execution</literal>s.
+ </para>
+ </section>
</chapter>
Deleted: jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch02-Environments.xml
===================================================================
--- jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch02-Environments.xml 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch02-Environments.xml 2008-12-03 12:25:57 UTC (rev 3179)
@@ -1,23 +0,0 @@
-<chapter id="environments">
- <title>Environments</title>
-
- <para>This chapter describes the supported environments
- and the supported configurations for these environments.
- </para>
-
- <section id="plainjava">
- <title>Plain Java</title>
- <para>TODO : specify library dependencies</para>
- </section>
-
- <section id="tomcat-xxx">
- <title>Tomcat xxx</title>
- <para>TODO</para>
- </section>
-
- <section id="jboss-xxx">
- <title>JBoss xxx</title>
- <para>TODO</para>
- </section>
-
-</chapter>
\ No newline at end of file
Copied: jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch02-Installation.xml (from rev 3159, jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch02-Environments.xml)
===================================================================
--- jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch02-Installation.xml (rev 0)
+++ jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch02-Installation.xml 2008-12-03 12:25:57 UTC (rev 3179)
@@ -0,0 +1,38 @@
+<chapter id="installation">
+ <title>Installation</title>
+
+ <para>This chapter describes how to install jBPM in different
+ application environments.
+ </para>
+
+ <section id="libraries">
+ <title>Libraries</title>
+ <para>jBPM can run on a JVM without a dependency on any library.
+ See object execution mode in the developers guide. But in this
+ userguide we'll cover the most common way to use jBPM, which is
+ where jBPM stores its process definitions, executions and
+ history in a relational database. In that case, hibernate has to
+ be added to the classpath. Also some of the jPDL features require
+ extra libraries. Therefore, by including all the libraries in the
+ lib directory, you get access to all those features and persistence.
+ </para>
+ </section>
+
+ <section id="tomcat-xxx">
+ <title>Tomcat xxx</title>
+ <para>TODO: this will contain a description of how to use the
+ installer to install jbpm on tomcat</para>
+ </section>
+
+ <section id="jboss-xxx">
+ <title>JBoss xxx</title>
+ <para>TODO: this will contain a description of how to use the
+ installer to install jbpm on jboss</para>
+ </section>
+
+ <section id="database">
+ <title>Database</title>
+ <para>TODO</para>
+ </section>
+
+</chapter>
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch02-Installation.xml
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch03-Services.xml
===================================================================
--- jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch03-Services.xml 2008-12-03 11:26:16 UTC (rev 3178)
+++ jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch03-Services.xml 2008-12-03 12:25:57 UTC (rev 3179)
@@ -38,14 +38,22 @@
can be obtained:
</para>
- <programlisting>ProcessService processService = processEngine.getProcessService();
-ExecutionService executionService = processEngine.getExecutionService();
-ManagementService managementService = processEngine.getManagementService();
-TaskService taskService = processEngine.getTaskService();</programlisting>
+ <programlisting><emphasis role="bold">ProcessService</emphasis> processService = processEngine.getProcessService();
+<emphasis role="bold">ExecutionService</emphasis> executionService = processEngine.getExecutionService();
+<emphasis role="bold">ManagementService</emphasis> managementService = processEngine.getManagementService();
+<emphasis role="bold">TaskService</emphasis> taskService = processEngine.getTaskService();</programlisting>
+
+ <para>Process engine objects defined in the configuration can also be retrieved by
+ type (<literal>processEngine.get(Class<T> T)</literal>)
+ or by name (<literal>processEngine.get(String name)</literal>)</para>
+
</section>
-
+
<section id="deployingaprocess">
<title>Deploying a process</title>
+ <para>The <literal>ProcessService</literal> groups all methods that access
+ the repository of process definitions.
+ </para>
<para>A jPDL process file like e.g. <literal>order.jpdl.xml</literal> that is
accessible as a resource on the classpath can be deployed programmatically with the
<literal>ProcessService</literal> like this:
@@ -59,14 +67,17 @@
input stream, zip or jar archive and a directory.
</para>
<para>During deployment, an <literal>id</literal> is assigned to the process
- definition. Process definition properties <literal>name</literal> and
- <literal>id</literal> are important for referencing the deployed process
- definition later on. The <literal>id</literal> is based on the <literal>name</literal>
- or <literal>key</literal> and <literal>version</literal>.
+ definition. The <literal>id</literal> will have format
+ <literal>{key}:{version}</literal>
</para>
- <para>If a <literal>key</literal> is provided, the <literal>id</literal>
- will be <literal>{key}:{version}</literal>, otherwise it's
- <literal>{name}:{version}</literal>. If no <literal>version</literal> is specified,
+ <para>Process definition properties <literal>name</literal>, <literal>key</literal>
+ and <literal>id</literal> are important for referencing the deployed process
+ definition later on.
+ </para>
+ <para>If a <literal>key</literal> is not provided, it is generated based on the
+ name. All non alpha numeric characters in the name will be replaced by underscores.
+ </para>
+ <para>If no <literal>version</literal> is specified,
a <literal>version</literal> (<literal>int</literal>) will be assigned. For version
assignment, the versions of all deployed process definitions with the same name will
be taken into account. The assigned <literal>version</literal> will be one higher
@@ -74,51 +85,170 @@
with the same name. If no similarly named process definitions have been deployed,
version number 1 is assigned.
</para>
- <para>For example, the first time when the process</para>
- <programlisting><process name="order">
-...
-</process></programlisting>
- <para>is deployed, version 1 will be assigned and the generated <literal>id</literal>
- will be <literal>order:1</literal> The second time when this process is deployed,
- version 2 will be assigned and the generated id will be <literal>order:2</literal>
- </para>
- <para>The generated id will also replace all non digits and non [a-Z] characters
- with underscores. So the first time when process</para>
+ <para>In this first example, we'll supply a name and nothing else.</para>
<programlisting><process name="Insurance claim">
...
</process></programlisting>
- <para>is deployed, the assigned id will be <literal>Insurance_claim:1</literal>
+ <para>Let's assume that this is the first time that this process gets deployed.
+ Then it will get the following properties:
</para>
- <para>To get short <literal>id</literal>s, a <literal>key</literal> like this:</para>
+ <table><title>Process properties without key</title>
+ <tgroup cols="2" rowsep="1" colsep="1">
+ <thead>
+ <row>
+ <entry>Property</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><literal>name</literal></entry>
+ <entry>Insurance claim</entry>
+ </row>
+ <row>
+ <entry><literal>key</literal></entry>
+ <entry>Insurance_claim</entry>
+ </row>
+ <row>
+ <entry><literal>version</literal></entry>
+ <entry>1</entry>
+ </row>
+ <row>
+ <entry><literal>id</literal></entry>
+ <entry>Insurance_claim:1</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>And as a second example, we'll show how you can get shorter ids by
+ specifying a process key in the process element:</para>
<programlisting><process name="Insurance claim" key="ICL">
...
</process></programlisting>
- <para>resulting in id <literal>ICL:1</literal> being generated.</para>
- <para>The <literal>ProcessService</literal> groups all methods that access
- the repository of process definitions.
- </para>
+ <para>Then the process definition properties look like this:</para>
+ <table><title>Process properties with key</title>
+ <tgroup cols="2" rowsep="1" colsep="1">
+ <thead>
+ <row>
+ <entry>Property</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><literal>name</literal></entry>
+ <entry>Insurance claim</entry>
+ </row>
+ <row>
+ <entry><literal>key</literal></entry>
+ <entry>ICL</entry>
+ </row>
+ <row>
+ <entry><literal>version</literal></entry>
+ <entry>1</entry>
+ </row>
+ <row>
+ <entry><literal>id</literal></entry>
+ <entry>ICL:1</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
</section>
-
+
<section id="startinganewprocessinstance">
<title>Starting a new process instance</title>
- <para>Starting a new process instance for a given
+
+ <section id="inlatest">
+ <title>In latest</title>
+ <para>Simplest and most common way to start a new process instance for a process
+ definition is like this:
+ </para>
+ <programlisting>executionService.startExecutionByKey("ICL");</programlisting>
+ <para>In this case, the service method will first look up the latest version of
+ the processes with key <literal>ICL</literal>. Then a new
+ process instance is started in that latest process definition.
+ </para>
+ <para>Analogue, method <literal>startExecutionByName</literal> will
+ start a new execution in the latest version of the process definitions
+ with the given name.
+ </para>
+ <para>When a new version of the insurance claim process
+ is deployed, all invocations of <literal>startExecutionByKey</literal>
+ and <literal>startExecutionByName</literal>
+ will automatically switch to the newly deployed version.
+ </para>
+ </section>
+
+ <section id="specificprocessversion">
+ <title>Specific process version</title>
+ <para>If instead you want to start a new process instance in a very
+ specific version, you can use the id of the process definition like this:
+ </para>
+ <programlisting>executionService.startExecutionById("ICL:1");</programlisting>
+ </section>
+
+ <section id="withakey">
+ <title>With a key</title>
+ <para>A new process instance can optionally be given a key. A key is
+ a user defined reference to the execution. A key must be unique within the
+ scope of all versions of a process definition. Typically it is easy
+ to find such a key in the domain of the business process. For example, an
+ order id or an insurance claim number.
+ </para>
+ <programlisting>executionService.startExecutionByKey("ICL", "CL92837");</programlisting>
+ <para>The key is used to create the id of the process instance.
+ The format used is <literal>{process-key}/{execution-id}</literal>.
+ So execution created in the previous code snippet will have id
+ <literal>ICL/CL92837</literal>.
+ </para>
+ <para>If no user defined key is provided, the DB primary key is taken
+ as the key. In that case, the id can be retrieved like this:
+ <programlisting>Execution execution = executionService.startExecutionByKey("ICL");
+String executionId = execution.getId();</programlisting>
+ </para>
+ <para>We recommend the use of a user defined keys. Typically in your application
+ code, you'll have the key available. By providing a user defined key, you can
+ then compose the id of the execution, rather then performing a query based
+ on the process variables.
+ </para>
+ </section>
+
+ <section id="withvariables">
+ <title>With variables</title>
+ <para>A map of named parameter objects can be provided when starting a
+ new process instance. These parameters will be set as variables on the process
+ instance between creation and start of the process instance.
+ </para>
+ <programlisting>Map<String,Object> variables = new HashMap<String,Object>();
+variables.put("customer", "John Doe");
+variables.put("type", "Accident");
+variables.put("amount", new Float(763.74));
+executionService.startExecution("insurance_claim:1", variables);</programlisting>
+ </section>
+ </section>
+
+ <section id="retrievinganexecution">
+ <title>Retrieving an execution</title>
+ <para>
</para>
</section>
-
+
<section id="singallingawaitingexecution">
- <title>Starting a new process instance</title>
+ <title>Signalling a waiting execution</title>
<para>
</para>
</section>
-
+
<section id="taskservice">
<title>TaskService</title>
<para></para>
</section>
-
+
<section id="managementservice">
<title>ManagementService</title>
<para></para>
</section>
-
+
</chapter>
\ No newline at end of file
Added: jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch04-Jpdl.xml
===================================================================
--- jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch04-Jpdl.xml (rev 0)
+++ jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch04-Jpdl.xml 2008-12-03 12:25:57 UTC (rev 3179)
@@ -0,0 +1,23 @@
+<chapter id="jpdl">
+ <title>jPDL</title>
+
+ <para>This chapter will explain the jPDL file format for describing
+ process definitions.
+ </para>
+
+ <section id="process">
+ <title><literal>process</literal></title>
+ <para></para>
+ </section>
+
+ <section id="activities">
+ <title>Activities</title>
+ <para>Diff between node and activity?</para>
+
+ <section id="start">
+ <title><literal>start</literal></title>
+ <para></para>
+ </section>
+ </section>
+
+</chapter>
\ No newline at end of file
Property changes on: jbpm4/trunk/modules/userguide/src/main/docbook/en/modules/ch04-Jpdl.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
15 years, 5 months
JBoss JBPM SVN: r3178 - projects/gwt-console/trunk/server/src/main/resources.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-12-03 06:26:16 -0500 (Wed, 03 Dec 2008)
New Revision: 3178
Modified:
projects/gwt-console/trunk/server/src/main/resources/instance_report.rptconfig
projects/gwt-console/trunk/server/src/main/resources/instance_report.rptdesign
Log:
Added axis label
Modified: projects/gwt-console/trunk/server/src/main/resources/instance_report.rptconfig
===================================================================
--- projects/gwt-console/trunk/server/src/main/resources/instance_report.rptconfig 2008-12-03 11:20:09 UTC (rev 3177)
+++ projects/gwt-console/trunk/server/src/main/resources/instance_report.rptconfig 2008-12-03 11:26:16 UTC (rev 3178)
@@ -3,11 +3,11 @@
<list-property name="configVars">
<structure>
<property name="name">__isdisplay__name_283_0</property>
- <property name="value">ForkJoinExample3</property>
+ <property name="value">TaskAssignmentExample</property>
</structure>
<structure>
<property name="name">name_283_1</property>
- <property name="value">ForkJoinExample3</property>
+ <property name="value">TaskAssignmentExample</property>
</structure>
<structure>
<property name="name">name_283_type_</property>
Modified: projects/gwt-console/trunk/server/src/main/resources/instance_report.rptdesign
===================================================================
--- projects/gwt-console/trunk/server/src/main/resources/instance_report.rptdesign 2008-12-03 11:20:09 UTC (rev 3177)
+++ projects/gwt-console/trunk/server/src/main/resources/instance_report.rptdesign 2008-12-03 11:26:16 UTC (rev 3178)
@@ -760,15 +760,22 @@
<Type>Linear</Type>
<Title>
<Caption>
- <Value>X-Axis Title</Value>
+ <Value>Instance ID</Value>
<Font>
- <Size>14.0</Size>
+ <Name>SansSerif</Name>
+ <Size>9.0</Size>
<Bold>true</Bold>
<Alignment>
<horizontalAlignment>Center</horizontalAlignment>
<verticalAlignment>Center</verticalAlignment>
</Alignment>
</Font>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>192</Red>
+ <Green>192</Green>
+ <Blue>192</Blue>
+ </Color>
</Caption>
<Background xsi:type="attribute:ColorDefinition">
<Transparency>0</Transparency>
@@ -792,7 +799,7 @@
<Bottom>0.0</Bottom>
<Right>3.0</Right>
</Insets>
- <Visible>false</Visible>
+ <Visible>true</Visible>
</Title>
<TitlePosition>Below</TitlePosition>
<AssociatedAxes>
@@ -1463,8 +1470,16 @@
<Caption>
<Value></Value>
<Font>
+ <Name>SansSerif</Name>
+ <Size>9.0</Size>
<Alignment/>
</Font>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
</Caption>
<Background xsi:type="attribute:ColorDefinition">
<Transparency>0</Transparency>
@@ -1692,7 +1707,6 @@
<structure>
<property name="operator">is-true</property>
<expression name="expr">row["upperQuartile"]</expression>
- <simple-property-list name="value1"/>
</structure>
</list-property>
<column id="332"/>
15 years, 5 months
JBoss JBPM SVN: r3177 - projects/docbook-style/src/main/css/css.
by do-not-reply@jboss.org
Author: tom.baeyens(a)jboss.com
Date: 2008-12-03 06:20:09 -0500 (Wed, 03 Dec 2008)
New Revision: 3177
Modified:
projects/docbook-style/src/main/css/css/documentation.css
Log:
removed table width 100 pct
Modified: projects/docbook-style/src/main/css/css/documentation.css
===================================================================
--- projects/docbook-style/src/main/css/css/documentation.css 2008-12-03 11:14:50 UTC (rev 3176)
+++ projects/docbook-style/src/main/css/css/documentation.css 2008-12-03 11:20:09 UTC (rev 3177)
@@ -310,7 +310,6 @@
table {
border:1px solid #aaa;
- width:100%;
border-collapse:collapse;
}
15 years, 5 months
JBoss JBPM SVN: r3176 - projects/gwt-console/trunk/server/src/main/resources.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-12-03 06:14:50 -0500 (Wed, 03 Dec 2008)
New Revision: 3176
Added:
projects/gwt-console/trunk/server/src/main/resources/instance_report.rptconfig
projects/gwt-console/trunk/server/src/main/resources/instance_report.rptdesign
projects/gwt-console/trunk/server/src/main/resources/task_report.rptdesign
Modified:
projects/gwt-console/trunk/server/src/main/resources/process_activity.rptdesign
Log:
Report drafts (work in progress)
Added: projects/gwt-console/trunk/server/src/main/resources/instance_report.rptconfig
===================================================================
--- projects/gwt-console/trunk/server/src/main/resources/instance_report.rptconfig (rev 0)
+++ projects/gwt-console/trunk/server/src/main/resources/instance_report.rptconfig 2008-12-03 11:14:50 UTC (rev 3176)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.15" id="1">
+ <list-property name="configVars">
+ <structure>
+ <property name="name">__isdisplay__name_283_0</property>
+ <property name="value">ForkJoinExample3</property>
+ </structure>
+ <structure>
+ <property name="name">name_283_1</property>
+ <property name="value">ForkJoinExample3</property>
+ </structure>
+ <structure>
+ <property name="name">name_283_type_</property>
+ <property name="value">string</property>
+ </structure>
+ <structure>
+ <property name="name">name_283_expr_</property>
+ <property name="value">dataSetRow["NAME_"]</property>
+ </structure>
+ </list-property>
+ <styles>
+ <style name="crosstab" id="2">
+ <property name="borderBottomColor">#CCCCCC</property>
+ <property name="borderBottomStyle">solid</property>
+ <property name="borderBottomWidth">1pt</property>
+ <property name="borderLeftColor">#CCCCCC</property>
+ <property name="borderLeftStyle">solid</property>
+ <property name="borderLeftWidth">1pt</property>
+ <property name="borderRightColor">#CCCCCC</property>
+ <property name="borderRightStyle">solid</property>
+ <property name="borderRightWidth">1pt</property>
+ <property name="borderTopColor">#CCCCCC</property>
+ <property name="borderTopStyle">solid</property>
+ <property name="borderTopWidth">1pt</property>
+ </style>
+ <style name="crosstab-cell" id="3">
+ <property name="borderBottomColor">#CCCCCC</property>
+ <property name="borderBottomStyle">solid</property>
+ <property name="borderBottomWidth">1pt</property>
+ <property name="borderLeftColor">#CCCCCC</property>
+ <property name="borderLeftStyle">solid</property>
+ <property name="borderLeftWidth">1pt</property>
+ <property name="borderRightColor">#CCCCCC</property>
+ <property name="borderRightStyle">solid</property>
+ <property name="borderRightWidth">1pt</property>
+ <property name="borderTopColor">#CCCCCC</property>
+ <property name="borderTopStyle">solid</property>
+ <property name="borderTopWidth">1pt</property>
+ </style>
+ </styles>
+</report>
Added: projects/gwt-console/trunk/server/src/main/resources/instance_report.rptdesign
===================================================================
--- projects/gwt-console/trunk/server/src/main/resources/instance_report.rptdesign (rev 0)
+++ projects/gwt-console/trunk/server/src/main/resources/instance_report.rptdesign 2008-12-03 11:14:50 UTC (rev 3176)
@@ -0,0 +1,1745 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.15" id="1">
+ <property name="createdBy">Eclipse BIRT Designer Version 2.2.2.r222_v20071226 Build <2.2.2.v20080226-1155></property>
+ <property name="units">in</property>
+ <property name="comments">Copyright (c) 2007 <<Your Company Name here>></property>
+ <html-property name="description">Creates a blank report with no predefined content.</html-property>
+ <text-property name="displayName">Blank Report</text-property>
+ <property name="iconFile">/templates/blank_report.gif</property>
+ <parameters>
+ <scalar-parameter name="name" id="283">
+ <property name="valueType">dynamic</property>
+ <property name="dataType">string</property>
+ <property name="paramType">simple</property>
+ <property name="controlType">list-box</property>
+ <property name="dataSetName">ProcessDefinitions</property>
+ <expression name="valueExpr">dataSetRow["NAME_"]</expression>
+ <property name="mustMatch">true</property>
+ <property name="fixedOrder">true</property>
+ <property name="defaultValue">TaskAssignmentExample</property>
+ <property name="distinct">true</property>
+ <structure name="format">
+ <property name="category">Unformatted</property>
+ </structure>
+ </scalar-parameter>
+ </parameters>
+ <data-sources>
+ <oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc" name="MySQL Local" id="6">
+ <property name="odaDriverClass">com.mysql.jdbc.Driver</property>
+ <property name="odaURL">jdbc:mysql://localhost:3306/jbpmtest</property>
+ <property name="odaUser">jbpmtest</property>
+ </oda-data-source>
+ </data-sources>
+ <data-sets>
+ <oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" name="ExecQuartileByInstance" id="228">
+ <list-property name="computedColumns">
+ <structure>
+ <property name="name">exec</property>
+ <expression name="expression">DateTimeSpan.seconds(row["startDate"],row["endDate"])</expression>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="name">q3</property>
+ <expression name="expression">row["exec"]</expression>
+ <property name="dataType">any</property>
+ <property name="aggregateFunction">QUARTILE</property>
+ <list-property name="arguments">
+ <structure>
+ <property name="name">QUARTILE</property>
+ <expression name="value">3</expression>
+ </structure>
+ </list-property>
+ </structure>
+ <structure>
+ <property name="name">q1</property>
+ <expression name="expression">row["exec"]</expression>
+ <property name="dataType">any</property>
+ <property name="aggregateFunction">QUARTILE</property>
+ <list-property name="arguments">
+ <structure>
+ <property name="name">QUARTILE</property>
+ <expression name="value">1</expression>
+ </structure>
+ </list-property>
+ </structure>
+ <structure>
+ <property name="name">upperQuartile</property>
+ <expression name="expression">row["exec"]>row["q3"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ </list-property>
+ <list-property name="columnHints">
+ <structure>
+ <property name="columnName">startDate</property>
+ <property name="displayName">startDate</property>
+ </structure>
+ <structure>
+ <property name="columnName">endDate</property>
+ <property name="displayName">endDate</property>
+ </structure>
+ <structure>
+ <property name="columnName">TOKEN_</property>
+ <property name="displayName">TOKEN_</property>
+ </structure>
+ <structure>
+ <property name="columnName">instanceID</property>
+ <property name="displayName">instanceID</property>
+ </structure>
+ <structure>
+ <property name="columnName">NAME_</property>
+ <property name="displayName">NAME_</property>
+ </structure>
+ </list-property>
+ <structure name="cachedMetaData">
+ <list-property name="resultSet">
+ <structure>
+ <property name="position">1</property>
+ <property name="name">startDate</property>
+ <property name="dataType">date-time</property>
+ </structure>
+ <structure>
+ <property name="position">2</property>
+ <property name="name">endDate</property>
+ <property name="dataType">date-time</property>
+ </structure>
+ <structure>
+ <property name="position">3</property>
+ <property name="name">TOKEN_</property>
+ <property name="dataType">decimal</property>
+ </structure>
+ <structure>
+ <property name="position">4</property>
+ <property name="name">instanceID</property>
+ <property name="dataType">decimal</property>
+ </structure>
+ <structure>
+ <property name="position">5</property>
+ <property name="name">NAME_</property>
+ <property name="dataType">string</property>
+ </structure>
+ <structure>
+ <property name="position">6</property>
+ <property name="name">exec</property>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="position">7</property>
+ <property name="name">q3</property>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="position">8</property>
+ <property name="name">q1</property>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="position">9</property>
+ <property name="name">upperQuartile</property>
+ <property name="dataType">any</property>
+ </structure>
+ </list-property>
+ </structure>
+ <property name="rowFetchLimit">100</property>
+ <property name="dataSource">MySQL Local</property>
+ <list-property name="parameters">
+ <structure>
+ <property name="name">defName</property>
+ <property name="paramName">name</property>
+ <property name="dataType">string</property>
+ <property name="position">1</property>
+ <expression name="defaultValue">"TaskAssignmentExample"</expression>
+ <property name="isInput">true</property>
+ <property name="isOutput">false</property>
+ </structure>
+ </list-property>
+ <list-property name="resultSet">
+ <structure>
+ <property name="position">1</property>
+ <property name="name">startDate</property>
+ <property name="nativeName">startDate</property>
+ <property name="dataType">date-time</property>
+ <property name="nativeDataType">93</property>
+ </structure>
+ <structure>
+ <property name="position">2</property>
+ <property name="name">endDate</property>
+ <property name="nativeName">endDate</property>
+ <property name="dataType">date-time</property>
+ <property name="nativeDataType">93</property>
+ </structure>
+ <structure>
+ <property name="position">3</property>
+ <property name="name">TOKEN_</property>
+ <property name="nativeName">TOKEN_</property>
+ <property name="dataType">decimal</property>
+ <property name="nativeDataType">-5</property>
+ </structure>
+ <structure>
+ <property name="position">4</property>
+ <property name="name">instanceID</property>
+ <property name="nativeName">instanceID</property>
+ <property name="dataType">decimal</property>
+ <property name="nativeDataType">-5</property>
+ </structure>
+ <structure>
+ <property name="position">5</property>
+ <property name="name">NAME_</property>
+ <property name="nativeName">NAME_</property>
+ <property name="dataType">string</property>
+ <property name="nativeDataType">12</property>
+ </structure>
+ </list-property>
+ <property name="queryText">SELECT l1.DATE_ as startDate, l2.DATE_ as endDate,
+l1.TOKEN_, i.ID_ as instanceID, p.NAME_
+ FROM JBPM_LOG l1, JBPM_LOG l2, JBPM_TOKEN t, JBPM_PROCESSINSTANCE i, JBPM_PROCESSDEFINITION p
+WHERE (l1.CLASS_='I' AND l2.CLASS_='X')
+AND (l1.TOKEN_=l2.TOKEN_)
+AND t.ID_=l1.TOKEN_
+AND t.PROCESSINSTANCE_=i.ID_
+AND i.PROCESSDEFINITION_=p.ID_
+AND p.NAME_=?
+GROUP BY instanceId </property>
+ </oda-data-set>
+ <oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" name="ProcessDefinitions" id="282">
+ <list-property name="columnHints">
+ <structure>
+ <property name="columnName">ID_</property>
+ <property name="displayName">ID_</property>
+ </structure>
+ <structure>
+ <property name="columnName">NAME_</property>
+ <property name="displayName">NAME_</property>
+ </structure>
+ </list-property>
+ <structure name="cachedMetaData">
+ <list-property name="resultSet">
+ <structure>
+ <property name="position">1</property>
+ <property name="name">ID_</property>
+ <property name="dataType">decimal</property>
+ </structure>
+ <structure>
+ <property name="position">2</property>
+ <property name="name">NAME_</property>
+ <property name="dataType">string</property>
+ </structure>
+ </list-property>
+ </structure>
+ <property name="dataSource">MySQL Local</property>
+ <list-property name="resultSet">
+ <structure>
+ <property name="position">1</property>
+ <property name="name">ID_</property>
+ <property name="nativeName">ID_</property>
+ <property name="dataType">decimal</property>
+ <property name="nativeDataType">-5</property>
+ </structure>
+ <structure>
+ <property name="position">2</property>
+ <property name="name">NAME_</property>
+ <property name="nativeName">NAME_</property>
+ <property name="dataType">string</property>
+ <property name="nativeDataType">12</property>
+ </structure>
+ </list-property>
+ <property name="queryText">SELECT ID_,NAME_
+FROM JBPM_PROCESSDEFINITION</property>
+ <xml-property name="designerValues"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<model:DesignValues xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design" xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
+ <Version>1.0</Version>
+ <design:ResultSets derivedMetaData="true">
+ <design:resultSetDefinitions>
+ <design:resultSetColumns>
+ <design:resultColumnDefinitions>
+ <design:attributes>
+ <design:name>ID_</design:name>
+ <design:position>1</design:position>
+ <design:nativeDataTypeCode>-5</design:nativeDataTypeCode>
+ <design:precision>20</design:precision>
+ <design:scale>0</design:scale>
+ <design:nullability>NotNullable</design:nullability>
+ <design:uiHints>
+ <design:displayName>ID_</design:displayName>
+ </design:uiHints>
+ </design:attributes>
+ <design:usageHints>
+ <design:label>ID_</design:label>
+ <design:formattingHints>
+ <design:displaySize>20</design:displaySize>
+ </design:formattingHints>
+ </design:usageHints>
+ </design:resultColumnDefinitions>
+ <design:resultColumnDefinitions>
+ <design:attributes>
+ <design:name>NAME_</design:name>
+ <design:position>2</design:position>
+ <design:nativeDataTypeCode>12</design:nativeDataTypeCode>
+ <design:precision>255</design:precision>
+ <design:scale>0</design:scale>
+ <design:nullability>Nullable</design:nullability>
+ <design:uiHints>
+ <design:displayName>NAME_</design:displayName>
+ </design:uiHints>
+ </design:attributes>
+ <design:usageHints>
+ <design:label>NAME_</design:label>
+ <design:formattingHints>
+ <design:displaySize>255</design:displaySize>
+ </design:formattingHints>
+ </design:usageHints>
+ </design:resultColumnDefinitions>
+ </design:resultSetColumns>
+ </design:resultSetDefinitions>
+ </design:ResultSets>
+</model:DesignValues>]]></xml-property>
+ </oda-data-set>
+ </data-sets>
+ <styles>
+ <style name="crosstab" id="4">
+ <property name="borderBottomColor">#CCCCCC</property>
+ <property name="borderBottomStyle">solid</property>
+ <property name="borderBottomWidth">1pt</property>
+ <property name="borderLeftColor">#CCCCCC</property>
+ <property name="borderLeftStyle">solid</property>
+ <property name="borderLeftWidth">1pt</property>
+ <property name="borderRightColor">#CCCCCC</property>
+ <property name="borderRightStyle">solid</property>
+ <property name="borderRightWidth">1pt</property>
+ <property name="borderTopColor">#CCCCCC</property>
+ <property name="borderTopStyle">solid</property>
+ <property name="borderTopWidth">1pt</property>
+ </style>
+ <style name="crosstab-cell" id="5">
+ <property name="borderBottomColor">#CCCCCC</property>
+ <property name="borderBottomStyle">solid</property>
+ <property name="borderBottomWidth">1pt</property>
+ <property name="borderLeftColor">#CCCCCC</property>
+ <property name="borderLeftStyle">solid</property>
+ <property name="borderLeftWidth">1pt</property>
+ <property name="borderRightColor">#CCCCCC</property>
+ <property name="borderRightStyle">solid</property>
+ <property name="borderRightWidth">1pt</property>
+ <property name="borderTopColor">#CCCCCC</property>
+ <property name="borderTopStyle">solid</property>
+ <property name="borderTopWidth">1pt</property>
+ </style>
+ </styles>
+ <page-setup>
+ <simple-master-page name="Simple MasterPage" id="2"/>
+ </page-setup>
+ <body>
+ <text id="286">
+ <property name="fontFamily">sans-serif</property>
+ <property name="paddingTop">10pt</property>
+ <property name="paddingLeft">10pt</property>
+ <property name="contentType">html</property>
+ <text-property name="content"><![CDATA[Report for process: <value-of>params["name"]</value-of> ]]></text-property>
+ </text>
+ <table name="GlobalScriptTable" id="245">
+ <property name="width">100%</property>
+ <property name="dataSet">ExecQuartileByInstance</property>
+ <list-property name="boundDataColumns">
+ <structure>
+ <property name="name">startDate</property>
+ <expression name="expression">dataSetRow["startDate"]</expression>
+ <property name="dataType">date-time</property>
+ </structure>
+ <structure>
+ <property name="name">endDate</property>
+ <expression name="expression">dataSetRow["endDate"]</expression>
+ <property name="dataType">date-time</property>
+ </structure>
+ <structure>
+ <property name="name">TOKEN_</property>
+ <expression name="expression">dataSetRow["TOKEN_"]</expression>
+ <property name="dataType">decimal</property>
+ </structure>
+ <structure>
+ <property name="name">instanceID</property>
+ <expression name="expression">dataSetRow["instanceID"]</expression>
+ <property name="dataType">decimal</property>
+ </structure>
+ <structure>
+ <property name="name">NAME_</property>
+ <expression name="expression">dataSetRow["NAME_"]</expression>
+ <property name="dataType">string</property>
+ </structure>
+ <structure>
+ <property name="name">exec</property>
+ <expression name="expression">dataSetRow["exec"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="name">q3</property>
+ <expression name="expression">dataSetRow["q3"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="name">q1</property>
+ <expression name="expression">dataSetRow["q1"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="name">upperQuartile</property>
+ <expression name="expression">dataSetRow["upperQuartile"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="name">Column Binding</property>
+ <expression name="expression">params["name"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ </list-property>
+ <method name="onCreate"><![CDATA[// make dataset values available as global variables
+var q3Value = this.getRowData().getColumnValue("q3");
+var q1Value = this.getRowData().getColumnValue("exec");
+reportContext.setGlobalVariable("q3", q3Value);
+reportContext.setGlobalVariable("q1", q1Value);]]></method>
+ <column id="258"/>
+ <column id="259"/>
+ <detail>
+ <row id="250">
+ <cell id="251"/>
+ <cell id="252"/>
+ </row>
+ </detail>
+ </table>
+ <table id="287">
+ <property name="marginTop">0pt</property>
+ <property name="canShrink">true</property>
+ <property name="width">620px</property>
+ <column id="300"/>
+ <column id="301"/>
+ <header>
+ <row id="288">
+ <cell id="289">
+ <text id="339">
+ <property name="fontFamily">sans-serif</property>
+ <property name="fontWeight">bold</property>
+ <property name="paddingTop">1pt</property>
+ <property name="paddingLeft">10pt</property>
+ <property name="textAlign">left</property>
+ <property name="contentType">auto</property>
+ <text-property name="content"><![CDATA[Execution time quartiles]]></text-property>
+ </text>
+ </cell>
+ <cell id="290">
+ <text id="341">
+ <property name="fontFamily">sans-serif</property>
+ <property name="fontWeight">bold</property>
+ <property name="textAlign">left</property>
+ <property name="contentType">auto</property>
+ <text-property name="content"><![CDATA[Upper quartile]]></text-property>
+ </text>
+ </cell>
+ </row>
+ </header>
+ <detail>
+ <row id="292">
+ <cell id="293">
+ <extended-item extensionName="Chart" name="ExecQuartiles" id="223">
+ <xml-property name="xmlRepresentation"><![CDATA[<model:ChartWithAxes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:attribute="http://www.birt.eclipse.org/ChartModelAttribute" xmlns:data="http://www.birt.eclipse.org/ChartModelData" xmlns:layout="http://www.birt.eclipse.org/ChartModelLayout" xmlns:model="http://www.birt.eclipse.org/ChartModel" xmlns:type="http://www.birt.eclipse.org/ChartModelType">
+ <Type>Bar Chart</Type>
+ <SubType>Side-by-side</SubType>
+ <Block>
+ <Children xsi:type="layout:TitleBlock">
+ <Bounds>
+ <Left>0.0</Left>
+ <Top>0.0</Top>
+ <Width>0.0</Width>
+ <Height>0.0</Height>
+ </Bounds>
+ <Insets>
+ <Top>3.0</Top>
+ <Left>3.0</Left>
+ <Bottom>3.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Row>-1</Row>
+ <Column>-1</Column>
+ <Rowspan>-1</Rowspan>
+ <Columnspan>-1</Columnspan>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Visible>false</Visible>
+ <Label>
+ <Caption>
+ <Value>Execution time quartiles</Value>
+ <Font>
+ <Size>16.0</Size>
+ <Bold>true</Bold>
+ <Alignment>
+ <horizontalAlignment>Center</horizontalAlignment>
+ <verticalAlignment>Center</verticalAlignment>
+ </Alignment>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>0</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>true</Visible>
+ </Label>
+ </Children>
+ <Children xsi:type="layout:Plot">
+ <Bounds>
+ <Left>0.0</Left>
+ <Top>0.0</Top>
+ <Width>0.0</Width>
+ <Height>0.0</Height>
+ </Bounds>
+ <Insets>
+ <Top>3.0</Top>
+ <Left>3.0</Left>
+ <Bottom>3.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Row>-1</Row>
+ <Column>-1</Column>
+ <Rowspan>-1</Rowspan>
+ <Columnspan>-1</Columnspan>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Visible>true</Visible>
+ <HorizontalSpacing>5</HorizontalSpacing>
+ <VerticalSpacing>5</VerticalSpacing>
+ <ClientArea>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>0</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>0.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>0.0</Right>
+ </Insets>
+ </ClientArea>
+ </Children>
+ <Children xsi:type="layout:Legend">
+ <Bounds>
+ <Left>0.0</Left>
+ <Top>0.0</Top>
+ <Width>0.0</Width>
+ <Height>0.0</Height>
+ </Bounds>
+ <Insets>
+ <Top>3.0</Top>
+ <Left>3.0</Left>
+ <Bottom>3.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Row>-1</Row>
+ <Column>-1</Column>
+ <Rowspan>-1</Rowspan>
+ <Columnspan>-1</Columnspan>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Visible>false</Visible>
+ <ClientArea>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>0</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Insets>
+ <Top>2.0</Top>
+ <Left>2.0</Left>
+ <Bottom>2.0</Bottom>
+ <Right>2.0</Right>
+ </Insets>
+ </ClientArea>
+ <Text>
+ <Value></Value>
+ <Font>
+ <Alignment/>
+ </Font>
+ </Text>
+ <Orientation>Vertical</Orientation>
+ <Direction>Top_Bottom</Direction>
+ <Separator>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>true</Visible>
+ </Separator>
+ <Position>Right</Position>
+ <ItemType>Series</ItemType>
+ <Title>
+ <Caption>
+ <Value></Value>
+ <Font>
+ <Alignment/>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>0</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>false</Visible>
+ </Title>
+ <TitlePosition>Above</TitlePosition>
+ </Children>
+ <Bounds>
+ <Left>0.0</Left>
+ <Top>0.0</Top>
+ <Width>212.0</Width>
+ <Height>130.0</Height>
+ </Bounds>
+ <Insets>
+ <Top>3.0</Top>
+ <Left>3.0</Left>
+ <Bottom>3.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Row>-1</Row>
+ <Column>-1</Column>
+ <Rowspan>-1</Rowspan>
+ <Columnspan>-1</Columnspan>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Visible>true</Visible>
+ </Block>
+ <Dimension>Two_Dimensional</Dimension>
+ <Script>/*function beforeDrawDataPoint(dataPointHints, fill, scriptContext )
+{
+ val = dataPointHints.getOrthogonalValue();
+ chart = scriptContext.getChartInstance();
+ marker = chart.getAxes().get(0).getAssociatedAxes().get(0).getMarkerLines().get(0).getValue().getValue();
+
+ if (val > marker) //crosses marker?
+ fill.set(255, 0, 0); //yes - display in red
+ else
+ fill.set(0, 0, 255); //no - display in blue
+}*/
+
+
+/**
+ * Called before generation of chart model to GeneratedChartState.
+ *
+ * @param chart
+ * Chart
+ * @param icsc
+ * IChartScriptContext
+ */
+
+function beforeGeneration(chart, icsc){
+ importPackage(Packages.org.eclipse.birt.chart.model.component.impl);
+ importPackage(Packages.org.eclipse.birt.chart.model.data.impl);
+ importPackage(Packages.org.eclipse.birt.chart.model.attribute);
+ importPackage(Packages.org.eclipse.birt.chart.model.attribute.impl);
+
+ reportContext = icsc.getExternalContext().getScriptable();
+
+ var chart = icsc.getChartInstance();
+ var yAxis = chart.getAxes().get(0).getAssociatedAxes().get(0);
+
+ var topValue = reportContext.getGlobalVariable("q3");
+ var bottomValue = reportContext.getGlobalVariable("q1");
+
+ top_ml = MarkerLineImpl.create(yAxis, NumberDataElementImpl.create(topValue));
+ top_ml.getLabel().getCaption().setValue("Q.75");
+ top_ml.getLineAttributes().getColor().set(204,204,204);
+ top_ml.getLineAttributes().setStyle(LineStyle.SOLID_LITERAL);
+ top_ml.getLineAttributes().setThickness(1);
+
+ //bottom_ml = MarkerLineImpl.create(yAxis, NumberDataElementImpl.create(bottomValue));
+ //bottom_ml.getLabel().getCaption().setValue("Q.25");
+ //bottom_ml.getLineAttributes().getColor().set(204,204,204);
+ //bottom_ml.getLineAttributes().setStyle(LineStyle.SOLID_LITERAL);
+ //bottom_ml.getLineAttributes().setThickness(1);
+}</Script>
+ <Units>Points</Units>
+ <SeriesThickness>10.0</SeriesThickness>
+ <GridColumnCount>1</GridColumnCount>
+ <SampleData>
+ <BaseSampleData>
+ <DataSetRepresentation>5.0,4.0,12.0</DataSetRepresentation>
+ </BaseSampleData>
+ <OrthogonalSampleData>
+ <DataSetRepresentation>5.0,4.0,12.0</DataSetRepresentation>
+ <SeriesDefinitionIndex>0</SeriesDefinitionIndex>
+ </OrthogonalSampleData>
+ </SampleData>
+ <Interactivity>
+ <Enable>true</Enable>
+ <LegendBehavior>None</LegendBehavior>
+ </Interactivity>
+ <Axes>
+ <Type>Linear</Type>
+ <Title>
+ <Caption>
+ <Value>X-Axis Title</Value>
+ <Font>
+ <Size>14.0</Size>
+ <Bold>true</Bold>
+ <Alignment>
+ <horizontalAlignment>Center</horizontalAlignment>
+ <verticalAlignment>Center</verticalAlignment>
+ </Alignment>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>0</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>false</Visible>
+ </Title>
+ <TitlePosition>Below</TitlePosition>
+ <AssociatedAxes>
+ <Type>Logarithmic</Type>
+ <Title>
+ <Caption>
+ <Value>Exec time</Value>
+ <Font>
+ <Size>14.0</Size>
+ <Bold>true</Bold>
+ <Alignment>
+ <horizontalAlignment>Center</horizontalAlignment>
+ <verticalAlignment>Center</verticalAlignment>
+ </Alignment>
+ <Rotation>90.0</Rotation>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>0</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>false</Visible>
+ </Title>
+ <TitlePosition>Left</TitlePosition>
+ <SeriesDefinitions>
+ <Query>
+ <Definition></Definition>
+ </Query>
+ <SeriesPalette>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>80</Red>
+ <Green>166</Green>
+ <Blue>218</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>242</Red>
+ <Green>88</Green>
+ <Blue>106</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>232</Red>
+ <Green>172</Green>
+ <Blue>57</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>255</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>64</Red>
+ <Green>128</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>170</Red>
+ <Green>85</Green>
+ <Blue>85</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>0</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>192</Red>
+ <Green>192</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>192</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>7</Red>
+ <Green>146</Green>
+ <Blue>94</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>128</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>0</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>64</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>80</Red>
+ <Green>240</Green>
+ <Blue>120</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>64</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>0</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>0</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>64</Green>
+ <Blue>0</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>0</Blue>
+ </Entries>
+ </SeriesPalette>
+ <Series xsi:type="type:BarSeries">
+ <Visible>true</Visible>
+ <Label>
+ <Caption>
+ <Value></Value>
+ <Font>
+ <Alignment/>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>0</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>false</Visible>
+ </Label>
+ <DataDefinition>
+ <Definition>row["exec"]</Definition>
+ </DataDefinition>
+ <SeriesIdentifier></SeriesIdentifier>
+ <DataPoint>
+ <Components>
+ <Type>Orthogonal_Value</Type>
+ </Components>
+ <Separator>, </Separator>
+ </DataPoint>
+ <LabelPosition>Inside</LabelPosition>
+ <Stacked>false</Stacked>
+ <Riser>Rectangle</Riser>
+ </Series>
+ <Grouping>
+ <Enabled>false</Enabled>
+ <GroupingInterval>2</GroupingInterval>
+ <GroupType>Text</GroupType>
+ <AggregateExpression>Sum</AggregateExpression>
+ </Grouping>
+ <Sorting>Ascending</Sorting>
+ </SeriesDefinitions>
+ <Orientation>Vertical</Orientation>
+ <LineAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>192</Red>
+ <Green>192</Green>
+ <Blue>192</Blue>
+ </Color>
+ <Visible>true</Visible>
+ </LineAttributes>
+ <Label>
+ <Caption>
+ <Value></Value>
+ <Font>
+ <Alignment/>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>0</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>false</Visible>
+ </Label>
+ <LabelPosition>Left</LabelPosition>
+ <MajorGrid>
+ <LineAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>196</Red>
+ <Green>196</Green>
+ <Blue>196</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </LineAttributes>
+ <TickStyle>Across</TickStyle>
+ <TickAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>196</Red>
+ <Green>196</Green>
+ <Blue>196</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </TickAttributes>
+ </MajorGrid>
+ <MinorGrid>
+ <LineAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>225</Red>
+ <Green>225</Green>
+ <Blue>225</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </LineAttributes>
+ <TickStyle>Across</TickStyle>
+ <TickAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>225</Red>
+ <Green>225</Green>
+ <Blue>225</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </TickAttributes>
+ </MinorGrid>
+ <Scale>
+ <MinorGridsPerUnit>5</MinorGridsPerUnit>
+ </Scale>
+ <Origin>
+ <Type>Min</Type>
+ <Value xsi:type="data:NumberDataElement">
+ <Value>0.0</Value>
+ </Value>
+ </Origin>
+ <PrimaryAxis>true</PrimaryAxis>
+ <Percent>false</Percent>
+ </AssociatedAxes>
+ <SeriesDefinitions>
+ <Query>
+ <Definition></Definition>
+ </Query>
+ <SeriesPalette>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>80</Red>
+ <Green>166</Green>
+ <Blue>218</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>242</Red>
+ <Green>88</Green>
+ <Blue>106</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>232</Red>
+ <Green>172</Green>
+ <Blue>57</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>255</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>64</Red>
+ <Green>128</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>170</Red>
+ <Green>85</Green>
+ <Blue>85</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>0</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>192</Red>
+ <Green>192</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>192</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>7</Red>
+ <Green>146</Green>
+ <Blue>94</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>128</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>0</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>64</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>80</Red>
+ <Green>240</Green>
+ <Blue>120</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>64</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>0</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>0</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>64</Green>
+ <Blue>0</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>0</Blue>
+ </Entries>
+ </SeriesPalette>
+ <Series>
+ <Visible>true</Visible>
+ <Label>
+ <Caption>
+ <Value></Value>
+ <Font>
+ <Alignment/>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>0</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>false</Visible>
+ </Label>
+ <DataDefinition>
+ <Definition>row["instanceID"]</Definition>
+ </DataDefinition>
+ <SeriesIdentifier></SeriesIdentifier>
+ <DataPoint>
+ <Components>
+ <Type>Orthogonal_Value</Type>
+ </Components>
+ <Separator>, </Separator>
+ </DataPoint>
+ <LabelPosition>Outside</LabelPosition>
+ <Stacked>false</Stacked>
+ </Series>
+ <Grouping>
+ <Enabled>false</Enabled>
+ <GroupingInterval>2</GroupingInterval>
+ <GroupType>Text</GroupType>
+ <AggregateExpression>Sum</AggregateExpression>
+ </Grouping>
+ </SeriesDefinitions>
+ <Orientation>Horizontal</Orientation>
+ <LineAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>128</Blue>
+ </Color>
+ <Visible>true</Visible>
+ </LineAttributes>
+ <Label>
+ <Caption>
+ <Value></Value>
+ <Font>
+ <Alignment/>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>0</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>true</Visible>
+ </Label>
+ <LabelPosition>Below</LabelPosition>
+ <Staggered>false</Staggered>
+ <MajorGrid>
+ <LineAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>196</Red>
+ <Green>196</Green>
+ <Blue>196</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </LineAttributes>
+ <TickStyle>Across</TickStyle>
+ <TickAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>196</Red>
+ <Green>196</Green>
+ <Blue>196</Blue>
+ </Color>
+ <Visible>true</Visible>
+ </TickAttributes>
+ </MajorGrid>
+ <MinorGrid>
+ <LineAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>225</Red>
+ <Green>225</Green>
+ <Blue>225</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </LineAttributes>
+ <TickStyle>Across</TickStyle>
+ <TickAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>225</Red>
+ <Green>225</Green>
+ <Blue>225</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </TickAttributes>
+ </MinorGrid>
+ <Scale>
+ <MinorGridsPerUnit>5</MinorGridsPerUnit>
+ </Scale>
+ <Origin>
+ <Type>Min</Type>
+ <Value xsi:type="data:NumberDataElement">
+ <Value>0.0</Value>
+ </Value>
+ </Origin>
+ <PrimaryAxis>true</PrimaryAxis>
+ <CategoryAxis>true</CategoryAxis>
+ <Percent>false</Percent>
+ </Axes>
+ <Orientation>Vertical</Orientation>
+ <Rotation/>
+</model:ChartWithAxes>
+]]></xml-property>
+ <property name="outputFormat">SVG</property>
+ <property name="dataSet">ExecQuartileByInstance</property>
+ <property name="height">130pt</property>
+ <property name="width">212pt</property>
+ <list-property name="boundDataColumns">
+ <structure>
+ <property name="name">startDate</property>
+ <expression name="expression">dataSetRow["startDate"]</expression>
+ <property name="dataType">date-time</property>
+ </structure>
+ <structure>
+ <property name="name">endDate</property>
+ <expression name="expression">dataSetRow["endDate"]</expression>
+ <property name="dataType">date-time</property>
+ </structure>
+ <structure>
+ <property name="name">TOKEN_</property>
+ <expression name="expression">dataSetRow["TOKEN_"]</expression>
+ <property name="dataType">decimal</property>
+ </structure>
+ <structure>
+ <property name="name">instanceID</property>
+ <expression name="expression">dataSetRow["instanceID"]</expression>
+ <property name="dataType">decimal</property>
+ </structure>
+ <structure>
+ <property name="name">NAME_</property>
+ <expression name="expression">dataSetRow["NAME_"]</expression>
+ <property name="dataType">string</property>
+ </structure>
+ <structure>
+ <property name="name">exec</property>
+ <expression name="expression">dataSetRow["exec"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="name">q3</property>
+ <expression name="expression">dataSetRow["q3"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="name">q1</property>
+ <expression name="expression">dataSetRow["q1"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="name">upperQuartile</property>
+ <expression name="expression">dataSetRow["upperQuartile"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ </list-property>
+ </extended-item>
+ </cell>
+ <cell id="294">
+ <table id="319">
+ <property name="fontFamily">sans-serif</property>
+ <property name="fontSize">small</property>
+ <property name="marginTop">0pt</property>
+ <property name="width">160px</property>
+ <property name="dataSet">ExecQuartileByInstance</property>
+ <list-property name="boundDataColumns">
+ <structure>
+ <property name="name">startDate</property>
+ <expression name="expression">dataSetRow["startDate"]</expression>
+ <property name="dataType">date-time</property>
+ </structure>
+ <structure>
+ <property name="name">endDate</property>
+ <expression name="expression">dataSetRow["endDate"]</expression>
+ <property name="dataType">date-time</property>
+ </structure>
+ <structure>
+ <property name="name">TOKEN_</property>
+ <expression name="expression">dataSetRow["TOKEN_"]</expression>
+ <property name="dataType">decimal</property>
+ </structure>
+ <structure>
+ <property name="name">instanceID</property>
+ <expression name="expression">dataSetRow["instanceID"]</expression>
+ <property name="dataType">decimal</property>
+ </structure>
+ <structure>
+ <property name="name">NAME_</property>
+ <expression name="expression">dataSetRow["NAME_"]</expression>
+ <property name="dataType">string</property>
+ </structure>
+ <structure>
+ <property name="name">exec</property>
+ <expression name="expression">dataSetRow["exec"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="name">q3</property>
+ <expression name="expression">dataSetRow["q3"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="name">q1</property>
+ <expression name="expression">dataSetRow["q1"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="name">upperQuartile</property>
+ <expression name="expression">dataSetRow["upperQuartile"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="name">Column Binding</property>
+ <expression name="expression">row["instanceID"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="name">Column Binding_1</property>
+ <expression name="expression">row["exec"]</expression>
+ <property name="dataType">any</property>
+ </structure>
+ <structure>
+ <property name="name">Aggregation</property>
+ <property name="dataType">any</property>
+ <property name="aggregateFunction">COUNT</property>
+ <expression name="filterExpr">row["instanceID"]</expression>
+ </structure>
+ </list-property>
+ <list-property name="sort">
+ <structure>
+ <expression name="key">row["exec"]</expression>
+ <property name="direction">desc</property>
+ </structure>
+ </list-property>
+ <list-property name="filter">
+ <structure>
+ <property name="operator">is-true</property>
+ <expression name="expr">row["upperQuartile"]</expression>
+ <simple-property-list name="value1"/>
+ </structure>
+ </list-property>
+ <column id="332"/>
+ <column id="333"/>
+ <header>
+ <row id="320">
+ <cell id="321">
+ <text id="335">
+ <property name="contentType">auto</property>
+ <text-property name="content"><![CDATA[ID]]></text-property>
+ </text>
+ </cell>
+ <cell id="322">
+ <text id="336">
+ <property name="contentType">auto</property>
+ <text-property name="content"><![CDATA[Exec time (seconds)]]></text-property>
+ </text>
+ </cell>
+ </row>
+ </header>
+ <detail>
+ <row id="324">
+ <cell id="325">
+ <data id="337">
+ <property name="resultSetColumn">Column Binding</property>
+ </data>
+ </cell>
+ <cell id="326">
+ <data id="338">
+ <property name="paddingTop">1pt</property>
+ <property name="paddingLeft">10px</property>
+ <property name="paddingRight">1pt</property>
+ <property name="resultSetColumn">Column Binding_1</property>
+ </data>
+ </cell>
+ </row>
+ </detail>
+ <footer>
+ <row id="328">
+ <cell id="329"/>
+ <cell id="330"/>
+ </row>
+ </footer>
+ </table>
+ </cell>
+ </row>
+ </detail>
+ </table>
+ </body>
+</report>
Modified: projects/gwt-console/trunk/server/src/main/resources/process_activity.rptdesign
===================================================================
--- projects/gwt-console/trunk/server/src/main/resources/process_activity.rptdesign 2008-12-03 11:11:04 UTC (rev 3175)
+++ projects/gwt-console/trunk/server/src/main/resources/process_activity.rptdesign 2008-12-03 11:14:50 UTC (rev 3176)
@@ -198,99 +198,6 @@
GROUP BY NAME_
ORDER BY numberExec ASC LIMIT 15</property>
</oda-data-set>
- <oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" name="NumberOfAssignments" id="67">
- <list-property name="columnHints">
- <structure>
- <property name="columnName">count(TASKINSTANCE_)</property>
- <property name="displayName">count(TASKINSTANCE_)</property>
- </structure>
- <structure>
- <property name="columnName">TASKACTORID_</property>
- <property name="displayName">TASKACTORID_</property>
- </structure>
- </list-property>
- <structure name="cachedMetaData">
- <list-property name="resultSet">
- <structure>
- <property name="position">1</property>
- <property name="name">count(TASKINSTANCE_)</property>
- <property name="dataType">decimal</property>
- </structure>
- <structure>
- <property name="position">2</property>
- <property name="name">TASKACTORID_</property>
- <property name="dataType">string</property>
- </structure>
- </list-property>
- </structure>
- <property name="dataSource">MySQL Local</property>
- <list-property name="resultSet">
- <structure>
- <property name="position">1</property>
- <property name="name">count(TASKINSTANCE_)</property>
- <property name="nativeName">count(TASKINSTANCE_)</property>
- <property name="dataType">decimal</property>
- <property name="nativeDataType">-5</property>
- </structure>
- <structure>
- <property name="position">2</property>
- <property name="name">TASKACTORID_</property>
- <property name="nativeName">TASKACTORID_</property>
- <property name="dataType">string</property>
- <property name="nativeDataType">12</property>
- </structure>
- </list-property>
- <property name="queryText">select count(TASKINSTANCE_), TASKACTORID_ from JBPM_LOG where CLASS_='2'
-GROUP BY TASKACTORID_</property>
- <xml-property name="designerValues"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
-<model:DesignValues xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design" xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
- <Version>1.0</Version>
- <design:ResultSets derivedMetaData="true">
- <design:resultSetDefinitions>
- <design:resultSetColumns>
- <design:resultColumnDefinitions>
- <design:attributes>
- <design:name>count(TASKINSTANCE_)</design:name>
- <design:position>1</design:position>
- <design:nativeDataTypeCode>-5</design:nativeDataTypeCode>
- <design:precision>21</design:precision>
- <design:scale>0</design:scale>
- <design:nullability>NotNullable</design:nullability>
- <design:uiHints>
- <design:displayName>count(TASKINSTANCE_)</design:displayName>
- </design:uiHints>
- </design:attributes>
- <design:usageHints>
- <design:label>count(TASKINSTANCE_)</design:label>
- <design:formattingHints>
- <design:displaySize>21</design:displaySize>
- </design:formattingHints>
- </design:usageHints>
- </design:resultColumnDefinitions>
- <design:resultColumnDefinitions>
- <design:attributes>
- <design:name>TASKACTORID_</design:name>
- <design:position>2</design:position>
- <design:nativeDataTypeCode>12</design:nativeDataTypeCode>
- <design:precision>255</design:precision>
- <design:scale>0</design:scale>
- <design:nullability>Nullable</design:nullability>
- <design:uiHints>
- <design:displayName>TASKACTORID_</design:displayName>
- </design:uiHints>
- </design:attributes>
- <design:usageHints>
- <design:label>TASKACTORID_</design:label>
- <design:formattingHints>
- <design:displaySize>255</design:displaySize>
- </design:formattingHints>
- </design:usageHints>
- </design:resultColumnDefinitions>
- </design:resultSetColumns>
- </design:resultSetDefinitions>
- </design:ResultSets>
-</model:DesignValues>]]></xml-property>
- </oda-data-set>
<oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" name="RunningInstances" id="90">
<list-property name="columnHints">
<structure>
@@ -318,8 +225,8 @@
</structure>
</list-property>
<property name="queryText">SELECT count(ID_) as total
- FROM JBPM_PROCESSINSTANCE i
-WHERE i.END_ IS NULL</property>
+FROM JBPM_PROCESSINSTANCE
+WHERE END_ IS NULL</property>
</oda-data-set>
<oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" name="TotalDefinitions" id="171">
<list-property name="columnHints">
@@ -483,40 +390,30 @@
from JBPM_PROCESSDEFINITION
</property>
</oda-data-set>
- <oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" name="QuantilTest" id="228">
+ <oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" name="TimeDistributionDefinition" id="261">
<list-property name="computedColumns">
<structure>
- <property name="name">exec</property>
- <expression name="expression">DateTimeSpan.seconds(row["startDate"],row["endDate"])</expression>
- <property name="dataType">any</property>
+ <property name="name">weekAgo</property>
+ <expression name="expression">DateTimeSpan.subTime(row["start"],168,0)</expression>
+ <property name="dataType">date</property>
+ <property name="aggregateFunction">MAX</property>
</structure>
<structure>
- <property name="name">q3</property>
- <expression name="expression">row["exec"]</expression>
- <property name="dataType">any</property>
- <property name="aggregateFunction">QUARTILE</property>
- <list-property name="arguments">
- <structure>
- <property name="name">QUARTILE</property>
- <expression name="value">3</expression>
- </structure>
- </list-property>
+ <property name="name">included</property>
+ <expression name="expression">BirtComp.greaterOrEqual(row["start"], row["weekAgo"])</expression>
+ <property name="dataType">boolean</property>
</structure>
</list-property>
<list-property name="columnHints">
<structure>
- <property name="columnName">startDate</property>
- <property name="displayName">startDate</property>
+ <property name="columnName">start</property>
+ <property name="displayName">start</property>
</structure>
<structure>
- <property name="columnName">endDate</property>
- <property name="displayName">endDate</property>
+ <property name="columnName">end</property>
+ <property name="displayName">end</property>
</structure>
<structure>
- <property name="columnName">TOKEN_</property>
- <property name="displayName">TOKEN_</property>
- </structure>
- <structure>
<property name="columnName">instanceID</property>
<property name="displayName">instanceID</property>
</structure>
@@ -529,194 +426,75 @@
<list-property name="resultSet">
<structure>
<property name="position">1</property>
- <property name="name">startDate</property>
+ <property name="name">start</property>
<property name="dataType">date-time</property>
</structure>
<structure>
<property name="position">2</property>
- <property name="name">endDate</property>
+ <property name="name">end</property>
<property name="dataType">date-time</property>
</structure>
<structure>
<property name="position">3</property>
- <property name="name">TOKEN_</property>
+ <property name="name">instanceID</property>
<property name="dataType">decimal</property>
</structure>
<structure>
<property name="position">4</property>
- <property name="name">instanceID</property>
- <property name="dataType">decimal</property>
+ <property name="name">NAME_</property>
+ <property name="dataType">string</property>
</structure>
<structure>
<property name="position">5</property>
- <property name="name">NAME_</property>
- <property name="dataType">string</property>
+ <property name="name">weekAgo</property>
+ <property name="dataType">date</property>
</structure>
<structure>
<property name="position">6</property>
- <property name="name">exec</property>
- <property name="dataType">any</property>
+ <property name="name">included</property>
+ <property name="dataType">boolean</property>
</structure>
- <structure>
- <property name="position">7</property>
- <property name="name">q3</property>
- <property name="dataType">any</property>
- </structure>
</list-property>
</structure>
<property name="dataSource">MySQL Local</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
- <property name="name">startDate</property>
- <property name="nativeName">startDate</property>
+ <property name="name">start</property>
+ <property name="nativeName">start</property>
<property name="dataType">date-time</property>
<property name="nativeDataType">93</property>
</structure>
<structure>
<property name="position">2</property>
- <property name="name">endDate</property>
- <property name="nativeName">endDate</property>
+ <property name="name">end</property>
+ <property name="nativeName">end</property>
<property name="dataType">date-time</property>
<property name="nativeDataType">93</property>
</structure>
<structure>
<property name="position">3</property>
- <property name="name">TOKEN_</property>
- <property name="nativeName">TOKEN_</property>
- <property name="dataType">decimal</property>
- <property name="nativeDataType">-5</property>
- </structure>
- <structure>
- <property name="position">4</property>
<property name="name">instanceID</property>
<property name="nativeName">instanceID</property>
<property name="dataType">decimal</property>
<property name="nativeDataType">-5</property>
</structure>
<structure>
- <property name="position">5</property>
+ <property name="position">4</property>
<property name="name">NAME_</property>
<property name="nativeName">NAME_</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
</list-property>
- <property name="queryText">SELECT l1.DATE_ as startDate, l2.DATE_ as endDate,
-l1.TOKEN_, i.ID_ as instanceID, p.NAME_
+ <property name="queryText">SELECT l1.DATE_ as start, l2.DATE_ as end, i.ID_ as instanceID, p.NAME_
FROM JBPM_LOG l1, JBPM_LOG l2, JBPM_TOKEN t, JBPM_PROCESSINSTANCE i, JBPM_PROCESSDEFINITION p
WHERE (l1.CLASS_='I' AND l2.CLASS_='X')
AND (l1.TOKEN_=l2.TOKEN_)
AND t.ID_=l1.TOKEN_
AND t.PROCESSINSTANCE_=i.ID_
AND i.PROCESSDEFINITION_=p.ID_
-AND p.NAME_="ForkJoinExample3"
-GROUP BY instanceId </property>
- <xml-property name="designerValues"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
-<model:DesignValues xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design" xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
- <Version>1.0</Version>
- <design:ResultSets derivedMetaData="true">
- <design:resultSetDefinitions>
- <design:resultSetColumns>
- <design:resultColumnDefinitions>
- <design:attributes>
- <design:name>startDate</design:name>
- <design:position>1</design:position>
- <design:nativeDataTypeCode>93</design:nativeDataTypeCode>
- <design:precision>19</design:precision>
- <design:scale>0</design:scale>
- <design:nullability>Nullable</design:nullability>
- <design:uiHints>
- <design:displayName>startDate</design:displayName>
- </design:uiHints>
- </design:attributes>
- <design:usageHints>
- <design:label>startDate</design:label>
- <design:formattingHints>
- <design:displaySize>19</design:displaySize>
- </design:formattingHints>
- </design:usageHints>
- </design:resultColumnDefinitions>
- <design:resultColumnDefinitions>
- <design:attributes>
- <design:name>endDate</design:name>
- <design:position>2</design:position>
- <design:nativeDataTypeCode>93</design:nativeDataTypeCode>
- <design:precision>19</design:precision>
- <design:scale>0</design:scale>
- <design:nullability>Nullable</design:nullability>
- <design:uiHints>
- <design:displayName>endDate</design:displayName>
- </design:uiHints>
- </design:attributes>
- <design:usageHints>
- <design:label>endDate</design:label>
- <design:formattingHints>
- <design:displaySize>19</design:displaySize>
- </design:formattingHints>
- </design:usageHints>
- </design:resultColumnDefinitions>
- <design:resultColumnDefinitions>
- <design:attributes>
- <design:name>TOKEN_</design:name>
- <design:position>3</design:position>
- <design:nativeDataTypeCode>-5</design:nativeDataTypeCode>
- <design:precision>20</design:precision>
- <design:scale>0</design:scale>
- <design:nullability>Nullable</design:nullability>
- <design:uiHints>
- <design:displayName>TOKEN_</design:displayName>
- </design:uiHints>
- </design:attributes>
- <design:usageHints>
- <design:label>TOKEN_</design:label>
- <design:formattingHints>
- <design:displaySize>20</design:displaySize>
- </design:formattingHints>
- </design:usageHints>
- </design:resultColumnDefinitions>
- <design:resultColumnDefinitions>
- <design:attributes>
- <design:name>instanceID</design:name>
- <design:position>4</design:position>
- <design:nativeDataTypeCode>-5</design:nativeDataTypeCode>
- <design:precision>20</design:precision>
- <design:scale>0</design:scale>
- <design:nullability>NotNullable</design:nullability>
- <design:uiHints>
- <design:displayName>instanceID</design:displayName>
- </design:uiHints>
- </design:attributes>
- <design:usageHints>
- <design:label>instanceID</design:label>
- <design:formattingHints>
- <design:displaySize>20</design:displaySize>
- </design:formattingHints>
- </design:usageHints>
- </design:resultColumnDefinitions>
- <design:resultColumnDefinitions>
- <design:attributes>
- <design:name>NAME_</design:name>
- <design:position>5</design:position>
- <design:nativeDataTypeCode>12</design:nativeDataTypeCode>
- <design:precision>255</design:precision>
- <design:scale>0</design:scale>
- <design:nullability>Nullable</design:nullability>
- <design:uiHints>
- <design:displayName>NAME_</design:displayName>
- </design:uiHints>
- </design:attributes>
- <design:usageHints>
- <design:label>NAME_</design:label>
- <design:formattingHints>
- <design:displaySize>255</design:displaySize>
- </design:formattingHints>
- </design:usageHints>
- </design:resultColumnDefinitions>
- </design:resultSetColumns>
- </design:resultSetDefinitions>
- </design:ResultSets>
-</model:DesignValues>]]></xml-property>
+ORDER BY start</property>
</oda-data-set>
</data-sets>
<styles>
@@ -756,20 +534,36 @@
</simple-master-page>
</page-setup>
<body>
- <table id="208">
+ <table id="338">
+ <property name="marginTop">10px</property>
+ <property name="marginLeft">10px</property>
<property name="width">620px</property>
- <method name="onCreate"><![CDATA[reportContext.setPersistentGlobalVariable("hello","world");]]></method>
- <column id="218"/>
- <column id="219"/>
- <header>
- <row id="209">
- <cell id="210"/>
- <cell id="211"/>
- </row>
- </header>
+ <column id="351"/>
+ <column id="352"/>
<detail>
- <row id="212">
- <cell id="213">
+ <row id="354">
+ <cell id="355">
+ <text id="357">
+ <property name="fontFamily">sans-serif</property>
+ <property name="fontWeight">bold</property>
+ <property name="marginTop">0pt</property>
+ <property name="marginLeft">20px</property>
+ <property name="contentType">auto</property>
+ <text-property name="content"><![CDATA[Most active processes]]></text-property>
+ </text>
+ </cell>
+ <cell id="356">
+ <text id="358">
+ <property name="fontFamily">sans-serif</property>
+ <property name="fontWeight">bold</property>
+ <property name="marginTop">0pt</property>
+ <property name="contentType">auto</property>
+ <text-property name="content"><![CDATA[Process workload]]></text-property>
+ </text>
+ </cell>
+ </row>
+ <row id="343">
+ <cell id="344">
<extended-item extensionName="Chart" name="MostActiveProcess" id="54">
<xml-property name="xmlRepresentation"><![CDATA[<model:ChartWithAxes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:attribute="http://www.birt.eclipse.org/ChartModelAttribute" xmlns:data="http://www.birt.eclipse.org/ChartModelData" xmlns:layout="http://www.birt.eclipse.org/ChartModelLayout" xmlns:model="http://www.birt.eclipse.org/ChartModel" xmlns:type="http://www.birt.eclipse.org/ChartModelType">
<Type>Bar Chart</Type>
@@ -805,7 +599,7 @@
</Color>
<Visible>false</Visible>
</Outline>
- <Visible>true</Visible>
+ <Visible>false</Visible>
<Label>
<Caption>
<Value>Most active processes</Value>
@@ -2281,2290 +2075,152 @@
</list-property>
</extended-item>
</cell>
- <cell id="214">
- <extended-item extensionName="Chart" name="CompletedAssignments" id="68">
- <xml-property name="xmlRepresentation"><![CDATA[<model:ChartWithAxes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:attribute="http://www.birt.eclipse.org/ChartModelAttribute" xmlns:data="http://www.birt.eclipse.org/ChartModelData" xmlns:layout="http://www.birt.eclipse.org/ChartModelLayout" xmlns:model="http://www.birt.eclipse.org/ChartModel" xmlns:type="http://www.birt.eclipse.org/ChartModelType">
- <Type>Bar Chart</Type>
- <SubType>Side-by-side</SubType>
- <Block>
- <Children xsi:type="layout:TitleBlock">
- <Bounds>
- <Left>0.0</Left>
- <Top>0.0</Top>
- <Width>0.0</Width>
- <Height>0.0</Height>
- </Bounds>
- <Insets>
- <Top>3.0</Top>
- <Left>3.0</Left>
- <Bottom>3.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Row>-1</Row>
- <Column>-1</Column>
- <Rowspan>-1</Rowspan>
- <Columnspan>-1</Columnspan>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Visible>true</Visible>
- <Label>
- <Caption>
- <Value>Current task assignments</Value>
- <Font>
- <Name>Helvetica</Name>
- <Size>12.0</Size>
- <Bold>true</Bold>
- <Alignment>
- <horizontalAlignment>Center</horizontalAlignment>
- <verticalAlignment>Center</verticalAlignment>
- </Alignment>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>0</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>true</Visible>
- </Label>
- </Children>
- <Children xsi:type="layout:Plot">
- <Bounds>
- <Left>0.0</Left>
- <Top>0.0</Top>
- <Width>0.0</Width>
- <Height>0.0</Height>
- </Bounds>
- <Insets>
- <Top>3.0</Top>
- <Left>3.0</Left>
- <Bottom>3.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Row>-1</Row>
- <Column>-1</Column>
- <Rowspan>-1</Rowspan>
- <Columnspan>-1</Columnspan>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Visible>true</Visible>
- <HorizontalSpacing>5</HorizontalSpacing>
- <VerticalSpacing>5</VerticalSpacing>
- <ClientArea>
- <Outline>
- <Style>Solid</Style>
- <Thickness>0</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>0.0</Left>
- <Bottom>0.0</Bottom>
- <Right>0.0</Right>
- </Insets>
- </ClientArea>
- </Children>
- <Children xsi:type="layout:Legend">
- <Bounds>
- <Left>0.0</Left>
- <Top>0.0</Top>
- <Width>0.0</Width>
- <Height>0.0</Height>
- </Bounds>
- <Insets>
- <Top>3.0</Top>
- <Left>3.0</Left>
- <Bottom>3.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Row>-1</Row>
- <Column>-1</Column>
- <Rowspan>-1</Rowspan>
- <Columnspan>-1</Columnspan>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Visible>false</Visible>
- <ClientArea>
- <Outline>
- <Style>Solid</Style>
- <Thickness>0</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Insets>
- <Top>2.0</Top>
- <Left>2.0</Left>
- <Bottom>2.0</Bottom>
- <Right>2.0</Right>
- </Insets>
- </ClientArea>
- <Text>
- <Value></Value>
- <Font>
- <Alignment/>
- </Font>
- </Text>
- <Orientation>Vertical</Orientation>
- <Direction>Top_Bottom</Direction>
- <Separator>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>true</Visible>
- </Separator>
- <Position>Right</Position>
- <ItemType>Series</ItemType>
- <Title>
- <Caption>
- <Value>Assigments</Value>
- <Font>
- <Alignment/>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>0</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>false</Visible>
- </Title>
- <TitlePosition>Above</TitlePosition>
- <ShowValue>false</ShowValue>
- </Children>
- <Bounds>
- <Left>0.0</Left>
- <Top>0.0</Top>
- <Width>220.0</Width>
- <Height>120.0</Height>
- </Bounds>
- <Insets>
- <Top>3.0</Top>
- <Left>3.0</Left>
- <Bottom>3.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Row>-1</Row>
- <Column>-1</Column>
- <Rowspan>-1</Rowspan>
- <Columnspan>-1</Columnspan>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Visible>true</Visible>
- </Block>
- <Dimension>Two_Dimensional</Dimension>
- <Units>Points</Units>
- <SeriesThickness>10.0</SeriesThickness>
- <SampleData>
- <BaseSampleData>
- <DataSetRepresentation>A, B, C</DataSetRepresentation>
- </BaseSampleData>
- <OrthogonalSampleData>
- <DataSetRepresentation>5.0,4.0,12.0</DataSetRepresentation>
- <SeriesDefinitionIndex>0</SeriesDefinitionIndex>
- </OrthogonalSampleData>
- </SampleData>
- <Interactivity>
- <LegendBehavior>None</LegendBehavior>
- </Interactivity>
- <Axes>
- <Type>Text</Type>
- <Title>
- <Caption>
- <Value>X-Axis Title</Value>
- <Font>
- <Size>14.0</Size>
- <Bold>true</Bold>
- <Alignment>
- <horizontalAlignment>Center</horizontalAlignment>
- <verticalAlignment>Center</verticalAlignment>
- </Alignment>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>0</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>false</Visible>
- </Title>
- <TitlePosition>Below</TitlePosition>
- <AssociatedAxes>
- <Type>Logarithmic</Type>
- <Title>
- <Caption>
- <Value>Y-Axis Title</Value>
- <Font>
- <Size>14.0</Size>
- <Bold>true</Bold>
- <Alignment>
- <horizontalAlignment>Center</horizontalAlignment>
- <verticalAlignment>Center</verticalAlignment>
- </Alignment>
- <Rotation>90.0</Rotation>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>0</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>false</Visible>
- </Title>
- <TitlePosition>Left</TitlePosition>
- <SeriesDefinitions>
- <Query>
- <Definition></Definition>
- </Query>
- <SeriesPalette>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>80</Red>
- <Green>166</Green>
- <Blue>218</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>242</Red>
- <Green>88</Green>
- <Blue>106</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>232</Red>
- <Green>172</Green>
- <Blue>57</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>255</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>64</Red>
- <Green>128</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>170</Red>
- <Green>85</Green>
- <Blue>85</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>0</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>192</Red>
- <Green>192</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>192</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>7</Red>
- <Green>146</Green>
- <Blue>94</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>128</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>0</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>64</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>80</Red>
- <Green>240</Green>
- <Blue>120</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>64</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>0</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>0</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>64</Green>
- <Blue>0</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>0</Blue>
- </Entries>
- </SeriesPalette>
- <Series xsi:type="type:BarSeries">
- <Visible>true</Visible>
- <Label>
- <Caption>
- <Value></Value>
- <Font>
- <Alignment/>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>0</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>false</Visible>
- </Label>
- <DataDefinition>
- <Definition>row["count(TASKINSTANCE_)"]</Definition>
- </DataDefinition>
- <SeriesIdentifier></SeriesIdentifier>
- <DataPoint>
- <Components>
- <Type>Orthogonal_Value</Type>
- </Components>
- <Separator>, </Separator>
- </DataPoint>
- <LabelPosition>Outside</LabelPosition>
- <Stacked>false</Stacked>
- <Riser>Rectangle</Riser>
- </Series>
- <Grouping>
- <Enabled>false</Enabled>
- <GroupingInterval>2</GroupingInterval>
- <GroupType>Text</GroupType>
- <AggregateExpression>Sum</AggregateExpression>
- </Grouping>
- <Sorting>Ascending</Sorting>
- </SeriesDefinitions>
- <Orientation>Vertical</Orientation>
- <LineAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>true</Visible>
- </LineAttributes>
- <Label>
- <Caption>
- <Value></Value>
- <Font>
- <Alignment/>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>0</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>false</Visible>
- </Label>
- <LabelPosition>Left</LabelPosition>
- <MajorGrid>
- <LineAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>196</Red>
- <Green>196</Green>
- <Blue>196</Blue>
- </Color>
- <Visible>false</Visible>
- </LineAttributes>
- <TickStyle>Across</TickStyle>
- <TickAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>196</Red>
- <Green>196</Green>
- <Blue>196</Blue>
- </Color>
- <Visible>true</Visible>
- </TickAttributes>
- </MajorGrid>
- <MinorGrid>
- <LineAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>225</Red>
- <Green>225</Green>
- <Blue>225</Blue>
- </Color>
- <Visible>false</Visible>
- </LineAttributes>
- <TickStyle>Across</TickStyle>
- <TickAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>225</Red>
- <Green>225</Green>
- <Blue>225</Blue>
- </Color>
- <Visible>false</Visible>
- </TickAttributes>
- </MinorGrid>
- <Scale>
- <MinorGridsPerUnit>5</MinorGridsPerUnit>
- </Scale>
- <Origin>
- <Type>Min</Type>
- <Value xsi:type="data:NumberDataElement">
- <Value>0.0</Value>
- </Value>
- </Origin>
- <PrimaryAxis>true</PrimaryAxis>
- <Percent>false</Percent>
- </AssociatedAxes>
- <SeriesDefinitions>
- <Query>
- <Definition></Definition>
- </Query>
- <SeriesPalette>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>80</Red>
- <Green>166</Green>
- <Blue>218</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>242</Red>
- <Green>88</Green>
- <Blue>106</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>232</Red>
- <Green>172</Green>
- <Blue>57</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>255</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>64</Red>
- <Green>128</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>170</Red>
- <Green>85</Green>
- <Blue>85</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>0</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>192</Red>
- <Green>192</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>192</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>7</Red>
- <Green>146</Green>
- <Blue>94</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>128</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>0</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>64</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>80</Red>
- <Green>240</Green>
- <Blue>120</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>64</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>0</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>0</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>64</Green>
- <Blue>0</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>0</Blue>
- </Entries>
- </SeriesPalette>
- <Series>
- <Visible>true</Visible>
- <Label>
- <Caption>
- <Value></Value>
- <Font>
- <Alignment/>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>0</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>false</Visible>
- </Label>
- <DataDefinition>
- <Definition>row["TASKACTORID_"]</Definition>
- </DataDefinition>
- <SeriesIdentifier></SeriesIdentifier>
- <DataPoint>
- <Components>
- <Type>Orthogonal_Value</Type>
- </Components>
- <Separator>, </Separator>
- </DataPoint>
- <LabelPosition>Outside</LabelPosition>
- <Stacked>false</Stacked>
- </Series>
- <Grouping>
- <Enabled>false</Enabled>
- <GroupingInterval>2</GroupingInterval>
- <GroupType>Text</GroupType>
- <AggregateExpression>Sum</AggregateExpression>
- </Grouping>
- </SeriesDefinitions>
- <Orientation>Horizontal</Orientation>
- <LineAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>true</Visible>
- </LineAttributes>
- <Label>
- <Caption>
- <Value></Value>
- <Font>
- <Name>Helvetica</Name>
- <Size>11.0</Size>
- <Alignment/>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>254</Red>
- <Green>254</Green>
- <Blue>254</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>true</Visible>
- </Label>
- <LabelPosition>Below</LabelPosition>
- <MajorGrid>
- <LineAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>196</Red>
- <Green>196</Green>
- <Blue>196</Blue>
- </Color>
- <Visible>false</Visible>
- </LineAttributes>
- <TickStyle>Across</TickStyle>
- <TickAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>196</Red>
- <Green>196</Green>
- <Blue>196</Blue>
- </Color>
- <Visible>true</Visible>
- </TickAttributes>
- </MajorGrid>
- <MinorGrid>
- <LineAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>225</Red>
- <Green>225</Green>
- <Blue>225</Blue>
- </Color>
- <Visible>false</Visible>
- </LineAttributes>
- <TickStyle>Across</TickStyle>
- <TickAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>225</Red>
- <Green>225</Green>
- <Blue>225</Blue>
- </Color>
- <Visible>false</Visible>
- </TickAttributes>
- </MinorGrid>
- <Scale>
- <MinorGridsPerUnit>5</MinorGridsPerUnit>
- </Scale>
- <Origin>
- <Type>Min</Type>
- <Value xsi:type="data:NumberDataElement">
- <Value>0.0</Value>
- </Value>
- </Origin>
- <PrimaryAxis>true</PrimaryAxis>
- <CategoryAxis>true</CategoryAxis>
- <Percent>false</Percent>
- </Axes>
- <Orientation>Horizontal</Orientation>
- <UnitSpacing>50.0</UnitSpacing>
- <Rotation/>
-</model:ChartWithAxes>
-]]></xml-property>
- <property name="outputFormat">SVG</property>
- <property name="fontSize">smaller</property>
- <property name="marginTop">10pt</property>
- <property name="dataSet">NumberOfAssignments</property>
- <property name="height">120px</property>
- <property name="width">220px</property>
+ <cell id="345">
+ <table id="273">
+ <property name="marginTop">10px</property>
+ <property name="width">100%</property>
+ <property name="dataSet">TotalDefinitions</property>
<list-property name="boundDataColumns">
<structure>
- <property name="name">count(TASKINSTANCE_)</property>
- <expression name="expression">dataSetRow["count(TASKINSTANCE_)"]</expression>
+ <property name="name">count(ID_)</property>
+ <expression name="expression">dataSetRow["count(ID_)"]</expression>
<property name="dataType">decimal</property>
</structure>
<structure>
- <property name="name">TASKACTORID_</property>
- <expression name="expression">dataSetRow["TASKACTORID_"]</expression>
- <property name="dataType">string</property>
+ <property name="name">Column Binding</property>
+ <property name="displayName">Number definitions</property>
+ <expression name="expression">row["count(ID_)"]</expression>
+ <property name="dataType">any</property>
</structure>
</list-property>
- </extended-item>
- </cell>
- </row>
- <row id="220">
- <cell id="221">
- <extended-item extensionName="Chart" name="ExecQuartiles" id="223">
- <xml-property name="xmlRepresentation"><![CDATA[<model:ChartWithAxes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:attribute="http://www.birt.eclipse.org/ChartModelAttribute" xmlns:data="http://www.birt.eclipse.org/ChartModelData" xmlns:layout="http://www.birt.eclipse.org/ChartModelLayout" xmlns:model="http://www.birt.eclipse.org/ChartModel" xmlns:type="http://www.birt.eclipse.org/ChartModelType">
- <Type>Bar Chart</Type>
- <SubType>Side-by-side</SubType>
- <Block>
- <Children xsi:type="layout:TitleBlock">
- <Bounds>
- <Left>0.0</Left>
- <Top>0.0</Top>
- <Width>0.0</Width>
- <Height>0.0</Height>
- </Bounds>
- <Insets>
- <Top>3.0</Top>
- <Left>3.0</Left>
- <Bottom>3.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Row>-1</Row>
- <Column>-1</Column>
- <Rowspan>-1</Rowspan>
- <Columnspan>-1</Columnspan>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Visible>true</Visible>
- <Label>
- <Caption>
- <Value>Execution time quartiles</Value>
- <Font>
- <Size>16.0</Size>
- <Bold>true</Bold>
- <Alignment>
- <horizontalAlignment>Center</horizontalAlignment>
- <verticalAlignment>Center</verticalAlignment>
- </Alignment>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>0</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>true</Visible>
- </Label>
- </Children>
- <Children xsi:type="layout:Plot">
- <Bounds>
- <Left>0.0</Left>
- <Top>0.0</Top>
- <Width>0.0</Width>
- <Height>0.0</Height>
- </Bounds>
- <Insets>
- <Top>3.0</Top>
- <Left>3.0</Left>
- <Bottom>3.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Row>-1</Row>
- <Column>-1</Column>
- <Rowspan>-1</Rowspan>
- <Columnspan>-1</Columnspan>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Visible>true</Visible>
- <HorizontalSpacing>5</HorizontalSpacing>
- <VerticalSpacing>5</VerticalSpacing>
- <ClientArea>
- <Outline>
- <Style>Solid</Style>
- <Thickness>0</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>0.0</Left>
- <Bottom>0.0</Bottom>
- <Right>0.0</Right>
- </Insets>
- </ClientArea>
- </Children>
- <Children xsi:type="layout:Legend">
- <Bounds>
- <Left>0.0</Left>
- <Top>0.0</Top>
- <Width>0.0</Width>
- <Height>0.0</Height>
- </Bounds>
- <Insets>
- <Top>3.0</Top>
- <Left>3.0</Left>
- <Bottom>3.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Row>-1</Row>
- <Column>-1</Column>
- <Rowspan>-1</Rowspan>
- <Columnspan>-1</Columnspan>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Visible>false</Visible>
- <ClientArea>
- <Outline>
- <Style>Solid</Style>
- <Thickness>0</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Insets>
- <Top>2.0</Top>
- <Left>2.0</Left>
- <Bottom>2.0</Bottom>
- <Right>2.0</Right>
- </Insets>
- </ClientArea>
- <Text>
- <Value></Value>
- <Font>
- <Alignment/>
- </Font>
- </Text>
- <Orientation>Vertical</Orientation>
- <Direction>Top_Bottom</Direction>
- <Separator>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>true</Visible>
- </Separator>
- <Position>Right</Position>
- <ItemType>Series</ItemType>
- <Title>
- <Caption>
- <Value></Value>
- <Font>
- <Alignment/>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>0</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>false</Visible>
- </Title>
- <TitlePosition>Above</TitlePosition>
- </Children>
- <Bounds>
- <Left>0.0</Left>
- <Top>0.0</Top>
- <Width>212.0</Width>
- <Height>130.0</Height>
- </Bounds>
- <Insets>
- <Top>3.0</Top>
- <Left>3.0</Left>
- <Bottom>3.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Row>-1</Row>
- <Column>-1</Column>
- <Rowspan>-1</Rowspan>
- <Columnspan>-1</Columnspan>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Visible>true</Visible>
- </Block>
- <Dimension>Two_Dimensional</Dimension>
- <Script>/**
- * Called before drawing each datapoint graphical representation or marker.
- *
- * @param dph
- * DataPointHints
- * @param fill
- * Fill
- * @param icsc
- * IChartScriptContext
- */
-
-function beforeDrawDataPoint(dataPointHints, fill, scriptContext )
-{
- val = dataPointHints.getOrthogonalValue();
- chart = scriptContext.getChartInstance();
- //marker = chart.getAxes().get(0).getAssociatedAxes().get(0).getMarkerLines().get(0).getValue().getValue();
- marker = 86400;
- if (val > marker) //crosses marker?
- fill.set(255, 0, 0); //yes - display in red
- else
- fill.set(0, 0, 255); //no - display in blue
-}
-
-
-/**
- * Called before generation of chart model to GeneratedChartState.
- *
- * @param chart
- * Chart
- * @param icsc
- * IChartScriptContext
- */
-
-function beforeGeneration(chart, icsc){
- importPackage(Packages.org.eclipse.birt.chart.model.component.impl);
- importPackage(Packages.org.eclipse.birt.chart.model.data.impl);
- importPackage(Packages.org.eclipse.birt.chart.model.attribute);
- importPackage(Packages.org.eclipse.birt.chart.model.attribute.impl);
-
- var chart = icsc.getChartInstance();
- var yAxis = chart.getAxes().get(0).getAssociatedAxes().get(0);
-
- var topValue = 86400;//icsc.getExternalContext().getScriptable().getParameterValue("topMarkerValue");
- var bottomValue = 3600;//icsc.getExternalContext().getScriptable().getParameterValue("bottomMarkerValue");
-
- top_ml = MarkerLineImpl.create(yAxis, NumberDataElementImpl.create(topValue));
- top_ml.getLabel().getCaption().setValue("Top marker line set at " + topValue);
- top_ml.getLineAttributes().getColor().set(0,200,0);
- top_ml.getLineAttributes().setStyle(LineStyle.SOLID_LITERAL);
- top_ml.getLineAttributes().setThickness(2);
-
- bottom_ml = MarkerLineImpl.create(yAxis, NumberDataElementImpl.create(bottomValue));
- bottom_ml.getLabel().getCaption().setValue("Bottom marker line set at " + bottomValue);
- bottom_ml.getLineAttributes().getColor().set(255,0,0);
- bottom_ml.getLineAttributes().setStyle(LineStyle.SOLID_LITERAL);
- bottom_ml.getLineAttributes().setThickness(2);
-}</Script>
- <Units>Points</Units>
- <SeriesThickness>10.0</SeriesThickness>
- <GridColumnCount>1</GridColumnCount>
- <SampleData>
- <BaseSampleData>
- <DataSetRepresentation>5.0,4.0,12.0</DataSetRepresentation>
- </BaseSampleData>
- <OrthogonalSampleData>
- <DataSetRepresentation>5.0,4.0,12.0</DataSetRepresentation>
- <SeriesDefinitionIndex>0</SeriesDefinitionIndex>
- </OrthogonalSampleData>
- </SampleData>
- <Interactivity>
- <Enable>true</Enable>
- <LegendBehavior>None</LegendBehavior>
- </Interactivity>
- <Axes>
- <Type>Linear</Type>
- <Title>
- <Caption>
- <Value>X-Axis Title</Value>
- <Font>
- <Size>14.0</Size>
- <Bold>true</Bold>
- <Alignment>
- <horizontalAlignment>Center</horizontalAlignment>
- <verticalAlignment>Center</verticalAlignment>
- </Alignment>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>0</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>false</Visible>
- </Title>
- <TitlePosition>Below</TitlePosition>
- <AssociatedAxes>
- <Type>Linear</Type>
- <Title>
- <Caption>
- <Value>Exec time</Value>
- <Font>
- <Size>14.0</Size>
- <Bold>true</Bold>
- <Alignment>
- <horizontalAlignment>Center</horizontalAlignment>
- <verticalAlignment>Center</verticalAlignment>
- </Alignment>
- <Rotation>90.0</Rotation>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>0</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>true</Visible>
- </Title>
- <TitlePosition>Left</TitlePosition>
- <SeriesDefinitions>
- <Query>
- <Definition></Definition>
- </Query>
- <SeriesPalette>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>80</Red>
- <Green>166</Green>
- <Blue>218</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>242</Red>
- <Green>88</Green>
- <Blue>106</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>232</Red>
- <Green>172</Green>
- <Blue>57</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>255</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>64</Red>
- <Green>128</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>170</Red>
- <Green>85</Green>
- <Blue>85</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>0</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>192</Red>
- <Green>192</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>192</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>7</Red>
- <Green>146</Green>
- <Blue>94</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>128</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>0</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>64</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>80</Red>
- <Green>240</Green>
- <Blue>120</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>64</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>0</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>0</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>64</Green>
- <Blue>0</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>0</Blue>
- </Entries>
- </SeriesPalette>
- <Series xsi:type="type:BarSeries">
- <Visible>true</Visible>
- <Label>
- <Caption>
- <Value></Value>
- <Font>
- <Alignment/>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>0</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>false</Visible>
- </Label>
- <DataDefinition>
- <Definition>row["execSeconds"]</Definition>
- </DataDefinition>
- <SeriesIdentifier></SeriesIdentifier>
- <DataPoint>
- <Components>
- <Type>Orthogonal_Value</Type>
- </Components>
- <Separator>, </Separator>
- </DataPoint>
- <LabelPosition>Outside</LabelPosition>
- <Stacked>false</Stacked>
- <Riser>Rectangle</Riser>
- </Series>
- <Grouping>
- <Enabled>false</Enabled>
- <GroupingInterval>2</GroupingInterval>
- <GroupType>Text</GroupType>
- <AggregateExpression>Sum</AggregateExpression>
- </Grouping>
- <Sorting>Ascending</Sorting>
- </SeriesDefinitions>
- <Orientation>Vertical</Orientation>
- <LineAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </LineAttributes>
- <Label>
- <Caption>
- <Value></Value>
- <Font>
- <Alignment/>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>0</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>false</Visible>
- </Label>
- <LabelPosition>Left</LabelPosition>
- <MajorGrid>
- <LineAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>196</Red>
- <Green>196</Green>
- <Blue>196</Blue>
- </Color>
- <Visible>false</Visible>
- </LineAttributes>
- <TickStyle>Across</TickStyle>
- <TickAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>196</Red>
- <Green>196</Green>
- <Blue>196</Blue>
- </Color>
- <Visible>true</Visible>
- </TickAttributes>
- </MajorGrid>
- <MinorGrid>
- <LineAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>225</Red>
- <Green>225</Green>
- <Blue>225</Blue>
- </Color>
- <Visible>false</Visible>
- </LineAttributes>
- <TickStyle>Across</TickStyle>
- <TickAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>225</Red>
- <Green>225</Green>
- <Blue>225</Blue>
- </Color>
- <Visible>false</Visible>
- </TickAttributes>
- </MinorGrid>
- <Scale>
- <MinorGridsPerUnit>5</MinorGridsPerUnit>
- </Scale>
- <Origin>
- <Type>Min</Type>
- <Value xsi:type="data:NumberDataElement">
- <Value>0.0</Value>
- </Value>
- </Origin>
- <PrimaryAxis>true</PrimaryAxis>
- <Percent>false</Percent>
- </AssociatedAxes>
- <SeriesDefinitions>
- <Query>
- <Definition></Definition>
- </Query>
- <SeriesPalette>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>80</Red>
- <Green>166</Green>
- <Blue>218</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>242</Red>
- <Green>88</Green>
- <Blue>106</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>232</Red>
- <Green>172</Green>
- <Blue>57</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>255</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>64</Red>
- <Green>128</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>170</Red>
- <Green>85</Green>
- <Blue>85</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>0</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>192</Red>
- <Green>192</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>192</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>7</Red>
- <Green>146</Green>
- <Blue>94</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>128</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>192</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>0</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>64</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>80</Red>
- <Green>240</Green>
- <Blue>120</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>64</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>0</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>0</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>64</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>128</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>64</Green>
- <Blue>0</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Entries>
- <Entries xsi:type="attribute:ColorDefinition">
- <Transparency>255</Transparency>
- <Red>255</Red>
- <Green>128</Green>
- <Blue>0</Blue>
- </Entries>
- </SeriesPalette>
- <Series>
- <Visible>true</Visible>
- <Label>
- <Caption>
- <Value></Value>
- <Font>
- <Alignment/>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>0</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- <Visible>false</Visible>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>false</Visible>
- </Label>
- <DataDefinition>
- <Definition>row["instanceID"]</Definition>
- </DataDefinition>
- <SeriesIdentifier></SeriesIdentifier>
- <DataPoint>
- <Components>
- <Type>Orthogonal_Value</Type>
- </Components>
- <Separator>, </Separator>
- </DataPoint>
- <LabelPosition>Outside</LabelPosition>
- <Stacked>false</Stacked>
- </Series>
- <Grouping>
- <Enabled>false</Enabled>
- <GroupingInterval>2</GroupingInterval>
- <GroupType>Text</GroupType>
- <AggregateExpression>Sum</AggregateExpression>
- </Grouping>
- </SeriesDefinitions>
- <Orientation>Horizontal</Orientation>
- <LineAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>128</Red>
- <Green>128</Green>
- <Blue>128</Blue>
- </Color>
- <Visible>true</Visible>
- </LineAttributes>
- <Label>
- <Caption>
- <Value></Value>
- <Font>
- <Alignment/>
- </Font>
- </Caption>
- <Background xsi:type="attribute:ColorDefinition">
- <Transparency>0</Transparency>
- <Red>255</Red>
- <Green>255</Green>
- <Blue>255</Blue>
- </Background>
- <Outline>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>0</Red>
- <Green>0</Green>
- <Blue>0</Blue>
- </Color>
- </Outline>
- <Insets>
- <Top>0.0</Top>
- <Left>2.0</Left>
- <Bottom>0.0</Bottom>
- <Right>3.0</Right>
- </Insets>
- <Visible>true</Visible>
- </Label>
- <LabelPosition>Below</LabelPosition>
- <Staggered>false</Staggered>
- <MajorGrid>
- <LineAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>196</Red>
- <Green>196</Green>
- <Blue>196</Blue>
- </Color>
- <Visible>false</Visible>
- </LineAttributes>
- <TickStyle>Across</TickStyle>
- <TickAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>196</Red>
- <Green>196</Green>
- <Blue>196</Blue>
- </Color>
- <Visible>true</Visible>
- </TickAttributes>
- </MajorGrid>
- <MinorGrid>
- <LineAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>225</Red>
- <Green>225</Green>
- <Blue>225</Blue>
- </Color>
- <Visible>false</Visible>
- </LineAttributes>
- <TickStyle>Across</TickStyle>
- <TickAttributes>
- <Style>Solid</Style>
- <Thickness>1</Thickness>
- <Color>
- <Transparency>255</Transparency>
- <Red>225</Red>
- <Green>225</Green>
- <Blue>225</Blue>
- </Color>
- <Visible>false</Visible>
- </TickAttributes>
- </MinorGrid>
- <Scale>
- <MinorGridsPerUnit>5</MinorGridsPerUnit>
- </Scale>
- <Origin>
- <Type>Min</Type>
- <Value xsi:type="data:NumberDataElement">
- <Value>0.0</Value>
- </Value>
- </Origin>
- <PrimaryAxis>true</PrimaryAxis>
- <CategoryAxis>true</CategoryAxis>
- <Percent>false</Percent>
- </Axes>
- <Orientation>Vertical</Orientation>
- <Rotation/>
-</model:ChartWithAxes>
-]]></xml-property>
- <property name="outputFormat">SVG</property>
- <property name="dataSet">AverageExecTime</property>
- <property name="height">130pt</property>
- <property name="width">212pt</property>
+ <column id="286"/>
+ <column id="287"/>
+ <detail>
+ <row id="278">
+ <cell id="279">
+ <text id="290">
+ <property name="fontFamily">sans-serif</property>
+ <property name="fontSize">small</property>
+ <property name="contentType">auto</property>
+ <text-property name="content"><![CDATA[Process definitions:]]></text-property>
+ </text>
+ </cell>
+ <cell id="280">
+ <data id="289">
+ <property name="paddingTop">1pt</property>
+ <property name="resultSetColumn">Column Binding</property>
+ </data>
+ </cell>
+ </row>
+ </detail>
+ </table>
+ <table id="302">
+ <property name="width">100%</property>
+ <property name="dataSet">RunningInstances</property>
<list-property name="boundDataColumns">
<structure>
- <property name="name">startDate</property>
- <expression name="expression">dataSetRow["startDate"]</expression>
- <property name="dataType">date-time</property>
+ <property name="name">total</property>
+ <expression name="expression">dataSetRow["total"]</expression>
+ <property name="dataType">decimal</property>
</structure>
<structure>
- <property name="name">endDate</property>
- <expression name="expression">dataSetRow["endDate"]</expression>
- <property name="dataType">date-time</property>
+ <property name="name">Column Binding</property>
+ <expression name="expression">row["total"]</expression>
+ <property name="dataType">any</property>
</structure>
+ </list-property>
+ <column id="315"/>
+ <column id="316"/>
+ <detail>
+ <row id="307">
+ <cell id="308">
+ <text id="318">
+ <property name="fontFamily">sans-serif</property>
+ <property name="fontSize">small</property>
+ <property name="contentType">auto</property>
+ <text-property name="content"><![CDATA[Running instances:]]></text-property>
+ </text>
+ </cell>
+ <cell id="309">
+ <data id="319">
+ <property name="resultSetColumn">Column Binding</property>
+ </data>
+ </cell>
+ </row>
+ </detail>
+ </table>
+ <table id="320">
+ <property name="width">100%</property>
+ <property name="dataSet">CompletedInstances</property>
+ <list-property name="boundDataColumns">
<structure>
- <property name="name">TOKEN_</property>
- <expression name="expression">dataSetRow["TOKEN_"]</expression>
+ <property name="name">total</property>
+ <expression name="expression">dataSetRow["total"]</expression>
<property name="dataType">decimal</property>
</structure>
<structure>
- <property name="name">instanceID</property>
- <expression name="expression">dataSetRow["instanceID"]</expression>
- <property name="dataType">decimal</property>
- </structure>
- <structure>
- <property name="name">NAME_</property>
- <expression name="expression">dataSetRow["NAME_"]</expression>
- <property name="dataType">string</property>
- </structure>
- <structure>
- <property name="name">execSeconds</property>
- <expression name="expression">dataSetRow["execSeconds"]</expression>
- <property name="dataType">integer</property>
- </structure>
- <structure>
- <property name="name">q3</property>
- <expression name="expression">dataSetRow["q3"]</expression>
+ <property name="name">Column Binding</property>
+ <expression name="expression">row["total"]</expression>
<property name="dataType">any</property>
</structure>
</list-property>
- </extended-item>
+ <column id="333"/>
+ <column id="334"/>
+ <detail>
+ <row id="325">
+ <cell id="326">
+ <text id="336">
+ <property name="fontFamily">sans-serif</property>
+ <property name="fontSize">small</property>
+ <property name="contentType">auto</property>
+ <text-property name="content"><![CDATA[Completed instances:]]></text-property>
+ </text>
+ </cell>
+ <cell id="327">
+ <data id="337">
+ <property name="resultSetColumn">Column Binding</property>
+ </data>
+ </cell>
+ </row>
+ </detail>
+ </table>
+ <table id="361">
+ <property name="width">100%</property>
+ <column id="371"/>
+ <column id="372"/>
+ <header>
+ <row id="362">
+ <cell id="363">
+ <text id="359">
+ <property name="fontFamily">sans-serif</property>
+ <property name="fontWeight">bold</property>
+ <property name="marginTop">0pt</property>
+ <property name="paddingTop">10px</property>
+ <property name="contentType">auto</property>
+ <text-property name="content"><![CDATA[Report information]]></text-property>
+ </text>
+ </cell>
+ <cell id="364"/>
+ </row>
+ </header>
+ <detail>
+ <row id="365">
+ <cell id="366">
+ <text id="360">
+ <property name="fontFamily">sans-serif</property>
+ <property name="fontSize">small</property>
+ <property name="paddingTop">1pt</property>
+ <property name="contentType">html</property>
+ <text-property name="content"><![CDATA[Created: <value-of>new Date()</value-of>]]></text-property>
+ </text>
+ </cell>
+ <cell id="367"/>
+ </row>
+ </detail>
+ </table>
</cell>
- <cell id="222"/>
</row>
</detail>
- <footer>
- <row id="215">
- <cell id="216"/>
- <cell id="217"/>
- </row>
- </footer>
</table>
</body>
</report>
Added: projects/gwt-console/trunk/server/src/main/resources/task_report.rptdesign
===================================================================
--- projects/gwt-console/trunk/server/src/main/resources/task_report.rptdesign (rev 0)
+++ projects/gwt-console/trunk/server/src/main/resources/task_report.rptdesign 2008-12-03 11:14:50 UTC (rev 3176)
@@ -0,0 +1,1277 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.15" id="1">
+ <property name="createdBy">Eclipse BIRT Designer Version 2.2.2.r222_v20071226 Build <2.2.2.v20080226-1155></property>
+ <property name="units">in</property>
+ <property name="comments">Copyright (c) 2007 <<Your Company Name here>></property>
+ <html-property name="description">Creates a blank report with no predefined content.</html-property>
+ <text-property name="displayName">Blank Report</text-property>
+ <property name="iconFile">/templates/blank_report.gif</property>
+ <data-sources>
+ <oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc" name="MySQL Local" id="6">
+ <property name="odaDriverClass">com.mysql.jdbc.Driver</property>
+ <property name="odaURL">jdbc:mysql://localhost:3306/jbpmtest</property>
+ <property name="odaUser">jbpmtest</property>
+ </oda-data-source>
+ </data-sources>
+ <data-sets>
+ <oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" name="NumberOfAssignments" id="67">
+ <list-property name="columnHints">
+ <structure>
+ <property name="columnName">count(TASKINSTANCE_)</property>
+ <property name="displayName">count(TASKINSTANCE_)</property>
+ </structure>
+ <structure>
+ <property name="columnName">TASKACTORID_</property>
+ <property name="displayName">TASKACTORID_</property>
+ </structure>
+ </list-property>
+ <structure name="cachedMetaData">
+ <list-property name="resultSet">
+ <structure>
+ <property name="position">1</property>
+ <property name="name">count(TASKINSTANCE_)</property>
+ <property name="dataType">decimal</property>
+ </structure>
+ <structure>
+ <property name="position">2</property>
+ <property name="name">TASKACTORID_</property>
+ <property name="dataType">string</property>
+ </structure>
+ </list-property>
+ </structure>
+ <property name="dataSource">MySQL Local</property>
+ <list-property name="resultSet">
+ <structure>
+ <property name="position">1</property>
+ <property name="name">count(TASKINSTANCE_)</property>
+ <property name="nativeName">count(TASKINSTANCE_)</property>
+ <property name="dataType">decimal</property>
+ <property name="nativeDataType">-5</property>
+ </structure>
+ <structure>
+ <property name="position">2</property>
+ <property name="name">TASKACTORID_</property>
+ <property name="nativeName">TASKACTORID_</property>
+ <property name="dataType">string</property>
+ <property name="nativeDataType">12</property>
+ </structure>
+ </list-property>
+ <property name="queryText">select count(TASKINSTANCE_), TASKACTORID_ from JBPM_LOG where CLASS_='2'
+GROUP BY TASKACTORID_</property>
+ <xml-property name="designerValues"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<model:DesignValues xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design" xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
+ <Version>1.0</Version>
+ <design:ResultSets derivedMetaData="true">
+ <design:resultSetDefinitions>
+ <design:resultSetColumns>
+ <design:resultColumnDefinitions>
+ <design:attributes>
+ <design:name>count(TASKINSTANCE_)</design:name>
+ <design:position>1</design:position>
+ <design:nativeDataTypeCode>-5</design:nativeDataTypeCode>
+ <design:precision>21</design:precision>
+ <design:scale>0</design:scale>
+ <design:nullability>NotNullable</design:nullability>
+ <design:uiHints>
+ <design:displayName>count(TASKINSTANCE_)</design:displayName>
+ </design:uiHints>
+ </design:attributes>
+ <design:usageHints>
+ <design:label>count(TASKINSTANCE_)</design:label>
+ <design:formattingHints>
+ <design:displaySize>21</design:displaySize>
+ </design:formattingHints>
+ </design:usageHints>
+ </design:resultColumnDefinitions>
+ <design:resultColumnDefinitions>
+ <design:attributes>
+ <design:name>TASKACTORID_</design:name>
+ <design:position>2</design:position>
+ <design:nativeDataTypeCode>12</design:nativeDataTypeCode>
+ <design:precision>255</design:precision>
+ <design:scale>0</design:scale>
+ <design:nullability>Nullable</design:nullability>
+ <design:uiHints>
+ <design:displayName>TASKACTORID_</design:displayName>
+ </design:uiHints>
+ </design:attributes>
+ <design:usageHints>
+ <design:label>TASKACTORID_</design:label>
+ <design:formattingHints>
+ <design:displaySize>255</design:displaySize>
+ </design:formattingHints>
+ </design:usageHints>
+ </design:resultColumnDefinitions>
+ </design:resultSetColumns>
+ </design:resultSetDefinitions>
+ </design:ResultSets>
+</model:DesignValues>]]></xml-property>
+ </oda-data-set>
+ </data-sets>
+ <styles>
+ <style name="crosstab" id="4">
+ <property name="borderBottomColor">#CCCCCC</property>
+ <property name="borderBottomStyle">solid</property>
+ <property name="borderBottomWidth">1pt</property>
+ <property name="borderLeftColor">#CCCCCC</property>
+ <property name="borderLeftStyle">solid</property>
+ <property name="borderLeftWidth">1pt</property>
+ <property name="borderRightColor">#CCCCCC</property>
+ <property name="borderRightStyle">solid</property>
+ <property name="borderRightWidth">1pt</property>
+ <property name="borderTopColor">#CCCCCC</property>
+ <property name="borderTopStyle">solid</property>
+ <property name="borderTopWidth">1pt</property>
+ </style>
+ <style name="crosstab-cell" id="5">
+ <property name="borderBottomColor">#CCCCCC</property>
+ <property name="borderBottomStyle">solid</property>
+ <property name="borderBottomWidth">1pt</property>
+ <property name="borderLeftColor">#CCCCCC</property>
+ <property name="borderLeftStyle">solid</property>
+ <property name="borderLeftWidth">1pt</property>
+ <property name="borderRightColor">#CCCCCC</property>
+ <property name="borderRightStyle">solid</property>
+ <property name="borderRightWidth">1pt</property>
+ <property name="borderTopColor">#CCCCCC</property>
+ <property name="borderTopStyle">solid</property>
+ <property name="borderTopWidth">1pt</property>
+ </style>
+ </styles>
+ <page-setup>
+ <simple-master-page name="Simple MasterPage" id="2">
+ <page-footer>
+ <text id="3">
+ <property name="contentType">html</property>
+ <text-property name="content"><![CDATA[<value-of>new Date()</value-of>]]></text-property>
+ </text>
+ </page-footer>
+ </simple-master-page>
+ </page-setup>
+ <body>
+ <table id="68">
+ <property name="width">100%</property>
+ <column id="81"/>
+ <column id="82"/>
+ <column id="83"/>
+ <header>
+ <row id="69">
+ <cell id="70"/>
+ <cell id="71"/>
+ <cell id="72"/>
+ </row>
+ </header>
+ <detail>
+ <row id="73">
+ <cell id="74">
+ <extended-item extensionName="Chart" name="CompletedAssignments" id="84">
+ <xml-property name="xmlRepresentation"><![CDATA[<model:ChartWithAxes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:attribute="http://www.birt.eclipse.org/ChartModelAttribute" xmlns:data="http://www.birt.eclipse.org/ChartModelData" xmlns:layout="http://www.birt.eclipse.org/ChartModelLayout" xmlns:model="http://www.birt.eclipse.org/ChartModel" xmlns:type="http://www.birt.eclipse.org/ChartModelType">
+ <Type>Bar Chart</Type>
+ <SubType>Side-by-side</SubType>
+ <Block>
+ <Children xsi:type="layout:TitleBlock">
+ <Bounds>
+ <Left>0.0</Left>
+ <Top>0.0</Top>
+ <Width>0.0</Width>
+ <Height>0.0</Height>
+ </Bounds>
+ <Insets>
+ <Top>3.0</Top>
+ <Left>3.0</Left>
+ <Bottom>3.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Row>-1</Row>
+ <Column>-1</Column>
+ <Rowspan>-1</Rowspan>
+ <Columnspan>-1</Columnspan>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Visible>true</Visible>
+ <Label>
+ <Caption>
+ <Value>Current task assignments</Value>
+ <Font>
+ <Name>Helvetica</Name>
+ <Size>12.0</Size>
+ <Bold>true</Bold>
+ <Alignment>
+ <horizontalAlignment>Center</horizontalAlignment>
+ <verticalAlignment>Center</verticalAlignment>
+ </Alignment>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>0</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>true</Visible>
+ </Label>
+ </Children>
+ <Children xsi:type="layout:Plot">
+ <Bounds>
+ <Left>0.0</Left>
+ <Top>0.0</Top>
+ <Width>0.0</Width>
+ <Height>0.0</Height>
+ </Bounds>
+ <Insets>
+ <Top>3.0</Top>
+ <Left>3.0</Left>
+ <Bottom>3.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Row>-1</Row>
+ <Column>-1</Column>
+ <Rowspan>-1</Rowspan>
+ <Columnspan>-1</Columnspan>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Visible>true</Visible>
+ <HorizontalSpacing>5</HorizontalSpacing>
+ <VerticalSpacing>5</VerticalSpacing>
+ <ClientArea>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>0</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>0.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>0.0</Right>
+ </Insets>
+ </ClientArea>
+ </Children>
+ <Children xsi:type="layout:Legend">
+ <Bounds>
+ <Left>0.0</Left>
+ <Top>0.0</Top>
+ <Width>0.0</Width>
+ <Height>0.0</Height>
+ </Bounds>
+ <Insets>
+ <Top>3.0</Top>
+ <Left>3.0</Left>
+ <Bottom>3.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Row>-1</Row>
+ <Column>-1</Column>
+ <Rowspan>-1</Rowspan>
+ <Columnspan>-1</Columnspan>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Visible>false</Visible>
+ <ClientArea>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>0</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Insets>
+ <Top>2.0</Top>
+ <Left>2.0</Left>
+ <Bottom>2.0</Bottom>
+ <Right>2.0</Right>
+ </Insets>
+ </ClientArea>
+ <Text>
+ <Value></Value>
+ <Font>
+ <Alignment/>
+ </Font>
+ </Text>
+ <Orientation>Vertical</Orientation>
+ <Direction>Top_Bottom</Direction>
+ <Separator>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>true</Visible>
+ </Separator>
+ <Position>Right</Position>
+ <ItemType>Series</ItemType>
+ <Title>
+ <Caption>
+ <Value>Assigments</Value>
+ <Font>
+ <Alignment/>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>0</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>false</Visible>
+ </Title>
+ <TitlePosition>Above</TitlePosition>
+ <ShowValue>false</ShowValue>
+ </Children>
+ <Bounds>
+ <Left>0.0</Left>
+ <Top>0.0</Top>
+ <Width>220.0</Width>
+ <Height>120.0</Height>
+ </Bounds>
+ <Insets>
+ <Top>3.0</Top>
+ <Left>3.0</Left>
+ <Bottom>3.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Row>-1</Row>
+ <Column>-1</Column>
+ <Rowspan>-1</Rowspan>
+ <Columnspan>-1</Columnspan>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Visible>true</Visible>
+ </Block>
+ <Dimension>Two_Dimensional</Dimension>
+ <Units>Points</Units>
+ <SeriesThickness>10.0</SeriesThickness>
+ <SampleData>
+ <BaseSampleData>
+ <DataSetRepresentation>A, B, C</DataSetRepresentation>
+ </BaseSampleData>
+ <OrthogonalSampleData>
+ <DataSetRepresentation>5.0,4.0,12.0</DataSetRepresentation>
+ <SeriesDefinitionIndex>0</SeriesDefinitionIndex>
+ </OrthogonalSampleData>
+ </SampleData>
+ <Interactivity>
+ <LegendBehavior>None</LegendBehavior>
+ </Interactivity>
+ <Axes>
+ <Type>Text</Type>
+ <Title>
+ <Caption>
+ <Value>X-Axis Title</Value>
+ <Font>
+ <Size>14.0</Size>
+ <Bold>true</Bold>
+ <Alignment>
+ <horizontalAlignment>Center</horizontalAlignment>
+ <verticalAlignment>Center</verticalAlignment>
+ </Alignment>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>0</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>false</Visible>
+ </Title>
+ <TitlePosition>Below</TitlePosition>
+ <AssociatedAxes>
+ <Type>Logarithmic</Type>
+ <Title>
+ <Caption>
+ <Value>Y-Axis Title</Value>
+ <Font>
+ <Size>14.0</Size>
+ <Bold>true</Bold>
+ <Alignment>
+ <horizontalAlignment>Center</horizontalAlignment>
+ <verticalAlignment>Center</verticalAlignment>
+ </Alignment>
+ <Rotation>90.0</Rotation>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>0</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>false</Visible>
+ </Title>
+ <TitlePosition>Left</TitlePosition>
+ <SeriesDefinitions>
+ <Query>
+ <Definition></Definition>
+ </Query>
+ <SeriesPalette>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>80</Red>
+ <Green>166</Green>
+ <Blue>218</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>242</Red>
+ <Green>88</Green>
+ <Blue>106</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>232</Red>
+ <Green>172</Green>
+ <Blue>57</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>255</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>64</Red>
+ <Green>128</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>170</Red>
+ <Green>85</Green>
+ <Blue>85</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>0</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>192</Red>
+ <Green>192</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>192</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>7</Red>
+ <Green>146</Green>
+ <Blue>94</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>128</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>0</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>64</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>80</Red>
+ <Green>240</Green>
+ <Blue>120</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>64</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>0</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>0</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>64</Green>
+ <Blue>0</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>0</Blue>
+ </Entries>
+ </SeriesPalette>
+ <Series xsi:type="type:BarSeries">
+ <Visible>true</Visible>
+ <Label>
+ <Caption>
+ <Value></Value>
+ <Font>
+ <Alignment/>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>0</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>false</Visible>
+ </Label>
+ <DataDefinition>
+ <Definition>row["count(TASKINSTANCE_)"]</Definition>
+ </DataDefinition>
+ <SeriesIdentifier></SeriesIdentifier>
+ <DataPoint>
+ <Components>
+ <Type>Orthogonal_Value</Type>
+ </Components>
+ <Separator>, </Separator>
+ </DataPoint>
+ <LabelPosition>Outside</LabelPosition>
+ <Stacked>false</Stacked>
+ <Riser>Rectangle</Riser>
+ </Series>
+ <Grouping>
+ <Enabled>false</Enabled>
+ <GroupingInterval>2</GroupingInterval>
+ <GroupType>Text</GroupType>
+ <AggregateExpression>Sum</AggregateExpression>
+ </Grouping>
+ <Sorting>Ascending</Sorting>
+ </SeriesDefinitions>
+ <Orientation>Vertical</Orientation>
+ <LineAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>true</Visible>
+ </LineAttributes>
+ <Label>
+ <Caption>
+ <Value></Value>
+ <Font>
+ <Alignment/>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>0</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>false</Visible>
+ </Label>
+ <LabelPosition>Left</LabelPosition>
+ <MajorGrid>
+ <LineAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>196</Red>
+ <Green>196</Green>
+ <Blue>196</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </LineAttributes>
+ <TickStyle>Across</TickStyle>
+ <TickAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>196</Red>
+ <Green>196</Green>
+ <Blue>196</Blue>
+ </Color>
+ <Visible>true</Visible>
+ </TickAttributes>
+ </MajorGrid>
+ <MinorGrid>
+ <LineAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>225</Red>
+ <Green>225</Green>
+ <Blue>225</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </LineAttributes>
+ <TickStyle>Across</TickStyle>
+ <TickAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>225</Red>
+ <Green>225</Green>
+ <Blue>225</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </TickAttributes>
+ </MinorGrid>
+ <Scale>
+ <MinorGridsPerUnit>5</MinorGridsPerUnit>
+ </Scale>
+ <Origin>
+ <Type>Min</Type>
+ <Value xsi:type="data:NumberDataElement">
+ <Value>0.0</Value>
+ </Value>
+ </Origin>
+ <PrimaryAxis>true</PrimaryAxis>
+ <Percent>false</Percent>
+ </AssociatedAxes>
+ <SeriesDefinitions>
+ <Query>
+ <Definition></Definition>
+ </Query>
+ <SeriesPalette>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>80</Red>
+ <Green>166</Green>
+ <Blue>218</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>242</Red>
+ <Green>88</Green>
+ <Blue>106</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>232</Red>
+ <Green>172</Green>
+ <Blue>57</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>255</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>64</Red>
+ <Green>128</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>170</Red>
+ <Green>85</Green>
+ <Blue>85</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>0</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>192</Red>
+ <Green>192</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>192</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>7</Red>
+ <Green>146</Green>
+ <Blue>94</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>128</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>192</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>0</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>64</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>80</Red>
+ <Green>240</Green>
+ <Blue>120</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>64</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>0</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>0</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>64</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>128</Red>
+ <Green>128</Green>
+ <Blue>128</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>64</Green>
+ <Blue>0</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Entries>
+ <Entries xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>255</Red>
+ <Green>128</Green>
+ <Blue>0</Blue>
+ </Entries>
+ </SeriesPalette>
+ <Series>
+ <Visible>true</Visible>
+ <Label>
+ <Caption>
+ <Value></Value>
+ <Font>
+ <Alignment/>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>0</Transparency>
+ <Red>255</Red>
+ <Green>255</Green>
+ <Blue>255</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>false</Visible>
+ </Label>
+ <DataDefinition>
+ <Definition>row["TASKACTORID_"]</Definition>
+ </DataDefinition>
+ <SeriesIdentifier></SeriesIdentifier>
+ <DataPoint>
+ <Components>
+ <Type>Orthogonal_Value</Type>
+ </Components>
+ <Separator>, </Separator>
+ </DataPoint>
+ <LabelPosition>Outside</LabelPosition>
+ <Stacked>false</Stacked>
+ </Series>
+ <Grouping>
+ <Enabled>false</Enabled>
+ <GroupingInterval>2</GroupingInterval>
+ <GroupType>Text</GroupType>
+ <AggregateExpression>Sum</AggregateExpression>
+ </Grouping>
+ </SeriesDefinitions>
+ <Orientation>Horizontal</Orientation>
+ <LineAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>true</Visible>
+ </LineAttributes>
+ <Label>
+ <Caption>
+ <Value></Value>
+ <Font>
+ <Name>Helvetica</Name>
+ <Size>11.0</Size>
+ <Alignment/>
+ </Font>
+ </Caption>
+ <Background xsi:type="attribute:ColorDefinition">
+ <Transparency>255</Transparency>
+ <Red>254</Red>
+ <Green>254</Green>
+ <Blue>254</Blue>
+ </Background>
+ <Outline>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>0</Red>
+ <Green>0</Green>
+ <Blue>0</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </Outline>
+ <Insets>
+ <Top>0.0</Top>
+ <Left>2.0</Left>
+ <Bottom>0.0</Bottom>
+ <Right>3.0</Right>
+ </Insets>
+ <Visible>true</Visible>
+ </Label>
+ <LabelPosition>Below</LabelPosition>
+ <MajorGrid>
+ <LineAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>196</Red>
+ <Green>196</Green>
+ <Blue>196</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </LineAttributes>
+ <TickStyle>Across</TickStyle>
+ <TickAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>196</Red>
+ <Green>196</Green>
+ <Blue>196</Blue>
+ </Color>
+ <Visible>true</Visible>
+ </TickAttributes>
+ </MajorGrid>
+ <MinorGrid>
+ <LineAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>225</Red>
+ <Green>225</Green>
+ <Blue>225</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </LineAttributes>
+ <TickStyle>Across</TickStyle>
+ <TickAttributes>
+ <Style>Solid</Style>
+ <Thickness>1</Thickness>
+ <Color>
+ <Transparency>255</Transparency>
+ <Red>225</Red>
+ <Green>225</Green>
+ <Blue>225</Blue>
+ </Color>
+ <Visible>false</Visible>
+ </TickAttributes>
+ </MinorGrid>
+ <Scale>
+ <MinorGridsPerUnit>5</MinorGridsPerUnit>
+ </Scale>
+ <Origin>
+ <Type>Min</Type>
+ <Value xsi:type="data:NumberDataElement">
+ <Value>0.0</Value>
+ </Value>
+ </Origin>
+ <PrimaryAxis>true</PrimaryAxis>
+ <CategoryAxis>true</CategoryAxis>
+ <Percent>false</Percent>
+ </Axes>
+ <Orientation>Horizontal</Orientation>
+ <UnitSpacing>50.0</UnitSpacing>
+ <Rotation/>
+</model:ChartWithAxes>
+]]></xml-property>
+ <property name="outputFormat">SVG</property>
+ <property name="fontSize">smaller</property>
+ <property name="marginTop">10pt</property>
+ <property name="dataSet">NumberOfAssignments</property>
+ <property name="height">120px</property>
+ <property name="width">220px</property>
+ <list-property name="boundDataColumns">
+ <structure>
+ <property name="name">count(TASKINSTANCE_)</property>
+ <expression name="expression">dataSetRow["count(TASKINSTANCE_)"]</expression>
+ <property name="dataType">decimal</property>
+ </structure>
+ <structure>
+ <property name="name">TASKACTORID_</property>
+ <expression name="expression">dataSetRow["TASKACTORID_"]</expression>
+ <property name="dataType">string</property>
+ </structure>
+ </list-property>
+ </extended-item>
+ </cell>
+ <cell id="75"/>
+ <cell id="76"/>
+ </row>
+ </detail>
+ <footer>
+ <row id="77">
+ <cell id="78"/>
+ <cell id="79"/>
+ <cell id="80"/>
+ </row>
+ </footer>
+ </table>
+ </body>
+</report>
15 years, 5 months
JBoss JBPM SVN: r3175 - in projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client: metric and 1 other directory.
by do-not-reply@jboss.org
Author: heiko.braun(a)jboss.com
Date: 2008-12-03 06:11:04 -0500 (Wed, 03 Dec 2008)
New Revision: 3175
Modified:
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/MainView.java
projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/metric/MetricOverviewEditor.java
Log:
BIRT integration first cut
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/MainView.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/MainView.java 2008-12-03 10:49:46 UTC (rev 3174)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/MainView.java 2008-12-03 11:11:04 UTC (rev 3175)
@@ -117,7 +117,7 @@
borderPanel.add(workspace, new BorderLayoutData(RegionPosition.CENTER));
// ------------------------------------------
-
+ // TODO: these don't initialze correctly when ordered differently or launched form Menu
workspace.addEditor( new ProcessDefinitionListEditor(this), false );
workspace.addEditor( new TaskListEditor(this), false );
workspace.addEditor( new MetricOverviewEditor(this), false);
Modified: projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/metric/MetricOverviewEditor.java
===================================================================
--- projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/metric/MetricOverviewEditor.java 2008-12-03 10:49:46 UTC (rev 3174)
+++ projects/gwt-console/trunk/war/src/main/java/org/jboss/bpm/console/client/metric/MetricOverviewEditor.java 2008-12-03 11:11:04 UTC (rev 3175)
@@ -22,12 +22,13 @@
package org.jboss.bpm.console.client.metric;
import com.google.gwt.user.client.ui.Frame;
-import com.gwtext.client.widgets.Panel;
-import com.gwtext.client.widgets.Component;
+import com.gwtext.client.widgets.*;
import com.gwtext.client.widgets.event.PanelListenerAdapter;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.layout.FitLayout;
import com.gwtext.client.widgets.layout.ColumnLayoutData;
import com.gwtext.client.widgets.layout.ColumnLayout;
+import com.gwtext.client.core.EventObject;
import org.jboss.bpm.console.client.Editor;
import org.jboss.bpm.console.client.MainView;
import org.jboss.bpm.console.client.UIConstants;
@@ -47,18 +48,54 @@
public final static String ID = "org.jboss.bpm.metric.ProcessMetric";
- public MetricOverviewEditor(MainView view)
+ public MetricOverviewEditor(final MainView view)
{
super();
this.view = view;
this.setId(ID);
-
+ this.setPaddings(10);
+
// -------------------------------------
this.setLayout(new FitLayout() );
- final String reportUrl= view.getUrlBuilder().getDefaultReportUrl();
- final Frame frame = new Frame(reportUrl);
- this.add(frame);
+ this.addListener(
+ new PanelListenerAdapter()
+ {
+
+ public void onRender(Component component)
+ {
+ //final String reportUrl= view.getUrlBuilder().getDefaultReportUrl();
+ final String url = "http://localhost:8080/birt-viewer/preview?__report=process_activity.rptde...";
+ final Frame frame = new Frame(url);
+ frame.setWidth("676");
+ frame.setHeight("448");
+
+ Panel container = new Panel();
+ container.setHeader(false);
+ container.setWidth(680);
+ container.setHeight(450);
+
+
+
+
+ container.add(frame);
+
+ Toolbar toolbar = new Toolbar();
+ toolbar.addButton(
+ new ToolbarButton("Refresh", new ButtonListenerAdapter(){
+
+ public void onClick(Button button, EventObject eventObject)
+ {
+ frame.setUrl(url);
+ }
+ })
+ );
+ container.setTopToolbar(toolbar);
+
+ add(container);
+ }
+ }
+ );
}
public String getEditorId()
15 years, 5 months