From da18787545266c8c7a124f98d384a14af7fda18f Mon Sep 17 00:00:00 2001 From: Nepxion <1394997@qq.com> Date: Sat, 30 Nov 2019 18:08:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E7=81=B0=E5=BA=A6Actuator?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=8F=90=E5=8D=87=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- discovery-console/pom.xml | 5 --- .../ConsoleAutoConfiguration.java | 13 ------- .../console/endpoint/ConsoleEndpoint.java | 35 ++++--------------- discovery-plugin-admin-center/pom.xml | 5 --- .../configuration/AdminAutoConfiguration.java | 6 ++-- .../admincenter/endpoint/ConfigEndpoint.java | 10 ------ .../admincenter/endpoint/GitEndpoint.java | 7 ---- .../admincenter/endpoint/RouterEndpoint.java | 17 +++------ .../endpoint/SentinelCoreEndpoint.java | 17 --------- .../endpoint/SentinelParamEndpoint.java | 8 ----- .../admincenter/endpoint/VersionEndpoint.java | 10 ------ 11 files changed, 14 insertions(+), 119 deletions(-) diff --git a/discovery-console/pom.xml b/discovery-console/pom.xml index d3a2a6be59..b4e4d49a2c 100644 --- a/discovery-console/pom.xml +++ b/discovery-console/pom.xml @@ -40,11 +40,6 @@ spring-boot-starter-web - - org.springframework.boot - spring-boot-starter-actuator - - io.springfox springfox-swagger2 diff --git a/discovery-console/src/main/java/com/nepxion/discovery/console/configuration/ConsoleAutoConfiguration.java b/discovery-console/src/main/java/com/nepxion/discovery/console/configuration/ConsoleAutoConfiguration.java index 36872b6047..72398b6fc1 100644 --- a/discovery-console/src/main/java/com/nepxion/discovery/console/configuration/ConsoleAutoConfiguration.java +++ b/discovery-console/src/main/java/com/nepxion/discovery/console/configuration/ConsoleAutoConfiguration.java @@ -9,15 +9,11 @@ * @version 1.0 */ -import org.springframework.boot.actuate.endpoint.web.annotation.RestControllerEndpoint; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; -import org.springframework.web.client.RestTemplate; -import com.nepxion.discovery.common.handler.RestErrorHandler; import com.nepxion.discovery.console.authentication.AuthenticationResource; import com.nepxion.discovery.console.authentication.AuthenticationResourceImpl; import com.nepxion.discovery.console.endpoint.ConsoleEndpoint; @@ -25,21 +21,12 @@ @Configuration @Import({ SwaggerConfiguration.class, CorsRegistryConfiguration.class }) public class ConsoleAutoConfiguration { - @ConditionalOnClass(RestControllerEndpoint.class) protected static class ConsoleEndpointConfiguration { @Bean public ConsoleEndpoint consoleEndpoint() { return new ConsoleEndpoint(); } - @Bean - public RestTemplate consoleRestTemplate() { - RestTemplate restTemplate = new RestTemplate(); - restTemplate.setErrorHandler(new RestErrorHandler()); - - return restTemplate; - } - @Bean @ConditionalOnMissingBean public AuthenticationResource authenticationResource() { diff --git a/discovery-console/src/main/java/com/nepxion/discovery/console/endpoint/ConsoleEndpoint.java b/discovery-console/src/main/java/com/nepxion/discovery/console/endpoint/ConsoleEndpoint.java index d38c708619..780130cfa8 100644 --- a/discovery-console/src/main/java/com/nepxion/discovery/console/endpoint/ConsoleEndpoint.java +++ b/discovery-console/src/main/java/com/nepxion/discovery/console/endpoint/ConsoleEndpoint.java @@ -23,14 +23,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.endpoint.web.annotation.RestControllerEndpoint; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.cloud.client.discovery.composite.CompositeDiscoveryClient; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.jmx.export.annotation.ManagedOperation; -import org.springframework.jmx.export.annotation.ManagedResource; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -43,6 +40,7 @@ import com.nepxion.discovery.common.entity.InstanceEntity; import com.nepxion.discovery.common.entity.InstanceEntityWrapper; import com.nepxion.discovery.common.entity.UserEntity; +import com.nepxion.discovery.common.handler.RestErrorHandler; import com.nepxion.discovery.console.adapter.ConfigAdapter; import com.nepxion.discovery.console.authentication.AuthenticationResource; import com.nepxion.discovery.console.rest.ConfigClearRestInvoker; @@ -55,8 +53,6 @@ @RestController @RequestMapping(path = "/console") @Api(tags = { "控制台接口" }) -@RestControllerEndpoint(id = "console") -@ManagedResource(description = "Console Endpoint") public class ConsoleEndpoint { private static final Logger LOG = LoggerFactory.getLogger(ConsoleEndpoint.class); @@ -69,15 +65,18 @@ public class ConsoleEndpoint { private ConfigAdapter configAdapter; @Autowired + private AuthenticationResource authenticationResource; + private RestTemplate consoleRestTemplate; - @Autowired - private AuthenticationResource authenticationResource; + public ConsoleEndpoint() { + consoleRestTemplate = new RestTemplate(); + consoleRestTemplate.setErrorHandler(new RestErrorHandler()); + } @RequestMapping(path = "/authenticate", method = RequestMethod.POST) @ApiOperation(value = "登录认证", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity authenticate(@RequestBody @ApiParam(value = "UserEntity实例", required = true) UserEntity userEntity) { return executeAuthenticate(userEntity); } @@ -85,7 +84,6 @@ public ResponseEntity authenticate(@RequestBody @ApiParam(value = "UserEntity @RequestMapping(path = "/discovery-type", method = RequestMethod.GET) @ApiOperation(value = "获取注册发现中心类型", notes = "", response = ResponseEntity.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public ResponseEntity discoveryType() { return getDiscoveryType(); } @@ -93,7 +91,6 @@ public ResponseEntity discoveryType() { @RequestMapping(path = "/config-type", method = RequestMethod.GET) @ApiOperation(value = "获取配置中心类型", notes = "", response = ResponseEntity.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public ResponseEntity configType() { return getConfigType(); } @@ -101,7 +98,6 @@ public ResponseEntity configType() { @RequestMapping(path = "/groups", method = RequestMethod.GET) @ApiOperation(value = "获取服务注册中心的服务组名列表", notes = "", response = List.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public List groups() { return getGroups(); } @@ -109,7 +105,6 @@ public List groups() { @RequestMapping(path = "/services", method = RequestMethod.GET) @ApiOperation(value = "获取服务注册中心的服务名列表", notes = "", response = List.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public List services() { return getServices(); } @@ -117,7 +112,6 @@ public List services() { @RequestMapping(path = "/instances/{serviceId}", method = RequestMethod.GET) @ApiOperation(value = "获取服务注册中心的服务实例列表", notes = "", response = List.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public List instances(@PathVariable(value = "serviceId") @ApiParam(value = "服务名", required = true) String serviceId) { return getInstances(serviceId); } @@ -125,7 +119,6 @@ public List instances(@PathVariable(value = "serviceId") @ApiPa @RequestMapping(path = "/instance-list/{serviceId}", method = RequestMethod.GET) @ApiOperation(value = "获取服务注册中心的服务实例列表(精简数据)", notes = "", response = List.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public List instanceList(@PathVariable(value = "serviceId") @ApiParam(value = "服务名", required = true) String serviceId) { return getInstanceList(serviceId); } @@ -133,7 +126,6 @@ public List instanceList(@PathVariable(value = "serviceId") @Api @RequestMapping(path = "/instance-map", method = RequestMethod.POST) @ApiOperation(value = "获取服务注册中心的服务实例的Map(精简数据)", notes = "服务组名列表", response = Map.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public Map> instanceMap(@RequestBody @ApiParam(value = "服务组名列表,传入空列则可以获取全部服务实例数据", required = true) List groups) { return getInstanceMap(groups); } @@ -141,7 +133,6 @@ public Map> instanceMap(@RequestBody @ApiParam(valu @RequestMapping(path = "/remote-config/update/{group}/{serviceId}", method = RequestMethod.POST) @ApiOperation(value = "推送更新规则配置信息到远程配置中心", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity remoteConfigUpdate(@PathVariable(value = "group") @ApiParam(value = "组名", required = true) String group, @PathVariable(value = "serviceId") @ApiParam(value = "服务名。当全局推送模式下,服务名必须由组名来代替", required = true) String serviceId, @RequestBody @ApiParam(value = "规则配置内容,XML格式", required = true) String config) { return executeRemoteConfigUpdate(group, serviceId, config); } @@ -149,7 +140,6 @@ public ResponseEntity remoteConfigUpdate(@PathVariable(value = "group") @ApiP @RequestMapping(path = "/remote-config/clear/{group}/{serviceId}", method = RequestMethod.POST) @ApiOperation(value = "清除规则配置信息到远程配置中心", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity remoteConfigClear(@PathVariable(value = "group") @ApiParam(value = "组名", required = true) String group, @PathVariable(value = "serviceId") @ApiParam(value = "服务名。当全局推送模式下,服务名必须由组名来代替", required = true) String serviceId) { return executeRemoteConfigClear(group, serviceId); } @@ -157,7 +147,6 @@ public ResponseEntity remoteConfigClear(@PathVariable(value = "group") @ApiPa @RequestMapping(path = "/remote-config/view/{group}/{serviceId}", method = RequestMethod.GET) @ApiOperation(value = "查看远程配置中心的规则配置信息", notes = "", response = ResponseEntity.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public ResponseEntity remoteConfigView(@PathVariable(value = "group") @ApiParam(value = "组名", required = true) String group, @PathVariable(value = "serviceId") @ApiParam(value = "服务名。当全局推送模式下,服务名必须由组名来代替", required = true) String serviceId) { return executeRemoteConfigView(group, serviceId); } @@ -165,7 +154,6 @@ public ResponseEntity remoteConfigView(@PathVariable(value = "group") @ApiPar @RequestMapping(path = "/config/update-async/{serviceId}", method = RequestMethod.POST) @ApiOperation(value = "批量异步推送更新规则配置信息", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity configUpdateAsync(@PathVariable(value = "serviceId") @ApiParam(value = "服务名", required = true) String serviceId, @RequestBody @ApiParam(value = "规则配置内容,XML格式", required = true) String config) { return executeConfigUpdate(serviceId, config, true); } @@ -173,7 +161,6 @@ public ResponseEntity configUpdateAsync(@PathVariable(value = "serviceId") @A @RequestMapping(path = "/config/update-sync/{serviceId}", method = RequestMethod.POST) @ApiOperation(value = "批量同步推送更新规则配置信息", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity configUpdateSync(@PathVariable(value = "serviceId") @ApiParam(value = "服务名", required = true) String serviceId, @RequestBody @ApiParam(value = "规则配置内容,XML格式", required = true) String config) { return executeConfigUpdate(serviceId, config, false); } @@ -181,7 +168,6 @@ public ResponseEntity configUpdateSync(@PathVariable(value = "serviceId") @Ap @RequestMapping(path = "/config/clear-async/{serviceId}", method = RequestMethod.POST) @ApiOperation(value = "批量异步清除更新的规则配置信息", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity configClearAsync(@PathVariable(value = "serviceId") @ApiParam(value = "服务名", required = true) String serviceId) { return executeConfigClear(serviceId, true); } @@ -189,7 +175,6 @@ public ResponseEntity configClearAsync(@PathVariable(value = "serviceId") @Ap @RequestMapping(path = "/config/clear-sync/{serviceId}", method = RequestMethod.POST) @ApiOperation(value = "批量同步清除更新的规则配置信息", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity configClearSync(@PathVariable(value = "serviceId") @ApiParam(value = "服务名", required = true) String serviceId) { return executeConfigClear(serviceId, false); } @@ -197,7 +182,6 @@ public ResponseEntity configClearSync(@PathVariable(value = "serviceId") @Api @RequestMapping(path = "/version/update-async/{serviceId}", method = RequestMethod.POST) @ApiOperation(value = "批量异步更新服务的动态版本", notes = "根据指定的localVersion更新服务的dynamicVersion。如果输入的localVersion不匹配服务的localVersion,则忽略;如果如果输入的localVersion为空,则直接更新服务的dynamicVersion", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity versionUpdateAsync(@PathVariable(value = "serviceId") @ApiParam(value = "服务名", required = true) String serviceId, @RequestBody @ApiParam(value = "版本号,格式为[dynamicVersion]或者[dynamicVersion];[localVersion]", required = true) String version) { return executeVersionUpdate(serviceId, version, true); } @@ -205,7 +189,6 @@ public ResponseEntity configClearSync(@PathVariable(value = "serviceId") @Api @RequestMapping(path = "/version/update-sync/{serviceId}", method = RequestMethod.POST) @ApiOperation(value = "批量同步更新服务的动态版本", notes = "根据指定的localVersion更新服务的dynamicVersion。如果输入的localVersion不匹配服务的localVersion,则忽略;如果如果输入的localVersion为空,则直接更新服务的dynamicVersion", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity versionUpdateSync(@PathVariable(value = "serviceId") @ApiParam(value = "服务名", required = true) String serviceId, @RequestBody @ApiParam(value = "版本号,格式为[dynamicVersion]或者[dynamicVersion];[localVersion]", required = true) String version) { return executeVersionUpdate(serviceId, version, false); } @@ -213,7 +196,6 @@ public ResponseEntity configClearSync(@PathVariable(value = "serviceId") @Api @RequestMapping(path = "/version/clear-async/{serviceId}", method = RequestMethod.POST) @ApiOperation(value = "批量异步清除服务的动态版本", notes = "根据指定的localVersion清除服务的dynamicVersion。如果输入的localVersion不匹配服务的localVersion,则忽略;如果如果输入的localVersion为空,则直接清除服务的dynamicVersion", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity versionClearAsync(@PathVariable(value = "serviceId") @ApiParam(value = "服务名", required = true) String serviceId, @RequestBody(required = false) @ApiParam(value = "版本号,指localVersion,可以为空") String version) { return executeVersionClear(serviceId, version, true); } @@ -221,7 +203,6 @@ public ResponseEntity versionClearAsync(@PathVariable(value = "serviceId") @A @RequestMapping(path = "/version/clear-sync/{serviceId}", method = RequestMethod.POST) @ApiOperation(value = "批量同步清除服务的动态版本", notes = "根据指定的localVersion清除服务的dynamicVersion。如果输入的localVersion不匹配服务的localVersion,则忽略;如果如果输入的localVersion为空,则直接清除服务的dynamicVersion", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity versionClearSync(@PathVariable(value = "serviceId") @ApiParam(value = "服务名", required = true) String serviceId, @RequestBody(required = false) @ApiParam(value = "版本号,指localVersion,可以为空") String version) { return executeVersionClear(serviceId, version, false); } @@ -229,7 +210,6 @@ public ResponseEntity versionClearSync(@PathVariable(value = "serviceId") @Ap @RequestMapping(path = "/sentinel/update/{serviceId}/{ruleType}", method = RequestMethod.POST) @ApiOperation(value = "更新哨兵规则列表", notes = "哨兵规则类型取值: flow | degrade | authority | system | param-flow", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity sentinelUpdate(@PathVariable(value = "serviceId") @ApiParam(value = "服务名", required = true) String serviceId, @PathVariable(value = "ruleType") @ApiParam(value = "哨兵规则类型", required = true) String ruleType, @RequestBody @ApiParam(value = "哨兵规则内容,JSON格式", required = true) String rule) { return executeSentinelUpdate(serviceId, ruleType, rule); } @@ -237,7 +217,6 @@ public ResponseEntity sentinelUpdate(@PathVariable(value = "serviceId") @ApiP @RequestMapping(path = "/sentinel/clear/{serviceId}/{ruleType}", method = RequestMethod.POST) @ApiOperation(value = "清除哨兵规则列表", notes = "哨兵规则类型取值: flow | degrade | authority | system | param-flow", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity sentinelClear(@PathVariable(value = "serviceId") @ApiParam(value = "服务名", required = true) String serviceId, @PathVariable(value = "ruleType") @ApiParam(value = "哨兵规则类型", required = true) String ruleType) { return executeSentinelClear(serviceId, ruleType); } diff --git a/discovery-plugin-admin-center/pom.xml b/discovery-plugin-admin-center/pom.xml index b9e0e55cda..c838e32da7 100644 --- a/discovery-plugin-admin-center/pom.xml +++ b/discovery-plugin-admin-center/pom.xml @@ -26,11 +26,6 @@ provided - - org.springframework.boot - spring-boot-starter-actuator - - io.springfox springfox-swagger2 diff --git a/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/configuration/AdminAutoConfiguration.java b/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/configuration/AdminAutoConfiguration.java index 4ae36ccf83..e9ca9ba639 100644 --- a/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/configuration/AdminAutoConfiguration.java +++ b/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/configuration/AdminAutoConfiguration.java @@ -9,7 +9,6 @@ * @version 1.0 */ -import org.springframework.boot.actuate.endpoint.web.annotation.RestControllerEndpoint; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; @@ -29,7 +28,6 @@ @Configuration @Import(SwaggerConfiguration.class) public class AdminAutoConfiguration { - @ConditionalOnClass(RestControllerEndpoint.class) protected static class AdminEndpointConfiguration { @Bean public ConfigEndpoint configEndpoint() { @@ -52,7 +50,7 @@ public GitEndpoint gitEndpoint() { } } - @ConditionalOnClass({ RestControllerEndpoint.class, FlowRule.class }) + @ConditionalOnClass({ FlowRule.class }) protected static class SentinelCoreEndpointConfiguration { @Bean public SentinelCoreEndpoint sentinelCoreEndpoint() { @@ -60,7 +58,7 @@ public SentinelCoreEndpoint sentinelCoreEndpoint() { } } - @ConditionalOnClass({ RestControllerEndpoint.class, ParamFlowRule.class }) + @ConditionalOnClass({ ParamFlowRule.class }) protected static class SentinelParamEndpointConfiguration { @Bean public SentinelParamEndpoint sentinelParamEndpoint() { diff --git a/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/ConfigEndpoint.java b/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/ConfigEndpoint.java index eb8cda4231..cf4a770111 100644 --- a/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/ConfigEndpoint.java +++ b/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/ConfigEndpoint.java @@ -19,11 +19,8 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.exception.ExceptionUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.endpoint.web.annotation.RestControllerEndpoint; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.jmx.export.annotation.ManagedOperation; -import org.springframework.jmx.export.annotation.ManagedResource; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -41,8 +38,6 @@ @RestController @RequestMapping(path = "/config") @Api(tags = { "配置接口" }) -@RestControllerEndpoint(id = "config") -@ManagedResource(description = "Config Endpoint") public class ConfigEndpoint { @Autowired private PluginContextAware pluginContextAware; @@ -56,7 +51,6 @@ public class ConfigEndpoint { @RequestMapping(path = "/update-async", method = RequestMethod.POST) @ApiOperation(value = "异步推送更新规则配置信息", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity updateAsync(@RequestBody @ApiParam(value = "规则配置内容,XML格式", required = true) String config) { return update(config, true); } @@ -64,7 +58,6 @@ public ResponseEntity updateAsync(@RequestBody @ApiParam(value = "规则配 @RequestMapping(path = "/update-sync", method = RequestMethod.POST) @ApiOperation(value = "同步推送更新规则配置信息", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity updateSync(@RequestBody @ApiParam(value = "规则配置内容,XML格式", required = true) String config) { return update(config, false); } @@ -72,7 +65,6 @@ public ResponseEntity updateSync(@RequestBody @ApiParam(value = "规则配置 @RequestMapping(path = "/clear-async", method = RequestMethod.POST) @ApiOperation(value = "异步清除更新的规则配置信息", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity clearAsync() { return clear(true); } @@ -80,7 +72,6 @@ public ResponseEntity clearAsync() { @RequestMapping(path = "/clear-sync", method = RequestMethod.POST) @ApiOperation(value = "同步清除更新的规则配置信息", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity clearSync() { return clear(false); } @@ -88,7 +79,6 @@ public ResponseEntity clearSync() { @RequestMapping(path = "/view", method = RequestMethod.GET) @ApiOperation(value = "查看本地和更新的规则配置信息", notes = "", response = ResponseEntity.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public ResponseEntity> view() { return view(false); } diff --git a/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/GitEndpoint.java b/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/GitEndpoint.java index 7879cffd26..42524ab4c3 100644 --- a/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/GitEndpoint.java +++ b/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/GitEndpoint.java @@ -17,10 +17,7 @@ import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.endpoint.web.annotation.RestControllerEndpoint; import org.springframework.http.ResponseEntity; -import org.springframework.jmx.export.annotation.ManagedOperation; -import org.springframework.jmx.export.annotation.ManagedResource; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @@ -31,8 +28,6 @@ @RestController @RequestMapping(path = "/git") @Api(tags = { "Git信息接口" }) -@RestControllerEndpoint(id = "git") -@ManagedResource(description = "Git Endpoint") public class GitEndpoint { @Autowired(required = false) private GitGenerator gitGenerator; @@ -40,7 +35,6 @@ public class GitEndpoint { @RequestMapping(path = "/map", method = RequestMethod.GET) @ApiOperation(value = "获取Git信息的Map格式", notes = "", response = Map.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public ResponseEntity> map() { Map map = gitGenerator != null ? gitGenerator.getMap() : new HashMap(); @@ -50,7 +44,6 @@ public ResponseEntity> map() { @RequestMapping(path = "/text", method = RequestMethod.GET) @ApiOperation(value = "获取Git信息的文本格式", notes = "", response = String.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public ResponseEntity text() { String text = gitGenerator != null ? gitGenerator.getText() : StringUtils.EMPTY; diff --git a/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/RouterEndpoint.java b/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/RouterEndpoint.java index 9800e2a86e..98d1ab516e 100644 --- a/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/RouterEndpoint.java +++ b/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/RouterEndpoint.java @@ -20,11 +20,8 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.endpoint.web.annotation.RestControllerEndpoint; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; -import org.springframework.jmx.export.annotation.ManagedOperation; -import org.springframework.jmx.export.annotation.ManagedResource; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -49,8 +46,6 @@ @RestController @RequestMapping(path = "/router") @Api(tags = { "路由接口" }) -@RestControllerEndpoint(id = "router") -@ManagedResource(description = "Router Endpoint") public class RouterEndpoint { @Autowired private PluginAdapter pluginAdapter; @@ -58,12 +53,15 @@ public class RouterEndpoint { @Autowired private DiscoveryClient discoveryClient; - private RestTemplate routerRestTemplate = new RestTemplate(); + private RestTemplate routerRestTemplate; + + public RouterEndpoint() { + routerRestTemplate = new RestTemplate(); + } @RequestMapping(path = "/services", method = RequestMethod.GET) @ApiOperation(value = "获取服务注册中心的服务列表", notes = "", response = List.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public List services() { return getServices(); } @@ -71,7 +69,6 @@ public List services() { @RequestMapping(path = "/instances/{serviceId}", method = RequestMethod.GET) @ApiOperation(value = "获取本地节点可访问其他节点(根据服务名)的实例列表", notes = "", response = List.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public List instances(@PathVariable(value = "serviceId") @ApiParam(value = "目标服务名", required = true) String serviceId) { return getInstanceList(serviceId); } @@ -79,7 +76,6 @@ public List instances(@PathVariable(value = "serviceId") @ApiPa @RequestMapping(path = "/info", method = RequestMethod.GET) @ApiOperation(value = "获取本地节点信息", notes = "获取当前节点的简单信息", response = RouterEntity.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public RouterEntity info() { return getRouterEntity(); } @@ -87,7 +83,6 @@ public RouterEntity info() { @RequestMapping(path = "/route/{routeServiceId}", method = RequestMethod.GET) @ApiOperation(value = "获取本地节点可访问其他节点(根据服务名)的路由信息列表", notes = "", response = List.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public List route(@PathVariable(value = "routeServiceId") @ApiParam(value = "目标服务名", required = true) String routeServiceId) { return getRouterEntityList(routeServiceId); } @@ -95,7 +90,6 @@ public List route(@PathVariable(value = "routeServiceId") @ApiPara @RequestMapping(path = "/route/{routeServiceId}/{routeHost}/{routePort}/{routeContextPath}", method = RequestMethod.GET) @ApiOperation(value = "获取指定节点(根据IP和端口)可访问其他节点(根据服务名)的路由信息列表", notes = "", response = List.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public List route(@PathVariable(value = "routeServiceId") @ApiParam(value = "目标服务名", required = true) String routeServiceId, @PathVariable(value = "routeHost") @ApiParam(value = "目标服务所在机器的IP地址", required = true) String routeHost, @PathVariable(value = "routePort") @ApiParam(value = "目标服务所在机器的端口号", required = true) int routePort, @PathVariable(value = "routeContextPath") @ApiParam(value = "目标服务的调用路径前缀", required = true, defaultValue = "/") String routeContextPath) { return getRouterEntityList(routeServiceId, routeHost, routePort, routeContextPath); } @@ -103,7 +97,6 @@ public List route(@PathVariable(value = "routeServiceId") @ApiPara @RequestMapping(path = "/routes", method = RequestMethod.POST) @ApiOperation(value = "获取全路径的路由信息树", notes = "参数按调用服务名的前后次序排列,起始节点的服务名不能加上去。如果多个用“;”分隔,不允许出现空格", response = RouterEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public RouterEntity routes(@RequestBody @ApiParam(value = "例如:service-a;service-b", required = true) String routeServiceIds) { return routeTree(routeServiceIds); } diff --git a/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/SentinelCoreEndpoint.java b/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/SentinelCoreEndpoint.java index 809101ee12..6998ebeb24 100644 --- a/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/SentinelCoreEndpoint.java +++ b/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/SentinelCoreEndpoint.java @@ -19,11 +19,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.endpoint.web.annotation.RestControllerEndpoint; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.jmx.export.annotation.ManagedOperation; -import org.springframework.jmx.export.annotation.ManagedResource; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -47,8 +44,6 @@ @RestController @RequestMapping(path = "/sentinel-core") @Api(tags = { "哨兵核心接口" }) -@RestControllerEndpoint(id = "sentinel-core") -@ManagedResource(description = "Sentinel Core Endpoint") public class SentinelCoreEndpoint { private static final Logger LOG = LoggerFactory.getLogger(SentinelCoreEndpoint.class); @@ -90,7 +85,6 @@ public List convert(String source) { @RequestMapping(path = "/update-flow-rules", method = RequestMethod.POST) @ApiOperation(value = "更新流控规则列表", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity updateFlowRules(@RequestBody @ApiParam(value = "流控规则内容,JSON格式", required = true) String rule) { Boolean isConfigRestControlEnabled = pluginContextAware.isConfigRestControlEnabled(); if (!isConfigRestControlEnabled) { @@ -107,7 +101,6 @@ public ResponseEntity updateFlowRules(@RequestBody @ApiParam(value = "流控 @RequestMapping(path = "/clear-flow-rules", method = RequestMethod.POST) @ApiOperation(value = "清除流控规则列表", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity clearFlowRules() { Boolean isConfigRestControlEnabled = pluginContextAware.isConfigRestControlEnabled(); if (!isConfigRestControlEnabled) { @@ -124,7 +117,6 @@ public ResponseEntity clearFlowRules() { @RequestMapping(path = "/view-flow-rules", method = RequestMethod.GET) @ApiOperation(value = "获取流控规则列表", notes = "", response = List.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public ResponseEntity> viewFlowRules() { return ResponseEntity.ok().body(FlowRuleManager.getRules()); } @@ -132,7 +124,6 @@ public ResponseEntity> viewFlowRules() { @RequestMapping(path = "/update-degrade-rules", method = RequestMethod.POST) @ApiOperation(value = "更新降级规则列表", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity updateDegradeRules(@RequestBody @ApiParam(value = "降级规则内容,JSON格式", required = true) String rule) { Boolean isConfigRestControlEnabled = pluginContextAware.isConfigRestControlEnabled(); if (!isConfigRestControlEnabled) { @@ -149,7 +140,6 @@ public ResponseEntity updateDegradeRules(@RequestBody @ApiParam(value = "降 @RequestMapping(path = "/clear-degrade-rules", method = RequestMethod.POST) @ApiOperation(value = "清除降级规则列表", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity clearDegradeRules() { Boolean isConfigRestControlEnabled = pluginContextAware.isConfigRestControlEnabled(); if (!isConfigRestControlEnabled) { @@ -166,7 +156,6 @@ public ResponseEntity clearDegradeRules() { @RequestMapping(path = "/view-degrade-rules", method = RequestMethod.GET) @ApiOperation(value = "获取降级规则列表", notes = "", response = List.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public ResponseEntity> viewDegradeRules() { return ResponseEntity.ok().body(DegradeRuleManager.getRules()); } @@ -174,7 +163,6 @@ public ResponseEntity> viewDegradeRules() { @RequestMapping(path = "/update-authority-rules", method = RequestMethod.POST) @ApiOperation(value = "更新授权规则列表", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity updateAuthorityRules(@RequestBody @ApiParam(value = "授权规则内容,JSON格式", required = true) String rule) { Boolean isConfigRestControlEnabled = pluginContextAware.isConfigRestControlEnabled(); if (!isConfigRestControlEnabled) { @@ -191,7 +179,6 @@ public ResponseEntity updateAuthorityRules(@RequestBody @ApiParam(value = " @RequestMapping(path = "/clear-authority-rules", method = RequestMethod.POST) @ApiOperation(value = "清除授权规则列表", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity clearAuthorityRules() { Boolean isConfigRestControlEnabled = pluginContextAware.isConfigRestControlEnabled(); if (!isConfigRestControlEnabled) { @@ -208,7 +195,6 @@ public ResponseEntity clearAuthorityRules() { @RequestMapping(path = "/view-authority-rules", method = RequestMethod.GET) @ApiOperation(value = "获取授权规则列表", notes = "", response = List.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public ResponseEntity> viewAuthorityRules() { return ResponseEntity.ok().body(AuthorityRuleManager.getRules()); } @@ -216,7 +202,6 @@ public ResponseEntity> viewAuthorityRules() { @RequestMapping(path = "/update-system-rules", method = RequestMethod.POST) @ApiOperation(value = "更新系统规则列表", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity updateSystemRules(@RequestBody @ApiParam(value = "系统规则内容,JSON格式", required = true) String rule) { Boolean isConfigRestControlEnabled = pluginContextAware.isConfigRestControlEnabled(); if (!isConfigRestControlEnabled) { @@ -233,7 +218,6 @@ public ResponseEntity updateSystemRules(@RequestBody @ApiParam(value = "系 @RequestMapping(path = "/clear-system-rules", method = RequestMethod.POST) @ApiOperation(value = "清除系统规则列表", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity clearSystemRules() { Boolean isConfigRestControlEnabled = pluginContextAware.isConfigRestControlEnabled(); if (!isConfigRestControlEnabled) { @@ -250,7 +234,6 @@ public ResponseEntity clearSystemRules() { @RequestMapping(path = "/view-system-rules", method = RequestMethod.GET) @ApiOperation(value = "获取系统规则列表", notes = "", response = List.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public ResponseEntity> viewSystemRules() { return ResponseEntity.ok().body(SystemRuleManager.getRules()); } diff --git a/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/SentinelParamEndpoint.java b/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/SentinelParamEndpoint.java index c5cd81a542..7c3751b930 100644 --- a/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/SentinelParamEndpoint.java +++ b/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/SentinelParamEndpoint.java @@ -19,11 +19,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.endpoint.web.annotation.RestControllerEndpoint; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.jmx.export.annotation.ManagedOperation; -import org.springframework.jmx.export.annotation.ManagedResource; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -41,8 +38,6 @@ @RestController @RequestMapping(path = "/sentinel-param") @Api(tags = { "哨兵参数接口" }) -@RestControllerEndpoint(id = "sentinel-param") -@ManagedResource(description = "Sentinel Param Endpoint") public class SentinelParamEndpoint { private static final Logger LOG = LoggerFactory.getLogger(SentinelParamEndpoint.class); @@ -60,7 +55,6 @@ public List convert(String source) { @RequestMapping(path = "/update-param-flow-rules", method = RequestMethod.POST) @ApiOperation(value = "更新热点参数流控规则列表", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity updateParamFlowRules(@RequestBody @ApiParam(value = "热点参数流控规则内容,JSON格式", required = true) String rule) { Boolean isConfigRestControlEnabled = pluginContextAware.isConfigRestControlEnabled(); if (!isConfigRestControlEnabled) { @@ -77,7 +71,6 @@ public ResponseEntity updateParamFlowRules(@RequestBody @ApiParam(value = " @RequestMapping(path = "/clear-param-flow-rules", method = RequestMethod.POST) @ApiOperation(value = "清除热点参数流控规则列表", notes = "", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity clearParamFlowRules() { Boolean isConfigRestControlEnabled = pluginContextAware.isConfigRestControlEnabled(); if (!isConfigRestControlEnabled) { @@ -94,7 +87,6 @@ public ResponseEntity clearParamFlowRules() { @RequestMapping(path = "/view-param-flow-rules", method = RequestMethod.GET) @ApiOperation(value = "获取热点参数流控规则列表", notes = "", response = List.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public ResponseEntity> viewParamFlowRules() { return ResponseEntity.ok().body(ParamFlowRuleManager.getRules()); } diff --git a/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/VersionEndpoint.java b/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/VersionEndpoint.java index 17b70961a3..c2a448e7cd 100644 --- a/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/VersionEndpoint.java +++ b/discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/VersionEndpoint.java @@ -18,11 +18,8 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.endpoint.web.annotation.RestControllerEndpoint; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.jmx.export.annotation.ManagedOperation; -import org.springframework.jmx.export.annotation.ManagedResource; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -39,8 +36,6 @@ @RestController @RequestMapping(path = "/version") @Api(tags = { "版本接口" }) -@RestControllerEndpoint(id = "version") -@ManagedResource(description = "Version Endpoint") public class VersionEndpoint { @Autowired private PluginContextAware pluginContextAware; @@ -54,7 +49,6 @@ public class VersionEndpoint { @RequestMapping(path = "/update-async", method = RequestMethod.POST) @ApiOperation(value = "异步更新服务的动态版本", notes = "根据指定的localVersion更新服务的dynamicVersion。如果输入的localVersion不匹配服务的localVersion,则忽略;如果如果输入的localVersion为空,则直接更新服务的dynamicVersion", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity updateAsync(@RequestBody @ApiParam(value = "版本号,格式为[dynamicVersion]或者[dynamicVersion];[localVersion]", required = true) String version) { return update(version, true); } @@ -62,7 +56,6 @@ public class VersionEndpoint { @RequestMapping(path = "/update-sync", method = RequestMethod.POST) @ApiOperation(value = "同步更新服务的动态版本", notes = "根据指定的localVersion更新服务的dynamicVersion。如果输入的localVersion不匹配服务的localVersion,则忽略;如果如果输入的localVersion为空,则直接更新服务的dynamicVersion", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity updateSync(@RequestBody @ApiParam(value = "版本号,格式为[dynamicVersion]或者[dynamicVersion];[localVersion]", required = true) String version) { return update(version, false); } @@ -70,7 +63,6 @@ public class VersionEndpoint { @RequestMapping(path = "/clear-async", method = RequestMethod.POST) @ApiOperation(value = "异步清除服务的动态版本", notes = "根据指定的localVersion清除服务的dynamicVersion。如果输入的localVersion不匹配服务的localVersion,则忽略;如果如果输入的localVersion为空,则直接清除服务的dynamicVersion", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity clearAsync(@RequestBody(required = false) @ApiParam(value = "版本号,指localVersion,可以为空") String version) { return clear(version, true); } @@ -78,7 +70,6 @@ public ResponseEntity clearAsync(@RequestBody(required = false) @ApiParam(val @RequestMapping(path = "/clear-sync", method = RequestMethod.POST) @ApiOperation(value = "同步清除服务的动态版本", notes = "根据指定的localVersion清除服务的dynamicVersion。如果输入的localVersion不匹配服务的localVersion,则忽略;如果如果输入的localVersion为空,则直接清除服务的dynamicVersion", response = ResponseEntity.class, httpMethod = "POST") @ResponseBody - @ManagedOperation public ResponseEntity clearSync(@RequestBody(required = false) @ApiParam(value = "版本号,指localVersion,可以为空") String version) { return clear(version, false); } @@ -86,7 +77,6 @@ public ResponseEntity clearSync(@RequestBody(required = false) @ApiParam(valu @RequestMapping(path = "/view", method = RequestMethod.GET) @ApiOperation(value = "查看服务的本地版本和动态版本", notes = "", response = ResponseEntity.class, httpMethod = "GET") @ResponseBody - @ManagedOperation public ResponseEntity> view() { return view(false); }