Mark:Spring MVC实现对Camel Route的管理

 1 package com.weinuts.controller;
 2
 3 import java.util.ArrayList;
 4 import java.util.List;
 5
 6 import org.apache.camel.CamelContext;
 7 import org.apache.camel.Route;
 8 import org.slf4j.Logger;
 9 import org.slf4j.LoggerFactory;
10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.beans.factory.annotation.Qualifier;
12 import org.springframework.stereotype.Controller;
13 import org.springframework.ui.Model;
14 import org.springframework.web.bind.annotation.PathVariable;
15 import org.springframework.web.bind.annotation.RequestMapping;
16 import org.springframework.web.bind.annotation.RequestMethod;
17
18 import com.weinuts.to.RouteStatus;
19
20 /**
21  * Web service to manage Camel routes.
22  * It provides list of routes with current sataus and abbiliti to start or stop them.
23  *
24  * @author ke.zhang
25  * @since Mar 03, 2016
26  */
27 @Controller
28 public class IntegrationLayerRouteController {
29
30     private static final Logger LOGGER = LoggerFactory.getLogger(IntegrationLayerRouteController.class);
31
32     @Autowired
33     @Qualifier("integrationLayer")
34     private CamelContext camelContext;
35
36     @RequestMapping(value = "/", method = RequestMethod.GET)
37     public String index(Model model) {
38         return dashboard(model);
39     }
40
41     @RequestMapping(value = "/dashboard", method = RequestMethod.GET)
42     public String dashboard(Model model) {
43
44         if(LOGGER.isDebugEnabled()) {
45             LOGGER.debug("camel context is suspended : " + camelContext.isSuspended());
46         }
47
48         List<Route> routes = camelContext.getRoutes();
49         List<RouteStatus> routeStatuses = new ArrayList<RouteStatus>();
50         for (Route route : routes) {
51             RouteStatus rs = new RouteStatus();
52             rs.setId(route.getId());
53             rs.setServiceStatus(camelContext.getRouteStatus(route.getId()));
54             routeStatuses.add(rs);
55         }
56
57         model.addAttribute("routeStatuses", routeStatuses);
58
59         return "dashboard";
60     }
61
62     @RequestMapping(value = "/dashboard/{routeId}/start", method = RequestMethod.GET)
63     public String startRoute(@PathVariable String routeId) {
64         try {
65             camelContext.startRoute(routeId);
66
67             LOGGER.info("camel context is starting route [" + routeId + "]");
68         } catch (Exception e) {
69             LOGGER.error("failed to start camel context [" + camelContext + "]", e);
70         }
71         return "redirect:/dashboard";
72     }
73
74     @RequestMapping(value = "/dashboard/{routeId}/stop", method = RequestMethod.GET)
75     public String stopRoute(@PathVariable String routeId) {
76         try {
77             camelContext.stopRoute(routeId);
78
79             LOGGER.info("camel context is stopping route [" + routeId + "]");
80         } catch (Exception e) {
81             LOGGER.error("failed to stop camel context [" + camelContext + "]", e);
82         }
83         return "redirect:/dashboard";
84     }
85
86 }

 1 package com.weinuts.to;
 2
 3 import org.apache.camel.ServiceStatus;
 4
 5 /**
 6  *
 7  * @author ke.zhang
 8  * @since Mar 03, 2016
 9  */
10 public class RouteStatus {
11
12     private String id;
13
14     private ServiceStatus serviceStatus;
15
16     public String getId() {
17         return id;
18     }
19
20     public void setId(String id) {
21         this.id = id;
22     }
23
24     public ServiceStatus getServiceStatus() {
25         return serviceStatus;
26     }
27
28     public void setServiceStatus(ServiceStatus serviceStatus) {
29         this.serviceStatus = serviceStatus;
30     }
31
32 }

时间: 2024-11-25 21:27:00

Mark:Spring MVC实现对Camel Route的管理的相关文章

搭建一个基于CentOS的可视化zookeeper管理工具zkUI实现对zk的可视化管理

