package com.yihu.hos.controllers; import com.yihu.hos.common.compiler.ClassParams; import com.yihu.hos.services.ESBCamelService; import com.yihu.hos.web.framework.model.Result; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; /** * Created by lingfeng on 2016/8/4. */ @Controller @RequestMapping("/esb") public class ESBCamelController { @Resource(name= ESBCamelService.BEAN_ID) ESBCamelService esbCamelService; @RequestMapping(value = "/test", produces = "application/json;charset=UTF-8", method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "新增Processor处理器", produces = "application/json", notes = "当外界组件通知一个新的processor处理器被定义时,该事件被触发") public Result test() { return Result.success("test"); } @RequestMapping(value = "/processor", produces = "application/json;charset=UTF-8", method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "新增Processor处理器", produces = "application/json", notes = "当外界组件通知一个新的processor处理器被定义时,该事件被触发") public Result onProcessorAdded( @ApiParam(name = "serviceFlow", value = "服务名称", required = true) @RequestParam(value = "serviceFlow") String serviceFlow, @ApiParam(name = "packageName", value = "包名", required = true) @RequestParam(value = "packageName") String packageName, @ApiParam(name = "className", value = "类名", required = true) @RequestParam(value = "className") String className, @ApiParam(name = "path", value = "class文件路径", required = true) @RequestParam(value = "path") String path) { return esbCamelService.onProcessorAdded(serviceFlow, packageName, className, path); } @RequestMapping(value = "/processor", produces = "application/json;charset=UTF-8", method = RequestMethod.PUT) @ResponseBody @ApiOperation(value = "修改Processor处理器", produces = "application/json", notes = "当外界组件通知一个已有的processor处理器data部分发生变化时,该事件被触发") public Result onProcessorDataChanged( @ApiParam(name = "serviceFlow", value = "服务名称", required = true) @RequestParam(value = "serviceFlow") String serviceFlow, @ApiParam(name = "packageName", value = "包名", required = true) @RequestParam(value = "packageName") String packageName, @ApiParam(name = "className", value = "类名", required = true) @RequestParam(value = "className") String className, @ApiParam(name = "path", value = "class文件路径", required = true) @RequestParam(value = "path") String path) { return esbCamelService.onProcessorDataChanged(serviceFlow, packageName, className, path); } @RequestMapping(value = "/processor", produces = "application/json;charset=UTF-8", method = RequestMethod.DELETE) @ResponseBody @ApiOperation(value = "删除Processor处理器", produces = "application/json", notes = "当外界组件通知一个已有的processor处理器data部分发生删除时,该事件被触发") public Result onProcessorDataDelete( @ApiParam(name = "serviceFlow", value = "服务名称", required = true) @RequestParam(value = "serviceFlow") String serviceFlow, @ApiParam(name = "packageName", value = "包名", required = true) @RequestParam(value = "packageName") String packageName, @ApiParam(name = "className", value = "类名", required = true) @RequestParam(value = "className") String className) { return esbCamelService.onProcessorDataDelete(serviceFlow, packageName, className); } @RequestMapping(value = "/route", produces = "application/json;charset=UTF-8", method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "新增Route路由", produces = "application/json", notes = "当外界组件通知一个新的RouteDefine路由被定义时,该事件被触发") public Result onRouteDefineAdded( @ApiParam(name = "serviceFlow", value = "服务名称", required = true) @RequestParam(value = "serviceFlow") String serviceFlow, @ApiParam(name = "packageName", value = "包名", required = true) @RequestParam(value = "packageName") String packageName, @ApiParam(name = "className", value = "类名", required = true) @RequestParam(value = "className") String className, @ApiParam(name = "path", value = "class文件路径", required = true) @RequestParam(value = "path") String path) { return esbCamelService.onRouteDefineAdded(serviceFlow, packageName, className, path); } @RequestMapping(value = "/route", produces = "application/json;charset=UTF-8", method = RequestMethod.PUT) @ResponseBody @ApiOperation(value = "修改Route路由", produces = "application/json", notes = "当外界组件通知一个已有的RouteDefine路由定义被改变时,主要就是路由定义内容被改变时,该事件被触发") public Result onRouteDefineChanged( @ApiParam(name = "serviceFlow", value = "服务名称", required = true) @RequestParam(value = "serviceFlow") String serviceFlow, @ApiParam(name = "packageName", value = "包名", required = true) @RequestParam(value = "packageName") String packageName, @ApiParam(name = "className", value = "类名", required = true) @RequestParam(value = "className") String className, @ApiParam(name = "path", value = "class文件路径", required = true) @RequestParam(value = "path") String path) { return esbCamelService.onRouteDefineChanged(serviceFlow, packageName, className, path); } @RequestMapping(value = "/route", produces = "application/json;charset=UTF-8", method = RequestMethod.DELETE) @ResponseBody @ApiOperation(value = "删除Route路由", produces = "application/json", notes = "当外界组件通知一个已有的RouteDefine路由定义被删除时,该事件被触发") public Result onRouteDefineDelete( @ApiParam(name = "serviceFlow", value = "服务名称", required = true) @RequestParam(value = "serviceFlow") String serviceFlow, @ApiParam(name = "packageName", value = "包名", required = true) @RequestParam(value = "packageName") String packageName, @ApiParam(name = "className", value = "类名", required = true) @RequestParam(value = "className") String className) { return esbCamelService.onRouteDefineDelete(serviceFlow, packageName, className); } @RequestMapping(value = "/route/start", produces = "application/json;charset=UTF-8", method = RequestMethod.PUT) @ResponseBody @ApiOperation(value = "删除Route路由", produces = "application/json", notes = "启动路由时,该事件被触发") public Result onRouteDefineStart( @ApiParam(name = "serviceFlow", value = "服务名称", required = true) @RequestParam(value = "serviceFlow") String serviceFlow) { return esbCamelService.onRouteDefineStart(serviceFlow); } @RequestMapping(value = "/route/stop", produces = "application/json;charset=UTF-8", method = RequestMethod.PUT) @ResponseBody @ApiOperation(value = "删除Route路由", produces = "application/json", notes = "停止路由时,该事件被触发") public Result onRouteDefineStop( @ApiParam(name = "serviceFlow", value = "服务名称", required = true) @RequestParam(value = "serviceFlow") String serviceFlow) { return esbCamelService.onRouteDefineStop(serviceFlow); } @RequestMapping(value = "/genRoute", produces = "application/json;charset=UTF-8", method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "生成新的route文件", produces = "application/json", notes = "生成新的camel文件") public Result genRoute( @ApiParam(name = "serviceFlow", value = "服务名称", required = true) @RequestParam(value = "serviceFlow",required = true) String serviceFlow, @ApiParam(name = "path", value = "文件路径", required = true) @RequestParam(value = "path",required = true) String path, @ApiParam(name = "packageName", value = "包名", required = true) @RequestParam(value = "packageName") String packageName, @ApiParam(name = "className", value = "类名", required = true) @RequestParam(value = "className") String className, @ApiParam(name = "cron", value = "新cron表达式", required = true) @RequestParam(value = "cron") String cron) { ClassParams params = new ClassParams(); params.setRouteId(serviceFlow); params.setPackageName(packageName); params.setFilePath(path); params.setOldClassName(className); params.setNewClassName(className+serviceFlow); params.setCron(cron); return esbCamelService.onRouteClassAdded(params); } @RequestMapping(value = "/updateRoute", produces = "application/json;charset=UTF-8", method = RequestMethod.PUT) @ResponseBody @ApiOperation(value = "修改route文件", produces = "application/json", notes = "生成新的camel文件") public Result updateRoute( @ApiParam(name = "serviceFlow", value = "服务名称", required = true) @RequestParam(value = "serviceFlow",required = true) String serviceFlow, @ApiParam(name = "path", value = "文件路径", required = true) @RequestParam(value = "path",required = true) String path, @ApiParam(name = "packageName", value = "包名", required = true) @RequestParam(value = "packageName") String packageName, @ApiParam(name = "className", value = "类名", required = true) @RequestParam(value = "className") String className, @ApiParam(name = "cron", value = "新cron表达式", required = true) @RequestParam(value = "cron") String cron) { ClassParams params = new ClassParams(); params.setRouteId(serviceFlow); params.setPackageName(packageName); params.setFilePath(path); params.setOldClassName(className); params.setNewClassName(className+serviceFlow); params.setCron(cron); return esbCamelService.onRouteClassChanged(params); } @RequestMapping(value = "/genProcessor", produces = "application/json;charset=UTF-8", method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "生成新的processor文件", produces = "application/json", notes = "生成新的camel文件") public Result genProcessor( @ApiParam(name = "serviceFlow", value = "服务名称", required = true) @RequestParam(value = "serviceFlow",required = true) String serviceFlow, @ApiParam(name = "path", value = "文件路径", required = true) @RequestParam(value = "path",required = true) String path, @ApiParam(name = "packageName", value = "包名", required = true) @RequestParam(value = "packageName") String packageName, @ApiParam(name = "className", value = "类名", required = true) @RequestParam(value = "className") String className, @ApiParam(name = "cron", value = "新cron表达式", required = true) @RequestParam(value = "cron") String cron) { return esbCamelService.onProcessorClassAdded(serviceFlow, packageName, className,path); } }