提交 dc2f43f5 编写于 作者: J Josh Long

initial commit of a working actuator.

上级 e77a1780
......@@ -17,10 +17,25 @@
<artifactId>spring-boot-starter-basic</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-image-generator</artifactId>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-model</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package org.activiti.spring.boot.actuate.endpoint;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.RepositoryService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
......@@ -15,8 +16,13 @@ import org.springframework.context.annotation.Configuration;
public class EndpointAutoConfiguration {
@Bean
public ProcessEngineEndpoint processEngineMetric( ProcessEngine engine){
return new ProcessEngineEndpoint( engine) ;
public ProcessEngineEndpoint processEngineEndpoint(ProcessEngine engine) {
return new ProcessEngineEndpoint(engine);
}
@Bean
public ProcessEngineMvcEndpoint processEngineMvcEndpoint(
ProcessEngineEndpoint engineEndpoint, RepositoryService repositoryService) {
return new ProcessEngineMvcEndpoint(engineEndpoint, repositoryService);
}
}
......@@ -7,6 +7,12 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.List;
/**
* Registers a Boot Actuator endpoint that provides information on the
* running process instance and renders BPMN diagrams of the deployed processes.
*
* @author Josh Long
*/
@ConfigurationProperties(prefix = "endpoints.activiti")
public class ProcessEngineEndpoint extends AbstractEndpoint<List<HistoricDetail>> {
......@@ -26,13 +32,3 @@ public class ProcessEngineEndpoint extends AbstractEndpoint<List<HistoricDetail>
.list();
}
}
/* ProcessDefinition processDefinition = repositoryService
.createProcessDefinitionQuery().processDefinitionKey(pd).singleResult();
ProcessDiagramGenerator processDiagramGenerator = new DefaultProcessDiagramGenerator();
InputStream is = processDiagramGenerator
.generatePngDiagram(repositoryService
.getBpmnModel(processDefinition.getId()));
return new InputStreamResource(is);
*/
\ No newline at end of file
package org.activiti.spring.boot.actuate.endpoint;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.image.ProcessDiagramGenerator;
import org.activiti.image.impl.DefaultProcessDiagramGenerator;
import org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter;
import org.springframework.core.io.InputStreamResource;
import org.springframework.core.io.Resource;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.InputStream;
/**
* Renders a valid running BPMN process definition as a BPMN diagram.
*
* This is duplicative of the functionality in the full REST API implementation.
*
* @author Joram Barrez
* @author Josh Long
*/
public class ProcessEngineMvcEndpoint extends EndpointMvcAdapter {
private final RepositoryService repositoryService;
public ProcessEngineMvcEndpoint(ProcessEngineEndpoint processEngineEndpoint, RepositoryService repositoryService) {
super(processEngineEndpoint);
this.repositoryService = repositoryService;
}
@RequestMapping(value = "/processes/{processDefinitionKey:.*}", method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE)
@ResponseBody
public Resource processDefinitionDiagram(@PathVariable String processDefinitionKey) {
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.processDefinitionKey(processDefinitionKey).singleResult();
ProcessDiagramGenerator processDiagramGenerator = new DefaultProcessDiagramGenerator();
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinition.getId());
InputStream is = processDiagramGenerator.generateJpgDiagram(bpmnModel);
return new InputStreamResource(is);
}
}
......@@ -33,7 +33,7 @@ public class TestProcessEngineAutoConfiguration {
public static class SimpleDataSourceConfiguration {
@Bean
public TaskExecutor taskExecutor() {
TaskExecutor taskExecutor() {
return new SimpleAsyncTaskExecutor();
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册