Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
开发团队
Flowable Engine
提交
bb75dfb9
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,发现更多精彩内容 >>
提交
bb75dfb9
编写于
1月 30, 2013
作者:
T
tijsrademakers
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
https://github.com/Activiti/Activiti
上级
761dd6d1
bee2c96d
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
168 addition
and
158 deletion
+168
-158
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/BpmnParse.java
.../java/org/activiti/engine/impl/bpmn/parser/BpmnParse.java
+35
-146
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/AbstractBpmnParseHandler.java
...ne/impl/bpmn/parser/handler/AbstractBpmnParseHandler.java
+78
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/AbstractExternalInvocationBpmnParseHandler.java
...r/handler/AbstractExternalInvocationBpmnParseHandler.java
+43
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/ProcessParseHandler.java
.../engine/impl/bpmn/parser/handler/ProcessParseHandler.java
+2
-2
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/SendTaskParseHandler.java
...engine/impl/bpmn/parser/handler/SendTaskParseHandler.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/ServiceTaskParseHandler.java
...ine/impl/bpmn/parser/handler/ServiceTaskParseHandler.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/SubProcessParseHandler.java
...gine/impl/bpmn/parser/handler/SubProcessParseHandler.java
+2
-2
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/TransactionParseHandler.java
...ine/impl/bpmn/parser/handler/TransactionParseHandler.java
+2
-2
未找到文件。
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/BpmnParse.java
浏览文件 @
bb75dfb9
...
...
@@ -28,12 +28,8 @@ import javax.xml.stream.XMLStreamReader;
import
org.activiti.bpmn.constants.BpmnXMLConstants
;
import
org.activiti.bpmn.converter.BpmnXMLConverter
;
import
org.activiti.bpmn.model.Artifact
;
import
org.activiti.bpmn.model.Association
;
import
org.activiti.bpmn.model.BoundaryEvent
;
import
org.activiti.bpmn.model.BpmnModel
;
import
org.activiti.bpmn.model.DataAssociation
;
import
org.activiti.bpmn.model.DataSpec
;
import
org.activiti.bpmn.model.ExclusiveGateway
;
import
org.activiti.bpmn.model.FlowElement
;
import
org.activiti.bpmn.model.GraphicInfo
;
...
...
@@ -46,26 +42,16 @@ import org.activiti.bpmn.model.SubProcess;
import
org.activiti.bpmn.model.parse.Problem
;
import
org.activiti.engine.ActivitiException
;
import
org.activiti.engine.ActivitiIllegalArgumentException
;
import
org.activiti.engine.delegate.Expression
;
import
org.activiti.engine.impl.Condition
;
import
org.activiti.engine.impl.bpmn.data.AbstractDataAssociation
;
import
org.activiti.engine.impl.bpmn.data.Assignment
;
import
org.activiti.engine.impl.bpmn.data.ClassStructureDefinition
;
import
org.activiti.engine.impl.bpmn.data.Data
;
import
org.activiti.engine.impl.bpmn.data.DataRef
;
import
org.activiti.engine.impl.bpmn.data.IOSpecification
;
import
org.activiti.engine.impl.bpmn.data.ItemDefinition
;
import
org.activiti.engine.impl.bpmn.data.ItemKind
;
import
org.activiti.engine.impl.bpmn.data.SimpleDataInputAssociation
;
import
org.activiti.engine.impl.bpmn.data.StructureDefinition
;
import
org.activiti.engine.impl.bpmn.data.TransformationDataOutputAssociation
;
import
org.activiti.engine.impl.bpmn.parser.factory.ActivityBehaviorFactory
;
import
org.activiti.engine.impl.bpmn.parser.factory.ListenerFactory
;
import
org.activiti.engine.impl.bpmn.webservice.BpmnInterface
;
import
org.activiti.engine.impl.bpmn.webservice.BpmnInterfaceImplementation
;
import
org.activiti.engine.impl.bpmn.webservice.MessageDefinition
;
import
org.activiti.engine.impl.bpmn.webservice.MessageImplicitDataInputAssociation
;
import
org.activiti.engine.impl.bpmn.webservice.MessageImplicitDataOutputAssociation
;
import
org.activiti.engine.impl.bpmn.webservice.Operation
;
import
org.activiti.engine.impl.bpmn.webservice.OperationImplementation
;
import
org.activiti.engine.impl.el.ExpressionManager
;
...
...
@@ -82,7 +68,6 @@ import org.activiti.engine.impl.util.io.ResourceStreamSource;
import
org.activiti.engine.impl.util.io.StreamSource
;
import
org.activiti.engine.impl.util.io.StringStreamSource
;
import
org.activiti.engine.impl.util.io.UrlStreamSource
;
import
org.activiti.engine.impl.util.xml.Element
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -426,15 +411,6 @@ public class BpmnParse implements BpmnXMLConstants {
}
}
public
void
processArtifacts
(
Collection
<
Artifact
>
artifacts
,
ScopeImpl
scope
)
{
// associations
for
(
Artifact
artifact
:
artifacts
)
{
if
(
artifact
instanceof
Association
)
{
createAssociation
((
Association
)
artifact
,
scope
);
}
}
}
public
void
validateExclusiveGateway
(
ActivityImpl
activity
,
ExclusiveGateway
exclusiveGateway
)
{
if
(
activity
.
getOutgoingTransitions
().
size
()
==
0
)
{
// TODO: double check if this is valid (I think in Activiti yes, since we need start events we will need an end event as well)
...
...
@@ -476,111 +452,6 @@ public class BpmnParse implements BpmnXMLConstants {
}
}
public
IOSpecification
createIOSpecification
(
org
.
activiti
.
bpmn
.
model
.
IOSpecification
specificationModel
)
{
IOSpecification
ioSpecification
=
new
IOSpecification
();
for
(
DataSpec
dataInputElement
:
specificationModel
.
getDataInputs
())
{
ItemDefinition
itemDefinition
=
this
.
itemDefinitions
.
get
(
dataInputElement
.
getItemSubjectRef
());
Data
dataInput
=
new
Data
(
this
.
targetNamespace
+
":"
+
dataInputElement
.
getId
(),
dataInputElement
.
getId
(),
itemDefinition
);
ioSpecification
.
addInput
(
dataInput
);
}
for
(
DataSpec
dataOutputElement
:
specificationModel
.
getDataOutputs
())
{
ItemDefinition
itemDefinition
=
this
.
itemDefinitions
.
get
(
dataOutputElement
.
getItemSubjectRef
());
Data
dataOutput
=
new
Data
(
this
.
targetNamespace
+
":"
+
dataOutputElement
.
getId
(),
dataOutputElement
.
getId
(),
itemDefinition
);
ioSpecification
.
addOutput
(
dataOutput
);
}
for
(
String
dataInputRef
:
specificationModel
.
getDataInputRefs
())
{
DataRef
dataRef
=
new
DataRef
(
dataInputRef
);
ioSpecification
.
addInputRef
(
dataRef
);
}
for
(
String
dataOutputRef
:
specificationModel
.
getDataOutputRefs
())
{
DataRef
dataRef
=
new
DataRef
(
dataOutputRef
);
ioSpecification
.
addOutputRef
(
dataRef
);
}
return
ioSpecification
;
}
public
AbstractDataAssociation
createDataInputAssociation
(
DataAssociation
dataAssociationElement
)
{
if
(
StringUtils
.
isEmpty
(
dataAssociationElement
.
getTargetRef
()))
{
bpmnModel
.
addProblem
(
"targetRef is required"
,
dataAssociationElement
);
}
if
(
dataAssociationElement
.
getAssignments
().
isEmpty
())
{
return
new
MessageImplicitDataInputAssociation
(
dataAssociationElement
.
getSourceRef
(),
dataAssociationElement
.
getTargetRef
());
}
else
{
SimpleDataInputAssociation
dataAssociation
=
new
SimpleDataInputAssociation
(
dataAssociationElement
.
getSourceRef
(),
dataAssociationElement
.
getTargetRef
());
for
(
org
.
activiti
.
bpmn
.
model
.
Assignment
assigmentElement
:
dataAssociationElement
.
getAssignments
())
{
if
(
StringUtils
.
isNotEmpty
(
assigmentElement
.
getFrom
())
&&
StringUtils
.
isNotEmpty
(
assigmentElement
.
getTo
()))
{
Expression
from
=
this
.
expressionManager
.
createExpression
(
assigmentElement
.
getFrom
());
Expression
to
=
this
.
expressionManager
.
createExpression
(
assigmentElement
.
getTo
());
Assignment
assignment
=
new
Assignment
(
from
,
to
);
dataAssociation
.
addAssignment
(
assignment
);
}
}
return
dataAssociation
;
}
}
public
AbstractDataAssociation
createDataOutputAssociation
(
DataAssociation
dataAssociationElement
)
{
if
(
StringUtils
.
isNotEmpty
(
dataAssociationElement
.
getSourceRef
()))
{
return
new
MessageImplicitDataOutputAssociation
(
dataAssociationElement
.
getTargetRef
(),
dataAssociationElement
.
getSourceRef
());
}
else
{
Expression
transformation
=
this
.
expressionManager
.
createExpression
(
dataAssociationElement
.
getTransformation
());
AbstractDataAssociation
dataOutputAssociation
=
new
TransformationDataOutputAssociation
(
null
,
dataAssociationElement
.
getTargetRef
(),
transformation
);
return
dataOutputAssociation
;
}
}
protected
AbstractDataAssociation
parseDataOutputAssociation
(
Element
dataAssociationElement
)
{
String
targetRef
=
dataAssociationElement
.
element
(
"targetRef"
).
getText
();
if
(
dataAssociationElement
.
element
(
"sourceRef"
)
!=
null
)
{
String
sourceRef
=
dataAssociationElement
.
element
(
"sourceRef"
).
getText
();
return
new
MessageImplicitDataOutputAssociation
(
targetRef
,
sourceRef
);
}
else
{
Expression
transformation
=
this
.
expressionManager
.
createExpression
(
dataAssociationElement
.
element
(
"transformation"
).
getText
());
AbstractDataAssociation
dataOutputAssociation
=
new
TransformationDataOutputAssociation
(
null
,
targetRef
,
transformation
);
return
dataOutputAssociation
;
}
}
protected
void
createAssociation
(
Association
association
,
ScopeImpl
parentScope
)
{
if
(
bpmnModel
.
getArtifact
(
association
.
getSourceRef
())
!=
null
||
bpmnModel
.
getArtifact
(
association
.
getTargetRef
())
!=
null
)
{
// connected to a text annotation so skipping it
return
;
}
ActivityImpl
sourceActivity
=
parentScope
.
findActivity
(
association
.
getSourceRef
());
ActivityImpl
targetActivity
=
parentScope
.
findActivity
(
association
.
getTargetRef
());
// an association may reference elements that are not parsed as activities (like for instance
// text annotations so do not throw an exception if sourceActivity or targetActivity are null)
// However, we make sure they reference 'something':
if
(
sourceActivity
==
null
)
{
//bpmnModel.addProblem("Invalid reference sourceRef '" + association.getSourceRef() + "' of association element ", association.getId());
}
else
if
(
targetActivity
==
null
)
{
//bpmnModel.addProblem("Invalid reference targetRef '" + association.getTargetRef() + "' of association element ", association.getId());
}
else
{
if
(
sourceActivity
!=
null
&&
sourceActivity
.
getProperty
(
"type"
).
equals
(
"compensationBoundaryCatch"
))
{
Object
isForCompensation
=
targetActivity
.
getProperty
(
PROPERTYNAME_IS_FOR_COMPENSATION
);
if
(
isForCompensation
==
null
||
!(
Boolean
)
isForCompensation
)
{
bpmnModel
.
addProblem
(
"compensation boundary catch must be connected to element with isForCompensation=true"
,
association
);
}
else
{
ActivityImpl
compensatedActivity
=
sourceActivity
.
getParentActivity
();
compensatedActivity
.
setProperty
(
PROPERTYNAME_COMPENSATION_HANDLER_ID
,
targetActivity
.
getId
());
}
}
}
}
//Diagram interchange
// /////////////////////////////////////////////////////////////////
...
...
@@ -654,21 +525,6 @@ public class BpmnParse implements BpmnXMLConstants {
}
}
// Getters, setters and Parser overriden operations
// ////////////////////////////////////////
public
List
<
ProcessDefinitionEntity
>
getProcessDefinitions
()
{
return
processDefinitions
;
}
public
BpmnParseHandlers
getBpmnParserHandlers
()
{
return
bpmnParserHandlers
;
}
public
void
setBpmnParserHandlers
(
BpmnParseHandlers
bpmnParserHandlers
)
{
this
.
bpmnParserHandlers
=
bpmnParserHandlers
;
}
public
ProcessDefinitionEntity
getProcessDefinition
(
String
processDefinitionKey
)
{
for
(
ProcessDefinitionEntity
processDefinition
:
processDefinitions
)
{
if
(
processDefinition
.
getKey
().
equals
(
processDefinitionKey
))
{
...
...
@@ -690,6 +546,27 @@ public class BpmnParse implements BpmnXMLConstants {
this
.
operationImplementations
.
put
(
operationImplementation
.
getId
(),
operationImplementation
);
}
/* -------------------
* GETTERS AND SETTERS
* ------------------- */
public
List
<
ProcessDefinitionEntity
>
getProcessDefinitions
()
{
return
processDefinitions
;
}
public
String
getTargetNamespace
()
{
return
targetNamespace
;
}
public
BpmnParseHandlers
getBpmnParserHandlers
()
{
return
bpmnParserHandlers
;
}
public
void
setBpmnParserHandlers
(
BpmnParseHandlers
bpmnParserHandlers
)
{
this
.
bpmnParserHandlers
=
bpmnParserHandlers
;
}
public
DeploymentEntity
getDeployment
()
{
return
deployment
;
}
...
...
@@ -733,11 +610,23 @@ public class BpmnParse implements BpmnXMLConstants {
public
Map
<
String
,
TransitionImpl
>
getSequenceFlows
()
{
return
sequenceFlows
;
}
public
Map
<
String
,
MessageDefinition
>
getMessages
()
{
return
messages
;
}
public
void
setSequenceFlows
(
Map
<
String
,
TransitionImpl
>
sequenceFlows
)
{
this
.
sequenceFlows
=
sequenceFlow
s
;
public
Map
<
String
,
BpmnInterfaceImplementation
>
getInterfaceImplementations
(
)
{
return
interfaceImplementation
s
;
}
public
Map
<
String
,
ItemDefinition
>
getItemDefinitions
()
{
return
itemDefinitions
;
}
public
Map
<
String
,
XMLImporter
>
getImporters
()
{
return
importers
;
}
public
Map
<
String
,
Operation
>
getOperations
()
{
return
operations
;
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/AbstractBpmnParseHandler.java
浏览文件 @
bb75dfb9
...
...
@@ -13,13 +13,18 @@
package
org.activiti.engine.impl.bpmn.parser.handler
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
import
org.activiti.bpmn.model.ActivitiListener
;
import
org.activiti.bpmn.model.Activity
;
import
org.activiti.bpmn.model.Artifact
;
import
org.activiti.bpmn.model.Association
;
import
org.activiti.bpmn.model.BaseElement
;
import
org.activiti.bpmn.model.BpmnModel
;
import
org.activiti.bpmn.model.DataSpec
;
import
org.activiti.bpmn.model.EventDefinition
;
import
org.activiti.bpmn.model.EventGateway
;
import
org.activiti.bpmn.model.FlowElement
;
...
...
@@ -28,6 +33,10 @@ import org.activiti.bpmn.model.ImplementationType;
import
org.activiti.bpmn.model.IntermediateCatchEvent
;
import
org.activiti.bpmn.model.SequenceFlow
;
import
org.activiti.engine.delegate.ExecutionListener
;
import
org.activiti.engine.impl.bpmn.data.Data
;
import
org.activiti.engine.impl.bpmn.data.DataRef
;
import
org.activiti.engine.impl.bpmn.data.IOSpecification
;
import
org.activiti.engine.impl.bpmn.data.ItemDefinition
;
import
org.activiti.engine.impl.bpmn.parser.BpmnParse
;
import
org.activiti.engine.impl.bpmn.parser.EventSubscriptionDeclaration
;
import
org.activiti.engine.impl.pvm.process.ActivityImpl
;
...
...
@@ -167,5 +176,74 @@ public abstract class AbstractBpmnParseHandler<T extends BaseElement> implements
return
eventBasedGatewayId
;
}
protected
IOSpecification
createIOSpecification
(
BpmnParse
bpmnParse
,
org
.
activiti
.
bpmn
.
model
.
IOSpecification
specificationModel
)
{
IOSpecification
ioSpecification
=
new
IOSpecification
();
for
(
DataSpec
dataInputElement
:
specificationModel
.
getDataInputs
())
{
ItemDefinition
itemDefinition
=
bpmnParse
.
getItemDefinitions
().
get
(
dataInputElement
.
getItemSubjectRef
());
Data
dataInput
=
new
Data
(
bpmnParse
.
getTargetNamespace
()
+
":"
+
dataInputElement
.
getId
(),
dataInputElement
.
getId
(),
itemDefinition
);
ioSpecification
.
addInput
(
dataInput
);
}
for
(
DataSpec
dataOutputElement
:
specificationModel
.
getDataOutputs
())
{
ItemDefinition
itemDefinition
=
bpmnParse
.
getItemDefinitions
().
get
(
dataOutputElement
.
getItemSubjectRef
());
Data
dataOutput
=
new
Data
(
bpmnParse
.
getTargetNamespace
()
+
":"
+
dataOutputElement
.
getId
(),
dataOutputElement
.
getId
(),
itemDefinition
);
ioSpecification
.
addOutput
(
dataOutput
);
}
for
(
String
dataInputRef
:
specificationModel
.
getDataInputRefs
())
{
DataRef
dataRef
=
new
DataRef
(
dataInputRef
);
ioSpecification
.
addInputRef
(
dataRef
);
}
for
(
String
dataOutputRef
:
specificationModel
.
getDataOutputRefs
())
{
DataRef
dataRef
=
new
DataRef
(
dataOutputRef
);
ioSpecification
.
addOutputRef
(
dataRef
);
}
return
ioSpecification
;
}
protected
void
processArtifacts
(
BpmnParse
bpmnParse
,
Collection
<
Artifact
>
artifacts
,
ScopeImpl
scope
)
{
// associations
for
(
Artifact
artifact
:
artifacts
)
{
if
(
artifact
instanceof
Association
)
{
createAssociation
(
bpmnParse
,
(
Association
)
artifact
,
scope
);
}
}
}
protected
void
createAssociation
(
BpmnParse
bpmnParse
,
Association
association
,
ScopeImpl
parentScope
)
{
BpmnModel
bpmnModel
=
bpmnParse
.
getBpmnModel
();
if
(
bpmnModel
.
getArtifact
(
association
.
getSourceRef
())
!=
null
||
bpmnModel
.
getArtifact
(
association
.
getTargetRef
())
!=
null
)
{
// connected to a text annotation so skipping it
return
;
}
ActivityImpl
sourceActivity
=
parentScope
.
findActivity
(
association
.
getSourceRef
());
ActivityImpl
targetActivity
=
parentScope
.
findActivity
(
association
.
getTargetRef
());
// an association may reference elements that are not parsed as activities (like for instance
// text annotations so do not throw an exception if sourceActivity or targetActivity are null)
// However, we make sure they reference 'something':
if
(
sourceActivity
==
null
)
{
//bpmnModel.addProblem("Invalid reference sourceRef '" + association.getSourceRef() + "' of association element ", association.getId());
}
else
if
(
targetActivity
==
null
)
{
//bpmnModel.addProblem("Invalid reference targetRef '" + association.getTargetRef() + "' of association element ", association.getId());
}
else
{
if
(
sourceActivity
!=
null
&&
sourceActivity
.
getProperty
(
"type"
).
equals
(
"compensationBoundaryCatch"
))
{
Object
isForCompensation
=
targetActivity
.
getProperty
(
PROPERTYNAME_IS_FOR_COMPENSATION
);
if
(
isForCompensation
==
null
||
!(
Boolean
)
isForCompensation
)
{
bpmnModel
.
addProblem
(
"compensation boundary catch must be connected to element with isForCompensation=true"
,
association
);
}
else
{
ActivityImpl
compensatedActivity
=
sourceActivity
.
getParentActivity
();
compensatedActivity
.
setProperty
(
BpmnParse
.
PROPERTYNAME_COMPENSATION_HANDLER_ID
,
targetActivity
.
getId
());
}
}
}
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/AbstractExternalInvocationBpmnParseHandler.java
浏览文件 @
bb75dfb9
...
...
@@ -14,10 +14,19 @@ package org.activiti.engine.impl.bpmn.parser.handler;
import
java.util.List
;
import
org.activiti.bpmn.model.DataAssociation
;
import
org.activiti.bpmn.model.FieldExtension
;
import
org.activiti.bpmn.model.FlowNode
;
import
org.activiti.bpmn.model.Task
;
import
org.activiti.engine.delegate.Expression
;
import
org.activiti.engine.impl.bpmn.data.AbstractDataAssociation
;
import
org.activiti.engine.impl.bpmn.data.Assignment
;
import
org.activiti.engine.impl.bpmn.data.SimpleDataInputAssociation
;
import
org.activiti.engine.impl.bpmn.data.TransformationDataOutputAssociation
;
import
org.activiti.engine.impl.bpmn.parser.BpmnParse
;
import
org.activiti.engine.impl.bpmn.webservice.MessageImplicitDataInputAssociation
;
import
org.activiti.engine.impl.bpmn.webservice.MessageImplicitDataOutputAssociation
;
import
org.apache.commons.lang.StringUtils
;
/**
...
...
@@ -69,5 +78,39 @@ public abstract class AbstractExternalInvocationBpmnParseHandler<T extends FlowN
bpmnParse
.
getBpmnModel
().
addProblem
(
"No shell command is defined on the shell activity"
,
task
);
}
}
public
AbstractDataAssociation
createDataInputAssociation
(
BpmnParse
bpmnParse
,
DataAssociation
dataAssociationElement
)
{
if
(
StringUtils
.
isEmpty
(
dataAssociationElement
.
getTargetRef
()))
{
bpmnParse
.
getBpmnModel
().
addProblem
(
"targetRef is required"
,
dataAssociationElement
);
}
if
(
dataAssociationElement
.
getAssignments
().
isEmpty
())
{
return
new
MessageImplicitDataInputAssociation
(
dataAssociationElement
.
getSourceRef
(),
dataAssociationElement
.
getTargetRef
());
}
else
{
SimpleDataInputAssociation
dataAssociation
=
new
SimpleDataInputAssociation
(
dataAssociationElement
.
getSourceRef
(),
dataAssociationElement
.
getTargetRef
());
for
(
org
.
activiti
.
bpmn
.
model
.
Assignment
assigmentElement
:
dataAssociationElement
.
getAssignments
())
{
if
(
StringUtils
.
isNotEmpty
(
assigmentElement
.
getFrom
())
&&
StringUtils
.
isNotEmpty
(
assigmentElement
.
getTo
()))
{
Expression
from
=
bpmnParse
.
getExpressionManager
().
createExpression
(
assigmentElement
.
getFrom
());
Expression
to
=
bpmnParse
.
getExpressionManager
().
createExpression
(
assigmentElement
.
getTo
());
Assignment
assignment
=
new
Assignment
(
from
,
to
);
dataAssociation
.
addAssignment
(
assignment
);
}
}
return
dataAssociation
;
}
}
public
AbstractDataAssociation
createDataOutputAssociation
(
BpmnParse
bpmnParse
,
DataAssociation
dataAssociationElement
)
{
if
(
StringUtils
.
isNotEmpty
(
dataAssociationElement
.
getSourceRef
()))
{
return
new
MessageImplicitDataOutputAssociation
(
dataAssociationElement
.
getTargetRef
(),
dataAssociationElement
.
getSourceRef
());
}
else
{
Expression
transformation
=
bpmnParse
.
getExpressionManager
().
createExpression
(
dataAssociationElement
.
getTransformation
());
AbstractDataAssociation
dataOutputAssociation
=
new
TransformationDataOutputAssociation
(
null
,
dataAssociationElement
.
getTargetRef
(),
transformation
);
return
dataOutputAssociation
;
}
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/ProcessParseHandler.java
浏览文件 @
bb75dfb9
...
...
@@ -80,12 +80,12 @@ public class ProcessParseHandler extends AbstractBpmnParseHandler<Process> {
bpmnParse
.
setCurrentScope
(
currentProcessDefinition
);
bpmnParse
.
processFlowElements
(
process
.
getFlowElements
());
bpmnParse
.
processArtifacts
(
process
.
getArtifacts
(),
currentProcessDefinition
);
processArtifacts
(
bpmnParse
,
process
.
getArtifacts
(),
currentProcessDefinition
);
bpmnParse
.
removeCurrentScope
();
if
(
process
.
getIoSpecification
()
!=
null
)
{
IOSpecification
ioSpecification
=
bpmnParse
.
createIOSpecification
(
process
.
getIoSpecification
());
IOSpecification
ioSpecification
=
createIOSpecification
(
bpmnParse
,
process
.
getIoSpecification
());
currentProcessDefinition
.
setIoSpecification
(
ioSpecification
);
}
return
currentProcessDefinition
;
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/SendTaskParseHandler.java
浏览文件 @
bb75dfb9
...
...
@@ -65,17 +65,17 @@ public class SendTaskParseHandler extends AbstractExternalInvocationBpmnParseHan
webServiceActivityBehavior
.
setOperation
(
operation
);
if
(
sendTask
.
getIoSpecification
()
!=
null
)
{
IOSpecification
ioSpecification
=
bpmnParse
.
createIOSpecification
(
sendTask
.
getIoSpecification
());
IOSpecification
ioSpecification
=
createIOSpecification
(
bpmnParse
,
sendTask
.
getIoSpecification
());
webServiceActivityBehavior
.
setIoSpecification
(
ioSpecification
);
}
for
(
DataAssociation
dataAssociationElement
:
sendTask
.
getDataInputAssociations
())
{
AbstractDataAssociation
dataAssociation
=
bpmnParse
.
createDataInputAssociation
(
dataAssociationElement
);
AbstractDataAssociation
dataAssociation
=
createDataInputAssociation
(
bpmnParse
,
dataAssociationElement
);
webServiceActivityBehavior
.
addDataInputAssociation
(
dataAssociation
);
}
for
(
DataAssociation
dataAssociationElement
:
sendTask
.
getDataOutputAssociations
())
{
AbstractDataAssociation
dataAssociation
=
bpmnParse
.
createDataOutputAssociation
(
dataAssociationElement
);
AbstractDataAssociation
dataAssociation
=
createDataOutputAssociation
(
bpmnParse
,
dataAssociationElement
);
webServiceActivityBehavior
.
addDataOutputAssociation
(
dataAssociation
);
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/ServiceTaskParseHandler.java
浏览文件 @
bb75dfb9
...
...
@@ -82,17 +82,17 @@ public class ServiceTaskParseHandler extends AbstractExternalInvocationBpmnParse
webServiceActivityBehavior
.
setOperation
(
bpmnParse
.
getOperations
().
get
(
serviceTask
.
getOperationRef
()));
if
(
serviceTask
.
getIoSpecification
()
!=
null
)
{
IOSpecification
ioSpecification
=
bpmnParse
.
createIOSpecification
(
serviceTask
.
getIoSpecification
());
IOSpecification
ioSpecification
=
createIOSpecification
(
bpmnParse
,
serviceTask
.
getIoSpecification
());
webServiceActivityBehavior
.
setIoSpecification
(
ioSpecification
);
}
for
(
DataAssociation
dataAssociationElement
:
serviceTask
.
getDataInputAssociations
())
{
AbstractDataAssociation
dataAssociation
=
bpmnParse
.
createDataInputAssociation
(
dataAssociationElement
);
AbstractDataAssociation
dataAssociation
=
createDataInputAssociation
(
bpmnParse
,
dataAssociationElement
);
webServiceActivityBehavior
.
addDataInputAssociation
(
dataAssociation
);
}
for
(
DataAssociation
dataAssociationElement
:
serviceTask
.
getDataOutputAssociations
())
{
AbstractDataAssociation
dataAssociation
=
bpmnParse
.
createDataOutputAssociation
(
dataAssociationElement
);
AbstractDataAssociation
dataAssociation
=
createDataOutputAssociation
(
bpmnParse
,
dataAssociationElement
);
webServiceActivityBehavior
.
addDataOutputAssociation
(
dataAssociation
);
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/SubProcessParseHandler.java
浏览文件 @
bb75dfb9
...
...
@@ -61,13 +61,13 @@ public class SubProcessParseHandler extends AbstractActivityBpmnParseHandler<Sub
bpmnParse
.
setCurrentSubProcess
(
subProcess
);
bpmnParse
.
processFlowElements
(
subProcess
.
getFlowElements
());
bpmnParse
.
processArtifacts
(
subProcess
.
getArtifacts
(),
activity
);
processArtifacts
(
bpmnParse
,
subProcess
.
getArtifacts
(),
activity
);
bpmnParse
.
removeCurrentScope
();
bpmnParse
.
removeCurrentSubProcess
();
if
(
subProcess
.
getIoSpecification
()
!=
null
)
{
IOSpecification
ioSpecification
=
bpmnParse
.
createIOSpecification
(
subProcess
.
getIoSpecification
());
IOSpecification
ioSpecification
=
createIOSpecification
(
bpmnParse
,
subProcess
.
getIoSpecification
());
activity
.
setIoSpecification
(
ioSpecification
);
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/TransactionParseHandler.java
浏览文件 @
bb75dfb9
...
...
@@ -43,12 +43,12 @@ public class TransactionParseHandler extends AbstractActivityBpmnParseHandler<Tr
bpmnParse
.
setCurrentScope
(
activity
);
bpmnParse
.
processFlowElements
(
transaction
.
getFlowElements
());
bpmnParse
.
processArtifacts
(
transaction
.
getArtifacts
(),
activity
);
processArtifacts
(
bpmnParse
,
transaction
.
getArtifacts
(),
activity
);
bpmnParse
.
removeCurrentScope
();
if
(
transaction
.
getIoSpecification
()
!=
null
)
{
IOSpecification
ioSpecification
=
bpmnParse
.
createIOSpecification
(
transaction
.
getIoSpecification
());
IOSpecification
ioSpecification
=
createIOSpecification
(
bpmnParse
,
transaction
.
getIoSpecification
());
activity
.
setIoSpecification
(
ioSpecification
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录