1
0
mirror of https://gitee.com/mirrors/Spring-Cloud-Alibaba.git synced 2021-06-26 13:25:11 +08:00

update sentinel version to 0.2.0

This commit is contained in:
flystar32 2018-10-11 22:03:26 +08:00
parent b9710ada46
commit c8d911e89b
9 changed files with 307 additions and 305 deletions

View File

@ -16,7 +16,7 @@
<description>Spring Cloud Alibaba Dependencies</description> <description>Spring Cloud Alibaba Dependencies</description>
<properties> <properties>
<sentinel.version>0.1.1</sentinel.version> <sentinel.version>0.2.0</sentinel.version>
<oss.version>3.1.0</oss.version> <oss.version>3.1.0</oss.version>
<nacos.version>0.2.1</nacos.version> <nacos.version>0.2.1</nacos.version>
</properties> </properties>

View File

@ -2,7 +2,7 @@ package org.springframework.cloud.alibaba.cloud.examples;
import java.util.List; import java.util.List;
import com.alibaba.csp.sentinel.datasource.ConfigParser; import com.alibaba.csp.sentinel.datasource.Converter;
import com.alibaba.csp.sentinel.slots.block.flow.FlowRule; import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
@ -10,9 +10,10 @@ import com.alibaba.fastjson.TypeReference;
/** /**
* @author fangjian * @author fangjian
*/ */
public class JsonFlowRuleListParser implements ConfigParser<String, List<FlowRule>> { public class JsonFlowRuleListParser implements Converter<String, List<FlowRule>> {
@Override @Override
public List<FlowRule> parse(String source) { public List<FlowRule> convert(String source) {
return JSON.parseObject(source, new TypeReference<List<FlowRule>>() {}); return JSON.parseObject(source, new TypeReference<List<FlowRule>>() {
});
} }
} }

View File

