ESBCamelController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. package com.yihu.hos.controllers;
  2. import com.yihu.hos.common.compiler.ClassParams;
  3. import com.yihu.hos.services.ESBCamelService;
  4. import com.yihu.hos.web.framework.model.Result;
  5. import io.swagger.annotations.ApiOperation;
  6. import io.swagger.annotations.ApiParam;
  7. import org.springframework.stereotype.Controller;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.RequestMethod;
  10. import org.springframework.web.bind.annotation.RequestParam;
  11. import org.springframework.web.bind.annotation.ResponseBody;
  12. import javax.annotation.Resource;
  13. /**
  14. * Created by lingfeng on 2016/8/4.
  15. */
  16. @Controller
  17. @RequestMapping("/esb")
  18. public class ESBCamelController {
  19. @Resource(name= ESBCamelService.BEAN_ID)
  20. ESBCamelService esbCamelService;
  21. @RequestMapping(value = "/test", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
  22. @ResponseBody
  23. @ApiOperation(value = "新增Processor处理器", produces = "application/json", notes = "当外界组件通知一个新的processor处理器被定义时,该事件被触发")
  24. public Result test() {
  25. return Result.success("test");
  26. }
  27. @RequestMapping(value = "/processor", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
  28. @ResponseBody
  29. @ApiOperation(value = "新增Processor处理器", produces = "application/json", notes = "当外界组件通知一个新的processor处理器被定义时,该事件被触发")
  30. public Result onProcessorAdded(
  31. @ApiParam(name = "serviceFlow", value = "服务名称", required = true)
  32. @RequestParam(value = "serviceFlow") String serviceFlow,
  33. @ApiParam(name = "packageName", value = "包名", required = true)
  34. @RequestParam(value = "packageName") String packageName,
  35. @ApiParam(name = "className", value = "类名", required = true)
  36. @RequestParam(value = "className") String className,
  37. @ApiParam(name = "path", value = "class文件路径", required = true)
  38. @RequestParam(value = "path") String path) {
  39. return esbCamelService.onProcessorAdded(serviceFlow, packageName, className, path);
  40. }
  41. @RequestMapping(value = "/processor", produces = "application/json;charset=UTF-8", method = RequestMethod.PUT)
  42. @ResponseBody
  43. @ApiOperation(value = "修改Processor处理器", produces = "application/json", notes = "当外界组件通知一个已有的processor处理器data部分发生变化时,该事件被触发")
  44. public Result onProcessorDataChanged(
  45. @ApiParam(name = "serviceFlow", value = "服务名称", required = true)
  46. @RequestParam(value = "serviceFlow") String serviceFlow,
  47. @ApiParam(name = "packageName", value = "包名", required = true)
  48. @RequestParam(value = "packageName") String packageName,
  49. @ApiParam(name = "className", value = "类名", required = true)
  50. @RequestParam(value = "className") String className,
  51. @ApiParam(name = "path", value = "class文件路径", required = true)
  52. @RequestParam(value = "path") String path) {
  53. return esbCamelService.onProcessorDataChanged(serviceFlow, packageName, className, path);
  54. }
  55. @RequestMapping(value = "/processor", produces = "application/json;charset=UTF-8", method = RequestMethod.DELETE)
  56. @ResponseBody
  57. @ApiOperation(value = "删除Processor处理器", produces = "application/json", notes = "当外界组件通知一个已有的processor处理器data部分发生删除时,该事件被触发")
  58. public Result onProcessorDataDelete(
  59. @ApiParam(name = "serviceFlow", value = "服务名称", required = true)
  60. @RequestParam(value = "serviceFlow") String serviceFlow,
  61. @ApiParam(name = "packageName", value = "包名", required = true)
  62. @RequestParam(value = "packageName") String packageName,
  63. @ApiParam(name = "className", value = "类名", required = true)
  64. @RequestParam(value = "className") String className) {
  65. return esbCamelService.onProcessorDataDelete(serviceFlow, packageName, className);
  66. }
  67. @RequestMapping(value = "/route", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
  68. @ResponseBody
  69. @ApiOperation(value = "新增Route路由", produces = "application/json", notes = "当外界组件通知一个新的RouteDefine路由被定义时,该事件被触发")
  70. public Result onRouteDefineAdded(
  71. @ApiParam(name = "serviceFlow", value = "服务名称", required = true)
  72. @RequestParam(value = "serviceFlow") String serviceFlow,
  73. @ApiParam(name = "packageName", value = "包名", required = true)
  74. @RequestParam(value = "packageName") String packageName,
  75. @ApiParam(name = "className", value = "类名", required = true)
  76. @RequestParam(value = "className") String className,
  77. @ApiParam(name = "path", value = "class文件路径", required = true)
  78. @RequestParam(value = "path") String path) {
  79. return esbCamelService.onRouteDefineAdded(serviceFlow, packageName, className, path);
  80. }
  81. @RequestMapping(value = "/route", produces = "application/json;charset=UTF-8", method = RequestMethod.PUT)
  82. @ResponseBody
  83. @ApiOperation(value = "修改Route路由", produces = "application/json", notes = "当外界组件通知一个已有的RouteDefine路由定义被改变时,主要就是路由定义内容被改变时,该事件被触发")
  84. public Result onRouteDefineChanged(
  85. @ApiParam(name = "serviceFlow", value = "服务名称", required = true)
  86. @RequestParam(value = "serviceFlow") String serviceFlow,
  87. @ApiParam(name = "packageName", value = "包名", required = true)
  88. @RequestParam(value = "packageName") String packageName,
  89. @ApiParam(name = "className", value = "类名", required = true)
  90. @RequestParam(value = "className") String className,
  91. @ApiParam(name = "path", value = "class文件路径", required = true)
  92. @RequestParam(value = "path") String path) {
  93. return esbCamelService.onRouteDefineChanged(serviceFlow, packageName, className, path);
  94. }
  95. @RequestMapping(value = "/route", produces = "application/json;charset=UTF-8", method = RequestMethod.DELETE)
  96. @ResponseBody
  97. @ApiOperation(value = "删除Route路由", produces = "application/json", notes = "当外界组件通知一个已有的RouteDefine路由定义被删除时,该事件被触发")
  98. public Result onRouteDefineDelete(
  99. @ApiParam(name = "serviceFlow", value = "服务名称", required = true)
  100. @RequestParam(value = "serviceFlow") String serviceFlow,
  101. @ApiParam(name = "packageName", value = "包名", required = true)
  102. @RequestParam(value = "packageName") String packageName,
  103. @ApiParam(name = "className", value = "类名", required = true)
  104. @RequestParam(value = "className") String className) {
  105. return esbCamelService.onRouteDefineDelete(serviceFlow, packageName, className);
  106. }
  107. @RequestMapping(value = "/route/start", produces = "application/json;charset=UTF-8", method = RequestMethod.PUT)
  108. @ResponseBody
  109. @ApiOperation(value = "删除Route路由", produces = "application/json", notes = "启动路由时,该事件被触发")
  110. public Result onRouteDefineStart(
  111. @ApiParam(name = "serviceFlow", value = "服务名称", required = true)
  112. @RequestParam(value = "serviceFlow") String serviceFlow) {
  113. return esbCamelService.onRouteDefineStart(serviceFlow);
  114. }
  115. @RequestMapping(value = "/route/stop", produces = "application/json;charset=UTF-8", method = RequestMethod.PUT)
  116. @ResponseBody
  117. @ApiOperation(value = "删除Route路由", produces = "application/json", notes = "停止路由时,该事件被触发")
  118. public Result onRouteDefineStop(
  119. @ApiParam(name = "serviceFlow", value = "服务名称", required = true)
  120. @RequestParam(value = "serviceFlow") String serviceFlow) {
  121. return esbCamelService.onRouteDefineStop(serviceFlow);
  122. }
  123. @RequestMapping(value = "/genRoute", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
  124. @ResponseBody
  125. @ApiOperation(value = "生成新的route文件", produces = "application/json", notes = "生成新的camel文件")
  126. public Result genRoute(
  127. @ApiParam(name = "serviceFlow", value = "服务名称", required = true)
  128. @RequestParam(value = "serviceFlow",required = true) String serviceFlow,
  129. @ApiParam(name = "path", value = "文件路径", required = true)
  130. @RequestParam(value = "path",required = true) String path,
  131. @ApiParam(name = "packageName", value = "包名", required = true)
  132. @RequestParam(value = "packageName") String packageName,
  133. @ApiParam(name = "className", value = "类名", required = true)
  134. @RequestParam(value = "className") String className,
  135. @ApiParam(name = "cron", value = "新cron表达式", required = true)
  136. @RequestParam(value = "cron") String cron) {
  137. ClassParams params = new ClassParams();
  138. params.setRouteId(serviceFlow);
  139. params.setPackageName(packageName);
  140. params.setFilePath(path);
  141. params.setOldClassName(className);
  142. params.setNewClassName(className+serviceFlow);
  143. params.setCron(cron);
  144. return esbCamelService.onRouteClassAdded(params);
  145. }
  146. @RequestMapping(value = "/updateRoute", produces = "application/json;charset=UTF-8", method = RequestMethod.PUT)
  147. @ResponseBody
  148. @ApiOperation(value = "修改route文件", produces = "application/json", notes = "生成新的camel文件")
  149. public Result updateRoute(
  150. @ApiParam(name = "serviceFlow", value = "服务名称", required = true)
  151. @RequestParam(value = "serviceFlow",required = true) String serviceFlow,
  152. @ApiParam(name = "path", value = "文件路径", required = true)
  153. @RequestParam(value = "path",required = true) String path,
  154. @ApiParam(name = "packageName", value = "包名", required = true)
  155. @RequestParam(value = "packageName") String packageName,
  156. @ApiParam(name = "className", value = "类名", required = true)
  157. @RequestParam(value = "className") String className,
  158. @ApiParam(name = "cron", value = "新cron表达式", required = true)
  159. @RequestParam(value = "cron") String cron) {
  160. ClassParams params = new ClassParams();
  161. params.setRouteId(serviceFlow);
  162. params.setPackageName(packageName);
  163. params.setFilePath(path);
  164. params.setOldClassName(className);
  165. params.setNewClassName(className+serviceFlow);
  166. params.setCron(cron);
  167. return esbCamelService.onRouteClassChanged(params);
  168. }
  169. @RequestMapping(value = "/genProcessor", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
  170. @ResponseBody
  171. @ApiOperation(value = "生成新的processor文件", produces = "application/json", notes = "生成新的camel文件")
  172. public Result genProcessor(
  173. @ApiParam(name = "serviceFlow", value = "服务名称", required = true)
  174. @RequestParam(value = "serviceFlow",required = true) String serviceFlow,
  175. @ApiParam(name = "path", value = "文件路径", required = true)
  176. @RequestParam(value = "path",required = true) String path,
  177. @ApiParam(name = "packageName", value = "包名", required = true)
  178. @RequestParam(value = "packageName") String packageName,
  179. @ApiParam(name = "className", value = "类名", required = true)
  180. @RequestParam(value = "className") String className,
  181. @ApiParam(name = "cron", value = "新cron表达式", required = true)
  182. @RequestParam(value = "cron") String cron) {
  183. return esbCamelService.onProcessorClassAdded(serviceFlow, packageName, className,path);
  184. }
  185. }