未验证 提交 3e65a39c 编写于 作者: I Igor Dianov 提交者: GitHub

fix(GH-3980): Add support for analytics variable extension property in Activiti engine (#3981)

上级 6973bf40
......@@ -31,4 +31,6 @@ public interface VariableDefinition {
String getDisplayName();
boolean isAnalytics();
}
......@@ -31,6 +31,8 @@ public class VariableDefinition {
private String displayName;
private boolean analytics;
public String getId() {
return id;
}
......@@ -86,4 +88,12 @@ public class VariableDefinition {
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public boolean isAnalytics() {
return analytics;
}
public void setAnalytics(boolean analytics) {
this.analytics = analytics;
}
}
......@@ -28,6 +28,7 @@ public class VariableDefinitionImpl implements VariableDefinition {
private boolean required;
private Boolean display;
private String displayName;
private boolean analytics;
@Override
public String getId() {
......@@ -92,6 +93,15 @@ public class VariableDefinitionImpl implements VariableDefinition {
this.displayName = displayName;
}
@Override
public boolean isAnalytics() {
return analytics;
}
public void setAnalytics(boolean analytics) {
this.analytics = analytics;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
......@@ -103,12 +113,13 @@ public class VariableDefinitionImpl implements VariableDefinition {
Objects.equals(name, that.name) &&
Objects.equals(description, that.description) &&
Objects.equals(type, that.type) &&
Objects.equals(displayName, that.displayName);
Objects.equals(displayName, that.displayName) &&
Objects.equals(analytics, that.analytics);
}
@Override
public int hashCode() {
return Objects.hash(id, name, description, type, required, display, displayName);
return Objects.hash(id, name, description, type, required, display, displayName, analytics);
}
@Override
......@@ -121,6 +132,8 @@ public class VariableDefinitionImpl implements VariableDefinition {
", required=" + required +
", display=" + display +
", displayName='" + displayName + '\'' +
", analytics='" + analytics + '\'' +
'}';
}
}
......@@ -15,11 +15,7 @@
*/
package org.activiti.spring.process;
import static org.activiti.spring.process.model.TemplateDefinition.TemplateType.FILE;
import static org.activiti.spring.process.model.TemplateDefinition.TemplateType.VARIABLE;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.InputStream;
import org.activiti.core.common.model.connector.VariableDefinition;
import org.activiti.engine.RepositoryService;
import org.activiti.spring.process.model.ProcessExtensionModel;
import org.activiti.spring.process.model.TaskTemplateDefinition;
......@@ -30,6 +26,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import java.io.InputStream;
import static org.activiti.spring.process.model.TemplateDefinition.TemplateType.FILE;
import static org.activiti.spring.process.model.TemplateDefinition.TemplateType.VARIABLE;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.NONE,
properties = "spring.main.banner-mode=off"
......@@ -168,4 +170,25 @@ public class ProcessExtensionResourceReaderIT {
);
}
}
@Test
public void shouldReadAnalyticsExtensionFromJsonFile() throws Exception {
try (InputStream inputStream = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("processes/initial-vars-extensions.json")) {
ProcessExtensionModel processExtensionModel = reader.read(inputStream);
assertThat(processExtensionModel).isNotNull();
assertThat(processExtensionModel.getId()).isEqualTo("initialVarsProcess");
assertThat(
processExtensionModel.getExtensions("Process_initialVarsProcess").getProperties())
.extracting(stringVariableDefinitionMap -> stringVariableDefinitionMap.get("379dc1a1-481d-4617-a027-ef39fdadf6667"))
.extracting(VariableDefinition::getName, VariableDefinition::isAnalytics)
.containsOnly("trackedId", true);
assertThat(
processExtensionModel.getExtensions("Process_initialVarsProcess").getProperties())
.extracting(stringVariableDefinitionMap -> stringVariableDefinitionMap.get("379dc1a1-481d-4617-a027-ef39fdadf6668"))
.extracting(VariableDefinition::getName, VariableDefinition::isAnalytics)
.containsOnly("notTrackedId", false);
}
}
}
......@@ -44,6 +44,21 @@
"type": "file",
"required": false,
"value": {}
},
"379dc1a1-481d-4617-a027-ef39fdadf6667": {
"id": "379dc1a1-481d-4617-a027-ef39fdadf6667",
"name": "trackedId",
"type": "integer",
"required": false,
"value": 0,
"analytics": true
},
"379dc1a1-481d-4617-a027-ef39fdadf6668": {
"id": "379dc1a1-481d-4617-a027-ef39fdadf6668",
"name": "notTrackedId",
"type": "integer",
"required": false,
"value": 0
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册