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 2019/08/09 02:40:32 UTC
[dubbo] 02/04: Merge branch 'cloud-native' of
https://github.com/apache/dubbo into cloud-native
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch cloud-native
in repository https://gitbox.apache.org/repos/asf/dubbo.git
commit b7b34b6c475912c4c805b389954fd897bdd9f769
Merge: 550b404 03173f8
Author: ken.lj <ke...@gmail.com>
AuthorDate: Thu Aug 8 16:22:48 2019 +0800
Merge branch 'cloud-native' of https://github.com/apache/dubbo into cloud-native
.travis.yml | 2 +-
dubbo-bom/pom.xml | 1 +
dubbo-bootstrap/pom.xml | 40 +--
.../org/apache/dubbo/bootstrap/DubboBootstrap.java | 25 +-
.../bootstrap/DubboServiceConsumerBootstrap.java | 3 +-
...ap.java => DubboServiceProvider2Bootstrap.java} | 34 +--
dubbo-cluster/pom.xml | 1 +
.../router/condition/config/ListenableRouter.java | 2 +-
.../dubbo/rpc/cluster/router/tag/TagRouter.java | 2 +-
.../support/wrapper/MockClusterInvoker.java | 2 +-
.../dubbo/rpc/cluster/router/TagRouterTest.java | 5 +-
.../support/AbstractClusterInvokerTest.java | 2 +-
dubbo-common/pom.xml | 1 +
.../apache/dubbo/common/config/Configuration.java | 2 -
.../configcenter/AbstractDynamicConfiguration.java | 182 ++++++++++++
.../config/configcenter/DynamicConfiguration.java | 86 ++++--
.../file/FileSystemDynamicConfiguration.java | 23 +-
.../configcenter/nop/NopDynamicConfiguration.java | 6 +-
.../wrapper/CompositeDynamicConfiguration.java | 5 +
.../dubbo/common/constants/CommonConstants.java | 2 +-
.../extension/AdaptiveClassCodeGenerator.java | 10 +-
.../apache/dubbo/common/bytecode/MixinTest.java | 1 -
.../common/config/InmemoryConfigurationTest.java | 6 +-
.../threadlocal/InternalThreadLocalTest.java | 1 -
.../apache/dubbo/common/utils/PojoUtilsTest.java | 5 +-
dubbo-compatible/pom.xml | 1 +
.../dubbo/rpc/protocol/dubbo/FutureAdapter.java | 6 +-
.../org/apache/dubbo/config/MethodConfigTest.java | 1 -
.../org/apache/dubbo/filter/LegacyInvoker.java | 2 +-
.../java/org/apache/dubbo/rpc/RpcContextTest.java | 6 +-
dubbo-config/dubbo-config-api/pom.xml | 1 +
.../org/apache/dubbo/config/ApplicationConfig.java | 1 -
.../org/apache/dubbo/config/ReferenceConfig.java | 14 +-
.../org/apache/dubbo/config/RegistryConfig.java | 10 +-
.../org/apache/dubbo/config/ServiceConfig.java | 5 +-
.../apache/dubbo/config/ReferenceConfigTest.java | 8 +-
.../ConfigurableMetadataServiceExporterTest.java | 5 +-
dubbo-config/dubbo-config-spring/pom.xml | 1 +
.../factory/annotation/ReferenceBeanBuilder.java | 9 +
.../ServiceAnnotationBeanPostProcessor.java | 14 +
.../dubbo/config/spring/util/AnnotationUtils.java | 20 +-
.../ReferenceAnnotationBeanPostProcessorTest.java | 89 +++---
.../ServiceAnnotationBeanPostProcessorTest.java | 13 +
.../context/annotation/EnableDubboConfigTest.java | 11 +
.../annotation/provider/DemoServiceImpl.java | 4 +-
.../DubboComponentScanRegistrarTest.java | 118 --------
.../DubboConfigBindingRegistrarTest.java | 88 ------
.../DubboConfigBindingsRegistrarTest.java | 63 -----
.../annotation/DubboConfigConfigurationTest.java | 99 -------
.../context/annotation/EnableDubboConfigTest.java | 120 --------
.../context/annotation/EnableDubboTest.java | 162 -----------
.../annotation/consumer/ConsumerConfiguration.java | 126 ---------
.../consumer/test/TestConsumerConfiguration.java | 96 -------
.../annotation/provider/DemoServiceImpl.java | 55 ----
.../annotation/provider/ProviderConfiguration.java | 109 --------
.../properties/DefaultDubboConfigBinderTest.java | 94 -------
dubbo-config/pom.xml | 1 +
.../support/nop/NopDynamicConfigurationTest.java | 70 -----
.../dubbo-configcenter-apollo/pom.xml | 1 +
.../support/apollo/ApolloDynamicConfiguration.java | 10 +-
.../dubbo-configcenter-consul/pom.xml | 3 +-
.../consul/ConsulDynamicConfiguration.java | 6 +-
dubbo-configcenter/dubbo-configcenter-etcd/pom.xml | 3 +-
.../support/etcd/EtcdDynamicConfiguration.java | 20 +-
.../dubbo-configcenter-nacos/pom.xml | 3 +-
.../support/nacos/NacosDynamicConfiguration.java | 8 +-
.../nacos/NacosDynamicConfigurationTest.java | 6 +-
.../dubbo-configcenter-zookeeper/pom.xml | 1 +
.../zookeeper/ZookeeperDynamicConfiguration.java | 84 +++---
.../ZookeeperDynamicConfigurationTest.java | 2 +-
dubbo-configcenter/pom.xml | 1 +
dubbo-container/dubbo-container-api/pom.xml | 1 +
dubbo-container/dubbo-container-log4j/pom.xml | 1 +
dubbo-container/dubbo-container-logback/pom.xml | 1 +
dubbo-container/dubbo-container-spring/pom.xml | 1 +
dubbo-container/pom.xml | 1 +
.../dubbo-demo-annotation-consumer/pom.xml | 3 +-
.../resources/spring/dubbo-consumer.properties | 2 +-
.../dubbo-demo-annotation-provider/pom.xml | 3 +-
.../apache/dubbo/demo/provider/Application.java | 6 +-
.../dubbo-demo-api/dubbo-demo-api-consumer/pom.xml | 3 +-
.../apache/dubbo/demo/consumer/Application.java | 6 +-
.../dubbo-demo-api/dubbo-demo-api-provider/pom.xml | 3 +-
.../apache/dubbo/demo/provider/Application.java | 6 +-
dubbo-demo/dubbo-demo-api/pom.xml | 3 +-
dubbo-demo/dubbo-demo-interface/pom.xml | 1 +
.../dubbo-demo-xml/dubbo-demo-xml-consumer/pom.xml | 1 +
.../apache/dubbo/demo/consumer/Application.java | 4 -
.../src/main/resources/spring/dubbo-consumer.xml | 4 +-
.../dubbo-demo-xml/dubbo-demo-xml-provider/pom.xml | 4 +-
.../apache/dubbo/demo/provider/Application.java | 4 -
.../src/main/resources/spring/dubbo-provider.xml | 6 +-
dubbo-demo/dubbo-demo-xml/pom.xml | 3 +-
dubbo-demo/pom.xml | 1 +
dubbo-dependencies/pom.xml | 3 +-
dubbo-distribution/pom.xml | 1 +
dubbo-filter/dubbo-filter-cache/pom.xml | 1 +
dubbo-filter/dubbo-filter-validation/pom.xml | 1 +
dubbo-filter/pom.xml | 1 +
dubbo-metadata/dubbo-metadata-api/pom.xml | 1 +
.../DynamicConfigurationServiceNameMapping.java | 13 +-
.../org/apache/dubbo/metadata/MetadataService.java | 99 +++++--
.../org/apache/dubbo/metadata/MetadataUtil.java | 33 +++
.../dubbo/metadata/WritableMetadataService.java | 2 +-
.../definition/model/MethodDefinition.java | 18 +-
.../store/InMemoryWritableMetadataService.java | 101 +++----
.../store/RemoteWritableMetadataService.java | 20 +-
...g.apache.dubbo.metadata.WritableMetadataService | 2 +-
...DynamicConfigurationServiceNameMappingTest.java | 38 +--
.../InMemoryWritableMetadataServiceTest.java | 32 ++-
.../report/identifier/MetadataIdentifierTest.java | 2 +-
.../report/support/AbstractMetadataReportTest.java | 14 +-
.../store/RemoteWritableMeatadataServiceTest.java | 4 +-
...che.dubbo.metadata.report.MetadataReportFactory | 1 +
.../dubbo-metadata-definition-protobuf/pom.xml | 4 +-
.../definition/protobuf/ProtobufTypeBuilder.java | 308 +++++++++++++++++++++
...e.dubbo.metadata.definition.builder.TypeBuilder | 0
.../protobuf/ProtobufTypeBuilderTest.java | 71 +++++
.../definition/protobuf/model/GooglePB.java | 0
.../protobuf/model/ServiceInterface.java | 0
.../dubbo-metadata-report-consul/pom.xml | 3 +-
dubbo-metadata/dubbo-metadata-report-etcd/pom.xml | 3 +-
dubbo-metadata/dubbo-metadata-report-nacos/pom.xml | 3 +-
dubbo-metadata/dubbo-metadata-report-redis/pom.xml | 3 +-
.../dubbo-metadata-report-zookeeper/pom.xml | 4 +-
dubbo-metadata/pom.xml | 2 +-
dubbo-monitor/dubbo-monitor-api/pom.xml | 1 +
dubbo-monitor/dubbo-monitor-default/pom.xml | 1 +
.../dubbo/monitor/dubbo/MetricsFilterTest.java | 2 -
dubbo-monitor/pom.xml | 1 +
dubbo-plugin/dubbo-qos/pom.xml | 1 +
.../dubbo/qos/command/util/CommandHelperTest.java | 3 +-
dubbo-plugin/pom.xml | 3 +-
dubbo-registry/dubbo-registry-api/pom.xml | 1 +
.../dubbo/registry/client/ServiceInstance.java | 43 ---
.../CompositeMetadataServiceURLBuilder.java | 81 ++++++
...ExportedServicesRevisionMetadataCustomizer.java | 4 +-
.../client/metadata/MetadataServiceProxy.java | 9 +-
.../client/metadata/MetadataServiceURLBuilder.java | 60 ++--
...MetadataServiceURLParamsMetadataCustomizer.java | 4 +-
.../metadata/ServiceInstanceMetadataUtils.java | 14 +-
.../SpringCloudMetadataServiceURLBuilder.java | 49 ++++
...java => StandardMetadataServiceURLBuilder.java} | 13 +-
.../proxy/DefaultMetadataServiceProxyFactory.java | 11 +-
.../proxy/MetadataServiceProxyFactory.java | 2 +-
.../registry/support/ServiceOrientedRegistry.java | 32 ++-
...try.client.metadata.MetadataServiceProxyFactory | 1 -
...ient.metadata.proxy.MetadataServiceProxyFactory | 2 +-
...istry.client.metadata.MetadataServiceURLBuilder | 2 +
.../client/DefaultServiceInstanceTest.java | 36 ++-
.../CustomizableServiceInstanceListenerTest.java | 29 +-
.../event/listener/LoggingEventListenerTest.java | 85 ++++++
.../ServiceInstancesChangedListenerTest.java | 54 ++++
.../metadata/MetadataServiceURLBuilderTest.java | 53 ++++
.../metadata/ServiceInstanceMetadataUtilsTest.java | 17 +-
.../SpringCloudMetadataServiceURLBuilderTest.java | 51 ++++
.../support/ServiceOrientedRegistryTest.java | 32 ++-
dubbo-registry/dubbo-registry-consul/pom.xml | 1 +
.../registry/consul/AbstractConsulRegistry.java | 27 ++
.../dubbo/registry/consul/ConsulRegistry.java | 23 +-
.../registry/consul/ConsulServiceDiscovery.java | 196 +++++++++++++
.../consul/ConsulServiceDiscoveryFactory.java | 19 +-
dubbo-registry/dubbo-registry-default/pom.xml | 1 +
.../dubbo/registry/dubbo/RegistryProtocolTest.java | 2 +-
dubbo-registry/dubbo-registry-etcd3/pom.xml | 1 +
.../dubbo/registry/etcd/EtcdServiceDiscovery.java | 13 +-
.../dubbo/registry/etcd/EtcdRegistryTest.java | 2 +-
dubbo-registry/dubbo-registry-multicast/pom.xml | 1 +
.../registry/multicast/MulticastRegistry.java | 6 +-
dubbo-registry/dubbo-registry-multiple/pom.xml | 1 +
.../dubbo/registry/nacos/NacosRegistryFactory.java | 3 -
.../nacos/util/NacosNamingServiceUtils.java | 3 +-
dubbo-registry/dubbo-registry-redis/pom.xml | 1 +
dubbo-registry/dubbo-registry-zookeeper/pom.xml | 1 +
.../registry/zookeeper/ZookeeperRegistry.java | 2 -
.../zookeeper/ZookeeperServiceDiscovery.java | 37 +++
.../registry/zookeeper/ZookeeperRegistryTest.java | 3 +-
.../zookeeper/ZookeeperServiceDiscoveryTest.java | 2 +
dubbo-registry/pom.xml | 1 +
dubbo-remoting/dubbo-remoting-api/pom.xml | 1 +
.../dubbo/remoting/PerformanceClientFixedTest.java | 2 +-
.../remoting/transport/AbstractCodecTest.java | 5 +-
dubbo-remoting/dubbo-remoting-etcd3/pom.xml | 1 +
dubbo-remoting/dubbo-remoting-grizzly/pom.xml | 1 +
dubbo-remoting/dubbo-remoting-http/pom.xml | 1 +
dubbo-remoting/dubbo-remoting-mina/pom.xml | 1 +
dubbo-remoting/dubbo-remoting-netty/pom.xml | 1 +
dubbo-remoting/dubbo-remoting-netty4/pom.xml | 1 +
dubbo-remoting/dubbo-remoting-p2p/pom.xml | 1 +
dubbo-remoting/dubbo-remoting-zookeeper/pom.xml | 1 +
.../zookeeper/curator/CuratorZookeeperClient.java | 5 +
dubbo-remoting/pom.xml | 1 +
dubbo-rpc/dubbo-rpc-api/pom.xml | 1 +
.../dubbo/rpc/filter/AccessLogFilterTest.java | 7 +-
.../apache/dubbo/rpc/support/BlockMyInvoker.java | 2 +-
.../apache/dubbo/rpc/support/MockInvokerTest.java | 11 +-
.../org/apache/dubbo/rpc/support/MyInvoker.java | 2 +-
.../org/apache/dubbo/rpc/support/RpcUtilsTest.java | 4 +-
dubbo-rpc/dubbo-rpc-dubbo/pom.xml | 1 +
.../dubbo/rpc/protocol/dubbo/DubboProtocol.java | 2 +-
.../dubbo/ReferenceCountExchangeClient.java | 3 +
dubbo-rpc/dubbo-rpc-hessian/pom.xml | 1 +
dubbo-rpc/dubbo-rpc-http/pom.xml | 1 +
dubbo-rpc/dubbo-rpc-injvm/pom.xml | 1 +
dubbo-rpc/dubbo-rpc-jsonrpc/pom.xml | 1 +
dubbo-rpc/dubbo-rpc-memcached/pom.xml | 1 +
dubbo-rpc/dubbo-rpc-native-thrift/pom.xml | 1 +
dubbo-rpc/dubbo-rpc-redis/pom.xml | 1 +
dubbo-rpc/dubbo-rpc-rest/pom.xml | 1 +
.../DubboSwaggerApiListingResourceTest.java | 4 +-
dubbo-rpc/dubbo-rpc-rmi/pom.xml | 1 +
.../dubbo/rpc/protocol/rmi/RmiProtocolTest.java | 4 +-
dubbo-rpc/dubbo-rpc-thrift/pom.xml | 1 +
dubbo-rpc/dubbo-rpc-webservice/pom.xml | 1 +
dubbo-rpc/dubbo-rpc-xml/pom.xml | 1 +
.../xml/rpc/protocol/xmlrpc/XmlRpcProtocol.java | 2 +-
dubbo-rpc/pom.xml | 1 +
.../dubbo-serialization-api/pom.xml | 1 +
.../dubbo-serialization-avro/pom.xml | 1 +
.../common/serialize/avro/AvroObjectInput.java | 3 +-
.../common/serialize/avro/AvroObjectOutput.java | 3 +-
.../dubbo-serialization-fastjson/pom.xml | 1 +
.../dubbo-serialization-fst/pom.xml | 1 +
.../dubbo-serialization-gson/pom.xml | 1 +
.../dubbo-serialization-hessian2/pom.xml | 1 +
.../dubbo-serialization-jdk/pom.xml | 1 +
.../dubbo-serialization-kryo/pom.xml | 1 +
.../dubbo-serialization-native-hession/pom.xml | 3 +-
.../dubbo-serialization-protobuf-json/pom.xml | 3 +-
.../dubbo-serialization-protostuff/pom.xml | 3 +-
.../serialize/protostuff/utils/WrapperUtils.java | 2 +-
.../dubbo-serialization-test/pom.xml | 3 +-
.../serialize/hessian2/Hessian2PersonOkTest.java | 1 +
.../support/GenericProtobufObjectOutputTest.java | 1 +
.../protostuff/ProtostuffObjectOutputTest.java | 10 +-
.../support/SerializableClassRegistryTest.java | 3 +-
dubbo-serialization/pom.xml | 1 +
237 files changed, 2108 insertions(+), 1932 deletions(-)
diff --cc dubbo-bootstrap/src/main/java/org/apache/dubbo/bootstrap/DubboBootstrap.java
index e88d9ac,ab20a6f..fbc523a
--- a/dubbo-bootstrap/src/main/java/org/apache/dubbo/bootstrap/DubboBootstrap.java
+++ b/dubbo-bootstrap/src/main/java/org/apache/dubbo/bootstrap/DubboBootstrap.java
@@@ -264,8 -256,8 +260,7 @@@ public class DubboBootstrap
return this;
}
-
// {@link ServiceConfig} correlative methods
-
public <S> DubboBootstrap service(Consumer<ServiceBuilder<S>> consumerBuilder) {
return service(DEFAULT_SERVICE_ID, consumerBuilder);
}
@@@ -281,8 -273,8 +276,7 @@@
return this;
}
-
// {@link Reference} correlative methods
-
public <S> DubboBootstrap reference(Consumer<ReferenceBuilder<S>> consumerBuilder) {
return reference(DEFAULT_REFERENCE_ID, consumerBuilder);
}
@@@ -298,8 -290,8 +292,7 @@@
return this;
}
-
// {@link ProviderConfig} correlative methods
-
public DubboBootstrap provider(Consumer<ProviderBuilder> builderConsumer) {
return provider(DEFAULT_PROVIDER_ID, builderConsumer);
}
@@@ -319,8 -311,8 +312,7 @@@
return this;
}
-
// {@link ConsumerConfig} correlative methods
-
public DubboBootstrap consumer(Consumer<ConsumerBuilder> builderConsumer) {
return consumer(DEFAULT_CONSUMER_ID, builderConsumer);
}
@@@ -571,14 -560,11 +563,13 @@@
return new ConsumerBuilder().id(id);
}
-
/* serve for builder apis, end */
-
private void startMetadataReport() {
- ApplicationConfig applicationConfig = configManager.getApplication().orElseThrow(() -> new IllegalStateException("There's no ApplicationConfig specified."));
+ ApplicationConfig applicationConfig = configManager.getApplication().orElseThrow(
+ () -> new IllegalStateException("There's no ApplicationConfig specified.")
+ );
+ String metadataType = applicationConfig.getMetadata();
// FIXME, multiple metadata config support.
Collection<MetadataReportConfig> metadataReportConfigs = configManager.getMetadataConfigs();
if (CollectionUtils.isEmpty(metadataReportConfigs)) {
@@@ -668,52 -653,25 +659,56 @@@
serviceConfig.export();
}
+ public boolean isOnlyRegisterProvider() {
+ return onlyRegisterProvider;
+ }
+
- private void registerServiceInstance(List<URL> exportedURLs) {
+ private void registerServiceInstance(ApplicationConfig applicationConfig) {
+ ExtensionLoader<Protocol> loader = ExtensionLoader.getExtensionLoader(Protocol.class);
+ Set<String> protocols = loader.getLoadedExtensions();
+ if (CollectionUtils.isEmpty(protocols)) {
+ throw new IllegalStateException("There should has at least one Protocol specified.");
+ }
+
+ String protocol = findOneProtocolForServiceInstance(protocols);
- exportedURLs
- .stream()
- .findFirst()
- .ifPresent(url -> {
- String serviceName = url.getParameter(APPLICATION_KEY);
- String host = url.getHost();
- int port = url.getPort();
+ Protocol protocolInstance = loader.getExtension(protocol);
- ServiceInstance serviceInstance = initServiceInstance(serviceName, host, port);
+ String serviceName = applicationConfig.getName();
+ // TODO, only support exporting one server
+ ProtocolServer server = protocolInstance.getServers().get(0);
+ String[] address = server.getAddress().split(GROUP_CHAR_SEPERATOR);
+ String host = address[0];
+ int port = Integer.parseInt(address[1]);
- getServiceDiscoveries().forEach(serviceDiscovery -> serviceDiscovery.register(serviceInstance));
+ ServiceInstance serviceInstance = initServiceInstance(
+ serviceName,
+ host,
+ port,
+ applicationConfig.getMetadata() == null ? METADATA_DEFAULT : applicationConfig.getMetadata()
+ );
- });
+ getServiceDiscoveries().forEach(serviceDiscovery -> serviceDiscovery.register(serviceInstance));
+ }
+
+ /**
+ * If use rest protocol if there's one, otherwise, choose the first one available.
+ *
+ * @return
+ */
+ private String findOneProtocolForServiceInstance(Set<String> protocols) {
+ String result = null;
+ for (String protocol : protocols) {
+ if ("rest".equals(protocol)) {
+ result = protocol;
+ break;
+ }
+ }
+
+ if (result == null) {
+ result = protocols.iterator().next();
+ }
+ return result;
}
private void unregisterServiceInstance() {
diff --cc dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ExportedServicesRevisionMetadataCustomizer.java
index 8c3c9d5,188312e..4887457
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ExportedServicesRevisionMetadataCustomizer.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ExportedServicesRevisionMetadataCustomizer.java
@@@ -48,10 -47,8 +48,10 @@@ public class ExportedServicesRevisionMe
@Override
protected String buildMetadataValue(ServiceInstance serviceInstance) {
- WritableMetadataService writableMetadataService = WritableMetadataService.getDefaultExtension();
+ WritableMetadataService writableMetadataService = WritableMetadataService.getExtension(
+ serviceInstance.getMetadata().get(METADATA_KEY)
+ );
- List<String> exportedURLs = writableMetadataService.getExportedURLs();
+ SortedSet<String> exportedURLs = writableMetadataService.getExportedURLs();
Object[] data = exportedURLs.stream()
.map(URL::valueOf) // String to URL
.map(URL::getServiceInterface) // get the service interface
diff --cc dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLParamsMetadataCustomizer.java
index ed86919,fadc9c4..cf5cc51
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLParamsMetadataCustomizer.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLParamsMetadataCustomizer.java
@@@ -22,9 -22,8 +22,9 @@@ import org.apache.dubbo.metadata.Writab
import org.apache.dubbo.registry.client.ServiceInstance;
import org.apache.dubbo.registry.client.ServiceInstanceMetadataCustomizer;
- import java.util.List;
+ import java.util.SortedSet;
+import static org.apache.dubbo.common.constants.CommonConstants.METADATA_KEY;
import static org.apache.dubbo.metadata.MetadataService.toURLs;
import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.METADATA_SERVICE_URL_PARAMS_KEY;
import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.getMetadataServiceParameter;