You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2018/11/01 07:20:14 UTC
[incubator-dubbo] 05/06: Merge url part from cvictory and fix
configuration override problems
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
commit 65450f5b8fda19b4b807adc06f59e4ffbc344f0d
Merge: 80f9091 91f1ce8
Author: ken.lj <ke...@gmail.com>
AuthorDate: Thu Nov 1 15:18:28 2018 +0800
Merge url part from cvictory and fix configuration override problems
dubbo-bom/pom.xml | 5 +
.../org/apache/dubbo/rpc/cluster/RouterChain.java | 15 +-
.../java/org/apache/dubbo/common/Constants.java | 28 ++-
.../dubbo/config/AbstractInterfaceConfig.java | 89 ++++---
...eStoreConfig.java => MetadataReportConfig.java} | 39 +++-
.../org/apache/dubbo/config/ReferenceConfig.java | 5 +-
.../org/apache/dubbo/config/RegistryConfig.java | 17 --
.../apache/dubbo/config/RegistryDataConfig.java | 89 +++++++
.../org/apache/dubbo/config/ServiceConfig.java | 7 +-
.../apache/dubbo/config/spring/ReferenceBean.java | 14 +-
.../apache/dubbo/config/spring/ServiceBean.java | 14 +-
.../spring/schema/DubboNamespaceHandler.java | 2 -
.../src/main/resources/META-INF/compat/dubbo.xsd | 16 +-
.../src/main/resources/META-INF/dubbo.xsd | 12 +-
.../META-INF/spring/dubbo-demo-consumer.xml | 2 +-
dubbo-dependencies-bom/pom.xml | 6 +
.../{ => dubbo-metadata-definition}/pom.xml | 21 +-
.../definition/ServiceDefinitionBuilder.java | 106 +++++++++
.../metadata/definition/TypeDefinitionBuilder.java | 79 +++++++
.../definition/builder/ArrayTypeBuilder.java | 54 +++++
.../definition/builder/CollectionTypeBuilder.java | 79 +++++++
.../definition/builder/DefaultTypeBuilder.java | 70 ++++++
.../definition/builder/EnumTypeBuilder.java | 63 +++++
.../definition/builder/MapTypeBuilder.java | 77 ++++++
.../metadata/definition/builder/TypeBuilder.java} | 26 ++-
.../definition/model/FullServiceDefinition.java} | 22 +-
.../definition/model/MethodDefinition.java | 74 ++++++
.../definition/model/ServiceDefinition.java | 80 +++++++
.../metadata/definition/model/TypeDefinition.java | 106 +++++++++
.../dubbo/metadata/definition/util/ClassUtils.java | 112 +++++++++
.../definition/util/JaketConfigurationUtils.java | 100 ++++++++
.../dubbo/metadata/definition/MetadataTest.java | 153 ++++++++++++
.../dubbo/metadata/definition/MetadataUtils.java | 75 ++++++
.../definition/common/ClassExtendsMap.java} | 21 +-
.../metadata/definition/common/ColorEnum.java} | 14 +-
.../metadata/definition/common/OuterClass.java} | 28 ++-
.../common/ResultWithRawCollections.java} | 38 ++-
.../metadata/definition/common/TestService.java} | 42 +++-
.../dubbo-metadata-report-api/pom.xml | 9 +
.../identifier/ConsumerMetadataIdentifier.java | 31 +++
.../metadata/identifier/MetadataIdentifier.java | 85 +++++++
.../identifier/ProviderMetadataIdentifier.java | 17 ++
.../integration/MetadataReportService.java | 89 +++----
.../dubbo/metadata/store/MetadataReport.java | 25 +-
.../metadata/store/MetadataReportFactory.java | 4 +-
.../metadata/support/AbstractMetadataReport.java | 231 ++++++++++++------
.../support/AbstractMetadataReportFactory.java | 20 +-
.../integration/MetadataReportServiceTest.java | 75 ++----
.../metadata/integration/RetryTestService.java | 11 +
.../store/test/JTestMetadataReport4Test.java | 22 +-
.../test/JTestMetadataReportFactory4Test.java | 2 +-
.../support/AbstractMetadataReportFactoryTest.java | 43 ++--
.../support/AbstractMetadataReportTest.java | 258 +++++++++++++++++----
.../metadata/store/redis/RedisMetadataReport.java | 29 ++-
.../store/redis/RedisMetadataReportFactory.java | 2 +-
.../store/redis/RedisMetadata4TstService.java | 12 +
.../store/redis/RedisMetadataReportTest.java | 111 +++++----
.../store/zookeeper/ZookeeperMetadataReport.java | 79 ++-----
.../zookeeper/ZookeeperMetadataReportFactory.java | 2 +-
.../ZookeeperMetadataReport4TstService.java | 11 +
.../zookeeper/ZookeeperMetadataReportTest.java | 209 ++++++-----------
dubbo-metadata-report/pom.xml | 1 +
.../registry/integration/RegistryProtocol.java | 9 +-
63 files changed, 2435 insertions(+), 752 deletions(-)
diff --cc dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/RouterChain.java
index aaac226,aaac226..0826ad9
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/RouterChain.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/RouterChain.java
@@@ -26,10 -26,10 +26,10 @@@ import org.apache.dubbo.rpc.RpcInvocati
import org.apache.dubbo.rpc.cluster.router.InvokerTreeCache;
import org.apache.dubbo.rpc.cluster.router.TreeNode;
--import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
++import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
/**
@@@ -45,7 -45,7 +45,7 @@@ public class RouterChain<T>
// it's aimed to improve performance, only routers explicitly specifies 'runtime=true' will be executed when an RPC comes.
private InvokerTreeCache<T> treeCache;
// containing all routers, reconstruct every time 'route://' urls change.
-- private List<Router> routers;
++ private List<Router> routers = new CopyOnWriteArrayList<>();
// Fixed router instances: ConfigConditionRouter, TagRouter, e.g., the rule for each instance may change but the instance will never delete or recreate.
private List<Router> residentRouters;
@@@ -63,12 -63,12 +63,11 @@@
}
protected RouterChain(List<Router> routers) {
-- this.routers = routers;
++ this.routers.addAll(routers);
treeCache = new InvokerTreeCache<>();
}
protected RouterChain(URL url) {
-- this.routers = new ArrayList<>();
treeCache = new InvokerTreeCache<>();
this.url = url;
}
@@@ -92,9 -92,9 +91,11 @@@
* @param generatedRouters
*/
public void setGeneratedRouters(List<Router> generatedRouters) {
-- this.routers = new ArrayList<>();
-- this.routers.addAll(residentRouters);
-- this.routers.addAll(generatedRouters);
++ List<Router> newRouters = new CopyOnWriteArrayList<>();
++ newRouters.addAll(residentRouters);
++ newRouters.addAll(generatedRouters);
++ this.routers = newRouters;
++ // FIXME will sort cause concurrent problem? since it's kind of a write operation.
this.sort();
if (fullMethodInvokers != null) {
this.preRoute(fullMethodInvokers, url, null);
diff --cc dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/schema/DubboNamespaceHandler.java
index 559ec6b,e765e2d..df0415b
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/schema/DubboNamespaceHandler.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/schema/DubboNamespaceHandler.java
@@@ -24,8 -25,6 +24,7 @@@ import org.apache.dubbo.config.MonitorC
import org.apache.dubbo.config.ProtocolConfig;
import org.apache.dubbo.config.ProviderConfig;
import org.apache.dubbo.config.RegistryConfig;
- import org.apache.dubbo.config.ServiceStoreConfig;
+import org.apache.dubbo.config.spring.ConfigCenterBean;
import org.apache.dubbo.config.spring.ReferenceBean;
import org.apache.dubbo.config.spring.ServiceBean;
import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
@@@ -46,8 -45,7 +45,7 @@@ public class DubboNamespaceHandler exte
registerBeanDefinitionParser("application", new DubboBeanDefinitionParser(ApplicationConfig.class, true));
registerBeanDefinitionParser("module", new DubboBeanDefinitionParser(ModuleConfig.class, true));
registerBeanDefinitionParser("registry", new DubboBeanDefinitionParser(RegistryConfig.class, true));
- registerBeanDefinitionParser("servicestore", new DubboBeanDefinitionParser(ServiceStoreConfig.class, true));
- registerBeanDefinitionParser("configcenter", new DubboBeanDefinitionParser(ConfigCenterConfig.class, true));
+ registerBeanDefinitionParser("configcenter", new DubboBeanDefinitionParser(ConfigCenterBean.class, true));
registerBeanDefinitionParser("monitor", new DubboBeanDefinitionParser(MonitorConfig.class, true));
registerBeanDefinitionParser("provider", new DubboBeanDefinitionParser(ProviderConfig.class, true));
registerBeanDefinitionParser("consumer", new DubboBeanDefinitionParser(ConsumerConfig.class, true));