提交 9668cfbf 编写于 作者: T trademak

Added process diagram REST resource (ACT-959)

上级 015ece08
package org.activiti.rest.api.process;
import java.io.InputStream;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.rest.api.ActivitiUtil;
import org.activiti.rest.api.SecuredResource;
import org.restlet.data.MediaType;
import org.restlet.representation.InputRepresentation;
import org.restlet.resource.Get;
public class ProcessDefinitionDiagramResource extends SecuredResource {
@Get
public InputRepresentation getDiagram() {
if (authenticate() == false)
return null;
String processDefinitionId = (String) getRequest().getAttributes().get("processDefinitionId");
if (processDefinitionId == null) {
throw new ActivitiException("No process definition id provided");
}
RepositoryService repositoryService = ActivitiUtil.getRepositoryService();
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.processDefinitionId(processDefinitionId).singleResult();
if (processDefinition == null) {
throw new ActivitiException("Process definition " + processDefinitionId + " could not be found");
}
if (processDefinition.getDiagramResourceName() == null) {
throw new ActivitiException("Diagram resource could not be found");
}
final InputStream definitionImageStream = repositoryService.getResourceAsStream(
processDefinition.getDeploymentId(), processDefinition.getDiagramResourceName());
if (definitionImageStream == null) {
throw new ActivitiException("Diagram resource could not be found");
}
return new InputRepresentation(definitionImageStream, MediaType.IMAGE_PNG);
}
}
......@@ -34,6 +34,7 @@ import org.activiti.rest.api.management.JobsResource;
import org.activiti.rest.api.management.TableDataResource;
import org.activiti.rest.api.management.TableResource;
import org.activiti.rest.api.management.TablesResource;
import org.activiti.rest.api.process.ProcessDefinitionDiagramResource;
import org.activiti.rest.api.process.ProcessDefinitionFormResource;
import org.activiti.rest.api.process.ProcessDefinitionPropertiesResource;
import org.activiti.rest.api.process.ProcessDefinitionsResource;
......@@ -128,6 +129,7 @@ public class ActivitiRestApplication extends Application {
router.attach("/processInstance/{processInstanceId}", ProcessInstanceResource.class);
router.attach("/processInstance/{processInstanceId}/diagram", ProcessInstanceDiagramResource.class);
router.attach("/process-definition/{processDefinitionId}/form", ProcessDefinitionFormResource.class);
router.attach("/process-definition/{processDefinitionId}/diagram", ProcessDefinitionDiagramResource.class);
router.attach("/process-definition/{processDefinitionId}/properties", ProcessDefinitionPropertiesResource.class);
router.attach("/tasks", TasksResource.class);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册