未验证 提交 d0d7dcbb 编写于 作者: S salaboy 提交者: GitHub

Merge pull request #2458 from...

Merge pull request #2458 from Activiti/CTI777-2381-Add-Service-Task-Name-in-connector-Integration-Request-payload

Fields added to IntegrationContext
......@@ -18,14 +18,12 @@ package org.activiti.runtime.api.connector;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.activiti.api.process.model.IntegrationContext;
import org.activiti.api.runtime.model.impl.IntegrationContextImpl;
import org.activiti.bpmn.model.ServiceTask;
import org.activiti.core.common.model.connector.ActionDefinition;
import org.activiti.core.common.model.connector.VariableDefinition;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.impl.persistence.entity.ExecutionEntity;
import org.activiti.engine.impl.persistence.entity.integration.IntegrationContextEntity;
......@@ -56,9 +54,9 @@ public class IntegrationContextBuilder {
IntegrationContextImpl integrationContext = new IntegrationContextImpl();
integrationContext.setProcessInstanceId(execution.getProcessInstanceId());
integrationContext.setProcessDefinitionId(execution.getProcessDefinitionId());
integrationContext.setActivityElementId(execution.getCurrentActivityId());
integrationContext.setBusinessKey(execution.getProcessInstanceBusinessKey());
integrationContext.setClientId(execution.getCurrentActivityId());
if(ExecutionEntity.class.isInstance(execution)) {
ExecutionEntity processInstance = ExecutionEntity.class.cast(execution)
.getProcessInstance();
......@@ -69,9 +67,13 @@ public class IntegrationContextBuilder {
}
}
String implementation = ((ServiceTask) execution.getCurrentFlowElement()).getImplementation();
integrationContext.setConnectorType(implementation);
ServiceTask serviceTask = (ServiceTask)execution.getCurrentFlowElement();
if (serviceTask != null ) {
integrationContext.setConnectorType(serviceTask.getImplementation());
integrationContext.setClientName(serviceTask.getName());
integrationContext.setClientType(ServiceTask.class.getSimpleName());
}
integrationContext.setInBoundVariables(buildInBoundVariables(
actionDefinition,
......
......@@ -39,6 +39,7 @@ public class IntegrationContextBuilderTest {
private static final String PROCESS_DEFINITION_ID = "processDefinitionId";
private static final String PROCESS_INSTANCE_ID = "processInstanceId";
private static final String IMPLEMENTATION = "implementation";
private static final String SERVICE_TASK_NAME = "serviceTaskName";
private IntegrationContextBuilder subject = new IntegrationContextBuilder(new VariablesMatchHelper());
......@@ -51,6 +52,7 @@ public class IntegrationContextBuilderTest {
Map<String, Object> variables = Collections.singletonMap("key", "value");
given(serviceTask.getImplementation()).willReturn(IMPLEMENTATION);
given(serviceTask.getName()).willReturn(SERVICE_TASK_NAME);
given(execution.getVariables()).willReturn(variables);
given(execution.getCurrentActivityId()).willReturn(CURRENT_ACTIVITY_ID);
given(execution.getCurrentFlowElement()).willReturn(serviceTask);
......@@ -62,14 +64,16 @@ public class IntegrationContextBuilderTest {
given(processInstance.getProcessDefinitionKey()).willReturn(PROCESS_DEFINITION_KEY);
given(processInstance.getProcessDefinitionVersion()).willReturn(PROCESS_DEFINITION_VERSION);
given(processInstance.getParentProcessInstanceId()).willReturn(PARENT_PROCESS_INSTANCE_ID);
//when
IntegrationContext integrationContext = subject.from(execution, null);
//then
assertThat(integrationContext).isNotNull();
assertThat(integrationContext.getConnectorType()).isEqualTo(IMPLEMENTATION);
assertThat(integrationContext.getActivityElementId()).isEqualTo(CURRENT_ACTIVITY_ID);
assertThat(integrationContext.getClientId()).isEqualTo(CURRENT_ACTIVITY_ID);
assertThat(integrationContext.getClientName()).isEqualTo(SERVICE_TASK_NAME);
assertThat(integrationContext.getClientType()).isEqualTo(ServiceTask.class.getSimpleName());
assertThat(integrationContext.getBusinessKey()).isEqualTo(PROCESS_INSTANCE_BUSINESS_KEY);
assertThat(integrationContext.getProcessDefinitionId()).isEqualTo(PROCESS_DEFINITION_ID);
assertThat(integrationContext.getProcessInstanceId()).isEqualTo(PROCESS_INSTANCE_ID);
......
......@@ -13,6 +13,7 @@ import org.activiti.api.process.model.events.BPMNSequenceFlowTakenEvent;
import org.activiti.api.process.model.events.ProcessRuntimeEvent;
import org.activiti.api.process.runtime.ProcessRuntime;
import org.activiti.api.runtime.shared.NotFoundException;
import org.activiti.bpmn.model.ServiceTask;
import org.activiti.spring.conformance.util.security.SecurityUtil;
import org.junit.After;
import org.junit.Test;
......@@ -102,6 +103,10 @@ public class ConformanceServiceTaskTest {
assertThat(integrationContext.getProcessDefinitionVersion()).isEqualTo(1);
assertThat(integrationContext.getParentProcessInstanceId()).isNull();
assertThat(integrationContext.getClientId()).isNotNull();
assertThat(integrationContext.getClientName()).isEqualTo("My Service Task");
assertThat(integrationContext.getClientType()).isEqualTo(ServiceTask.class.getSimpleName());
// and then
assertThat(collectedEvents)
.extracting(RuntimeEvent::getEventType)
......
......@@ -16,9 +16,9 @@
<description>Activiti Core :: Parent</description>
<url>http://activiti.org</url>
<properties>
<activiti-build.version>7.0.56</activiti-build.version>
<activiti-api.version>7.0.83</activiti-api.version>
<activiti-core-common.version>7.0.45</activiti-core-common.version>
<activiti-build.version>7.0.59</activiti-build.version>
<activiti-api.version>7.0.86</activiti-api.version>
<activiti-core-common.version>7.0.46</activiti-core-common.version>
<activiti.version>${project.version}</activiti.version>
<batik.version>1.10</batik.version>
<commons-email.version>1.5</commons-email.version>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册