提交 a20fcdb4 编写于 作者: J Joram Barrez

Merge branch 'master' of github.com:Activiti/Activiti

......@@ -17,6 +17,7 @@ import java.util.List;
import java.util.Map;
import org.activiti.engine.history.HistoricVariableInstance;
import org.activiti.engine.impl.history.HistoryLevel;
import org.activiti.engine.impl.test.PluggableActivitiTestCase;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.test.Deployment;
......@@ -30,19 +31,21 @@ public class ScriptExecutionListenerTest extends PluggableActivitiTestCase {
public void testScriptExecutionListener() {
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("scriptExecutionListenerProcess");
List<HistoricVariableInstance> historicVariables = historyService.createHistoricVariableInstanceQuery().processInstanceId(processInstance.getId()).list();
Map<String, Object> varMap = new HashMap<String, Object>();
for (HistoricVariableInstance historicVariableInstance : historicVariables) {
varMap.put(historicVariableInstance.getVariableName(), historicVariableInstance.getValue());
}
assertTrue(varMap.containsKey("foo"));
assertEquals("FOO", varMap.get("foo"));
assertTrue(varMap.containsKey("var1"));
assertEquals("test", varMap.get("var1"));
assertFalse(varMap.containsKey("bar"));
assertTrue(varMap.containsKey("myVar"));
assertEquals("BAR", varMap.get("myVar"));
if (processEngineConfiguration.getHistoryLevel().isAtLeast(HistoryLevel.ACTIVITY)) {
List<HistoricVariableInstance> historicVariables = historyService.createHistoricVariableInstanceQuery().processInstanceId(processInstance.getId()).list();
Map<String, Object> varMap = new HashMap<String, Object>();
for (HistoricVariableInstance historicVariableInstance : historicVariables) {
varMap.put(historicVariableInstance.getVariableName(), historicVariableInstance.getValue());
}
assertTrue(varMap.containsKey("foo"));
assertEquals("FOO", varMap.get("foo"));
assertTrue(varMap.containsKey("var1"));
assertEquals("test", varMap.get("var1"));
assertFalse(varMap.containsKey("bar"));
assertTrue(varMap.containsKey("myVar"));
assertEquals("BAR", varMap.get("myVar"));
}
}
}
......@@ -13,33 +13,37 @@
package org.activiti.examples.bpmn.tasklistener;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.history.HistoryLevel;
import org.activiti.engine.impl.test.PluggableActivitiTestCase;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.activiti.engine.test.Deployment;
/**
* @author Rich Kroll
* @author Rich Kroll, Tijs Rademakers
*/
public class ScriptTaskListenerTest extends PluggableActivitiTestCase {
@Deployment(resources = { "org/activiti/examples/bpmn/tasklistener/ScriptTaskListenerTest.bpmn20.xml" })
public void testScriptTaskListener() {
runtimeService.startProcessInstanceByKey("scriptTaskListenerProcess");
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("scriptTaskListenerProcess");
Task task = taskService.createTaskQuery().singleResult();
assertEquals("Name does not match", "All your base are belong to us", task.getName());
taskService.complete(task.getId());
HistoricTaskInstance historicTask = historyService.createHistoricTaskInstanceQuery().taskId(task.getId()).singleResult();
assertEquals("kermit", historicTask.getOwner());
task = taskService.createTaskQuery().singleResult();
assertEquals("Task name not set with 'bar' variable", "BAR", task.getName());
Object bar = runtimeService.getVariable(task.getExecutionId(), "bar");
if (processEngineConfiguration.getHistoryLevel().isAtLeast(HistoryLevel.AUDIT)) {
HistoricTaskInstance historicTask = historyService.createHistoricTaskInstanceQuery().taskId(task.getId()).singleResult();
assertEquals("kermit", historicTask.getOwner());
task = taskService.createTaskQuery().singleResult();
assertEquals("Task name not set with 'bar' variable", "BAR", task.getName());
}
Object bar = runtimeService.getVariable(processInstance.getId(), "bar");
assertNull("Expected 'bar' variable to be local to script", bar);
Object foo = runtimeService.getVariable(task.getExecutionId(), "foo");
Object foo = runtimeService.getVariable(processInstance.getId(), "foo");
assertEquals("Could not find the 'foo' variable in variable scope", "FOO", foo);
}
......
......@@ -107,12 +107,7 @@ public class Extender implements BundleTrackerCustomizer, ServiceTrackerCustomiz
bundleChanged(event);
}
List<BundleScriptEngineResolver> r = new ArrayList<BundleScriptEngineResolver>();
registerScriptEngines(bundle, r);
for (BundleScriptEngineResolver service : r) {
service.register();
}
resolvers.put(bundle.getBundleId(), r);
checkBundleScriptEngines(bundle);
return bundle;
}
......@@ -157,7 +152,18 @@ public class Extender implements BundleTrackerCustomizer, ServiceTrackerCustomiz
Bundle bundle = event.getBundle();
if (event.getType() == BundleEvent.RESOLVED) {
checkBundle(bundle);
} else if (event.getType() == BundleEvent.STARTED) {
checkBundleScriptEngines(bundle);
}
}
private void checkBundleScriptEngines(Bundle bundle) {
List<BundleScriptEngineResolver> r = new ArrayList<BundleScriptEngineResolver>();
registerScriptEngines(bundle, r);
for (BundleScriptEngineResolver service : r) {
service.register();
}
resolvers.put(bundle.getBundleId(), r);
}
private void checkBundle(Bundle bundle) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册