Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
开发团队
Flowable Engine
提交
1c00d4f2
F
Flowable Engine
项目概览
开发团队
/
Flowable Engine
通知
9
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Flowable Engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1c00d4f2
编写于
9月 10, 2014
作者:
T
Tijs Rademakers
浏览文件
操作
浏览文件
下载
差异文件
Dataobjects fix for autolayout
上级
6c34ea2e
c6a6aeaf
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
179 addition
and
26 deletion
+179
-26
modules/activiti-bpmn-converter/pom.xml
modules/activiti-bpmn-converter/pom.xml
+5
-0
modules/activiti-bpmn-converter/src/test/java/org/activiti/editor/language/xml/SubProcessConverterAutoLayoutTest.java
...ditor/language/xml/SubProcessConverterAutoLayoutTest.java
+73
-0
modules/activiti-bpmn-converter/src/test/resources/subprocessmodel_autolayout.bpmn
...verter/src/test/resources/subprocessmodel_autolayout.bpmn
+68
-0
modules/activiti-bpmn-layout/pom.xml
modules/activiti-bpmn-layout/pom.xml
+5
-0
modules/activiti-bpmn-layout/src/main/java/org/activiti/bpmn/BpmnAutoLayout.java
...ayout/src/main/java/org/activiti/bpmn/BpmnAutoLayout.java
+3
-4
modules/activiti-engine/src/test/java/org/activiti/engine/test/api/event/ActivityEventsTest.java
...rg/activiti/engine/test/api/event/ActivityEventsTest.java
+24
-22
pom.xml
pom.xml
+1
-0
未找到文件。
modules/activiti-bpmn-converter/pom.xml
浏览文件 @
1c00d4f2
...
...
@@ -98,6 +98,11 @@
<artifactId>
activiti-process-validation
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.activiti
</groupId>
<artifactId>
activiti-bpmn-layout
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.slf4j
</groupId>
<artifactId>
slf4j-api
</artifactId>
...
...
modules/activiti-bpmn-converter/src/test/java/org/activiti/editor/language/xml/SubProcessConverterAutoLayoutTest.java
0 → 100644
浏览文件 @
1c00d4f2
package
org.activiti.editor.language.xml
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
import
static
org
.
junit
.
Assert
.
assertNotNull
;
import
static
org
.
junit
.
Assert
.
assertTrue
;
import
java.util.List
;
import
org.activiti.bpmn.BpmnAutoLayout
;
import
org.activiti.bpmn.model.BpmnModel
;
import
org.activiti.bpmn.model.FlowElement
;
import
org.activiti.bpmn.model.StartEvent
;
import
org.activiti.bpmn.model.SubProcess
;
import
org.activiti.bpmn.model.UserTask
;
import
org.activiti.bpmn.model.ValuedDataObject
;
import
org.junit.Test
;
public
class
SubProcessConverterAutoLayoutTest
extends
AbstractConverterTest
{
@Test
public
void
convertXMLToModel
()
throws
Exception
{
BpmnModel
bpmnModel
=
readXMLFile
();
validateModel
(
bpmnModel
);
}
@Test
public
void
convertModelToXML
()
throws
Exception
{
BpmnModel
bpmnModel
=
readXMLFile
();
// Add DI information to bpmn model
BpmnAutoLayout
bpmnAutoLayout
=
new
BpmnAutoLayout
(
bpmnModel
);
bpmnAutoLayout
.
execute
();
BpmnModel
parsedModel
=
exportAndReadXMLFile
(
bpmnModel
);
validateModel
(
parsedModel
);
deployProcess
(
parsedModel
);
}
protected
String
getResource
()
{
return
"subprocessmodel_autolayout.bpmn"
;
}
private
void
validateModel
(
BpmnModel
model
)
{
FlowElement
flowElement
=
model
.
getMainProcess
().
getFlowElement
(
"start1"
);
assertNotNull
(
flowElement
);
assertTrue
(
flowElement
instanceof
StartEvent
);
assertEquals
(
"start1"
,
flowElement
.
getId
());
flowElement
=
model
.
getMainProcess
().
getFlowElement
(
"userTask1"
);
assertNotNull
(
flowElement
);
assertTrue
(
flowElement
instanceof
UserTask
);
assertEquals
(
"userTask1"
,
flowElement
.
getId
());
UserTask
userTask
=
(
UserTask
)
flowElement
;
assertTrue
(
userTask
.
getCandidateUsers
().
size
()
==
1
);
assertTrue
(
userTask
.
getCandidateGroups
().
size
()
==
1
);
flowElement
=
model
.
getMainProcess
().
getFlowElement
(
"subprocess1"
);
assertNotNull
(
flowElement
);
assertTrue
(
flowElement
instanceof
SubProcess
);
assertEquals
(
"subprocess1"
,
flowElement
.
getId
());
SubProcess
subProcess
=
(
SubProcess
)
flowElement
;
assertTrue
(
subProcess
.
getFlowElements
().
size
()
==
6
);
List
<
ValuedDataObject
>
dataObjects
=
((
SubProcess
)
flowElement
).
getDataObjects
();
assertTrue
(
dataObjects
.
size
()
==
1
);
ValuedDataObject
dataObj
=
dataObjects
.
get
(
0
);
assertEquals
(
"SubTest"
,
dataObj
.
getName
());
assertEquals
(
"xsd:string"
,
dataObj
.
getItemSubjectRef
().
getStructureRef
());
assertTrue
(
dataObj
.
getValue
()
instanceof
String
);
assertEquals
(
"Testing"
,
dataObj
.
getValue
());
}
}
modules/activiti-bpmn-converter/src/test/resources/subprocessmodel_autolayout.bpmn
0 → 100644
浏览文件 @
1c00d4f2
<?xml version="1.0" encoding="UTF-8"?>
<definitions
xmlns=
"http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
xmlns:activiti=
"http://activiti.org/bpmn"
xmlns:bpmndi=
"http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:omgdc=
"http://www.omg.org/spec/DD/20100524/DC"
xmlns:omgdi=
"http://www.omg.org/spec/DD/20100524/DI"
xmlns:sas=
"http://www.sas.com/bpmn"
typeLanguage=
"http://www.w3.org/2001/XMLSchema"
expressionLanguage=
"http://www.w3.org/1999/XPath"
targetNamespace=
"http://www.activiti.org/test"
>
<process
id=
"process"
name=
"process1"
isExecutable=
"true"
>
<sequenceFlow
id=
"sid-04DAFAA0-34C1-48DF-BAD5-1038344BBFA9"
sourceRef=
"start1"
targetRef=
"userTask1"
></sequenceFlow>
<subProcess
id=
"subprocess1"
name=
"subProcess"
>
<endEvent
id=
"sid-565296D1-FCF9-4B31-9048-528B10A27C46"
></endEvent>
<startEvent
id=
"subStartEvent"
></startEvent>
<sequenceFlow
id=
"sid-C7145ECA-31A2-4A91-B20A-023CF0764155"
sourceRef=
"subUserTask1"
targetRef=
"sid-565296D1-FCF9-4B31-9048-528B10A27C46"
></sequenceFlow>
<userTask
id=
"subUserTask1"
name=
"User task 2"
></userTask>
<sequenceFlow
id=
"subFlowId1"
sourceRef=
"subStartEvent"
targetRef=
"subUserTask1"
></sequenceFlow>
<dataObject
id=
"sid-AA1205FD-63BD-47BA-9FB3-AA9F7C1E31F0"
name=
"SubTest"
itemSubjectRef=
"xsd:string"
>
<extensionElements>
<activiti:value>
Testing
</activiti:value>
</extensionElements>
</dataObject>
</subProcess>
<startEvent
id=
"start1"
></startEvent>
<sequenceFlow
id=
"sid-D6D5AFA6-7673-4DFB-B118-675622C58DF2"
sourceRef=
"subprocess1"
targetRef=
"sid-194696BA-1A7D-47D7-95A9-A77390D25048"
></sequenceFlow>
<sequenceFlow
id=
"sid-287D861F-4498-4A5C-8EC8-E07F79265E90"
sourceRef=
"userTask1"
targetRef=
"subprocess1"
></sequenceFlow>
<endEvent
id=
"sid-194696BA-1A7D-47D7-95A9-A77390D25048"
></endEvent>
<userTask
id=
"userTask1"
name=
"User task 1"
activiti:async=
"true"
activiti:exclusive=
"false"
activiti:candidateUsers=
"kermit"
activiti:candidateGroups=
"management"
></userTask>
</process>
<bpmndi:BPMNDiagram
id=
"BPMNDiagram_process"
>
<bpmndi:BPMNPlane
bpmnElement=
"process"
id=
"BPMNPlane_process"
>
<bpmndi:BPMNShape
bpmnElement=
"subprocess1"
id=
"BPMNShape_subprocess1"
>
<omgdc:Bounds
height=
"160.0"
width=
"348.0"
x=
"345.0"
y=
"125.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"sid-565296D1-FCF9-4B31-9048-528B10A27C46"
id=
"BPMNShape_sid-565296D1-FCF9-4B31-9048-528B10A27C46"
>
<omgdc:Bounds
height=
"35.0"
width=
"35.0"
x=
"585.0"
y=
"190.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"subStartEvent"
id=
"BPMNShape_subStartEvent"
>
<omgdc:Bounds
height=
"35.0"
width=
"35.0"
x=
"365.0"
y=
"189.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"subUserTask1"
id=
"BPMNShape_subUserTask1"
>
<omgdc:Bounds
height=
"80.0"
width=
"100.0"
x=
"440.0"
y=
"164.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"start1"
id=
"BPMNShape_start1"
>
<omgdc:Bounds
height=
"35.0"
width=
"35.0"
x=
"105.0"
y=
"190.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"sid-194696BA-1A7D-47D7-95A9-A77390D25048"
id=
"BPMNShape_sid-194696BA-1A7D-47D7-95A9-A77390D25048"
>
<omgdc:Bounds
height=
"35.0"
width=
"35.0"
x=
"738.0"
y=
"191.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"userTask1"
id=
"BPMNShape_userTask1"
>
<omgdc:Bounds
height=
"80.0"
width=
"100.0"
x=
"180.0"
y=
"165.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge
bpmnElement=
"sid-04DAFAA0-34C1-48DF-BAD5-1038344BBFA9"
id=
"BPMNEdge_sid-04DAFAA0-34C1-48DF-BAD5-1038344BBFA9"
>
<omgdi:waypoint
x=
"140.0"
y=
"207.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"180.0"
y=
"205.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"sid-C7145ECA-31A2-4A91-B20A-023CF0764155"
id=
"BPMNEdge_sid-C7145ECA-31A2-4A91-B20A-023CF0764155"
>
<omgdi:waypoint
x=
"540.0"
y=
"204.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"585.0"
y=
"207.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"subFlowId1"
id=
"BPMNEdge_subFlowId1"
>
<omgdi:waypoint
x=
"400.0"
y=
"206.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"440.0"
y=
"204.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"sid-D6D5AFA6-7673-4DFB-B118-675622C58DF2"
id=
"BPMNEdge_sid-D6D5AFA6-7673-4DFB-B118-675622C58DF2"
>
<omgdi:waypoint
x=
"693.0"
y=
"205.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"738.0"
y=
"208.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"sid-287D861F-4498-4A5C-8EC8-E07F79265E90"
id=
"BPMNEdge_sid-287D861F-4498-4A5C-8EC8-E07F79265E90"
>
<omgdi:waypoint
x=
"280.0"
y=
"205.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"345.0"
y=
"205.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
\ No newline at end of file
modules/activiti-bpmn-layout/pom.xml
浏览文件 @
1c00d4f2
...
...
@@ -98,6 +98,11 @@
<artifactId>
jgraphx
</artifactId>
<version>
1.10.4.1
</version>
</dependency>
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<scope>
provided
</scope>
</dependency>
</dependencies>
<profiles>
...
...
modules/activiti-bpmn-layout/src/main/java/org/activiti/bpmn/BpmnAutoLayout.java
浏览文件 @
1c00d4f2
...
...
@@ -26,6 +26,7 @@ import javax.swing.SwingConstants;
import
org.activiti.bpmn.model.BoundaryEvent
;
import
org.activiti.bpmn.model.BpmnModel
;
import
org.activiti.bpmn.model.CallActivity
;
import
org.activiti.bpmn.model.DataObject
;
import
org.activiti.bpmn.model.Event
;
import
org.activiti.bpmn.model.FlowElement
;
import
org.activiti.bpmn.model.FlowElementsContainer
;
...
...
@@ -288,7 +289,6 @@ public class BpmnAutoLayout {
// Always expanded when auto layouting
subProcessGraphicInfo
.
setExpanded
(
true
);
}
}
}
...
...
@@ -433,8 +433,8 @@ public class BpmnAutoLayout {
for
(
GraphicInfo
graphicInfo
:
graphicInfos
)
{
graphicInfo
.
setX
(
graphicInfo
.
getX
()
+
subProcessX
+
subProcessMargin
);
graphicInfo
.
setY
(
graphicInfo
.
getY
()
+
subProcessY
+
subProcessMargin
);
}
}
else
{
}
}
else
if
(
flowElement
instanceof
DataObject
==
false
)
{
// Regular element
GraphicInfo
graphicInfo
=
bpmnModel
.
getLocationMap
().
get
(
flowElement
.
getId
());
...
...
@@ -480,7 +480,6 @@ public class BpmnAutoLayout {
public
void
setGatewaySize
(
int
gatewaySize
)
{
this
.
gatewaySize
=
gatewaySize
;
}
public
int
getTaskWidth
()
{
return
taskWidth
;
...
...
modules/activiti-engine/src/test/java/org/activiti/engine/test/api/event/ActivityEventsTest.java
浏览文件 @
1c00d4f2
...
...
@@ -12,11 +12,17 @@
*/
package
org.activiti.engine.test.api.event
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Collections
;
import
java.util.List
;
import
org.activiti.engine.delegate.event.*
;
import
org.activiti.engine.delegate.event.ActivitiActivityEvent
;
import
org.activiti.engine.delegate.event.ActivitiErrorEvent
;
import
org.activiti.engine.delegate.event.ActivitiEvent
;
import
org.activiti.engine.delegate.event.ActivitiEventType
;
import
org.activiti.engine.delegate.event.ActivitiMessageEvent
;
import
org.activiti.engine.delegate.event.ActivitiSignalEvent
;
import
org.activiti.engine.delegate.event.impl.ActivitiActivityEventImpl
;
import
org.activiti.engine.event.EventLogEntry
;
import
org.activiti.engine.impl.event.logger.EventLogger
;
...
...
@@ -504,15 +510,14 @@ public class ActivityEventsTest extends PluggableActivitiTestCase {
// Check timeout-events have been dispatched
assertEquals
(
3
,
listener
.
getEventsReceived
().
size
());
ActivitiActivityEventImpl
timeOutEvent
=
(
ActivitiActivityEventImpl
)
listener
.
getEventsReceived
().
get
(
0
);
assertEquals
(
ActivitiEventType
.
ACTIVITY_TIMEOUT
,
timeOutEvent
.
getType
());
assertEquals
(
"innerTask1"
,
timeOutEvent
.
getActivityId
());
timeOutEvent
=
(
ActivitiActivityEventImpl
)
listener
.
getEventsReceived
().
get
(
1
);
assertEquals
(
ActivitiEventType
.
ACTIVITY_TIMEOUT
,
timeOutEvent
.
getType
());
assertEquals
(
"innerTask2"
,
timeOutEvent
.
getActivityId
());
timeOutEvent
=
(
ActivitiActivityEventImpl
)
listener
.
getEventsReceived
().
get
(
2
);
assertEquals
(
ActivitiEventType
.
ACTIVITY_TIMEOUT
,
timeOutEvent
.
getType
());
assertEquals
(
"innerFork"
,
timeOutEvent
.
getActivityId
());
List
<
String
>
eventIdList
=
new
ArrayList
<
String
>();
for
(
ActivitiEvent
event
:
listener
.
getEventsReceived
())
{
assertEquals
(
ActivitiEventType
.
ACTIVITY_TIMEOUT
,
event
.
getType
());
eventIdList
.
add
(((
ActivitiActivityEventImpl
)
event
).
getActivityId
());
}
assertTrue
(
eventIdList
.
indexOf
(
"innerTask1"
)
>=
0
);
assertTrue
(
eventIdList
.
indexOf
(
"innerTask2"
)
>=
0
);
assertTrue
(
eventIdList
.
indexOf
(
"innerFork"
)
>=
0
);
}
@Deployment
...
...
@@ -530,18 +535,15 @@ public class ActivityEventsTest extends PluggableActivitiTestCase {
// Check timeout-events have been dispatched
assertEquals
(
4
,
listener
.
getEventsReceived
().
size
());
ActivitiActivityEventImpl
timeOutEvent
=
(
ActivitiActivityEventImpl
)
listener
.
getEventsReceived
().
get
(
0
);
assertEquals
(
ActivitiEventType
.
ACTIVITY_TIMEOUT
,
timeOutEvent
.
getType
());
assertEquals
(
"innerTask1"
,
timeOutEvent
.
getActivityId
());
timeOutEvent
=
(
ActivitiActivityEventImpl
)
listener
.
getEventsReceived
().
get
(
1
);
assertEquals
(
ActivitiEventType
.
ACTIVITY_TIMEOUT
,
timeOutEvent
.
getType
());
assertEquals
(
"innerTask2"
,
timeOutEvent
.
getActivityId
());
timeOutEvent
=
(
ActivitiActivityEventImpl
)
listener
.
getEventsReceived
().
get
(
2
);
assertEquals
(
ActivitiEventType
.
ACTIVITY_TIMEOUT
,
timeOutEvent
.
getType
());
assertEquals
(
"innerFork"
,
timeOutEvent
.
getActivityId
());
timeOutEvent
=
(
ActivitiActivityEventImpl
)
listener
.
getEventsReceived
().
get
(
3
);
assertEquals
(
ActivitiEventType
.
ACTIVITY_TIMEOUT
,
timeOutEvent
.
getType
());
assertEquals
(
"callActivity"
,
timeOutEvent
.
getActivityId
());
List
<
String
>
eventIdList
=
new
ArrayList
<
String
>();
for
(
ActivitiEvent
event
:
listener
.
getEventsReceived
())
{
assertEquals
(
ActivitiEventType
.
ACTIVITY_TIMEOUT
,
event
.
getType
());
eventIdList
.
add
(((
ActivitiActivityEventImpl
)
event
).
getActivityId
());
}
assertTrue
(
eventIdList
.
indexOf
(
"innerTask1"
)
>=
0
);
assertTrue
(
eventIdList
.
indexOf
(
"innerTask2"
)
>=
0
);
assertTrue
(
eventIdList
.
indexOf
(
"innerFork"
)
>=
0
);
assertTrue
(
eventIdList
.
indexOf
(
"callActivity"
)
>=
0
);
}
protected
void
assertDatabaseEventPresent
(
ActivitiEventType
eventType
)
{
...
...
pom.xml
浏览文件 @
1c00d4f2
...
...
@@ -572,6 +572,7 @@
<modules>
<module>
modules/activiti-bpmn-model
</module>
<module>
modules/activiti-process-validation
</module>
<module>
modules/activiti-bpmn-layout
</module>
<module>
modules/activiti-image-generator
</module>
<module>
modules/activiti-bpmn-converter
</module>
<module>
modules/activiti-engine
</module>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录