diff --git a/README.md b/README.md
index 562acd1..48d8aa6 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@
calculator.thrift
```thrift
-namespace java com.icekredit.rpc.thrift.example
+namespace java io.ostenant.rpc.thrift.examples
service CalculatorService {
i32 add(1: i32 arg1, 2: i32 arg2)
@@ -133,9 +133,9 @@ public class CalculatorService {
```xml
- com.icekredit.rpc.thrift
+ io.ostenant.rpc.thrift
spring-cloud-starter-thrift-server
- 1.0-SNAPSHOT
+ 1.0.0
```
@@ -147,9 +147,9 @@ pom.xml
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- com.icekredit.rpc.thrift
+ io.ostenant.rpc.thrift
spring-cloud-starter-thrift-example
- 1.0-SNAPSHOT
+ 1.0.0
4.0.0
@@ -158,14 +158,14 @@ pom.xml
- com.icekredit.rpc.thrift
+ io.ostenant.rpc.thrift
spring-boot-starter-thrift-server
- 1.0-SNAPSHOT
+ 1.0.0
- com.icekredit.rpc.thrift
+ io.ostenant.rpc.thrift
spring-cloud-starter-thrift-example-iface
- 1.0-SNAPSHOT
+ 1.0.0
@@ -277,13 +277,13 @@ public class RpcCalculatorService implements CalculatorService.Iface {
```dockerfile
FROM openjdk:8-jdk-alpine
-ADD target/spring-boot-thrift-server-0.0.1-SNAPSHOT.jar calculator-server.jar
+ADD target/spring-boot-thrift-server-1.0.0jar calculator-server.jar
ENTRYPOINT ["java", "-jar", "calculator-server.jar"]
```
将`Dockerfile`和`target/spring-boot-thrift-server-0.0.1-SNAPSHOT.jar`拷贝到服务器上,构建`Thrift Server`的服务镜像:
```docker
-docker build . -t icekredit/calculator-server
+docker build . -t ostenant/calculator-server
```
启动三个`Thrift Server`的`docker`容器,分别指定对应的端口号和`Consul`注册信息:
@@ -297,7 +297,7 @@ docker run -d -p 8081:8080 -p 25001:25000 --name calculator-server-01 \
-e "SERVICE_25000_CHECK_INTERVAL=30s" \
-e "SERVICE_25000_CHECK_TIMEOUT=3s" \
-e "SERVICE_25000_TAGS=thrift-rpc-calculator-25001" \
- icekredit/calculator-server
+ ostenant/calculator-server
```
`Thrift Server`实例2(25002端口):
@@ -309,7 +309,7 @@ docker run -d -p 8081:8080 -p 25002:25000 --name calculator-server-01 \
-e "SERVICE_25000_CHECK_INTERVAL=30s" \
-e "SERVICE_25000_CHECK_TIMEOUT=3s" \
-e "SERVICE_25000_TAGS=thrift-rpc-calculator-25002" \
- icekredit/calculator-server
+ ostenant/calculator-server
```
`Thrift Server`实例3(25003端口):
@@ -321,7 +321,7 @@ docker run -d -p 8081:8080 -p 25003:25000 --name calculator-server-01 \
-e "SERVICE_25000_CHECK_INTERVAL=30s" \
-e "SERVICE_25000_CHECK_TIMEOUT=3s" \
-e "SERVICE_25000_TAGS=thrift-rpc-calculator-25003" \
- icekredit/calculator-server
+ ostenant/calculator-server
```
启动`Consul`和`Registrator`容器,`Thrift Server`的三个服务实例成功注册到Consul服务列表:
@@ -347,9 +347,9 @@ docker run -d -p 8081:8080 -p 25003:25000 --name calculator-server-01 \
```xml
- com.icekredit.rpc.thrift
+ io.ostenant.rpc.thrift
spring-cloud-starter-thrift-client
- 1.0-SNAPSHOT
+ 1.0.0
```
@@ -361,9 +361,9 @@ pom.xml
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- com.icekredit.rpc.thrift
+ io.ostenant.rpc.thrift
spring-cloud-starter-thrift-example
- 1.0-SNAPSHOT
+ 1.0.0
4.0.0
@@ -371,14 +371,14 @@ pom.xml
- com.icekredit.rpc.thrift
+ io.ostenant.rpc.thrift
spring-cloud-starter-thrift-client
- 1.0-SNAPSHOT
+ 1.0.0
- com.icekredit.rpc.thrift
+ io.ostenant.rpc.thrift
spring-cloud-starter-thrift-example-iface
- 1.0-SNAPSHOT
+ 1.0.0
@@ -441,7 +441,7 @@ management:
spring:
cloud:
consul:
- host: 192.168.91.128 ## Consul的IP地址
+ host: 127.0.0.1 ## Consul的IP地址
port: 8500 ## Consul的端口号
discovery:
register: false ## 是否将自身注册为服务
@@ -452,7 +452,7 @@ spring:
max-interval: 2000
thrift:
client:
- package-to-scan: com.icekredit.rpc.thrift.example.rpc ## 标记由有注解@ThriftClient接口的包路径
+ package-to-scan: io.ostenant.rpc.thrift.example.rpc ## 标记由有注解@ThriftClient接口的包路径
service-model: hsHa ## 服务线程模型(这里必须与服务端保持一致, 默认都是hsHa)
pool: ## 客户端连接池配置
retry-times: 3
@@ -530,7 +530,6 @@ public class RpcCalculatorController {
public int division(@RequestParam("arg1") int arg1, @RequestParam("arg2") int arg2) throws Exception {
return calculators.thriftClient().division(arg1, arg2);
}
-
}
```
diff --git a/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/ThriftClientAutoConfiguration.java b/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/ThriftClientAutoConfiguration.java
index 8f29822..3a28065 100644
--- a/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/ThriftClientAutoConfiguration.java
+++ b/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/ThriftClientAutoConfiguration.java
@@ -7,6 +7,7 @@
import io.ostenant.rpc.thrift.client.properties.ThriftClientPoolProperties;
import io.ostenant.rpc.thrift.client.properties.ThriftClientProperties;
import io.ostenant.rpc.thrift.client.properties.ThriftClientPropertiesCondition;
+import io.ostenant.rpc.thrift.client.scanner.ThriftClientBeanScanProcessor;
import org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -23,8 +24,8 @@ public class ThriftClientAutoConfiguration {
@Bean
@ConditionalOnMissingBean
- public ThriftClientBeanScannerConfigurer thriftClientBeanScannerConfigurer() {
- return new ThriftClientBeanScannerConfigurer();
+ public ThriftClientBeanScanProcessor thriftClientBeanScannerConfigurer() {
+ return new ThriftClientBeanScanProcessor();
}
@Bean
diff --git a/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/loadbalancer/AbstractLoadBalancerRule.java b/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/loadbalancer/AbstractLoadBalancerRule.java
index 495abb8..a23eab2 100644
--- a/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/loadbalancer/AbstractLoadBalancerRule.java
+++ b/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/loadbalancer/AbstractLoadBalancerRule.java
@@ -13,5 +13,4 @@ public void setLoadBalancer(ILoadBalancer lb) {
public ILoadBalancer getLoadBalancer() {
return lb;
}
-
}
diff --git a/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/ThriftClientBeanScannerConfigurer.java b/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/scanner/ThriftClientBeanScanProcessor.java
similarity index 83%
rename from spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/ThriftClientBeanScannerConfigurer.java
rename to spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/scanner/ThriftClientBeanScanProcessor.java
index 240804a..7be3f93 100644
--- a/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/ThriftClientBeanScannerConfigurer.java
+++ b/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/scanner/ThriftClientBeanScanProcessor.java
@@ -1,6 +1,5 @@
-package io.ostenant.rpc.thrift.client;
+package io.ostenant.rpc.thrift.client.scanner;
-import io.ostenant.rpc.thrift.client.scanner.ThriftClientBeanScanner;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -15,9 +14,9 @@
import java.util.*;
-public class ThriftClientBeanScannerConfigurer implements ApplicationContextAware, BeanFactoryPostProcessor {
+public class ThriftClientBeanScanProcessor implements ApplicationContextAware, BeanFactoryPostProcessor {
- private static final Logger LOGGER = LoggerFactory.getLogger(ThriftClientBeanScannerConfigurer.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(ThriftClientBeanScanProcessor.class);
private static final String SPRING_THRIFT_CLIENT_PACKAGE_TO_SCAN = "spring.thrift.client.package-to-scan";
@@ -33,12 +32,10 @@ public void setApplicationContext(ApplicationContext applicationContext) throws
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
BeanDefinitionRegistry definitionRegistry = (BeanDefinitionRegistry) beanFactory;
-
ThriftClientBeanScanner beanScanner = new ThriftClientBeanScanner(definitionRegistry);
beanScanner.setResourceLoader(applicationContext);
beanScanner.setBeanNameGenerator(new AnnotationBeanNameGenerator());
beanScanner.setScopedProxyMode(ScopedProxyMode.INTERFACES);
-
setScannedPackages(beanScanner, applicationContext.getEnvironment().getProperty(SPRING_THRIFT_CLIENT_PACKAGE_TO_SCAN));
}
@@ -52,13 +49,13 @@ private void setScannedPackages(ThriftClientBeanScanner beanScanner, String base
if (delimiterIndex > -1) {
StringTokenizer tokenizer = new StringTokenizer(basePackages, ",");
Set packageToScanSet = new HashSet<>();
-
- while (tokenizer.hasMoreTokens()) {
- String subPackage = tokenizer.nextToken();
- packageToScanSet.add(subPackage);
- LOGGER.info("Subpackage {} is to be scanned by {}", subPackage, beanScanner);
+ if (tokenizer.hasMoreTokens()) {
+ do {
+ String subPackage = tokenizer.nextToken();
+ packageToScanSet.add(subPackage);
+ LOGGER.info("Subpackage {} is to be scanned by {}", subPackage, beanScanner);
+ } while (tokenizer.hasMoreTokens());
}
-
List packageToScanList = new ArrayList<>(packageToScanSet);
String[] packagesToScan = packageToScanList.toArray(new String[packageToScanList.size()]);
beanScanner.scan(packagesToScan);
@@ -67,5 +64,4 @@ private void setScannedPackages(ThriftClientBeanScanner beanScanner, String base
beanScanner.scan(basePackages);
}
}
-
}
diff --git a/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/scanner/ThriftClientBeanScannerConfigurer.java b/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/scanner/ThriftClientBeanScannerConfigurer.java
deleted file mode 100644
index 8b5eaa2..0000000
--- a/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/scanner/ThriftClientBeanScannerConfigurer.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package io.ostenant.rpc.thrift.client.scanner;
-
-import io.ostenant.rpc.thrift.client.properties.ThriftClientProperties;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
-import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
-import org.springframework.beans.factory.support.BeanDefinitionRegistry;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-import org.springframework.context.annotation.AnnotationBeanNameGenerator;
-import org.springframework.context.annotation.ScopedProxyMode;
-
-import java.util.*;
-
-public class ThriftClientBeanScannerConfigurer implements ApplicationContextAware, BeanFactoryPostProcessor {
-
- private final static String DEFAULT_SCAN_PACKAGE = "";
-
- private Logger log = LoggerFactory.getLogger(getClass());
-
- private ApplicationContext applicationContext;
-
- private ThriftClientProperties properties;
-
- public ThriftClientBeanScannerConfigurer(ThriftClientProperties properties) {
- this.properties = properties;
- }
-
- @Override
- public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
- this.applicationContext = applicationContext;
- }
-
- @Override
- public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
- BeanDefinitionRegistry definitionRegistry = (BeanDefinitionRegistry) beanFactory;
-
- ThriftClientBeanScanner beanScanner = new ThriftClientBeanScanner(definitionRegistry);
- beanScanner.setResourceLoader(applicationContext);
- beanScanner.setBeanNameGenerator(new AnnotationBeanNameGenerator());
- beanScanner.setScopedProxyMode(ScopedProxyMode.INTERFACES);
-
- String basePackages = properties.getPackageToScan();
- if (StringUtils.isBlank(basePackages)) {
- beanScanner.scan(DEFAULT_SCAN_PACKAGE);
- return;
- }
-
- int delimiterIndex = StringUtils.indexOf(basePackages, ",");
-
- if (delimiterIndex > -1) {
- StringTokenizer tokenizer = new StringTokenizer(basePackages, ",");
- Set packageToScanSet = new HashSet<>();
-
- while (tokenizer.hasMoreTokens()) {
- String subPackage = tokenizer.nextToken();
- packageToScanSet.add(subPackage);
-
- log.info("Subpackage {} is to be scanned with {}", subPackage, beanScanner);
- }
-
- List packageToScanList = new ArrayList<>(packageToScanSet);
- String[] packagesToScan = packageToScanList.toArray(new String[packageToScanList.size()]);
- beanScanner.scan(packagesToScan);
- } else {
- log.info("Base package {} is to be scanned with {}", basePackages, beanScanner);
- beanScanner.scan(basePackages);
- }
- }
-
-}
diff --git a/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/scanner/ThriftClientFactoryBean.java b/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/scanner/ThriftClientFactoryBean.java
index 52c07dc..71c1790 100644
--- a/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/scanner/ThriftClientFactoryBean.java
+++ b/spring-cloud-starter-thrift-client/src/main/java/io/ostenant/rpc/thrift/client/scanner/ThriftClientFactoryBean.java
@@ -17,7 +17,7 @@
public class ThriftClientFactoryBean implements FactoryBean, InitializingBean {
- private Logger log = LoggerFactory.getLogger(getClass());
+ private static final Logger LOGGER = LoggerFactory.getLogger(ThriftClientFactoryBean.class);
private String beanName;
@@ -37,32 +37,30 @@ public class ThriftClientFactoryBean implements FactoryBean, InitializingB
@SuppressWarnings("unchecked")
public T getObject() throws Exception {
if (beanClass.isInterface()) {
- log.info("Prepare to generate proxy for {} with JDK", beanClass.getName());
+ LOGGER.info("Prepare to generate proxy for {} with JDK", beanClass.getName());
ThriftClientInvocationHandler invocationHandler = new ThriftClientInvocationHandler(serviceSignature, clientClass, clientConstructor);
return (T) Proxy.newProxyInstance(beanClass.getClassLoader(), new Class>[]{beanClass}, invocationHandler);
} else {
- log.info("Prepare to generate proxy for {} with Cglib", beanClass.getName());
+ LOGGER.info("Prepare to generate proxy for {} with Cglib", beanClass.getName());
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(beanClass);
enhancer.setNamingPolicy(SpringNamingPolicy.INSTANCE);
enhancer.setUseFactory(true);
- MethodInterceptor callback = (target, method, args, methodProxy) -> {
- return methodProxy.invokeSuper(target, args);
- };
+ MethodInterceptor callback = (target, method, args, methodProxy)
+ -> methodProxy.invokeSuper(target, args);
enhancer.setCallback(callback);
return (T) enhancer.create();
}
-
}
@Override
public Class> getObjectType() {
if (Objects.isNull(beanClass) && StringUtils.isBlank(beanName)) {
- log.warn("Bean class is not found");
+ LOGGER.warn("Bean class is not found");
return null;
}
@@ -78,7 +76,7 @@ public Class> getObjectType() {
e.printStackTrace();
}
} else {
- log.warn("Bean class is not found");
+ LOGGER.warn("Bean class is not found");
}
return null;
@@ -91,7 +89,7 @@ public boolean isSingleton() {
@Override
public void afterPropertiesSet() throws Exception {
- log.info("Succeed to instantiate an instance of ThriftClientFactoryBean: {}", this);
+ LOGGER.info("Succeed to instantiate an instance of ThriftClientFactoryBean: {}", this);
}
public String getBeanName() {
diff --git a/spring-cloud-starter-thrift-examples/calculator/calculator-server/src/main/java/io/ostenant/rpc/thrift/examples/rpc/RpcCalculatorService.java b/spring-cloud-starter-thrift-examples/calculator/calculator-server/src/main/java/io/ostenant/rpc/thrift/examples/rpc/RpcCalculatorService.java
index 938d993..71c4c51 100644
--- a/spring-cloud-starter-thrift-examples/calculator/calculator-server/src/main/java/io/ostenant/rpc/thrift/examples/rpc/RpcCalculatorService.java
+++ b/spring-cloud-starter-thrift-examples/calculator/calculator-server/src/main/java/io/ostenant/rpc/thrift/examples/rpc/RpcCalculatorService.java
@@ -12,7 +12,6 @@ public class RpcCalculatorService implements CalculatorService.Iface {
public int add(int arg1, int arg2) {
BigDecimal arg1Decimal = new BigDecimal(arg1);
BigDecimal arg2Decimal = new BigDecimal(arg2);
- System.out.println(System.currentTimeMillis());
return arg1Decimal.add(arg2Decimal).intValue();
}
diff --git a/spring-cloud-starter-thrift-server/src/main/java/io/ostenant/rpc/thrift/server/ThriftServerAutoConfiguration.java b/spring-cloud-starter-thrift-server/src/main/java/io/ostenant/rpc/thrift/server/ThriftServerAutoConfiguration.java
index 46a2efc..f08754d 100644
--- a/spring-cloud-starter-thrift-server/src/main/java/io/ostenant/rpc/thrift/server/ThriftServerAutoConfiguration.java
+++ b/spring-cloud-starter-thrift-server/src/main/java/io/ostenant/rpc/thrift/server/ThriftServerAutoConfiguration.java
@@ -71,17 +71,10 @@ public ThriftServerGroup thriftServerGroup(ThriftServerProperties properties) th
throw new ThriftServerInstantiateException("Failed to get target bean from " + target, e);
}
- return ThriftServiceWrapperFactory.wrapper(
- properties.getServiceId(),
- thriftServiceName, targetBean,
- thriftService.version());
+ return ThriftServiceWrapperFactory.wrapper(properties.getServiceId(), thriftServiceName, targetBean, thriftService.version());
}
- return ThriftServiceWrapperFactory.wrapper(
- properties.getServiceId(),
- thriftServiceName, target,
- thriftService.version());
-
+ return ThriftServiceWrapperFactory.wrapper(properties.getServiceId(), thriftServiceName, target, thriftService.version());
}).collect(Collectors.toList());
AbstractThriftServerContext serverContext = new ThriftServerContext(properties, serviceWrappers);
@@ -93,5 +86,4 @@ public ThriftServerGroup thriftServerGroup(ThriftServerProperties properties) th
public ThriftServerBootstrap thriftServerBootstrap(ThriftServerGroup thriftServerGroup) {
return new ThriftServerBootstrap(thriftServerGroup);
}
-
}