Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
开发团队
Flowable Engine
提交
2bd2401e
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,发现更多精彩内容 >>
提交
2bd2401e
编写于
1月 22, 2014
作者:
T
Tim Stephenson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Enabled injection of mail templates from vars as well as fields
上级
366ecb2f
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
71 addition
and
3 deletion
+71
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/MailActivityBehavior.java
...iviti/engine/impl/bpmn/behavior/MailActivityBehavior.java
+18
-2
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/AbstractExternalInvocationBpmnParseHandler.java
...r/handler/AbstractExternalInvocationBpmnParseHandler.java
+7
-1
modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.java
.../activiti/engine/test/bpmn/mail/EmailServiceTaskTest.java
+13
-0
modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.testVariableTemplatedMail.bpmn20.xml
...EmailServiceTaskTest.testVariableTemplatedMail.bpmn20.xml
+33
-0
未找到文件。
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/MailActivityBehavior.java
浏览文件 @
2bd2401e
...
...
@@ -30,6 +30,7 @@ import org.apache.commons.mail.SimpleEmail;
/**
* @author Joram Barrez
* @author Frederik Heremans
* @author Tim Stephenson
*/
public
class
MailActivityBehavior
extends
AbstractBpmnActivityBehavior
{
...
...
@@ -41,7 +42,9 @@ public class MailActivityBehavior extends AbstractBpmnActivityBehavior {
protected
Expression
bcc
;
protected
Expression
subject
;
protected
Expression
text
;
protected
Expression
textVar
;
protected
Expression
html
;
protected
Expression
htmlVar
;
protected
Expression
charset
;
public
void
execute
(
ActivityExecution
execution
)
{
...
...
@@ -50,8 +53,10 @@ public class MailActivityBehavior extends AbstractBpmnActivityBehavior {
String
ccStr
=
getStringFromField
(
cc
,
execution
);
String
bccStr
=
getStringFromField
(
bcc
,
execution
);
String
subjectStr
=
getStringFromField
(
subject
,
execution
);
String
textStr
=
getStringFromField
(
text
,
execution
);
String
htmlStr
=
getStringFromField
(
html
,
execution
);
String
textStr
=
textVar
==
null
?
getStringFromField
(
text
,
execution
)
:
getStringFromField
(
getExpression
(
execution
,
textVar
),
execution
);
String
htmlStr
=
htmlVar
==
null
?
getStringFromField
(
html
,
execution
)
:
getStringFromField
(
getExpression
(
execution
,
htmlVar
),
execution
);
String
charSetStr
=
getStringFromField
(
charset
,
execution
);
Email
email
=
createEmail
(
textStr
,
htmlStr
);
...
...
@@ -72,6 +77,8 @@ public class MailActivityBehavior extends AbstractBpmnActivityBehavior {
leave
(
execution
);
}
protected
Email
createEmail
(
String
text
,
String
html
)
{
if
(
html
!=
null
)
{
return
createHtmlEmail
(
text
,
html
);
...
...
@@ -224,4 +231,13 @@ public class MailActivityBehavior extends AbstractBpmnActivityBehavior {
return
null
;
}
protected
Expression
getExpression
(
ActivityExecution
execution
,
Expression
var
)
{
// TODO fix reliance on internal code.
ProcessEngineConfigurationImpl
svcs
=
(
ProcessEngineConfigurationImpl
)
execution
.
getEngineServices
();
return
svcs
.
getExpressionManager
().
createExpression
(
(
String
)
execution
.
getVariable
(
var
.
getExpressionText
()));
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/parser/handler/AbstractExternalInvocationBpmnParseHandler.java
浏览文件 @
2bd2401e
...
...
@@ -45,16 +45,22 @@ public abstract class AbstractExternalInvocationBpmnParseHandler<T extends FlowN
if
(
fieldExtension
.
getFieldName
().
equals
(
"html"
))
{
textOrHtmlDefined
=
true
;
}
if
(
fieldExtension
.
getFieldName
().
equals
(
"htmlVar"
))
{
textOrHtmlDefined
=
true
;
}
if
(
fieldExtension
.
getFieldName
().
equals
(
"text"
))
{
textOrHtmlDefined
=
true
;
}
if
(
fieldExtension
.
getFieldName
().
equals
(
"textVar"
))
{
textOrHtmlDefined
=
true
;
}
}
if
(!
toDefined
)
{
bpmnParse
.
getBpmnModel
().
addProblem
(
"No recipient is defined on the mail activity"
,
task
);
}
if
(!
textOrHtmlDefined
)
{
bpmnParse
.
getBpmnModel
().
addProblem
(
"Text
or html
field should be provided"
,
task
);
bpmnParse
.
getBpmnModel
().
addProblem
(
"Text
, html, textVar or htmlVar
field should be provided"
,
task
);
}
}
...
...
modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.java
浏览文件 @
2bd2401e
...
...
@@ -115,6 +115,19 @@ public class EmailServiceTaskTest extends EmailTestCase {
assertEmailSend
(
messages
.
get
(
0
),
true
,
"Test"
,
"Mr. <b>Kermit</b>"
,
"activiti@localhost"
,
Arrays
.
asList
(
"kermit@activiti.org"
),
null
);
}
@Deployment
public
void
testVariableTemplatedMail
()
throws
Exception
{
Map
<
String
,
Object
>
vars
=
new
HashMap
<
String
,
Object
>();
vars
.
put
(
"gender"
,
"male"
);
vars
.
put
(
"html"
,
"<![CDATA[<html><body>Hello ${gender == 'male' ? 'Mr' : 'Ms' }. <b>Kermit</b><body></html>]]"
);
vars
.
put
(
"text"
,
"Hello ${gender == 'male' ? 'Mr' : 'Ms' }. Kermit"
);
runtimeService
.
startProcessInstanceByKey
(
"variableTemplatedMail"
,
vars
);
List
<
WiserMessage
>
messages
=
wiser
.
getMessages
();
assertEquals
(
1
,
messages
.
size
());
assertEmailSend
(
messages
.
get
(
0
),
true
,
"Test"
,
"Mr. <b>Kermit</b>"
,
"activiti@localhost"
,
Arrays
.
asList
(
"kermit@activiti.org"
),
null
);
}
// Helper
public
static
void
assertEmailSend
(
WiserMessage
emailMessage
,
boolean
htmlMail
,
String
subject
,
String
message
,
...
...
modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.testVariableTemplatedMail.bpmn20.xml
0 → 100644
浏览文件 @
2bd2401e
<definitions
xmlns=
"http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:activiti=
"http://activiti.org/bpmn"
targetNamespace=
"Examples"
>
<process
id=
"variableTemplatedMail"
>
<startEvent
id=
"theStart"
/>
<sequenceFlow
sourceRef=
"theStart"
targetRef=
"sendMail"
/>
<serviceTask
id=
"sendMail"
activiti:type=
"mail"
>
<extensionElements>
<activiti:field
name=
"to"
>
<activiti:string>
kermit@activiti.org
</activiti:string>
</activiti:field>
<activiti:field
name=
"subject"
>
<activiti:string>
Test
</activiti:string>
</activiti:field>
<activiti:field
name=
"htmlVar"
>
<activiti:expression>
html
</activiti:expression>
</activiti:field>
<activiti:field
name=
"textVar"
>
<activiti:expression>
text
</activiti:expression>
</activiti:field>
</extensionElements>
</serviceTask>
<sequenceFlow
sourceRef=
"sendMail"
targetRef=
"theEnd"
/>
<endEvent
id=
"theEnd"
/>
</process>
</definitions>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录