diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/protocol/AbstractProtocol.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/protocol/AbstractProtocol.java index af05c501f4236724ca94c764f91dc69db7eceab9..29050a7f1d6bf7cde623c3a0b115a79226586541 100644 --- a/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/protocol/AbstractProtocol.java +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/protocol/AbstractProtocol.java @@ -1,18 +1,18 @@ -/* - * Copyright 1999-2011 Alibaba Group. - * - * Licensed 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. - */ +/* + * Copyright 1999-2011 Alibaba Group. + * + * Licensed 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 com.alibaba.dubbo.rpc.protocol; import java.util.ArrayList; @@ -25,10 +25,11 @@ import com.alibaba.dubbo.common.URL; import com.alibaba.dubbo.common.logger.Logger; import com.alibaba.dubbo.common.logger.LoggerFactory; import com.alibaba.dubbo.common.utils.ConcurrentHashSet; -import com.alibaba.dubbo.common.utils.ConfigUtils; +import com.alibaba.dubbo.common.utils.ConfigUtils; import com.alibaba.dubbo.rpc.Exporter; import com.alibaba.dubbo.rpc.Invoker; import com.alibaba.dubbo.rpc.Protocol; +import com.alibaba.dubbo.rpc.support.ProtocolUtils; /** * abstract ProtocolSupport. @@ -41,29 +42,16 @@ public abstract class AbstractProtocol implements Protocol { protected final Logger logger = LoggerFactory.getLogger(getClass()); protected final Map> exporterMap = new ConcurrentHashMap>(); - + //TODO SOFEREFENCE protected final Set> invokers = new ConcurrentHashSet>(); protected static String serviceKey(URL url) { - return serviceKey(url.getPort(), url.getPath(), url.getParameter(Constants.VERSION_KEY), - url.getParameter(Constants.GROUP_KEY)); + return ProtocolUtils.serviceKey(url); } protected static String serviceKey(int port, String serviceName, String serviceVersion, String serviceGroup) { - StringBuilder buf = new StringBuilder(); - if (serviceGroup != null && serviceGroup.length() > 0) { - buf.append(serviceGroup); - buf.append("/"); - } - buf.append(serviceName); - if (serviceVersion != null && serviceVersion.length() > 0 && ! "0.0.0".equals(serviceVersion)) { - buf.append(":"); - buf.append(serviceVersion); - } - buf.append(":"); - buf.append(port); - return buf.toString(); + return ProtocolUtils.serviceKey(port, serviceName, serviceVersion, serviceGroup); } public void destroy() { diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/support/ProtocolUtils.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/support/ProtocolUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..11695391f26f3077ccc52adeae66e0db022af84b --- /dev/null +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/com/alibaba/dubbo/rpc/support/ProtocolUtils.java @@ -0,0 +1,35 @@ +package com.alibaba.dubbo.rpc.support; + +import com.alibaba.dubbo.common.Constants; +import com.alibaba.dubbo.common.URL; + +/** + * @author kimi + */ +public class ProtocolUtils { + + private ProtocolUtils() { + } + + public static String serviceKey(URL url) { + return serviceKey(url.getPort(), url.getPath(), url.getParameter(Constants.VERSION_KEY), + url.getParameter(Constants.GROUP_KEY)); + } + + public static String serviceKey(int port, String serviceName, String serviceVersion, String serviceGroup) { + StringBuilder buf = new StringBuilder(); + if (serviceGroup != null && serviceGroup.length() > 0) { + buf.append(serviceGroup); + buf.append("/"); + } + buf.append(serviceName); + if (serviceVersion != null && serviceVersion.length() > 0 && !"0.0.0".equals(serviceVersion)) { + buf.append(":"); + buf.append(serviceVersion); + } + buf.append(":"); + buf.append(port); + return buf.toString(); + } + +}