Commit 49341f86 by Nepxion

扩展支持多格式的规则,包括XML和JSON

parent d243bf13
...@@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import com.nepxion.discovery.plugin.configcenter.loader.LocalConfigLoader; import com.nepxion.discovery.plugin.configcenter.loader.LocalConfigLoader;
import com.nepxion.discovery.plugin.configcenter.loader.RemoteConfigLoader; import com.nepxion.discovery.plugin.configcenter.loader.RemoteConfigLoader;
import com.nepxion.discovery.plugin.framework.adapter.PluginAdapter; import com.nepxion.discovery.plugin.framework.adapter.PluginAdapter;
import com.nepxion.discovery.plugin.framework.config.PluginConfigParser;
import com.nepxion.discovery.plugin.framework.context.PluginContextAware; import com.nepxion.discovery.plugin.framework.context.PluginContextAware;
import com.nepxion.discovery.plugin.framework.entity.RuleEntity; import com.nepxion.discovery.plugin.framework.entity.RuleEntity;
...@@ -32,14 +33,14 @@ public class ConfigInitializer { ...@@ -32,14 +33,14 @@ public class ConfigInitializer {
private PluginAdapter pluginAdapter; private PluginAdapter pluginAdapter;
@Autowired @Autowired
private PluginConfigParser pluginConfigParser;
@Autowired
private LocalConfigLoader localConfigLoader; private LocalConfigLoader localConfigLoader;
@Autowired(required = false) @Autowired(required = false)
private RemoteConfigLoader remoteConfigLoader; private RemoteConfigLoader remoteConfigLoader;
@Autowired
private ConfigParser configParser;
@PostConstruct @PostConstruct
public void initialize() { public void initialize() {
Boolean registerControlEnabled = pluginContextAware.isRegisterControlEnabled(); Boolean registerControlEnabled = pluginContextAware.isRegisterControlEnabled();
...@@ -56,7 +57,7 @@ public class ConfigInitializer { ...@@ -56,7 +57,7 @@ public class ConfigInitializer {
String remoteConfig = getRemoteConfig(); String remoteConfig = getRemoteConfig();
if (StringUtils.isNotEmpty(remoteConfig)) { if (StringUtils.isNotEmpty(remoteConfig)) {
try { try {
RuleEntity ruleEntity = configParser.parse(remoteConfig); RuleEntity ruleEntity = pluginConfigParser.parse(remoteConfig);
pluginAdapter.setDynamicRule(ruleEntity); pluginAdapter.setDynamicRule(ruleEntity);
} catch (Exception e) { } catch (Exception e) {
LOG.error("Parse rule xml failed", e); LOG.error("Parse rule xml failed", e);
...@@ -66,7 +67,7 @@ public class ConfigInitializer { ...@@ -66,7 +67,7 @@ public class ConfigInitializer {
String localConfig = getLocalConfig(); String localConfig = getLocalConfig();
if (StringUtils.isNotEmpty(localConfig)) { if (StringUtils.isNotEmpty(localConfig)) {
try { try {
RuleEntity ruleEntity = configParser.parse(localConfig); RuleEntity ruleEntity = pluginConfigParser.parse(localConfig);
pluginAdapter.setLocalRule(ruleEntity); pluginAdapter.setLocalRule(ruleEntity);
} catch (Exception e) { } catch (Exception e) {
LOG.error("Parse rule xml failed", e); LOG.error("Parse rule xml failed", e);
......
...@@ -14,8 +14,9 @@ import org.springframework.context.annotation.Bean; ...@@ -14,8 +14,9 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import com.nepxion.discovery.plugin.configcenter.ConfigInitializer; import com.nepxion.discovery.plugin.configcenter.ConfigInitializer;
import com.nepxion.discovery.plugin.configcenter.ConfigParser;
import com.nepxion.discovery.plugin.configcenter.loader.LocalConfigLoader; import com.nepxion.discovery.plugin.configcenter.loader.LocalConfigLoader;
import com.nepxion.discovery.plugin.configcenter.parser.xml.XmlConfigParser;
import com.nepxion.discovery.plugin.framework.config.PluginConfigParser;
import com.nepxion.discovery.plugin.framework.context.PluginContextAware; import com.nepxion.discovery.plugin.framework.context.PluginContextAware;
@Configuration @Configuration
...@@ -24,6 +25,11 @@ public class ConfigAutoConfiguration { ...@@ -24,6 +25,11 @@ public class ConfigAutoConfiguration {
private PluginContextAware pluginContextAware; private PluginContextAware pluginContextAware;
@Bean @Bean
public PluginConfigParser pluginConfigParser() {
return new XmlConfigParser();
}
@Bean
public LocalConfigLoader localConfigLoader() { public LocalConfigLoader localConfigLoader() {
return new LocalConfigLoader() { return new LocalConfigLoader() {
@Override @Override
...@@ -37,9 +43,4 @@ public class ConfigAutoConfiguration { ...@@ -37,9 +43,4 @@ public class ConfigAutoConfiguration {
public ConfigInitializer configInitializer() { public ConfigInitializer configInitializer() {
return new ConfigInitializer(); return new ConfigInitializer();
} }
@Bean
public ConfigParser configParser() {
return new ConfigParser();
}
} }
\ No newline at end of file
package com.nepxion.discovery.plugin.configcenter; package com.nepxion.discovery.plugin.configcenter.parser.xml;
/** /**
* <p>Title: Nepxion Discovery</p> * <p>Title: Nepxion Discovery</p>
...@@ -23,7 +23,7 @@ import org.slf4j.Logger; ...@@ -23,7 +23,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.nepxion.discovery.plugin.configcenter.constant.ConfigConstant; import com.nepxion.discovery.plugin.configcenter.constant.ConfigConstant;
import com.nepxion.discovery.plugin.configcenter.xml.Dom4JReader; import com.nepxion.discovery.plugin.configcenter.parser.xml.dom4j.Dom4JReader;
import com.nepxion.discovery.plugin.framework.config.PluginConfigParser; import com.nepxion.discovery.plugin.framework.config.PluginConfigParser;
import com.nepxion.discovery.plugin.framework.constant.PluginConstant; import com.nepxion.discovery.plugin.framework.constant.PluginConstant;
import com.nepxion.discovery.plugin.framework.entity.CountFilterEntity; import com.nepxion.discovery.plugin.framework.entity.CountFilterEntity;
...@@ -37,8 +37,8 @@ import com.nepxion.discovery.plugin.framework.entity.RuleEntity; ...@@ -37,8 +37,8 @@ import com.nepxion.discovery.plugin.framework.entity.RuleEntity;
import com.nepxion.discovery.plugin.framework.entity.VersionFilterEntity; import com.nepxion.discovery.plugin.framework.entity.VersionFilterEntity;
import com.nepxion.discovery.plugin.framework.exception.PluginException; import com.nepxion.discovery.plugin.framework.exception.PluginException;
public class ConfigParser implements PluginConfigParser { public class XmlConfigParser implements PluginConfigParser {
private static final Logger LOG = LoggerFactory.getLogger(ConfigParser.class); private static final Logger LOG = LoggerFactory.getLogger(XmlConfigParser.class);
@Override @Override
public RuleEntity parse(String config) { public RuleEntity parse(String config) {
......
package com.nepxion.discovery.plugin.configcenter.xml; package com.nepxion.discovery.plugin.configcenter.parser.xml.dom4j;
/** /**
* <p>Title: Nepxion Discovery</p> * <p>Title: Nepxion Discovery</p>
......
package com.nepxion.discovery.plugin.configcenter.xml; package com.nepxion.discovery.plugin.configcenter.parser.xml.dom4j;
/** /**
* <p>Title: Nepxion Discovery</p> * <p>Title: Nepxion Discovery</p>
......
package com.nepxion.discovery.plugin.configcenter.xml; package com.nepxion.discovery.plugin.configcenter.parser.xml.dom4j;
/** /**
* <p>Title: Nepxion Discovery</p> * <p>Title: Nepxion Discovery</p>
......
package com.nepxion.discovery.plugin.configcenter.xml; package com.nepxion.discovery.plugin.configcenter.parser.xml.dom4j;
/** /**
* <p>Title: Nepxion Discovery</p> * <p>Title: Nepxion Discovery</p>
......
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