@ -6,7 +6,7 @@ import org.springframework.cloud.alibaba.sentinel.annotation.SentinelProtect;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import com.alibaba.csp.sentinel.datasource.ConfigParser; import com.alibaba.csp.sentinel.datasource.Converter;
/** /**
* @author xiaojing * @author xiaojing
@ -26,7 +26,7 @@ public class ServiceApplication {
} }
@Bean @Bean
public ConfigParser myParser() { public Converter myParser() {
return new JsonFlowRuleListParser(); return new JsonFlowRuleListParser();
} }

View File

@ -34,10 +34,10 @@ import org.springframework.core.io.support.ResourcePatternResolver;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import org.springframework.util.ClassUtils; import org.springframework.util.ClassUtils;
import com.alibaba.csp.sentinel.datasource.DataSource; import com.alibaba.csp.sentinel.datasource.ReadableDataSource;
/** /**
* {@link DataSource} Loader * {@link ReadableDataSource} Loader
* *
* @author fangjian * @author fangjian
*/ */
@ -50,20 +50,20 @@ public class DataSourceLoader {
private final static String ALL_PROPERTIES_RESOURCES_LOCATION = CLASSPATH_ALL_URL_PREFIX private final static String ALL_PROPERTIES_RESOURCES_LOCATION = CLASSPATH_ALL_URL_PREFIX
+ PROPERTIES_RESOURCE_LOCATION; + PROPERTIES_RESOURCE_LOCATION;
private final static ConcurrentMap<String, Class<? extends DataSource>> dataSourceClassesCache = new ConcurrentHashMap<String, Class<? extends DataSource>>( private final static ConcurrentMap<String, Class<? extends ReadableDataSource>> dataSourceClassesCache = new ConcurrentHashMap<String, Class<? extends ReadableDataSource>>(
4); 4);
static void loadAllDataSourceClassesCache() { static void loadAllDataSourceClassesCache() {
Map<String, Class<? extends DataSource>> dataSourceClassesMap = loadAllDataSourceClassesCache( Map<String, Class<? extends ReadableDataSource>> dataSourceClassesMap = loadAllDataSourceClassesCache(
ALL_PROPERTIES_RESOURCES_LOCATION); ALL_PROPERTIES_RESOURCES_LOCATION);
dataSourceClassesCache.putAll(dataSourceClassesMap); dataSourceClassesCache.putAll(dataSourceClassesMap);
} }
static Map<String, Class<? extends DataSource>> loadAllDataSourceClassesCache( static Map<String, Class<? extends ReadableDataSource>> loadAllDataSourceClassesCache(
String resourcesLocation) { String resourcesLocation) {
Map<String, Class<? extends DataSource>> dataSourcesMap = new HashMap<String, Class<? extends DataSource>>( Map<String, Class<? extends ReadableDataSource>> dataSourcesMap = new HashMap<String, Class<? extends ReadableDataSource>>(
4); 4);
ClassLoader classLoader = DataSourceLoader.class.getClassLoader(); ClassLoader classLoader = DataSourceLoader.class.getClassLoader();
@ -102,10 +102,10 @@ public class DataSourceLoader {
Class<?> dataSourceClass = ClassUtils.resolveClassName(className, Class<?> dataSourceClass = ClassUtils.resolveClassName(className,
classLoader); classLoader);
Assert.isAssignable(DataSource.class, dataSourceClass); Assert.isAssignable(ReadableDataSource.class, dataSourceClass);
dataSourcesMap.put(type, dataSourcesMap.put(type,
(Class<? extends DataSource>) dataSourceClass); (Class<? extends ReadableDataSource>) dataSourceClass);
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("Sentinel DataSource implementation [ type : " logger.debug("Sentinel DataSource implementation [ type : "
@ -126,10 +126,11 @@ public class DataSourceLoader {
return dataSourcesMap; return dataSourcesMap;
} }
public static Class<? extends DataSource> loadClass(String type) public static Class<? extends ReadableDataSource> loadClass(String type)
throws IllegalArgumentException { throws IllegalArgumentException {
Class<? extends DataSource> dataSourceClass = dataSourceClassesCache.get(type); Class<? extends ReadableDataSource> dataSourceClass = dataSourceClassesCache
.get(type);
if (dataSourceClass == null) { if (dataSourceClass == null) {
if (dataSourceClassesCache.isEmpty()) { if (dataSourceClassesCache.isEmpty()) {

View File

@ -44,13 +44,13 @@ import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.util.ReflectionUtils; import org.springframework.util.ReflectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import com.alibaba.csp.sentinel.datasource.ConfigParser; import com.alibaba.csp.sentinel.datasource.Converter;
/** /**
* {@link SentinelDataSource @SentinelDataSource} Post Processor * {@link SentinelDataSource @SentinelDataSource} Post Processor
* *
* @author fangjian * @author fangjian
* @see com.alibaba.csp.sentinel.datasource.DataSource * @see com.alibaba.csp.sentinel.datasource.ReadableDataSource
* @see SentinelDataSource * @see SentinelDataSource
*/ */
public class SentinelDataSourcePostProcessor public class SentinelDataSourcePostProcessor
@ -109,7 +109,7 @@ public class SentinelDataSourcePostProcessor
if (dataSourceFieldCache.containsKey(beanName)) { if (dataSourceFieldCache.containsKey(beanName)) {
List<SentinelDataSourceField> sentinelDataSourceFields = dataSourceFieldCache List<SentinelDataSourceField> sentinelDataSourceFields = dataSourceFieldCache
.get(beanName); .get(beanName);
for(SentinelDataSourceField sentinelDataSourceField : sentinelDataSourceFields) { for (SentinelDataSourceField sentinelDataSourceField : sentinelDataSourceFields) {
try { try {
// construct DataSource field annotated by @SentinelDataSource // construct DataSource field annotated by @SentinelDataSource
Field field = sentinelDataSourceField.getField(); Field field = sentinelDataSourceField.getField();
@ -170,8 +170,8 @@ public class SentinelDataSourcePostProcessor
for (String propertyName : propertyMap.keySet()) { for (String propertyName : propertyMap.keySet()) {
Field field = ReflectionUtils.findField(targetClass, propertyName); Field field = ReflectionUtils.findField(targetClass, propertyName);
if (field != null) { if (field != null) {
if (field.getType().isAssignableFrom(ConfigParser.class)) { if (field.getType().isAssignableFrom(Converter.class)) {
// ConfigParser get from ApplicationContext // Converter get from ApplicationContext
builder.addPropertyReference(propertyName, builder.addPropertyReference(propertyName,
propertyMap.get(propertyName).toString()); propertyMap.get(propertyName).toString());
} }

View File

@ -2,7 +2,7 @@ package org.springframework.cloud.alibaba.sentinel.datasource.factorybean;
import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.FactoryBean;
import com.alibaba.csp.sentinel.datasource.ConfigParser; import com.alibaba.csp.sentinel.datasource.Converter;
import com.alibaba.csp.sentinel.datasource.apollo.ApolloDataSource; import com.alibaba.csp.sentinel.datasource.apollo.ApolloDataSource;
/** /**
@ -14,12 +14,12 @@ public class ApolloDataSourceFactoryBean implements FactoryBean<ApolloDataSource
private String namespaceName; private String namespaceName;
private String flowRulesKey; private String flowRulesKey;
private String defaultFlowRuleValue; private String defaultFlowRuleValue;
private ConfigParser configParser; private Converter converter;
@Override @Override
public ApolloDataSource getObject() throws Exception { public ApolloDataSource getObject() throws Exception {
return new ApolloDataSource(namespaceName, flowRulesKey, defaultFlowRuleValue, return new ApolloDataSource(namespaceName, flowRulesKey, defaultFlowRuleValue,
configParser); converter);
} }
@Override @Override
@ -56,11 +56,11 @@ public class ApolloDataSourceFactoryBean implements FactoryBean<ApolloDataSource
this.defaultFlowRuleValue = defaultFlowRuleValue; this.defaultFlowRuleValue = defaultFlowRuleValue;
} }
public ConfigParser getConfigParser() { public Converter getConverter() {
return configParser; return converter;
} }
public void setConfigParser(ConfigParser configParser) { public void setConverter(Converter converter) {
this.configParser = configParser; this.converter = converter;
} }
} }

View File

@ -5,7 +5,7 @@ import java.nio.charset.Charset;
import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.FactoryBean;
import com.alibaba.csp.sentinel.datasource.ConfigParser; import com.alibaba.csp.sentinel.datasource.Converter;
import com.alibaba.csp.sentinel.datasource.FileRefreshableDataSource; import com.alibaba.csp.sentinel.datasource.FileRefreshableDataSource;
/** /**
@ -18,11 +18,11 @@ public class FileRefreshableDataSourceFactoryBean implements FactoryBean<FileRef
private String charset; private String charset;
private long recommendRefreshMs; private long recommendRefreshMs;
private int bufSize; private int bufSize;
private ConfigParser configParser; private Converter converter;
@Override @Override
public FileRefreshableDataSource getObject() throws Exception { public FileRefreshableDataSource getObject() throws Exception {
return new FileRefreshableDataSource(new File(file), configParser, return new FileRefreshableDataSource(new File(file), converter,
recommendRefreshMs, bufSize, Charset.forName(charset)); recommendRefreshMs, bufSize, Charset.forName(charset));
} }
@ -68,11 +68,11 @@ public class FileRefreshableDataSourceFactoryBean implements FactoryBean<FileRef
this.bufSize = bufSize; this.bufSize = bufSize;
} }
public ConfigParser getConfigParser() { public Converter getConverter() {
return configParser; return converter;
} }
public void setConfigParser(ConfigParser configParser) { public void setConverter(Converter converter) {
this.configParser = configParser; this.converter = converter;
} }
} }

View File

@ -2,7 +2,7 @@ package org.springframework.cloud.alibaba.sentinel.datasource.factorybean;
import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.FactoryBean;
import com.alibaba.csp.sentinel.datasource.ConfigParser; import com.alibaba.csp.sentinel.datasource.Converter;
import com.alibaba.csp.sentinel.datasource.nacos.NacosDataSource; import com.alibaba.csp.sentinel.datasource.nacos.NacosDataSource;
/** /**
@ -14,11 +14,11 @@ public class NacosDataSourceFactoryBean implements FactoryBean<NacosDataSource>
private String serverAddr; private String serverAddr;
private String groupId; private String groupId;
private String dataId; private String dataId;
private ConfigParser configParser; private Converter converter;
@Override @Override
public NacosDataSource getObject() throws Exception { public NacosDataSource getObject() throws Exception {
return new NacosDataSource(serverAddr, groupId, dataId, configParser); return new NacosDataSource(serverAddr, groupId, dataId, converter);
} }
@Override @Override
@ -55,11 +55,11 @@ public class NacosDataSourceFactoryBean implements FactoryBean<NacosDataSource>
this.dataId = dataId; this.dataId = dataId;
} }
public ConfigParser getConfigParser() { public Converter getConverter() {
return configParser; return converter;
} }
public void setConfigParser(ConfigParser configParser) { public void setConverter(Converter converter) {
this.configParser = configParser; this.converter = converter;
} }
} }

View File

@ -3,7 +3,7 @@ package org.springframework.cloud.alibaba.sentinel.datasource.factorybean;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.FactoryBean;
import com.alibaba.csp.sentinel.datasource.ConfigParser; import com.alibaba.csp.sentinel.datasource.Converter;
import com.alibaba.csp.sentinel.datasource.zookeeper.ZookeeperDataSource; import com.alibaba.csp.sentinel.datasource.zookeeper.ZookeeperDataSource;
/** /**
@ -19,17 +19,17 @@ public class ZookeeperDataSourceFactoryBean implements FactoryBean<ZookeeperData
private String groupId; private String groupId;
private String dataId; private String dataId;
private ConfigParser configParser; private Converter converter;
@Override @Override
public ZookeeperDataSource getObject() throws Exception { public ZookeeperDataSource getObject() throws Exception {
if (StringUtils.isNotEmpty(groupId) && StringUtils.isNotEmpty(dataId)) { if (StringUtils.isNotEmpty(groupId) && StringUtils.isNotEmpty(dataId)) {
// the path will be /{groupId}/{dataId} // the path will be /{groupId}/{dataId}
return new ZookeeperDataSource(serverAddr, groupId, dataId, configParser); return new ZookeeperDataSource(serverAddr, groupId, dataId, converter);
} }
else { else {
// using path directly // using path directly
return new ZookeeperDataSource(serverAddr, path, configParser); return new ZookeeperDataSource(serverAddr, path, converter);
} }
} }
@ -75,11 +75,11 @@ public class ZookeeperDataSourceFactoryBean implements FactoryBean<ZookeeperData
this.dataId = dataId; this.dataId = dataId;
} }
public ConfigParser getConfigParser() { public Converter getConverter() {
return configParser; return converter;
} }
public void setConfigParser(ConfigParser configParser) { public void setConverter(Converter converter) {
this.configParser = configParser; this.converter = converter;
} }
} }