Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
开发团队
Flowable Engine
提交
a1585890
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,发现更多精彩内容 >>
提交
a1585890
编写于
9月 24, 2014
作者:
B
Bassam Al-Sarori
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
REST Delete ProcessInstance IdentityLink
上级
0319238d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
60 addition
and
0 deletion
+60
-0
modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/process/ProcessInstanceIdentityLinkResource.java
.../runtime/process/ProcessInstanceIdentityLinkResource.java
+21
-0
modules/activiti-rest/src/test/java/org/activiti/rest/service/api/runtime/ProcessInstanceIdentityLinkResourceTest.java
.../api/runtime/ProcessInstanceIdentityLinkResourceTest.java
+39
-0
未找到文件。
modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/process/ProcessInstanceIdentityLinkResource.java
浏览文件 @
a1585890
...
...
@@ -22,6 +22,8 @@ import org.activiti.engine.task.IdentityLink;
import
org.activiti.rest.common.api.ActivitiUtil
;
import
org.activiti.rest.service.api.engine.RestIdentityLink
;
import
org.activiti.rest.service.application.ActivitiRestServicesApplication
;
import
org.restlet.data.Status
;
import
org.restlet.resource.Delete
;
import
org.restlet.resource.Get
;
...
...
@@ -47,6 +49,25 @@ public class ProcessInstanceIdentityLinkResource extends BaseProcessInstanceReso
.
createRestIdentityLink
(
this
,
link
);
}
@Delete
public
void
deleteIdentityLink
()
{
if
(!
authenticate
())
return
;
ProcessInstance
processInstance
=
getProcessInstanceFromRequest
();
// Extract and validate identity link from URL
String
identityId
=
getAttribute
(
"identityId"
);
String
type
=
getAttribute
(
"type"
);
validateIdentityLinkArguments
(
identityId
,
type
);
getIdentityLink
(
identityId
,
type
,
processInstance
.
getId
());
ActivitiUtil
.
getRuntimeService
().
deleteUserIdentityLink
(
processInstance
.
getId
(),
identityId
,
type
);
setStatus
(
Status
.
SUCCESS_NO_CONTENT
);
}
protected
void
validateIdentityLinkArguments
(
String
identityId
,
String
type
)
{
if
(
identityId
==
null
)
{
throw
new
ActivitiIllegalArgumentException
(
"IdentityId is required."
);
...
...
modules/activiti-rest/src/test/java/org/activiti/rest/service/api/runtime/ProcessInstanceIdentityLinkResourceTest.java
浏览文件 @
a1585890
...
...
@@ -190,4 +190,43 @@ public class ProcessInstanceIdentityLinkResourceTest extends BaseRestTestCase {
assertEquals
(
"Could not find a process instance with id 'unexistingprocess'."
,
expected
.
getStatus
().
getDescription
());
}
}
/**
* Test deleting a single identity link for a process instance.
*/
@Deployment
(
resources
=
{
"org/activiti/rest/service/api/runtime/ProcessInstanceIdentityLinkResourceTest.process.bpmn20.xml"
})
public
void
testDeleteSingleIdentityLink
()
throws
Exception
{
ProcessInstance
processInstance
=
runtimeService
.
startProcessInstanceByKey
(
"oneTaskProcess"
);
runtimeService
.
addUserIdentityLink
(
processInstance
.
getId
(),
"kermit"
,
"myType"
);
ClientResource
client
=
getAuthenticatedClient
(
RestUrls
.
createRelativeResourceUrl
(
RestUrls
.
URL_PROCESS_INSTANCE_IDENTITYLINK
,
processInstance
.
getId
(),
"kermit"
,
"myType"
));
client
.
delete
();
assertEquals
(
Status
.
SUCCESS_NO_CONTENT
,
client
.
getResponse
().
getStatus
());
client
=
getAuthenticatedClient
(
RestUrls
.
createRelativeResourceUrl
(
RestUrls
.
URL_PROCESS_INSTANCE_IDENTITYLINK
,
processInstance
.
getId
(),
"kermit"
,
"myType"
));
// Test with unexisting process identity link
try
{
client
.
delete
();
fail
(
"Exception expected"
);
}
catch
(
ResourceException
expected
)
{
assertEquals
(
Status
.
CLIENT_ERROR_NOT_FOUND
,
expected
.
getStatus
());
assertEquals
(
"Could not find the requested identity link."
,
expected
.
getStatus
().
getDescription
());
}
// Test with unexisting process
client
=
getAuthenticatedClient
(
RestUrls
.
createRelativeResourceUrl
(
RestUrls
.
URL_PROCESS_INSTANCE_IDENTITYLINK
,
"unexistingprocess"
,
RestUrls
.
SEGMENT_IDENTITYLINKS_FAMILY_USERS
,
"kermit"
,
"myType"
));
try
{
client
.
delete
();
fail
(
"Exception expected"
);
}
catch
(
ResourceException
expected
)
{
assertEquals
(
Status
.
CLIENT_ERROR_NOT_FOUND
,
expected
.
getStatus
());
assertEquals
(
"Could not find a process instance with id 'unexistingprocess'."
,
expected
.
getStatus
().
getDescription
());
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录