Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
开发团队
Flowable Engine
提交
b79e02e3
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,发现更多精彩内容 >>
提交
b79e02e3
编写于
4月 16, 2013
作者:
F
Frederik Heremans
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added single task REST-resource and test
上级
ea46e5ed
变更
27
隐藏空白更改
内联
并排
Showing
27 changed file
with
776 addition
and
311 deletion
+776
-311
modules/activiti-rest/src/main/java/org/activiti/rest/api/RestResponseFactory.java
.../main/java/org/activiti/rest/api/RestResponseFactory.java
+24
-1
modules/activiti-rest/src/main/java/org/activiti/rest/api/RestUrls.java
...ti-rest/src/main/java/org/activiti/rest/api/RestUrls.java
+36
-0
modules/activiti-rest/src/main/java/org/activiti/rest/api/legacy/task/LegacyTaskResource.java
...org/activiti/rest/api/legacy/task/LegacyTaskResource.java
+164
-0
modules/activiti-rest/src/main/java/org/activiti/rest/api/legacy/task/LegacyTaskResponse.java
...org/activiti/rest/api/legacy/task/LegacyTaskResponse.java
+222
-0
modules/activiti-rest/src/main/java/org/activiti/rest/api/process/ProcessInstanceTaskResource.java
...ctiviti/rest/api/process/ProcessInstanceTaskResource.java
+1
-1
modules/activiti-rest/src/main/java/org/activiti/rest/api/task/TaskResource.java
...rc/main/java/org/activiti/rest/api/task/TaskResource.java
+13
-129
modules/activiti-rest/src/main/java/org/activiti/rest/api/task/TaskResponse.java
...rc/main/java/org/activiti/rest/api/task/TaskResponse.java
+93
-148
modules/activiti-rest/src/main/java/org/activiti/rest/application/ActivitiRestServicesApplication.java
...iti/rest/application/ActivitiRestServicesApplication.java
+15
-3
modules/activiti-rest/src/main/java/org/activiti/rest/application/RestServicesInit.java
.../java/org/activiti/rest/application/RestServicesInit.java
+14
-10
modules/activiti-rest/src/test/java/org/activiti/rest/BaseRestTestCase.java
...est/src/test/java/org/activiti/rest/BaseRestTestCase.java
+16
-0
modules/activiti-rest/src/test/java/org/activiti/rest/api/legacy/AttachmentResponse.java
...java/org/activiti/rest/api/legacy/AttachmentResponse.java
+1
-1
modules/activiti-rest/src/test/java/org/activiti/rest/api/legacy/IdentityLinkResponse.java
...va/org/activiti/rest/api/legacy/IdentityLinkResponse.java
+1
-1
modules/activiti-rest/src/test/java/org/activiti/rest/api/legacy/SubTaskResponse.java
...st/java/org/activiti/rest/api/legacy/SubTaskResponse.java
+1
-1
modules/activiti-rest/src/test/java/org/activiti/rest/api/legacy/TaskAddResource.java
...st/java/org/activiti/rest/api/legacy/TaskAddResource.java
+4
-3
modules/activiti-rest/src/test/java/org/activiti/rest/api/legacy/TaskAttachmentAddResource.java
...g/activiti/rest/api/legacy/TaskAttachmentAddResource.java
+1
-1
modules/activiti-rest/src/test/java/org/activiti/rest/api/legacy/TaskAttachmentResource.java
.../org/activiti/rest/api/legacy/TaskAttachmentResource.java
+1
-1
modules/activiti-rest/src/test/java/org/activiti/rest/api/legacy/TaskFormResource.java
...t/java/org/activiti/rest/api/legacy/TaskFormResource.java
+1
-1
modules/activiti-rest/src/test/java/org/activiti/rest/api/legacy/TaskOperationResource.java
...a/org/activiti/rest/api/legacy/TaskOperationResource.java
+1
-1
modules/activiti-rest/src/test/java/org/activiti/rest/api/legacy/TaskOperationResourceTest.java
...g/activiti/rest/api/legacy/TaskOperationResourceTest.java
+1
-1
modules/activiti-rest/src/test/java/org/activiti/rest/api/legacy/TaskPropertiesResource.java
.../org/activiti/rest/api/legacy/TaskPropertiesResource.java
+1
-1
modules/activiti-rest/src/test/java/org/activiti/rest/api/legacy/TaskUrlAddResource.java
...java/org/activiti/rest/api/legacy/TaskUrlAddResource.java
+1
-1
modules/activiti-rest/src/test/java/org/activiti/rest/api/legacy/TasksPaginateList.java
.../java/org/activiti/rest/api/legacy/TasksPaginateList.java
+4
-3
modules/activiti-rest/src/test/java/org/activiti/rest/api/legacy/TasksResource.java
...test/java/org/activiti/rest/api/legacy/TasksResource.java
+1
-1
modules/activiti-rest/src/test/java/org/activiti/rest/api/legacy/TasksSummaryResource.java
...va/org/activiti/rest/api/legacy/TasksSummaryResource.java
+1
-1
modules/activiti-rest/src/test/java/org/activiti/rest/api/repository/DeploymentResourceTest.java
.../activiti/rest/api/repository/DeploymentResourceTest.java
+1
-1
modules/activiti-rest/src/test/java/org/activiti/rest/api/runtime/TaskResourceTest.java
.../java/org/activiti/rest/api/runtime/TaskResourceTest.java
+137
-0
modules/activiti-rest/src/test/resources/org/activiti/rest/api/runtime/TaskResourceTest.testGetProcessTask.bpmn20.xml
...pi/runtime/TaskResourceTest.testGetProcessTask.bpmn20.xml
+20
-0
未找到文件。
modules/activiti-rest/src/main/java/org/activiti/rest/api/RestResponseFactory.java
浏览文件 @
b79e02e3
...
...
@@ -17,10 +17,12 @@ import org.activiti.engine.impl.bpmn.deployer.BpmnDeployer;
import
org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity
;
import
org.activiti.engine.repository.Deployment
;
import
org.activiti.engine.repository.ProcessDefinition
;
import
org.activiti.engine.task.Task
;
import
org.activiti.rest.api.repository.DeploymentResourceResponse
;
import
org.activiti.rest.api.repository.ProcessDefinitionResponse
;
import
org.activiti.rest.api.repository.DeploymentResourceResponse.DeploymentResourceType
;
import
org.activiti.rest.api.repository.DeploymentResponse
;
import
org.activiti.rest.api.repository.ProcessDefinitionResponse
;
import
org.activiti.rest.api.task.TaskResponse
;
import
org.restlet.data.MediaType
;
...
...
@@ -31,6 +33,27 @@ import org.restlet.data.MediaType;
*/
public
class
RestResponseFactory
{
public
TaskResponse
createTaskReponse
(
SecuredResource
resourceContext
,
Task
task
)
{
TaskResponse
response
=
new
TaskResponse
(
task
);
response
.
setUrl
(
resourceContext
.
createFullResourceUrl
(
RestUrls
.
URL_TASK
,
task
.
getId
()));
// Add references to other resources, if needed
if
(
task
.
getParentTaskId
()
!=
null
)
{
response
.
setParentTask
(
resourceContext
.
createFullResourceUrl
(
RestUrls
.
URL_TASK
,
task
.
getParentTaskId
()));
}
if
(
task
.
getProcessDefinitionId
()
!=
null
)
{
response
.
setProcessDefinition
(
resourceContext
.
createFullResourceUrl
(
RestUrls
.
URL_PROCESS_DEFINITION
,
task
.
getProcessDefinitionId
()));
}
if
(
task
.
getExecutionId
()
!=
null
)
{
response
.
setExecution
(
resourceContext
.
createFullResourceUrl
(
RestUrls
.
URL_EXECUTION
,
task
.
getExecutionId
()));
}
if
(
task
.
getProcessInstanceId
()
!=
null
)
{
response
.
setProcessInstance
(
resourceContext
.
createFullResourceUrl
(
RestUrls
.
URL_PROCESS_INSTANCE
,
task
.
getProcessInstanceId
()));
}
return
response
;
}
public
DeploymentResponse
createDeploymentResponse
(
SecuredResource
resourceContext
,
Deployment
deployment
)
{
return
new
DeploymentResponse
(
deployment
,
resourceContext
.
createFullResourceUrl
(
RestUrls
.
URL_DEPLOYMENT
,
deployment
.
getId
()));
}
...
...
modules/activiti-rest/src/main/java/org/activiti/rest/api/RestUrls.java
浏览文件 @
b79e02e3
...
...
@@ -32,6 +32,11 @@ public final class RestUrls {
public
static
final
String
SEGMENT_DEPLOYMENT_ARTIFACT_RESOURCE
=
"resources"
;
public
static
final
String
SEGMENT_DEPLOYMENT_ARTIFACT_RESOURCE_CONTENT
=
"resourcedata"
;
public
static
final
String
SEGMENT_RUNTIME_RESOURCES
=
"runtime"
;
public
static
final
String
SEGMENT_TASK_RESOURCE
=
"tasks"
;
public
static
final
String
SEGMENT_EXECUTION_RESOURCE
=
"executions"
;
public
static
final
String
SEGMENT_PROCESS_INSTANCE_RESOURCE
=
"process-instances"
;
/**
* URL template for the deployment collection: <i>repository/deployments</i>
*/
...
...
@@ -80,4 +85,35 @@ public final class RestUrls {
*/
public
static
final
String
[]
URL_PROCESS_DEFINITION
=
{
SEGMENT_REPOSITORY_RESOURCES
,
SEGMENT_PROCESS_DEFINITION_RESOURCE
,
"{0}"
};
/**
* URL template for task collection: <i>runtime/tasks/{0:taskId}</i>
*/
public
static
final
String
[]
URL_TASK_COLLECTION
=
{
SEGMENT_RUNTIME_RESOURCES
,
SEGMENT_TASK_RESOURCE
};
/**
* URL template for a single task: <i>runtime/tasks/{0:taskId}</i>
*/
public
static
final
String
[]
URL_TASK
=
{
SEGMENT_RUNTIME_RESOURCES
,
SEGMENT_TASK_RESOURCE
,
"{0}"
};
/**
* URL template for execution collection: <i>runtime/executions/{0:executionId}</i>
*/
public
static
final
String
[]
URL_EXECUTION_COLLECTION
=
{
SEGMENT_RUNTIME_RESOURCES
,
SEGMENT_EXECUTION_RESOURCE
};
/**
* URL template for a single execution: <i>runtime/executions/{0:executionId}</i>
*/
public
static
final
String
[]
URL_EXECUTION
=
{
SEGMENT_RUNTIME_RESOURCES
,
SEGMENT_EXECUTION_RESOURCE
,
"{0}"
};
/**
* URL template for process instance collection: <i>runtime/process-instances/{0:processInstanceId}</i>
*/
public
static
final
String
[]
URL_PROCESS_INSTANCE_COLLECTION
=
{
SEGMENT_RUNTIME_RESOURCES
,
SEGMENT_PROCESS_INSTANCE_RESOURCE
};
/**
* URL template for a single process instance: <i>runtime/process-instances/{0:processInstanceId}</i>
*/
public
static
final
String
[]
URL_PROCESS_INSTANCE
=
{
SEGMENT_RUNTIME_RESOURCES
,
SEGMENT_PROCESS_INSTANCE_RESOURCE
,
"{0}"
};
}
modules/activiti-rest/src/main/java/org/activiti/rest/api/legacy/task/LegacyTaskResource.java
0 → 100644
浏览文件 @
b79e02e3
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.rest.api.legacy.task
;
import
java.util.List
;
import
org.activiti.engine.ActivitiException
;
import
org.activiti.engine.ActivitiObjectNotFoundException
;
import
org.activiti.engine.form.TaskFormData
;
import
org.activiti.engine.task.Attachment
;
import
org.activiti.engine.task.IdentityLink
;
import
org.activiti.engine.task.Task
;
import
org.activiti.rest.api.ActivitiUtil
;
import
org.activiti.rest.api.RequestUtil
;
import
org.activiti.rest.api.SecuredResource
;
import
org.activiti.rest.api.legacy.AttachmentResponse
;
import
org.activiti.rest.api.legacy.IdentityLinkResponse
;
import
org.activiti.rest.api.legacy.SubTaskResponse
;
import
org.codehaus.jackson.JsonNode
;
import
org.codehaus.jackson.map.ObjectMapper
;
import
org.restlet.representation.Representation
;
import
org.restlet.resource.Delete
;
import
org.restlet.resource.Get
;
import
org.restlet.resource.Post
;
/**
* @author Tijs Rademakers
*/
@Deprecated
public
class
LegacyTaskResource
extends
SecuredResource
{
@Get
public
LegacyTaskResponse
getTask
()
{
if
(
authenticate
()
==
false
)
return
null
;
String
taskId
=
(
String
)
getRequest
().
getAttributes
().
get
(
"taskId"
);
Task
task
=
ActivitiUtil
.
getTaskService
().
createTaskQuery
().
taskId
(
taskId
).
singleResult
();
if
(
task
==
null
)
{
throw
new
ActivitiObjectNotFoundException
(
"Task not found for id "
+
taskId
,
Task
.
class
);
}
LegacyTaskResponse
response
=
new
LegacyTaskResponse
(
task
);
TaskFormData
taskFormData
=
ActivitiUtil
.
getFormService
().
getTaskFormData
(
taskId
);
if
(
taskFormData
!=
null
)
{
response
.
setFormResourceKey
(
taskFormData
.
getFormKey
());
}
List
<
Task
>
subTaskList
=
ActivitiUtil
.
getTaskService
().
getSubTasks
(
task
.
getId
());
if
(
subTaskList
!=
null
)
{
for
(
Task
subTask
:
subTaskList
)
{
SubTaskResponse
subTaskResponse
=
new
SubTaskResponse
(
subTask
);
response
.
addSubTask
(
subTaskResponse
);
}
}
List
<
IdentityLink
>
linkList
=
ActivitiUtil
.
getTaskService
().
getIdentityLinksForTask
(
task
.
getId
());
if
(
linkList
!=
null
)
{
for
(
IdentityLink
identityLink
:
linkList
)
{
IdentityLinkResponse
linkResponse
=
new
IdentityLinkResponse
(
identityLink
);
response
.
addIdentityLink
(
linkResponse
);
}
}
List
<
Attachment
>
attachmentList
=
null
;
if
(
task
.
getProcessInstanceId
()
!=
null
&&
task
.
getProcessInstanceId
().
length
()
>
0
)
{
attachmentList
=
ActivitiUtil
.
getTaskService
().
getProcessInstanceAttachments
(
task
.
getProcessInstanceId
());
}
else
{
attachmentList
=
ActivitiUtil
.
getTaskService
().
getTaskAttachments
(
task
.
getId
());
}
if
(
attachmentList
!=
null
)
{
for
(
Attachment
attachment
:
attachmentList
)
{
AttachmentResponse
attachmentResponse
=
new
AttachmentResponse
(
attachment
);
response
.
addAttachment
(
attachmentResponse
);
}
}
return
response
;
}
@Post
public
LegacyTaskResponse
updateTask
(
Representation
entity
)
{
if
(
authenticate
()
==
false
)
return
null
;
String
taskId
=
(
String
)
getRequest
().
getAttributes
().
get
(
"taskId"
);
Task
task
=
ActivitiUtil
.
getTaskService
().
createTaskQuery
().
taskId
(
taskId
).
singleResult
();
if
(
task
==
null
)
{
throw
new
ActivitiObjectNotFoundException
(
"Task not found for id "
+
taskId
,
Task
.
class
);
}
try
{
String
taskParams
=
entity
.
getText
();
JsonNode
taskJSON
=
new
ObjectMapper
().
readTree
(
taskParams
);
String
description
=
null
;
if
(
taskJSON
.
path
(
"description"
)
!=
null
&&
taskJSON
.
path
(
"description"
).
getTextValue
()
!=
null
)
{
description
=
taskJSON
.
path
(
"description"
).
getTextValue
();
task
.
setDescription
(
description
);
}
String
assignee
=
null
;
if
(
taskJSON
.
path
(
"assignee"
)
!=
null
&&
taskJSON
.
path
(
"assignee"
).
getTextValue
()
!=
null
)
{
assignee
=
taskJSON
.
path
(
"assignee"
).
getTextValue
();
task
.
setAssignee
(
assignee
);
}
String
owner
=
null
;
if
(
taskJSON
.
path
(
"owner"
)
!=
null
&&
taskJSON
.
path
(
"owner"
).
getTextValue
()
!=
null
)
{
owner
=
taskJSON
.
path
(
"owner"
).
getTextValue
();
task
.
setOwner
(
owner
);
}
String
priority
=
null
;
if
(
taskJSON
.
path
(
"priority"
)
!=
null
&&
taskJSON
.
path
(
"priority"
).
getTextValue
()
!=
null
)
{
priority
=
taskJSON
.
path
(
"priority"
).
getTextValue
();
task
.
setPriority
(
RequestUtil
.
parseToInteger
(
priority
));
}
String
dueDate
=
null
;
if
(
taskJSON
.
path
(
"dueDate"
)
!=
null
&&
taskJSON
.
path
(
"dueDate"
).
getTextValue
()
!=
null
)
{
dueDate
=
taskJSON
.
path
(
"dueDate"
).
getTextValue
();
task
.
setDueDate
(
RequestUtil
.
parseToDate
(
dueDate
));
}
ActivitiUtil
.
getTaskService
().
saveTask
(
task
);
LegacyTaskResponse
response
=
new
LegacyTaskResponse
(
task
);
return
response
;
}
catch
(
Exception
e
)
{
if
(
e
instanceof
ActivitiException
)
{
throw
(
ActivitiException
)
e
;
}
throw
new
ActivitiException
(
"Failed to update task "
+
taskId
,
e
);
}
}
@Delete
public
void
deleteTask
(
Representation
entity
)
{
if
(
authenticate
()
==
false
)
return
;
String
taskId
=
(
String
)
getRequest
().
getAttributes
().
get
(
"taskId"
);
Task
task
=
ActivitiUtil
.
getTaskService
().
createTaskQuery
().
taskId
(
taskId
).
singleResult
();
if
(
task
==
null
)
{
throw
new
ActivitiObjectNotFoundException
(
"Task not found for id "
+
taskId
,
Task
.
class
);
}
ActivitiUtil
.
getTaskService
().
deleteTask
(
taskId
);
}
}
modules/activiti-rest/src/main/java/org/activiti/rest/api/legacy/task/LegacyTaskResponse.java
0 → 100644
浏览文件 @
b79e02e3
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.rest.api.legacy.task
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.activiti.engine.task.DelegationState
;
import
org.activiti.engine.task.Task
;
import
org.activiti.rest.api.RequestUtil
;
import
org.activiti.rest.api.legacy.AttachmentResponse
;
import
org.activiti.rest.api.legacy.IdentityLinkResponse
;
import
org.activiti.rest.api.legacy.SubTaskResponse
;
/**
* @author Tijs Rademakers
*/
public
class
LegacyTaskResponse
{
String
assignee
;
String
createTime
;
DelegationState
delegationState
;
String
description
;
String
dueDate
;
String
executionId
;
String
id
;
String
name
;
String
owner
;
String
parentTaskId
;
int
priority
;
String
processDefinitionId
;
String
processInstanceId
;
String
taskDefinitionKey
;
String
formResourceKey
;
List
<
SubTaskResponse
>
subTaskList
=
new
ArrayList
<
SubTaskResponse
>();
List
<
IdentityLinkResponse
>
identityLinkList
=
new
ArrayList
<
IdentityLinkResponse
>();
List
<
AttachmentResponse
>
attachmentList
=
new
ArrayList
<
AttachmentResponse
>();
public
LegacyTaskResponse
(
Task
task
)
{
setAssignee
(
task
.
getAssignee
());
setCreateTime
(
RequestUtil
.
dateToString
(
task
.
getCreateTime
()));
setDelegationState
(
task
.
getDelegationState
());
setDescription
(
task
.
getDescription
());
setDueDate
(
RequestUtil
.
dateToString
(
task
.
getDueDate
()));
setExecutionId
(
task
.
getExecutionId
());
setId
(
task
.
getId
());
setName
(
task
.
getName
());
setOwner
(
task
.
getOwner
());
setParentTaskId
(
task
.
getParentTaskId
());
setPriority
(
task
.
getPriority
());
setProcessDefinitionId
(
task
.
getProcessDefinitionId
());
setProcessInstanceId
(
task
.
getProcessInstanceId
());
setTaskDefinitionKey
(
task
.
getTaskDefinitionKey
());
}
public
String
getAssignee
()
{
return
assignee
;
}
public
void
setAssignee
(
String
assignee
)
{
this
.
assignee
=
assignee
;
}
public
String
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
String
createTime
)
{
this
.
createTime
=
createTime
;
}
public
DelegationState
getDelegationState
()
{
return
delegationState
;
}
public
void
setDelegationState
(
DelegationState
delegationState
)
{
this
.
delegationState
=
delegationState
;
}
public
String
getDescription
()
{
return
description
;
}
public
void
setDescription
(
String
description
)
{
this
.
description
=
description
;
}
public
String
getDueDate
()
{
return
dueDate
;
}
public
void
setDueDate
(
String
dueDate
)
{
this
.
dueDate
=
dueDate
;
}
public
String
getExecutionId
()
{
return
executionId
;
}
public
void
setExecutionId
(
String
executionId
)
{
this
.
executionId
=
executionId
;
}
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getOwner
()
{
return
owner
;
}
public
void
setOwner
(
String
owner
)
{
this
.
owner
=
owner
;
}
public
String
getParentTaskId
()
{
return
parentTaskId
;
}
public
void
setParentTaskId
(
String
parentTaskId
)
{
this
.
parentTaskId
=
parentTaskId
;
}
public
int
getPriority
()
{
return
priority
;
}
public
void
setPriority
(
int
priority
)
{
this
.
priority
=
priority
;
}
public
String
getProcessDefinitionId
()
{
return
processDefinitionId
;
}
public
void
setProcessDefinitionId
(
String
processDefinitionId
)
{
this
.
processDefinitionId
=
processDefinitionId
;
}
public
String
getProcessInstanceId
()
{
return
processInstanceId
;
}
public
void
setProcessInstanceId
(
String
processInstanceId
)
{
this
.
processInstanceId
=
processInstanceId
;
}
public
String
getTaskDefinitionKey
()
{
return
taskDefinitionKey
;
}
public
void
setTaskDefinitionKey
(
String
taskDefinitionKey
)
{
this
.
taskDefinitionKey
=
taskDefinitionKey
;
}
public
String
getFormResourceKey
()
{
return
formResourceKey
;
}
public
void
setFormResourceKey
(
String
formResourceKey
)
{
this
.
formResourceKey
=
formResourceKey
;
}
public
List
<
SubTaskResponse
>
getSubTaskList
()
{
return
subTaskList
;
}
public
void
setSubTaskList
(
List
<
SubTaskResponse
>
subTaskList
)
{
this
.
subTaskList
=
subTaskList
;
}
public
void
addSubTask
(
SubTaskResponse
subTask
)
{
this
.
subTaskList
.
add
(
subTask
);
}
public
List
<
IdentityLinkResponse
>
getIdentityLinkList
()
{
return
identityLinkList
;
}
public
void
setIdentityLinkList
(
List
<
IdentityLinkResponse
>
identityLinkList
)
{
this
.
identityLinkList
=
identityLinkList
;
}
public
void
addIdentityLink
(
IdentityLinkResponse
link
)
{
this
.
identityLinkList
.
add
(
link
);
}
public
List
<
AttachmentResponse
>
getAttachmentList
()
{
return
attachmentList
;
}
public
void
setAttachmentList
(
List
<
AttachmentResponse
>
attachmentList
)
{
this
.
attachmentList
=
attachmentList
;
}
public
void
addAttachment
(
AttachmentResponse
attachment
)
{
this
.
attachmentList
.
add
(
attachment
);
}
}
modules/activiti-rest/src/main/java/org/activiti/rest/api/process/ProcessInstanceTaskResource.java
浏览文件 @
b79e02e3
...
...
@@ -23,7 +23,7 @@ import org.activiti.engine.task.TaskQuery;
import
org.activiti.rest.api.ActivitiUtil
;
import
org.activiti.rest.api.DataResponse
;
import
org.activiti.rest.api.SecuredResource
;
import
org.activiti.rest.api.
task
.TasksPaginateList
;
import
org.activiti.rest.api.
legacy
.TasksPaginateList
;
import
org.restlet.resource.Get
;
public
class
ProcessInstanceTaskResource
extends
SecuredResource
{
...
...
modules/activiti-rest/src/main/java/org/activiti/rest/api/task/TaskResource.java
浏览文件 @
b79e02e3
...
...
@@ -13,148 +13,32 @@
package
org.activiti.rest.api.task
;
import
java.util.List
;
import
org.activiti.engine.ActivitiException
;
import
org.activiti.engine.ActivitiIllegalArgumentException
;
import
org.activiti.engine.ActivitiObjectNotFoundException
;
import
org.activiti.engine.form.TaskFormData
;
import
org.activiti.engine.task.Attachment
;
import
org.activiti.engine.task.IdentityLink
;
import
org.activiti.engine.task.Task
;
import
org.activiti.rest.api.ActivitiUtil
;
import
org.activiti.rest.api.RequestUtil
;
import
org.activiti.rest.api.SecuredResource
;
import
org.codehaus.jackson.JsonNode
;
import
org.codehaus.jackson.map.ObjectMapper
;
import
org.restlet.representation.Representation
;
import
org.restlet.resource.Delete
;
import
org.activiti.rest.application.ActivitiRestServicesApplication
;
import
org.restlet.resource.Get
;
import
org.restlet.resource.Post
;
/**
* @author
Tijs Rademaker
s
* @author
Frederik Hereman
s
*/
public
class
TaskResource
extends
SecuredResource
{
@Get
public
TaskResponse
getTask
()
{
if
(
authenticate
()
==
false
)
return
null
;
String
taskId
=
(
String
)
getRequest
().
getAttributes
().
get
(
"taskId"
);
Task
task
=
ActivitiUtil
.
getTaskService
().
createTaskQuery
().
taskId
(
taskId
).
singleResult
();
if
(
task
==
null
)
{
throw
new
ActivitiObjectNotFoundException
(
"Task not found for id "
+
taskId
,
Task
.
class
);
}
TaskResponse
response
=
new
TaskResponse
(
task
);
TaskFormData
taskFormData
=
ActivitiUtil
.
getFormService
().
getTaskFormData
(
taskId
);
if
(
taskFormData
!=
null
)
{
response
.
setFormResourceKey
(
taskFormData
.
getFormKey
());
}
List
<
Task
>
subTaskList
=
ActivitiUtil
.
getTaskService
().
getSubTasks
(
task
.
getId
());
if
(
subTaskList
!=
null
)
{
for
(
Task
subTask
:
subTaskList
)
{
SubTaskResponse
subTaskResponse
=
new
SubTaskResponse
(
subTask
);
response
.
addSubTask
(
subTaskResponse
);
}
}
List
<
IdentityLink
>
linkList
=
ActivitiUtil
.
getTaskService
().
getIdentityLinksForTask
(
task
.
getId
());
if
(
linkList
!=
null
)
{
for
(
IdentityLink
identityLink
:
linkList
)
{
IdentityLinkResponse
linkResponse
=
new
IdentityLinkResponse
(
identityLink
);
response
.
addIdentityLink
(
linkResponse
);
}
}
List
<
Attachment
>
attachmentList
=
null
;
if
(
task
.
getProcessInstanceId
()
!=
null
&&
task
.
getProcessInstanceId
().
length
()
>
0
)
{
attachmentList
=
ActivitiUtil
.
getTaskService
().
getProcessInstanceAttachments
(
task
.
getProcessInstanceId
());
}
else
{
attachmentList
=
ActivitiUtil
.
getTaskService
().
getTaskAttachments
(
task
.
getId
());
}
if
(
attachmentList
!=
null
)
{
for
(
Attachment
attachment
:
attachmentList
)
{
AttachmentResponse
attachmentResponse
=
new
AttachmentResponse
(
attachment
);
response
.
addAttachment
(
attachmentResponse
);
}
}
return
response
;
}
@Post
public
TaskResponse
updateTask
(
Representation
entity
)
{
if
(
authenticate
()
==
false
)
return
null
;
String
taskId
=
(
String
)
getRequest
().
getAttributes
().
get
(
"taskId"
);
Task
task
=
ActivitiUtil
.
getTaskService
().
createTaskQuery
().
taskId
(
taskId
).
singleResult
();
if
(
task
==
null
)
{
throw
new
ActivitiObjectNotFoundException
(
"Task not found for id "
+
taskId
,
Task
.
class
);
}
try
{
String
taskParams
=
entity
.
getText
();
JsonNode
taskJSON
=
new
ObjectMapper
().
readTree
(
taskParams
);
String
description
=
null
;
if
(
taskJSON
.
path
(
"description"
)
!=
null
&&
taskJSON
.
path
(
"description"
).
getTextValue
()
!=
null
)
{
description
=
taskJSON
.
path
(
"description"
).
getTextValue
();
task
.
setDescription
(
description
);
}
String
assignee
=
null
;
if
(
taskJSON
.
path
(
"assignee"
)
!=
null
&&
taskJSON
.
path
(
"assignee"
).
getTextValue
()
!=
null
)
{
assignee
=
taskJSON
.
path
(
"assignee"
).
getTextValue
();
task
.
setAssignee
(
assignee
);
}
String
owner
=
null
;
if
(
taskJSON
.
path
(
"owner"
)
!=
null
&&
taskJSON
.
path
(
"owner"
).
getTextValue
()
!=
null
)
{
owner
=
taskJSON
.
path
(
"owner"
).
getTextValue
();
task
.
setOwner
(
owner
);
}
String
priority
=
null
;
if
(
taskJSON
.
path
(
"priority"
)
!=
null
&&
taskJSON
.
path
(
"priority"
).
getTextValue
()
!=
null
)
{
priority
=
taskJSON
.
path
(
"priority"
).
getTextValue
();
task
.
setPriority
(
RequestUtil
.
parseToInteger
(
priority
));
}
String
dueDate
=
null
;
if
(
taskJSON
.
path
(
"dueDate"
)
!=
null
&&
taskJSON
.
path
(
"dueDate"
).
getTextValue
()
!=
null
)
{
dueDate
=
taskJSON
.
path
(
"dueDate"
).
getTextValue
();
task
.
setDueDate
(
RequestUtil
.
parseToDate
(
dueDate
));
}
ActivitiUtil
.
getTaskService
().
saveTask
(
task
);
TaskResponse
response
=
new
TaskResponse
(
task
);
return
response
;
}
catch
(
Exception
e
)
{
if
(
e
instanceof
ActivitiException
)
{
throw
(
ActivitiException
)
e
;
}
throw
new
ActivitiException
(
"Failed to update task "
+
taskId
,
e
);
String
taskId
=
getAttribute
(
"taskId"
);
if
(
taskId
==
null
)
{
throw
new
ActivitiIllegalArgumentException
(
"The taskId cannot be null"
);
}
}
@Delete
public
void
deleteTask
(
Representation
entity
)
{
if
(
authenticate
()
==
false
)
return
;
String
taskId
=
(
String
)
getRequest
().
getAttributes
().
get
(
"taskId"
);
Task
task
=
ActivitiUtil
.
getTaskService
().
createTaskQuery
().
taskId
(
taskId
).
singleResult
();
if
(
task
==
null
)
{
throw
new
ActivitiObjectNotFoundException
(
"Task not found for id "
+
taskId
,
Task
.
class
);
if
(
task
==
null
)
{
throw
new
ActivitiObjectNotFoundException
(
"Could not find a task with id '"
+
taskId
+
"'."
,
Task
.
class
);
}
ActivitiUtil
.
getTaskService
().
deleteTask
(
taskId
);
return
getApplication
(
ActivitiRestServicesApplication
.
class
).
getRestResponseFactory
().
createTaskReponse
(
this
,
task
);
}
}
modules/activiti-rest/src/main/java/org/activiti/rest/api/task/TaskResponse.java
浏览文件 @
b79e02e3
...
...
@@ -13,207 +13,152 @@
package
org.activiti.rest.api.task
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Date
;
import
org.activiti.engine.task.DelegationState
;
import
org.activiti.engine.task.Task
;
import
org.activiti.rest.api.RequestUtil
;
/**
* @author
Tijs Rademaker
s
* @author
Frederik Hereman
s
*/
public
class
TaskResponse
{
private
String
id
;
private
String
url
;
private
String
owner
;
private
String
assignee
;
private
String
delegationState
;
private
String
name
;
private
String
description
;
private
Date
createTime
;
private
Date
dueDate
;
private
int
priority
;
private
boolean
suspended
;
private
String
taskDefinitionKey
;
// References to other resources
private
String
parentTask
;
private
String
execution
;
private
String
processInstance
;
private
String
processDefinition
;
String
assignee
;
String
createTime
;
DelegationState
delegationState
;
String
description
;
String
dueDate
;
String
executionId
;
String
id
;
String
name
;
String
owner
;
String
parentTaskId
;
int
priority
;
String
processDefinitionId
;
String
processInstanceId
;
String
taskDefinitionKey
;
String
formResourceKey
;
List
<
SubTaskResponse
>
subTaskList
=
new
ArrayList
<
SubTaskResponse
>();
List
<
IdentityLinkResponse
>
identityLinkList
=
new
ArrayList
<
IdentityLinkResponse
>();
List
<
AttachmentResponse
>
attachmentList
=
new
ArrayList
<
AttachmentResponse
>();
public
TaskResponse
(
Task
task
)
{
setAssignee
(
task
.
getAssignee
());
setCreateTime
(
RequestUtil
.
dateToString
(
task
.
getCreateTime
()));
setDelegationState
(
task
.
getDelegationState
());
setDescription
(
task
.
getDescription
());
setDueDate
(
RequestUtil
.
dateToString
(
task
.
getDueDate
()));
setExecutionId
(
task
.
getExecutionId
());
setId
(
task
.
getId
());
setName
(
task
.
getName
());
setOwner
(
task
.
getOwner
());
setParentTaskId
(
task
.
getParentTaskId
());
setAssignee
(
task
.
getAssignee
());
setDelegationState
(
getDelegationStateString
(
task
.
getDelegationState
()));
setName
(
task
.
getName
());
setDescription
(
task
.
getDescription
());
setCreateTime
(
task
.
getCreateTime
());
setDueDate
(
task
.
getDueDate
());
setPriority
(
task
.
getPriority
());
setProcessDefinitionId
(
task
.
getProcessDefinitionId
());
setProcessInstanceId
(
task
.
getProcessInstanceId
());
setSuspended
(
task
.
isSuspended
());
setTaskDefinitionKey
(
task
.
getTaskDefinitionKey
());
}
public
String
getAssignee
()
{
return
assignee
;
}
public
void
setAssignee
(
String
assignee
)
{
this
.
assignee
=
assignee
;
}
public
String
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
String
createTime
)
{
this
.
createTime
=
createTime
;
protected
String
getDelegationStateString
(
DelegationState
state
)
{
String
result
=
null
;
if
(
state
!=
null
)
{
result
=
state
.
toString
().
toLowerCase
();
}
return
result
;
}
public
DelegationState
getDelegationState
()
{
return
delegationState
;
public
String
getId
()
{
return
id
;
}
public
void
setDelegationState
(
DelegationState
delegationState
)
{
this
.
delegationState
=
delegationState
;
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getDescription
()
{
return
description
;
public
String
getUrl
()
{
return
url
;
}
public
void
setDescription
(
String
description
)
{
this
.
description
=
description
;
public
void
setUrl
(
String
url
)
{
this
.
url
=
url
;
}
public
String
getDueDate
()
{
return
dueDate
;
public
String
getOwner
()
{
return
owner
;
}
public
void
setDueDate
(
String
dueDate
)
{
this
.
dueDate
=
dueDate
;
public
void
setOwner
(
String
owner
)
{
this
.
owner
=
owner
;
}
public
String
getExecutionId
()
{
return
executionId
;
public
String
getAssignee
()
{
return
assignee
;
}
public
void
setExecutionId
(
String
executionId
)
{
this
.
executionId
=
executionId
;
public
void
setAssignee
(
String
assignee
)
{
this
.
assignee
=
assignee
;
}
public
String
getId
()
{
return
id
;
public
String
getDelegationState
()
{
return
delegationState
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
public
void
setDelegationState
(
String
delegationState
)
{
this
.
delegationState
=
delegationState
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getOwner
()
{
return
owner
;
public
String
getDescription
()
{
return
description
;
}
public
void
setOwner
(
String
owner
)
{
this
.
owner
=
owner
;
public
void
setDescription
(
String
description
)
{
this
.
description
=
description
;
}
public
String
getParentTaskId
()
{
return
parentTaskId
;
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setParentTaskId
(
String
parentTaskId
)
{
this
.
parentTaskId
=
parentTaskId
;
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Date
getDueDate
()
{
return
dueDate
;
}
public
void
setDueDate
(
Date
dueDate
)
{
this
.
dueDate
=
dueDate
;
}
public
int
getPriority
()
{
return
priority
;
}
public
void
setPriority
(
int
priority
)
{
this
.
priority
=
priority
;
}
public
String
getProcessDefinitionId
()
{
return
processDefinitionId
;
}
public
void
setProcessDefinitionId
(
String
processDefinitionId
)
{
this
.
processDefinitionId
=
processDefinitionId
;
}
public
String
getProcessInstanceId
()
{
return
processInstanceId
;
public
boolean
isSuspended
()
{
return
suspended
;
}
public
void
setProcessInstanceId
(
String
processInstanceId
)
{
this
.
processInstanceId
=
processInstanceId
;
public
void
setSuspended
(
boolean
suspended
)
{
this
.
suspended
=
suspended
;
}
public
String
getTaskDefinitionKey
()
{
return
taskDefinitionKey
;
public
String
getParentTask
()
{
return
parentTask
;
}
public
void
setTaskDefinitionKey
(
String
taskDefinitionKey
)
{
this
.
taskDefinitionKey
=
taskDefinitionKey
;
public
void
setParentTask
(
String
parentTask
)
{
this
.
parentTask
=
parentTask
;
}
public
String
getFormResourceKey
()
{
return
formResourceKey
;
public
String
getExecution
()
{
return
execution
;
}
public
void
setFormResourceKey
(
String
formResourceKey
)
{
this
.
formResourceKey
=
formResourceKey
;
public
void
setExecution
(
String
execution
)
{
this
.
execution
=
execution
;
}
public
List
<
SubTaskResponse
>
getSubTaskList
()
{
return
subTaskList
;
public
String
getProcessInstance
()
{
return
processInstance
;
}
public
void
setSubTaskList
(
List
<
SubTaskResponse
>
subTaskList
)
{
this
.
subTaskList
=
subTaskList
;
public
void
setProcessInstance
(
String
processInstance
)
{
this
.
processInstance
=
processInstance
;
}
public
void
addSubTask
(
SubTaskResponse
subTask
)
{
this
.
subTaskList
.
add
(
subTask
);
public
String
getProcessDefinition
()
{
return
processDefinition
;
}
public
List
<
IdentityLinkResponse
>
getIdentityLinkList
()
{
return
identityLinkList
;
}
public
void
setIdentityLinkList
(
List
<
IdentityLinkResponse
>
identityLinkList
)
{
this
.
identityLinkList
=
identityLinkList
;
}
public
void
addIdentityLink
(
IdentityLinkResponse
link
)
{
this
.
identityLinkList
.
add
(
link
);
}
public
List
<
AttachmentResponse
>
getAttachmentList
()
{
return
attachmentList
;
public
void
setProcessDefinition
(
String
processDefinition
)
{
this
.
processDefinition
=
processDefinition
;
}
public
void
setAttachmentList
(
List
<
AttachmentResponse
>
attachmentList
)
{
this
.
attachmentList
=
attachmentList
;
public
String
getTaskDefinitionKey
()
{
return
taskDefinitionKey
;
}
public
void
addAttachment
(
AttachmentResponse
attachment
)
{
this
.
attachmentList
.
add
(
attachment
);
public
void
setTaskDefinitionKey
(
String
taskDefinitionKey
)
{
this
.
taskDefinitionKey
=
taskDefinitionKey
;
}
}
modules/activiti-rest/src/main/java/org/activiti/rest/application/ActivitiRestServicesApplication.java
浏览文件 @
b79e02e3
...
...
@@ -13,11 +13,16 @@
package
org.activiti.rest.application
;
import
java.util.List
;
import
org.activiti.rest.api.DefaultResource
;
import
org.activiti.rest.api.RestResponseFactory
;
import
org.activiti.rest.api.RestResponseFactory
;
import
org.activiti.rest.filter.JsonpFilter
;
import
org.codehaus.jackson.map.SerializationConfig
;
import
org.restlet.Restlet
;
import
org.restlet.engine.Engine
;
import
org.restlet.engine.converter.ConverterHelper
;
import
org.restlet.ext.jackson.JacksonConverter
;
import
org.restlet.routing.Router
;
/**
* @author Tijs Rademakers
...
...
@@ -38,14 +43,21 @@ public class ActivitiRestServicesApplication extends ActivitiRestApplication {
initializeAuthentication
();
Router
router
=
new
Router
(
getContext
());
router
.
attachDefault
(
DefaultResource
.
class
);
RestServicesInit
.
attachResources
(
router
);
JsonpFilter
jsonpFilter
=
new
JsonpFilter
(
getContext
());
jsonpFilter
.
setNext
(
router
);
authenticator
.
setNext
(
jsonpFilter
);
// Get hold of JSONConverter and enable ISO-date format by default
List
<
ConverterHelper
>
registeredConverters
=
Engine
.
getInstance
().
getRegisteredConverters
();
for
(
ConverterHelper
helper
:
registeredConverters
)
{
if
(
helper
instanceof
JacksonConverter
)
{
JacksonConverter
jacksonConverter
=
(
JacksonConverter
)
helper
;
jacksonConverter
.
getObjectMapper
().
configure
(
SerializationConfig
.
Feature
.
WRITE_DATES_AS_TIMESTAMPS
,
false
);
}
}
return
authenticator
;
}
...
...
modules/activiti-rest/src/main/java/org/activiti/rest/application/RestServicesInit.java
浏览文件 @
b79e02e3
...
...
@@ -13,6 +13,15 @@ import org.activiti.rest.api.identity.UserGroupsResource;
import
org.activiti.rest.api.identity.UserPictureResource
;
import
org.activiti.rest.api.identity.UserResource
;
import
org.activiti.rest.api.identity.UserSearchResource
;
import
org.activiti.rest.api.legacy.TaskAddResource
;
import
org.activiti.rest.api.legacy.TaskAttachmentAddResource
;
import
org.activiti.rest.api.legacy.TaskAttachmentResource
;
import
org.activiti.rest.api.legacy.TaskFormResource
;
import
org.activiti.rest.api.legacy.TaskOperationResource
;
import
org.activiti.rest.api.legacy.TaskPropertiesResource
;
import
org.activiti.rest.api.legacy.TaskUrlAddResource
;
import
org.activiti.rest.api.legacy.TasksResource
;
import
org.activiti.rest.api.legacy.TasksSummaryResource
;
import
org.activiti.rest.api.legacy.deployment.DeploymentArtifactResource
;
import
org.activiti.rest.api.legacy.deployment.DeploymentArtifactsResource
;
import
org.activiti.rest.api.legacy.deployment.DeploymentDeleteResource
;
...
...
@@ -20,6 +29,7 @@ import org.activiti.rest.api.legacy.deployment.DeploymentUploadResource;
import
org.activiti.rest.api.legacy.deployment.DeploymentsDeleteResource
;
import
org.activiti.rest.api.legacy.deployment.DeploymentsResource
;
import
org.activiti.rest.api.legacy.process.ProcessDefinitionsResource
;
import
org.activiti.rest.api.legacy.task.LegacyTaskResource
;
import
org.activiti.rest.api.management.JobExecuteResource
;
import
org.activiti.rest.api.management.JobResource
;
import
org.activiti.rest.api.management.JobsExecuteResource
;
...
...
@@ -45,16 +55,7 @@ import org.activiti.rest.api.repository.DeploymentResourceResource;
import
org.activiti.rest.api.repository.ProcessDefinitionCollectionResource
;
import
org.activiti.rest.api.repository.ProcessDefinitionResource
;
import
org.activiti.rest.api.repository.SimpleWorkflowResource
;
import
org.activiti.rest.api.task.TaskAddResource
;
import
org.activiti.rest.api.task.TaskAttachmentAddResource
;
import
org.activiti.rest.api.task.TaskAttachmentResource
;
import
org.activiti.rest.api.task.TaskFormResource
;
import
org.activiti.rest.api.task.TaskOperationResource
;
import
org.activiti.rest.api.task.TaskPropertiesResource
;
import
org.activiti.rest.api.task.TaskResource
;
import
org.activiti.rest.api.task.TaskUrlAddResource
;
import
org.activiti.rest.api.task.TasksResource
;
import
org.activiti.rest.api.task.TasksSummaryResource
;
import
org.restlet.routing.Router
;
@SuppressWarnings
(
"deprecation"
)
...
...
@@ -72,6 +73,9 @@ public class RestServicesInit {
router
.
attach
(
"/repository/process-definitions"
,
ProcessDefinitionCollectionResource
.
class
);
router
.
attach
(
"/repository/process-definitions/{processDefinitionId}"
,
ProcessDefinitionResource
.
class
);
router
.
attach
(
"/runtime/tasks/{taskId}"
,
TaskResource
.
class
);
// Old rest-urls
router
.
attach
(
"/process-engine"
,
ProcessEngineResource
.
class
);
...
...
@@ -105,7 +109,7 @@ public class RestServicesInit {
router
.
attach
(
"/tasks"
,
TasksResource
.
class
);
router
.
attach
(
"/tasks-summary"
,
TasksSummaryResource
.
class
);
router
.
attach
(
"/task"
,
TaskAddResource
.
class
);
router
.
attach
(
"/task/{taskId}"
,
TaskResource
.
class
);
router
.
attach
(
"/task/{taskId}"
,
Legacy
TaskResource
.
class
);
router
.
attach
(
"/task/{taskId}/form"
,
TaskFormResource
.
class
);
router
.
attach
(
"/task/{taskId}/attachment"
,
TaskAttachmentAddResource
.
class
);
router
.
attach
(
"/task/{taskId}/url"
,
TaskUrlAddResource
.
class
);
...
...
modules/activiti-rest/src/test/java/org/activiti/rest/BaseRestTestCase.java
浏览文件 @
b79e02e3
...
...
@@ -5,6 +5,7 @@ import java.io.UnsupportedEncodingException;
import
java.net.URLEncoder
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -43,6 +44,8 @@ import org.apache.commons.lang.StringUtils;
import
org.codehaus.jackson.JsonNode
;
import
org.codehaus.jackson.JsonProcessingException
;
import
org.codehaus.jackson.map.ObjectMapper
;
import
org.joda.time.format.DateTimeFormatter
;
import
org.joda.time.format.ISODateTimeFormat
;
import
org.junit.Assert
;
import
org.restlet.Component
;
import
org.restlet.data.ChallengeScheme
;
...
...
@@ -356,4 +359,17 @@ public class BaseRestTestCase extends PvmTestCase {
client
.
release
();
}
/**
* Extract a date from the given string. Assertion fails when invalid date has been provided.
*/
protected
Date
getDateFromISOString
(
String
isoString
)
{
DateTimeFormatter
dateFormat
=
ISODateTimeFormat
.
dateTime
();
try
{
return
dateFormat
.
parseDateTime
(
isoString
).
toDate
();
}
catch
(
IllegalArgumentException
iae
)
{
fail
(
"Illegal date provided: "
+
isoString
);
return
null
;
}
}
}
modules/activiti-rest/src/
main/java/org/activiti/rest/api/task
/AttachmentResponse.java
→
modules/activiti-rest/src/
test/java/org/activiti/rest/api/legacy
/AttachmentResponse.java
浏览文件 @
b79e02e3
...
...
@@ -23,7 +23,7 @@
* limitations under the License.
*/
package
org.activiti.rest.api.
task
;
package
org.activiti.rest.api.
legacy
;
import
org.activiti.engine.task.Attachment
;
...
...
modules/activiti-rest/src/
main/java/org/activiti/rest/api/task
/IdentityLinkResponse.java
→
modules/activiti-rest/src/
test/java/org/activiti/rest/api/legacy
/IdentityLinkResponse.java
浏览文件 @
b79e02e3
...
...
@@ -23,7 +23,7 @@
* limitations under the License.
*/
package
org.activiti.rest.api.
task
;
package
org.activiti.rest.api.
legacy
;
import
org.activiti.engine.task.IdentityLink
;
...
...
modules/activiti-rest/src/
main/java/org/activiti/rest/api/task
/SubTaskResponse.java
→
modules/activiti-rest/src/
test/java/org/activiti/rest/api/legacy
/SubTaskResponse.java
浏览文件 @
b79e02e3
...
...
@@ -23,7 +23,7 @@
* limitations under the License.
*/
package
org.activiti.rest.api.
task
;
package
org.activiti.rest.api.
legacy
;
import
org.activiti.engine.task.DelegationState
;
import
org.activiti.engine.task.Task
;
...
...
modules/activiti-rest/src/
main/java/org/activiti/rest/api/task
/TaskAddResource.java
→
modules/activiti-rest/src/
test/java/org/activiti/rest/api/legacy
/TaskAddResource.java
浏览文件 @
b79e02e3
...
...
@@ -11,13 +11,14 @@
* limitations under the License.
*/
package
org.activiti.rest.api.
task
;
package
org.activiti.rest.api.
legacy
;
import
org.activiti.engine.ActivitiException
;
import
org.activiti.engine.task.Task
;
import
org.activiti.rest.api.ActivitiUtil
;
import
org.activiti.rest.api.RequestUtil
;
import
org.activiti.rest.api.SecuredResource
;
import
org.activiti.rest.api.legacy.task.LegacyTaskResponse
;
import
org.codehaus.jackson.JsonNode
;
import
org.codehaus.jackson.map.ObjectMapper
;
import
org.restlet.representation.Representation
;
...
...
@@ -29,7 +30,7 @@ import org.restlet.resource.Put;
public
class
TaskAddResource
extends
SecuredResource
{
@Put
public
TaskResponse
addTask
(
Representation
entity
)
{
public
Legacy
TaskResponse
addTask
(
Representation
entity
)
{
try
{
if
(
authenticate
()
==
false
)
return
null
;
...
...
@@ -81,7 +82,7 @@ public class TaskAddResource extends SecuredResource {
}
newTask
.
setParentTaskId
(
parentTaskId
);
ActivitiUtil
.
getTaskService
().
saveTask
(
newTask
);
TaskResponse
response
=
new
TaskResponse
(
newTask
);
LegacyTaskResponse
response
=
new
Legacy
TaskResponse
(
newTask
);
return
response
;
}
catch
(
Exception
e
)
{
...
...
modules/activiti-rest/src/
main/java/org/activiti/rest/api/task
/TaskAttachmentAddResource.java
→
modules/activiti-rest/src/
test/java/org/activiti/rest/api/legacy
/TaskAttachmentAddResource.java
浏览文件 @
b79e02e3
...
...
@@ -11,7 +11,7 @@
* limitations under the License.
*/
package
org.activiti.rest.api.
task
;
package
org.activiti.rest.api.
legacy
;
import
java.util.List
;
...
...
modules/activiti-rest/src/
main/java/org/activiti/rest/api/task
/TaskAttachmentResource.java
→
modules/activiti-rest/src/
test/java/org/activiti/rest/api/legacy
/TaskAttachmentResource.java
浏览文件 @
b79e02e3
...
...
@@ -11,7 +11,7 @@
* limitations under the License.
*/
package
org.activiti.rest.api.
task
;
package
org.activiti.rest.api.
legacy
;
import
java.io.InputStream
;
...
...
modules/activiti-rest/src/
main/java/org/activiti/rest/api/task
/TaskFormResource.java
→
modules/activiti-rest/src/
test/java/org/activiti/rest/api/legacy
/TaskFormResource.java
浏览文件 @
b79e02e3
...
...
@@ -11,7 +11,7 @@
* limitations under the License.
*/
package
org.activiti.rest.api.
task
;
package
org.activiti.rest.api.
legacy
;
import
java.io.ByteArrayInputStream
;
import
java.io.InputStream
;
...
...
modules/activiti-rest/src/
main/java/org/activiti/rest/api/task
/TaskOperationResource.java
→
modules/activiti-rest/src/
test/java/org/activiti/rest/api/legacy
/TaskOperationResource.java
浏览文件 @
b79e02e3
...
...
@@ -11,7 +11,7 @@
* limitations under the License.
*/
package
org.activiti.rest.api.
task
;
package
org.activiti.rest.api.
legacy
;
import
java.util.HashMap
;
import
java.util.Iterator
;
...
...
modules/activiti-rest/src/test/java/org/activiti/rest/api/
task
/TaskOperationResourceTest.java
→
modules/activiti-rest/src/test/java/org/activiti/rest/api/
legacy
/TaskOperationResourceTest.java
浏览文件 @
b79e02e3
package
org.activiti.rest.api.
task
;
package
org.activiti.rest.api.
legacy
;
import
java.util.List
;
...
...
modules/activiti-rest/src/
main/java/org/activiti/rest/api/task
/TaskPropertiesResource.java
→
modules/activiti-rest/src/
test/java/org/activiti/rest/api/legacy
/TaskPropertiesResource.java
浏览文件 @
b79e02e3
...
...
@@ -11,7 +11,7 @@
* limitations under the License.
*/
package
org.activiti.rest.api.
task
;
package
org.activiti.rest.api.
legacy
;
import
java.util.List
;
import
java.util.Map
;
...
...
modules/activiti-rest/src/
main/java/org/activiti/rest/api/task
/TaskUrlAddResource.java
→
modules/activiti-rest/src/
test/java/org/activiti/rest/api/legacy
/TaskUrlAddResource.java
浏览文件 @
b79e02e3
...
...
@@ -11,7 +11,7 @@
* limitations under the License.
*/
package
org.activiti.rest.api.
task
;
package
org.activiti.rest.api.
legacy
;
import
org.activiti.engine.ActivitiException
;
import
org.activiti.engine.ActivitiIllegalArgumentException
;
...
...
modules/activiti-rest/src/
main/java/org/activiti/rest/api/task
/TasksPaginateList.java
→
modules/activiti-rest/src/
test/java/org/activiti/rest/api/legacy
/TasksPaginateList.java
浏览文件 @
b79e02e3
...
...
@@ -11,7 +11,7 @@
* limitations under the License.
*/
package
org.activiti.rest.api.
task
;
package
org.activiti.rest.api.
legacy
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -20,6 +20,7 @@ import org.activiti.engine.form.TaskFormData;
import
org.activiti.engine.task.Task
;
import
org.activiti.rest.api.AbstractPaginateList
;
import
org.activiti.rest.api.ActivitiUtil
;
import
org.activiti.rest.api.legacy.task.LegacyTaskResponse
;
/**
* @author Tijs Rademakers
...
...
@@ -29,9 +30,9 @@ public class TasksPaginateList extends AbstractPaginateList {
@SuppressWarnings
(
"rawtypes"
)
@Override
protected
List
processList
(
List
list
)
{
List
<
TaskResponse
>
responseList
=
new
ArrayList
<
TaskResponse
>();
List
<
LegacyTaskResponse
>
responseList
=
new
ArrayList
<
Legacy
TaskResponse
>();
for
(
Object
task
:
list
)
{
TaskResponse
taskResponse
=
new
TaskResponse
((
Task
)
task
);
LegacyTaskResponse
taskResponse
=
new
Legacy
TaskResponse
((
Task
)
task
);
TaskFormData
taskFormData
=
ActivitiUtil
.
getFormService
().
getTaskFormData
(
taskResponse
.
getId
());
if
(
taskFormData
!=
null
)
{
taskResponse
.
setFormResourceKey
(
taskFormData
.
getFormKey
());
...
...
modules/activiti-rest/src/
main/java/org/activiti/rest/api/task
/TasksResource.java
→
modules/activiti-rest/src/
test/java/org/activiti/rest/api/legacy
/TasksResource.java
浏览文件 @
b79e02e3
...
...
@@ -11,7 +11,7 @@
* limitations under the License.
*/
package
org.activiti.rest.api.
task
;
package
org.activiti.rest.api.
legacy
;
import
java.util.HashMap
;
import
java.util.Map
;
...
...
modules/activiti-rest/src/
main/java/org/activiti/rest/api/task
/TasksSummaryResource.java
→
modules/activiti-rest/src/
test/java/org/activiti/rest/api/legacy
/TasksSummaryResource.java
浏览文件 @
b79e02e3
...
...
@@ -11,7 +11,7 @@
* limitations under the License.
*/
package
org.activiti.rest.api.
task
;
package
org.activiti.rest.api.
legacy
;
import
java.util.List
;
...
...
modules/activiti-rest/src/test/java/org/activiti/rest/api/repository/DeploymentResourceTest.java
浏览文件 @
b79e02e3
...
...
@@ -19,7 +19,7 @@ import org.restlet.resource.ClientResource;
import
org.restlet.resource.ResourceException
;
/**
* Test for all REST-operations related to
single a
Deployment resource.
* Test for all REST-operations related to
a single
Deployment resource.
*
* @author Frederik Heremans
*/
...
...
modules/activiti-rest/src/test/java/org/activiti/rest/api/runtime/TaskResourceTest.java
0 → 100644
浏览文件 @
b79e02e3
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.rest.api.runtime
;
import
java.util.Calendar
;
import
java.util.List
;
import
org.activiti.engine.impl.history.HistoryLevel
;
import
org.activiti.engine.impl.util.ClockUtil
;
import
org.activiti.engine.runtime.ProcessInstance
;
import
org.activiti.engine.task.DelegationState
;
import
org.activiti.engine.task.Task
;
import
org.activiti.engine.test.Deployment
;
import
org.activiti.rest.BaseRestTestCase
;
import
org.activiti.rest.api.RestUrls
;
import
org.codehaus.jackson.JsonNode
;
import
org.restlet.representation.Representation
;
import
org.restlet.resource.ClientResource
;
/**
* Test for all REST-operations related to a single Task resource.
*
* @author Frederik Heremans
*/
public
class
TaskResourceTest
extends
BaseRestTestCase
{
/**
* Test getting a single task, spawned by a process.
* GET runtime/tasks/{taskId}
*/
@Deployment
public
void
testGetProcessTask
()
throws
Exception
{
Calendar
now
=
Calendar
.
getInstance
();
ClockUtil
.
setCurrentTime
(
now
.
getTime
());
ProcessInstance
processInstance
=
runtimeService
.
startProcessInstanceByKey
(
"oneTaskProcess"
);
Task
task
=
taskService
.
createTaskQuery
().
processInstanceId
(
processInstance
.
getId
()).
singleResult
();
taskService
.
setDueDate
(
task
.
getId
(),
now
.
getTime
());
taskService
.
setOwner
(
task
.
getId
(),
"owner"
);
task
=
taskService
.
createTaskQuery
().
processInstanceId
(
processInstance
.
getId
()).
singleResult
();
assertNotNull
(
task
);
ClientResource
client
=
getAuthenticatedClient
(
RestUrls
.
createRelativeResourceUrl
(
RestUrls
.
URL_TASK
,
task
.
getId
()));
Representation
response
=
client
.
get
();
// Check resulting task
JsonNode
responseNode
=
objectMapper
.
readTree
(
response
.
getStream
());
assertEquals
(
task
.
getId
(),
responseNode
.
get
(
"id"
).
asText
());
assertEquals
(
task
.
getAssignee
(),
responseNode
.
get
(
"assignee"
).
asText
());
assertEquals
(
task
.
getOwner
(),
responseNode
.
get
(
"owner"
).
asText
());
assertEquals
(
task
.
getDescription
(),
responseNode
.
get
(
"description"
).
asText
());
assertEquals
(
task
.
getName
(),
responseNode
.
get
(
"name"
).
asText
());
assertEquals
(
task
.
getDueDate
(),
getDateFromISOString
(
responseNode
.
get
(
"dueDate"
).
asText
()));
assertEquals
(
task
.
getCreateTime
(),
getDateFromISOString
(
responseNode
.
get
(
"createTime"
).
asText
()));
assertEquals
(
task
.
getPriority
(),
responseNode
.
get
(
"priority"
).
asInt
());
assertTrue
(
responseNode
.
get
(
"parentTask"
).
isNull
());
assertTrue
(
responseNode
.
get
(
"delegationState"
).
isNull
());
assertTrue
(
responseNode
.
get
(
"execution"
).
asText
().
endsWith
(
RestUrls
.
createRelativeResourceUrl
(
RestUrls
.
URL_EXECUTION
,
task
.
getExecutionId
())));
assertTrue
(
responseNode
.
get
(
"processInstance"
).
asText
().
endsWith
(
RestUrls
.
createRelativeResourceUrl
(
RestUrls
.
URL_PROCESS_INSTANCE
,
task
.
getProcessInstanceId
())));
assertTrue
(
responseNode
.
get
(
"processDefinition"
).
asText
().
endsWith
(
RestUrls
.
createRelativeResourceUrl
(
RestUrls
.
URL_PROCESS_DEFINITION
,
encode
(
task
.
getProcessDefinitionId
()))));
}
/**
* Test getting a single task, created using the API.
* GET runtime/tasks/{taskId}
*/
public
void
testGetProcessAdhoc
()
throws
Exception
{
try
{
Calendar
now
=
Calendar
.
getInstance
();
ClockUtil
.
setCurrentTime
(
now
.
getTime
());
Task
parentTask
=
taskService
.
newTask
();
taskService
.
saveTask
(
parentTask
);
Task
task
=
taskService
.
newTask
();
task
.
setParentTaskId
(
parentTask
.
getId
());
task
.
setName
(
"Task name"
);
task
.
setDescription
(
"Descriptions"
);
task
.
setAssignee
(
"kermit"
);
task
.
setDelegationState
(
DelegationState
.
RESOLVED
);
task
.
setDescription
(
"Description"
);
task
.
setDueDate
(
now
.
getTime
());
task
.
setOwner
(
"owner"
);
task
.
setPriority
(
20
);
taskService
.
saveTask
(
task
);
ClientResource
client
=
getAuthenticatedClient
(
RestUrls
.
createRelativeResourceUrl
(
RestUrls
.
URL_TASK
,
task
.
getId
()));
Representation
response
=
client
.
get
();
// Check resulting task
JsonNode
responseNode
=
objectMapper
.
readTree
(
response
.
getStream
());
assertEquals
(
task
.
getId
(),
responseNode
.
get
(
"id"
).
asText
());
assertEquals
(
task
.
getAssignee
(),
responseNode
.
get
(
"assignee"
).
asText
());
assertEquals
(
task
.
getOwner
(),
responseNode
.
get
(
"owner"
).
asText
());
assertEquals
(
task
.
getDescription
(),
responseNode
.
get
(
"description"
).
asText
());
assertEquals
(
task
.
getName
(),
responseNode
.
get
(
"name"
).
asText
());
assertEquals
(
task
.
getDueDate
(),
getDateFromISOString
(
responseNode
.
get
(
"dueDate"
).
asText
()));
assertEquals
(
task
.
getCreateTime
(),
getDateFromISOString
(
responseNode
.
get
(
"createTime"
).
asText
()));
assertEquals
(
task
.
getPriority
(),
responseNode
.
get
(
"priority"
).
asInt
());
assertEquals
(
"resolved"
,
responseNode
.
get
(
"delegationState"
).
asText
());
assertTrue
(
responseNode
.
get
(
"execution"
).
isNull
());
assertTrue
(
responseNode
.
get
(
"processInstance"
).
isNull
());
assertTrue
(
responseNode
.
get
(
"processDefinition"
).
isNull
());
assertTrue
(
responseNode
.
get
(
"parentTask"
).
asText
().
endsWith
(
RestUrls
.
createRelativeResourceUrl
(
RestUrls
.
URL_TASK
,
parentTask
.
getId
())));
}
finally
{
// Clean adhoc-tasks even if test fails
List
<
Task
>
tasks
=
taskService
.
createTaskQuery
().
list
();
for
(
Task
task
:
tasks
)
{
taskService
.
deleteTask
(
task
.
getId
());
if
(
processEngineConfiguration
.
getHistoryLevel
().
isAtLeast
(
HistoryLevel
.
ACTIVITY
))
{
historyService
.
deleteHistoricTaskInstance
(
task
.
getId
());
}
}
}
}
}
modules/activiti-rest/src/test/resources/org/activiti/rest/api/runtime/TaskResourceTest.testGetProcessTask.bpmn20.xml
0 → 100644
浏览文件 @
b79e02e3
<?xml version="1.0" encoding="UTF-8"?>
<definitions
xmlns=
"http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:activiti=
"http://activiti.org/bpmn"
targetNamespace=
"OneTaskCategory"
>
<process
id=
"oneTaskProcess"
name=
"The One Task Process"
>
<documentation>
One task process description
</documentation>
<startEvent
id=
"theStart"
/>
<sequenceFlow
id=
"flow1"
sourceRef=
"theStart"
targetRef=
"theTask"
/>
<userTask
id=
"theTask"
name=
"my task"
activiti:assignee=
"kermit"
>
<documentation>
Usertask
</documentation>
</userTask>
<sequenceFlow
id=
"flow2"
sourceRef=
"theTask"
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录