This is an automated email from the ASF dual-hosted git repository. liujun pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo.git
commit 1090348566dd5afd1f5a03477ccc3120167bd639 Merge: cea3de7 e826d08 Author: ken.lj <[email protected]> AuthorDate: Thu Oct 31 16:33:21 2019 +0800 Merge branch 'merge-3.x' # Conflicts: # dubbo-common/src/main/java/org/apache/dubbo/common/URL.java # dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceMetadata.java # dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Offline.java # dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Online.java # dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/LsTest.java # dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/OfflineTest.java # dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/OnlineTest.java # dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/RpcInvocation.java # dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/GenericImplFilter.java .../org/apache/dubbo/common/ServiceDescriptor.java | 94 ++++++++++++++++++++++ .../src/main/java/org/apache/dubbo/common/URL.java | 16 +--- .../common/config/OrderedPropertiesProvider.java | 5 ++ .../dubbo/common/extension/ExtensionLoader.java | 39 +++++---- .../apache/dubbo/rpc/model/ServiceMetadata.java | 45 ++--------- .../dubbo/qos/command/impl/TestInterface.java | 9 +++ .../dubbo/qos/command/impl/TestInterface2.java | 9 +++ .../main/java/org/apache/dubbo/rpc/Invocation.java | 12 +++ .../org/apache/dubbo/rpc/support/RpcUtils.java | 3 + 9 files changed, 166 insertions(+), 66 deletions(-) diff --cc dubbo-common/src/main/java/org/apache/dubbo/common/URL.java index b6429d6,6a34fdd..cbe358c --- a/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java @@@ -407,30 -339,6 +407,18 @@@ class URL implements Serializable } } + static String appendDefaultPort(String address, int defaultPort) { + if (address != null && address.length() > 0 && defaultPort > 0) { + int i = address.indexOf(':'); + if (i < 0) { + return address + ":" + defaultPort; + } else if (Integer.parseInt(address.substring(i + 1)) == 0) { + return address.substring(0, i + 1) + defaultPort; + } + } + return address; + } + - public static String buildKey(String path, String group, String version) { - StringBuilder buf = new StringBuilder(); - if (group != null && group.length() > 0) { - buf.append(group).append("/"); - } - buf.append(path); - if (version != null && version.length() > 0) { - buf.append(":").append(version); - } - return buf.toString(); - } - public String getProtocol() { return protocol; } diff --cc dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceMetadata.java index f917ac1,0000000..5275030 mode 100644,000000..100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceMetadata.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ServiceMetadata.java @@@ -1,137 -1,0 +1,102 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.dubbo.rpc.model; + - import org.apache.dubbo.common.utils.StringUtils; ++import org.apache.dubbo.common.ServiceDescriptor; ++import org.apache.dubbo.common.URL; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Notice, this class currently has no usage inside Dubbo. + * + * data related to service level such as name, version, classloader of business service, + * security info, etc. Also with a AttributeMap for extension. + */ - public class ServiceMetadata { ++public class ServiceMetadata extends ServiceDescriptor { + - private String serviceKey; - private String serviceInterfaceName; + private String defaultGroup; - private String version; + private Class<?> serviceType; + - private volatile String group; - + private Object target; + + /* will be transferred to remote side */ + private final Map<String, Object> attachments = new ConcurrentHashMap<String, Object>(); + /* used locally*/ + private final Map<String, Object> attributeMap = new ConcurrentHashMap<String, Object>(); + + public ServiceMetadata(String serviceInterfaceName, String group, String version, Class<?> serviceType) { + this.serviceInterfaceName = serviceInterfaceName; + this.defaultGroup = group; + this.group = group; + this.version = version; - this.serviceKey = serviceInterfaceName + ":" + version; ++ this.serviceKey = URL.buildKey(serviceInterfaceName, group, version); + this.serviceType = serviceType; + } + + public ServiceMetadata() { + } + + public String getServiceKey() { - if (StringUtils.isNotEmpty(serviceKey)) { - return serviceKey; - } - return serviceInterfaceName + ":" + version; ++ return serviceKey; + } + + public Map<String, Object> getAttachments() { + return attachments; + } + + public Map<String, Object> getAttributeMap() { + return attributeMap; + } + + public Object getAttribute(String key) { + return attributeMap.get(key); + } + + public void addAttribute(String key, Object value) { + this.attributeMap.put(key, value); + } + + public void addAttachment(String key, Object value) { + this.attributeMap.put(key, value); + } + + public Class<?> getServiceType() { + return serviceType; + } + - public String getServiceInterfaceName() { - return serviceInterfaceName; - } - + public String getDefaultGroup() { + return defaultGroup; + } + - public String getVersion() { - return version; - } - - public String getGroup() { - return group; - } - - public void setGroup(String group) { - this.group = group; - } - - public void setServiceInterfaceName(String serviceInterfaceName) { - this.serviceInterfaceName = serviceInterfaceName; - } - + public void setDefaultGroup(String defaultGroup) { + this.defaultGroup = defaultGroup; + } + - public void setVersion(String version) { - this.version = version; - } - + public void setServiceType(Class<?> serviceType) { + this.serviceType = serviceType; + } + - public void setServiceKey(String serviceKey) { - this.serviceKey = serviceKey; - } - + public Object getTarget() { + return target; + } + + public void setTarget(Object target) { + this.target = target; + } +}