一. zookeeper 可视化工具 JMX => CLRProfile ZKUI => java写的一个可视化的web网站 github中下载 https://github.com/DeemOpen/zkui git 拉取地址 :https://github.com/DeemOpen/zkui.git CoentOS 安装 git maven 1. git 安装: (在linux下安装卸载git非常方便)  命令 :yum remove git 删除git  命令 :yum -y insta

Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问

本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这部分内容需要以下Jar包支持 mysql-connector:MySQL数据库连接驱动,架起服务端与数据库沟通的桥梁: MyBatis:一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架: log4j:Apache的开源项目,一个功能强大的日志组件,提供方便的日志记录: 修改后的pom.xm

Spring MVC 学习笔记(二):@RequestMapping用法详解

一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置 <servlet>     <servlet-name>servletName</servlet-name>     <servlet-class>ServletClass</servlet-class> </servlet>

Spring MVC 学习笔记-----data binding

Servlet中的输入参数为都是string类型,而spring mvc通过data bind机制将这些string 类型的输入参数转换为相应的command object(根据view和controller之间传输数据的具体逻辑,也可称为model attributes, domain model objects).在这个转换过程中,spring实际是先利用java.beans.PropertyEditor中的 setAdText方法来把string格式的输入转换为bean属性, 亦可通过继承

spring mvc 方法注解拦截器

应用场景,在方法级别对本次调用进行鉴权,如api接口中有个用户唯一标示accessToken,对于有accessToken的每次请求可以在方法加一个拦截器,获得本次请求的用户,存放到request或者session域. python中,之前在python flask中可以使用装饰器来对方法进行预处理,进行权限处理 先看一个实例,使用@access_required拦截: @api.route('/post_apply') @access_required def apply():     "&q

基于Spring + Spring MVC + Mybatis + shiro 高性能web构建

一直想写这篇文章,前段时间 痴迷于JavaScript.NodeJs.AngularJS,做了大量的研究,对前后端交互有了更深层次的认识. 今天抽个时间写这篇文章,我有预感,这将是一篇很详细的文章,详细的配置,详细的注释,看起来应该很容易懂. 用最合适的技术去实现,并不断追求最佳实践.这就是架构之道. 希望这篇文章能给你们带来一些帮助,同时希望你们可以为这个项目贡献你的想法. 源码地址:https://github.com/starzou/quick4j 点击打开 看我们的项目结构: 是一个典型

IntelliJ IDEA 13.x 下使用Hibernate + Spring MVC + JBoss 7.1.1

原文:IntelliJ IDEA 13.x 下使用Hibernate + Spring MVC + JBoss 7.1.1 从2004年开始做.NET到现在.直到最近要做一些JAVA的项目,如果说100个人写一篇关于.NET的文章,估计这10个人写的内容都是一样.但是如果说10个人写Java的文章,那真的是10个人10种写法.这就是最头痛的地方,开始学的时候真的很迷惑. 这里我们使用的是Hibernate 4.x + Spring MVC 3.x 1.建立一个Spring MVC的Project

02-keepalived实现对nginx服务的高可用(主备)

实验环境:controller3,controller4为后端web服务器,controller1,controller2为nginx负载均衡服务器,用keepalived实现主备模式的高可用 controller1  IP:9.110.187.120 10.1.1.120 controller2  IP:9.110.187.121 10.1.1.121 controller3  IP:10.1.1.122 controller4  IP:10.1.1.123 1.controller3,con

Spring MVC 遇到的一点点问题(转)

今天下午下班之前看了看凯歌给的Spring Training的教程的lab篇,我之前有跟着做没有遇到什么问题,但是到了跟Spring MVC integrating的时候,遇到一点点有趣的事情. 这个例子很简单,我照着网上的demo做,然后遇到了点问题,请看下面:项目层次 很简单     然后是web.xml的配置 Java代码   <servlet> <servlet-name>SpringMvcDemo</servlet-name> <servlet-clas