Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
discovery
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
陈文顺
discovery
Commits
adc4c699
Commit
adc4c699
authored
Jun 30, 2018
by
Nepxion
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改Endpoint
parent
e68c8be7
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
33 additions
and
70 deletions
+33
-70
discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/configuration/AdminAutoConfiguration.java
+4
-16
discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/ConfigEndpoint.java
+29
-54
No files found.
discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/configuration/AdminAutoConfiguration.java
View file @
adc4c699
...
...
@@ -9,33 +9,20 @@ package com.nepxion.discovery.plugin.admincenter.configuration;
* @version 1.0
*/
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.actuate.endpoint.Endpoint
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.cloud.client.serviceregistry.Registration
;
import
org.springframework.cloud.client.serviceregistry.ServiceRegistry
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
com.nepxion.discovery.plugin.admincenter.endpoint.
Admin
Endpoint
;
import
com.nepxion.discovery.plugin.admincenter.endpoint.
Config
Endpoint
;
@Configuration
// @ConditionalOnProperty(value = PluginConstant.SPRING_APPLICATION_DISCOVERY_CONTROL_ENABLED, matchIfMissing = true)
public
class
AdminAutoConfiguration
{
// 在Consul下,@ConditionalOnBean(ServiceRegistry.class)为false,估计跟装载顺序有关,装载AdminEndpointConfiguration的时候,ServiceRegistry Bean还没产生
// @ConditionalOnBean(ServiceRegistry.class)
@ConditionalOnClass
(
Endpoint
.
class
)
protected
static
class
AdminEndpointConfiguration
{
@Autowired
(
required
=
false
)
private
Registration
registration
;
@SuppressWarnings
(
"rawtypes"
)
@Bean
public
AdminEndpoint
adminEndpoint
(
ServiceRegistry
serviceRegistry
)
{
AdminEndpoint
adminEndpoint
=
new
AdminEndpoint
(
serviceRegistry
);
adminEndpoint
.
setRegistration
(
registration
);
return
adminEndpoint
;
public
ConfigEndpoint
configEndpoint
()
{
return
new
ConfigEndpoint
();
}
}
}
\ No newline at end of file
discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/
Admin
Endpoint.java
→
discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/
Config
Endpoint.java
View file @
adc4c699
...
...
@@ -17,9 +17,8 @@ import org.apache.commons.io.IOUtils;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.actuate.endpoint.mvc.AbstractMvcEndpoint
;
import
org.springframework.cloud.client.serviceregistry.Registration
;
import
org.springframework.cloud.client.serviceregistry.ServiceRegistry
;
import
org.springframework.boot.actuate.endpoint.Endpoint
;
import
org.springframework.boot.actuate.endpoint.mvc.MvcEndpoint
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.jmx.export.annotation.ManagedOperation
;
...
...
@@ -33,16 +32,11 @@ import com.nepxion.discovery.plugin.framework.constant.PluginConstant;
import
com.nepxion.discovery.plugin.framework.context.PluginContextAware
;
import
com.nepxion.discovery.plugin.framework.entity.RuleEntity
;
import
com.nepxion.discovery.plugin.framework.event.PluginPublisher
;
import
com.nepxion.discovery.plugin.framework.exception.PluginException
;
@ManagedResource
(
description
=
"Admin Endpoint"
)
@SuppressWarnings
(
"unchecked"
)
public
class
AdminEndpoint
extends
AbstractMvcEndpoint
{
private
static
final
Logger
LOG
=
LoggerFactory
.
getLogger
(
AdminEndpoint
.
class
);
@SuppressWarnings
(
"rawtypes"
)
private
ServiceRegistry
serviceRegistry
;
private
Registration
registration
;
// 用法参照ServiceRegistryEndpoint和ServiceRegistryAutoConfiguration
@ManagedResource
(
description
=
"Config Endpoint"
)
public
class
ConfigEndpoint
implements
MvcEndpoint
{
private
static
final
Logger
LOG
=
LoggerFactory
.
getLogger
(
ConfigEndpoint
.
class
);
@Autowired
private
PluginContextAware
pluginContextAware
;
...
...
@@ -53,22 +47,11 @@ public class AdminEndpoint extends AbstractMvcEndpoint {
@Autowired
private
RuleEntity
ruleEntity
;
@SuppressWarnings
(
"rawtypes"
)
public
AdminEndpoint
(
ServiceRegistry
serviceRegistry
)
{
super
(
"/admin"
,
true
,
true
);
this
.
serviceRegistry
=
serviceRegistry
;
}
public
void
setRegistration
(
Registration
registration
)
{
this
.
registration
=
registration
;
}
// 发送规则配置信息
@RequestMapping
(
path
=
"
config
"
,
method
=
RequestMethod
.
POST
)
@RequestMapping
(
path
=
"
send
"
,
method
=
RequestMethod
.
POST
)
@ResponseBody
@ManagedOperation
public
Object
config
(
@RequestBody
String
config
)
{
public
ResponseEntity
<?>
send
(
@RequestBody
String
config
)
{
Boolean
discoveryControlEnabled
=
pluginContextAware
.
isDiscoveryControlEnabled
();
if
(!
discoveryControlEnabled
)
{
return
new
ResponseEntity
<>(
Collections
.
singletonMap
(
"Message"
,
"Discovery control is disabled"
),
HttpStatus
.
NOT_FOUND
);
...
...
@@ -78,47 +61,38 @@ public class AdminEndpoint extends AbstractMvcEndpoint {
InputStream
inputStream
=
IOUtils
.
toInputStream
(
config
,
PluginConstant
.
ENCODING_UTF_8
);
pluginPublisher
.
asyncPublish
(
inputStream
);
}
catch
(
IOException
e
)
{
throw
new
PluginException
(
"To input stream failed"
,
e
);
LOG
.
error
(
"Publish config failed"
,
e
);
return
new
ResponseEntity
<>(
Collections
.
singletonMap
(
"Message"
,
"Send config failed"
),
HttpStatus
.
OK
);
}
return
"success"
;
// return ResponseEntity.ok().build();
return
ResponseEntity
.
ok
().
body
(
"OK"
);
}
// 查看当前生效的规则配置信息
@RequestMapping
(
path
=
"view"
,
method
=
RequestMethod
.
GET
)
@ResponseBody
@ManagedOperation
public
String
view
()
{
return
ruleEntity
.
getContent
();
}
public
ResponseEntity
<
String
>
view
()
{
String
content
=
ruleEntity
.
getContent
();
@RequestMapping
(
path
=
"deregister"
,
method
=
RequestMethod
.
POST
)
@ResponseBody
@ManagedOperation
public
Object
deregister
()
{
if
(
registration
==
null
)
{
throw
new
PluginException
(
"No registration found"
);
}
serviceRegistry
.
deregister
(
registration
);
LOG
.
info
(
"Deregister for serviceId={} successfully"
,
registration
.
getServiceId
());
return
"success"
;
return
ResponseEntity
.
ok
().
body
(
content
);
}
@RequestMapping
(
path
=
"status"
,
method
=
RequestMethod
.
POST
)
@ResponseBody
@ManagedOperation
public
Object
status
(
@RequestBody
String
status
)
{
if
(
registration
==
null
)
{
throw
new
PluginException
(
"No registration found"
);
}
serviceRegistry
.
setStatus
(
registration
,
status
);
@Override
public
String
getPath
()
{
return
"/config"
;
}
LOG
.
info
(
"Set status for serviceId={} status={} successfully"
,
registration
.
getServiceId
(),
status
);
@Override
public
boolean
isSensitive
()
{
return
true
;
}
return
"success"
;
@Override
public
Class
<?
extends
Endpoint
<?>>
getEndpointType
()
{
return
null
;
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment