Commit 069826ae by Nepxion

重构类结构

parent 97c2ff4d
...@@ -16,14 +16,10 @@ import java.util.Collections; ...@@ -16,14 +16,10 @@ import java.util.Collections;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.endpoint.mvc.AbstractMvcEndpoint; import org.springframework.boot.actuate.endpoint.mvc.AbstractMvcEndpoint;
import org.springframework.cloud.client.serviceregistry.Registration; import org.springframework.cloud.client.serviceregistry.Registration;
import org.springframework.cloud.client.serviceregistry.ServiceRegistry; import org.springframework.cloud.client.serviceregistry.ServiceRegistry;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.jmx.export.annotation.ManagedOperation; import org.springframework.jmx.export.annotation.ManagedOperation;
...@@ -34,21 +30,24 @@ import org.springframework.web.bind.annotation.RequestMethod; ...@@ -34,21 +30,24 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import com.nepxion.discovery.plugin.framework.constant.PluginConstant; 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.entity.RuleEntity;
import com.nepxion.discovery.plugin.framework.event.PluginPublisher; import com.nepxion.discovery.plugin.framework.event.PluginPublisher;
import com.nepxion.discovery.plugin.framework.exception.PluginException; import com.nepxion.discovery.plugin.framework.exception.PluginException;
@ManagedResource(description = "Admin Endpoint") @ManagedResource(description = "Admin Endpoint")
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public class AdminEndpoint extends AbstractMvcEndpoint implements ApplicationContextAware { public class AdminEndpoint extends AbstractMvcEndpoint {
private static final Logger LOG = LoggerFactory.getLogger(AdminEndpoint.class); private static final Logger LOG = LoggerFactory.getLogger(AdminEndpoint.class);
private ConfigurableApplicationContext applicationContext;
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")
private ServiceRegistry serviceRegistry; private ServiceRegistry serviceRegistry;
private Registration registration; private Registration registration;
@Autowired @Autowired
private PluginContextAware pluginContextAware;
@Autowired
private PluginPublisher pluginPublisher; private PluginPublisher pluginPublisher;
@Autowired @Autowired
...@@ -69,7 +68,7 @@ public class AdminEndpoint extends AbstractMvcEndpoint implements ApplicationCon ...@@ -69,7 +68,7 @@ public class AdminEndpoint extends AbstractMvcEndpoint implements ApplicationCon
@ResponseBody @ResponseBody
@ManagedOperation @ManagedOperation
public Object config(@RequestBody String config) { public Object config(@RequestBody String config) {
Boolean discoveryControlEnabled = getEnvironment().getProperty(PluginConstant.SPRING_APPLICATION_DISCOVERY_CONTROL_ENABLED, Boolean.class, Boolean.TRUE); Boolean discoveryControlEnabled = pluginContextAware.isDiscoveryControlEnabled();
if (!discoveryControlEnabled) { if (!discoveryControlEnabled) {
return new ResponseEntity<>(Collections.singletonMap("Message", "Discovery control is disabled"), HttpStatus.NOT_FOUND); return new ResponseEntity<>(Collections.singletonMap("Message", "Discovery control is disabled"), HttpStatus.NOT_FOUND);
} }
...@@ -103,7 +102,7 @@ public class AdminEndpoint extends AbstractMvcEndpoint implements ApplicationCon ...@@ -103,7 +102,7 @@ public class AdminEndpoint extends AbstractMvcEndpoint implements ApplicationCon
@ResponseBody @ResponseBody
@ManagedOperation @ManagedOperation
public Object status(@RequestBody String status) { public Object status(@RequestBody String status) {
Boolean discoveryControlEnabled = getEnvironment().getProperty(PluginConstant.SPRING_APPLICATION_DISCOVERY_CONTROL_ENABLED, Boolean.class, Boolean.TRUE); Boolean discoveryControlEnabled = pluginContextAware.isDiscoveryControlEnabled();
if (!discoveryControlEnabled) { if (!discoveryControlEnabled) {
return new ResponseEntity<>(Collections.singletonMap("Message", "Discovery control is disabled"), HttpStatus.NOT_FOUND); return new ResponseEntity<>(Collections.singletonMap("Message", "Discovery control is disabled"), HttpStatus.NOT_FOUND);
} }
...@@ -123,7 +122,7 @@ public class AdminEndpoint extends AbstractMvcEndpoint implements ApplicationCon ...@@ -123,7 +122,7 @@ public class AdminEndpoint extends AbstractMvcEndpoint implements ApplicationCon
@ResponseBody @ResponseBody
@ManagedOperation @ManagedOperation
public Object deregister() { public Object deregister() {
Boolean discoveryControlEnabled = getEnvironment().getProperty(PluginConstant.SPRING_APPLICATION_DISCOVERY_CONTROL_ENABLED, Boolean.class, Boolean.TRUE); Boolean discoveryControlEnabled = pluginContextAware.isDiscoveryControlEnabled();
if (!discoveryControlEnabled) { if (!discoveryControlEnabled) {
return new ResponseEntity<>(Collections.singletonMap("Message", "Discovery control is disabled"), HttpStatus.NOT_FOUND); return new ResponseEntity<>(Collections.singletonMap("Message", "Discovery control is disabled"), HttpStatus.NOT_FOUND);
} }
...@@ -138,15 +137,4 @@ public class AdminEndpoint extends AbstractMvcEndpoint implements ApplicationCon ...@@ -138,15 +137,4 @@ public class AdminEndpoint extends AbstractMvcEndpoint implements ApplicationCon
return "success"; return "success";
} }
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if (applicationContext instanceof ConfigurableApplicationContext) {
this.applicationContext = (ConfigurableApplicationContext) applicationContext;
}
}
public ConfigurableApplicationContext getApplicationContext() {
return applicationContext;
}
} }
\ No newline at end of file
...@@ -16,22 +16,15 @@ import javax.annotation.PostConstruct; ...@@ -16,22 +16,15 @@ import javax.annotation.PostConstruct;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import com.nepxion.discovery.plugin.configcenter.loader.ConfigLoader; import com.nepxion.discovery.plugin.configcenter.loader.ConfigLoader;
import com.nepxion.discovery.plugin.framework.constant.PluginConstant; import com.nepxion.discovery.plugin.framework.context.PluginContextAware;
public class ConfigInitializer { public class ConfigInitializer {
private static final Logger LOG = LoggerFactory.getLogger(ConfigInitializer.class); private static final Logger LOG = LoggerFactory.getLogger(ConfigInitializer.class);
@Value("${" + PluginConstant.SPRING_APPLICATION_REGISTER_CONTROL_ENABLED + ":true}") @Autowired
private Boolean registerControlEnabled; private PluginContextAware pluginContextAware;
@Value("${" + PluginConstant.SPRING_APPLICATION_DISCOVERY_CONTROL_ENABLED + ":true}")
private Boolean discoveryControlEnabled;
@Value("${" + PluginConstant.SPRING_APPLICATION_DISCOVERY_REMOTE_CONFIG_ENABLED + ":true}")
private Boolean remoteConfigEnabled;
@Autowired(required = false) @Autowired(required = false)
private ConfigLoader configLoader; private ConfigLoader configLoader;
...@@ -41,6 +34,10 @@ public class ConfigInitializer { ...@@ -41,6 +34,10 @@ public class ConfigInitializer {
@PostConstruct @PostConstruct
public void initialize() { public void initialize() {
Boolean registerControlEnabled = pluginContextAware.isRegisterControlEnabled();
Boolean discoveryControlEnabled = pluginContextAware.isDiscoveryControlEnabled();
Boolean remoteConfigEnabled = pluginContextAware.isRemoteConfigEnabled();
if (!registerControlEnabled && !discoveryControlEnabled) { if (!registerControlEnabled && !discoveryControlEnabled) {
LOG.info("********** Register and Discovery controls are all disabled, ignore to initialize **********"); LOG.info("********** Register and Discovery controls are all disabled, ignore to initialize **********");
......
...@@ -14,10 +14,9 @@ import java.io.InputStream; ...@@ -14,10 +14,9 @@ import java.io.InputStream;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import com.google.common.eventbus.Subscribe; import com.google.common.eventbus.Subscribe;
import com.nepxion.discovery.plugin.framework.constant.PluginConstant; import com.nepxion.discovery.plugin.framework.context.PluginContextAware;
import com.nepxion.eventbus.annotation.EventBus; import com.nepxion.eventbus.annotation.EventBus;
import com.nepxion.eventbus.core.Event; import com.nepxion.eventbus.core.Event;
...@@ -25,17 +24,17 @@ import com.nepxion.eventbus.core.Event; ...@@ -25,17 +24,17 @@ import com.nepxion.eventbus.core.Event;
public class ConfigSubscriber { public class ConfigSubscriber {
private static final Logger LOG = LoggerFactory.getLogger(ConfigSubscriber.class); private static final Logger LOG = LoggerFactory.getLogger(ConfigSubscriber.class);
@Value("${" + PluginConstant.SPRING_APPLICATION_DISCOVERY_CONTROL_ENABLED + ":true}") @Autowired
private Boolean discoveryControlEnabled; private PluginContextAware pluginContextAware;
@Value("${" + PluginConstant.SPRING_APPLICATION_DISCOVERY_REMOTE_CONFIG_ENABLED + ":true}")
private Boolean remoteConfigEnabled;
@Autowired @Autowired
private ConfigParser configParser; private ConfigParser configParser;
@Subscribe @Subscribe
public void subscribe(Event event) { public void subscribe(Event event) {
Boolean discoveryControlEnabled = pluginContextAware.isDiscoveryControlEnabled();
Boolean remoteConfigEnabled = pluginContextAware.isRemoteConfigEnabled();
if (!discoveryControlEnabled) { if (!discoveryControlEnabled) {
LOG.info("********** Discovery control is disabled, reject to accept remote push **********"); LOG.info("********** Discovery control is disabled, reject to accept remote push **********");
......
...@@ -14,6 +14,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; ...@@ -14,6 +14,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import com.nepxion.discovery.plugin.framework.context.PluginContextAware;
import com.nepxion.discovery.plugin.framework.entity.RuleEntity; import com.nepxion.discovery.plugin.framework.entity.RuleEntity;
import com.nepxion.discovery.plugin.framework.event.PluginPublisher; import com.nepxion.discovery.plugin.framework.event.PluginPublisher;
import com.nepxion.discovery.plugin.framework.strategy.DiscoveryControlStrategy; import com.nepxion.discovery.plugin.framework.strategy.DiscoveryControlStrategy;
...@@ -36,8 +37,8 @@ public class PluginAutoConfiguration { ...@@ -36,8 +37,8 @@ public class PluginAutoConfiguration {
} }
@Bean @Bean
public RuleEntity ruleEntity() { public PluginContextAware pluginContextAware() {
return new RuleEntity(); return new PluginContextAware();
} }
@Bean @Bean
...@@ -46,6 +47,11 @@ public class PluginAutoConfiguration { ...@@ -46,6 +47,11 @@ public class PluginAutoConfiguration {
} }
@Bean @Bean
public RuleEntity ruleEntity() {
return new RuleEntity();
}
@Bean
public ReentrantReadWriteLock reentrantReadWriteLock() { public ReentrantReadWriteLock reentrantReadWriteLock() {
return new ReentrantReadWriteLock(); return new ReentrantReadWriteLock();
} }
......
package com.nepxion.discovery.plugin.framework.context;
/**
* <p>Title: Nepxion Discovery</p>
* <p>Description: Nepxion Discovery</p>
* <p>Copyright: Copyright (c) 2017-2050</p>
* <p>Company: Nepxion</p>
* @author Haojun Ren
* @version 1.0
*/
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.core.env.Environment;
import com.nepxion.discovery.plugin.framework.constant.PluginConstant;
public class PluginContextAware implements ApplicationContextAware {
private Environment environment;
@Override
public void setApplicationContext(ApplicationContext applicationContext) {
this.environment = applicationContext.getEnvironment();
}
public Boolean isRegisterControlEnabled() {
return isRegisterControlEnabled(environment);
}
public Boolean isDiscoveryControlEnabled() {
return isDiscoveryControlEnabled(environment);
}
public Boolean isRemoteConfigEnabled() {
return isRemoteConfigEnabled(environment);
}
public static Boolean isRegisterControlEnabled(Environment environment) {
return environment.getProperty(PluginConstant.SPRING_APPLICATION_REGISTER_CONTROL_ENABLED, Boolean.class, Boolean.TRUE);
}
public static Boolean isDiscoveryControlEnabled(Environment environment) {
return environment.getProperty(PluginConstant.SPRING_APPLICATION_DISCOVERY_CONTROL_ENABLED, Boolean.class, Boolean.TRUE);
}
public static Boolean isRemoteConfigEnabled(Environment environment) {
return environment.getProperty(PluginConstant.SPRING_APPLICATION_DISCOVERY_REMOTE_CONFIG_ENABLED, Boolean.class, Boolean.TRUE);
}
}
\ No newline at end of file
...@@ -17,6 +17,7 @@ import org.springframework.context.ConfigurableApplicationContext; ...@@ -17,6 +17,7 @@ import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.env.ConfigurableEnvironment;
import com.nepxion.discovery.plugin.framework.constant.PluginConstant; import com.nepxion.discovery.plugin.framework.constant.PluginConstant;
import com.nepxion.discovery.plugin.framework.context.PluginContextAware;
import com.nepxion.discovery.plugin.framework.strategy.DiscoveryControlStrategy; import com.nepxion.discovery.plugin.framework.strategy.DiscoveryControlStrategy;
public class DiscoveryClientDecorator implements DiscoveryClient { public class DiscoveryClientDecorator implements DiscoveryClient {
...@@ -45,7 +46,7 @@ public class DiscoveryClientDecorator implements DiscoveryClient { ...@@ -45,7 +46,7 @@ public class DiscoveryClientDecorator implements DiscoveryClient {
public List<ServiceInstance> getInstances(String serviceId) { public List<ServiceInstance> getInstances(String serviceId) {
List<ServiceInstance> instances = discoveryClient.getInstances(serviceId); List<ServiceInstance> instances = discoveryClient.getInstances(serviceId);
Boolean discoveryControlEnabled = environment.getProperty(PluginConstant.SPRING_APPLICATION_DISCOVERY_CONTROL_ENABLED, Boolean.class, Boolean.TRUE); Boolean discoveryControlEnabled = PluginContextAware.isDiscoveryControlEnabled(environment);
if (discoveryControlEnabled) { if (discoveryControlEnabled) {
String applicationName = environment.getProperty(PluginConstant.SPRING_APPLICATION_NAME); String applicationName = environment.getProperty(PluginConstant.SPRING_APPLICATION_NAME);
String metadataVersion = environment.getProperty(PluginConstant.EUREKA_METADATA_VERSION); String metadataVersion = environment.getProperty(PluginConstant.EUREKA_METADATA_VERSION);
......
...@@ -15,7 +15,7 @@ import org.springframework.cloud.netflix.eureka.serviceregistry.EurekaServiceReg ...@@ -15,7 +15,7 @@ import org.springframework.cloud.netflix.eureka.serviceregistry.EurekaServiceReg
import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.env.ConfigurableEnvironment;
import com.nepxion.discovery.plugin.framework.constant.PluginConstant; import com.nepxion.discovery.plugin.framework.context.PluginContextAware;
import com.nepxion.discovery.plugin.framework.strategy.RegisterControlStrategy; import com.nepxion.discovery.plugin.framework.strategy.RegisterControlStrategy;
public class EurekaServiceRegistryDecorator extends EurekaServiceRegistry { public class EurekaServiceRegistryDecorator extends EurekaServiceRegistry {
...@@ -31,7 +31,7 @@ public class EurekaServiceRegistryDecorator extends EurekaServiceRegistry { ...@@ -31,7 +31,7 @@ public class EurekaServiceRegistryDecorator extends EurekaServiceRegistry {
@Override @Override
public void register(EurekaRegistration registration) { public void register(EurekaRegistration registration) {
Boolean registerControlEnabled = environment.getProperty(PluginConstant.SPRING_APPLICATION_REGISTER_CONTROL_ENABLED, Boolean.class, Boolean.TRUE); Boolean registerControlEnabled = PluginContextAware.isRegisterControlEnabled(environment);
if (registerControlEnabled) { if (registerControlEnabled) {
String serviceId = registration.getServiceId(); String serviceId = registration.getServiceId();
String ipAddress = registration.getInstanceConfig().getIpAddress(); String ipAddress = registration.getInstanceConfig().getIpAddress();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment