This is an automated email from the ASF dual-hosted git repository.

dinglei pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new 838854ffc Remove useless GetRouteInfoRequestHeader.split constant to 
ensure compatibility (#4718)
838854ffc is described below

commit 838854ffcd7a13c97625730cc9d37cda0d22efaa
Author: rongtong <[email protected]>
AuthorDate: Thu Aug 4 09:59:50 2022 +0800

    Remove useless GetRouteInfoRequestHeader.split constant to ensure 
compatibility (#4718)
---
 .../header/namesrv/GetRouteInfoRequestHeader.java  |  1 -
 .../common/protocol/route/TopicRouteDatas.java     | 36 -------------
 .../namesrv/processor/ClientRequestProcessor.java  | 62 +++++++++-------------
 .../namesrv/processor/DefaultRequestProcessor.java |  1 +
 4 files changed, 25 insertions(+), 75 deletions(-)

diff --git 
a/common/src/main/java/org/apache/rocketmq/common/protocol/header/namesrv/GetRouteInfoRequestHeader.java
 
b/common/src/main/java/org/apache/rocketmq/common/protocol/header/namesrv/GetRouteInfoRequestHeader.java
index 068d5d317..8cdd29299 100644
--- 
a/common/src/main/java/org/apache/rocketmq/common/protocol/header/namesrv/GetRouteInfoRequestHeader.java
+++ 
b/common/src/main/java/org/apache/rocketmq/common/protocol/header/namesrv/GetRouteInfoRequestHeader.java
@@ -26,7 +26,6 @@ import org.apache.rocketmq.remoting.annotation.CFNullable;
 import org.apache.rocketmq.remoting.exception.RemotingCommandException;
 
 public class GetRouteInfoRequestHeader implements CommandCustomHeader {
-    public static char split = 1;
 
     @CFNotNull
     private String topic;
diff --git 
a/common/src/main/java/org/apache/rocketmq/common/protocol/route/TopicRouteDatas.java
 
b/common/src/main/java/org/apache/rocketmq/common/protocol/route/TopicRouteDatas.java
deleted file mode 100644
index 42a66b67d..000000000
--- 
a/common/src/main/java/org/apache/rocketmq/common/protocol/route/TopicRouteDatas.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.rocketmq.common.protocol.route;
-
-import org.apache.rocketmq.remoting.protocol.RemotingSerializable;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class TopicRouteDatas extends RemotingSerializable {
-
-    private Map<String, TopicRouteData> topics = new HashMap<String, 
TopicRouteData>();
-
-    public Map<String, TopicRouteData> getTopics() {
-        return topics;
-    }
-
-    public void setTopics(Map<String, TopicRouteData> topics) {
-        this.topics = topics;
-    }
-}
diff --git 
a/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/ClientRequestProcessor.java
 
b/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/ClientRequestProcessor.java
index 85b36eb4b..007d49a75 100644
--- 
a/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/ClientRequestProcessor.java
+++ 
b/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/ClientRequestProcessor.java
@@ -17,13 +17,14 @@
 
 package org.apache.rocketmq.namesrv.processor;
 
+import com.alibaba.fastjson.serializer.SerializerFeature;
 import io.netty.channel.ChannelHandlerContext;
+import org.apache.rocketmq.common.MQVersion;
 import org.apache.rocketmq.common.help.FAQUrl;
 import org.apache.rocketmq.common.namesrv.NamesrvUtil;
 import org.apache.rocketmq.common.protocol.ResponseCode;
 import 
org.apache.rocketmq.common.protocol.header.namesrv.GetRouteInfoRequestHeader;
 import org.apache.rocketmq.common.protocol.route.TopicRouteData;
-import org.apache.rocketmq.common.protocol.route.TopicRouteDatas;
 import org.apache.rocketmq.namesrv.NamesrvController;
 import org.apache.rocketmq.remoting.exception.RemotingCommandException;
 import org.apache.rocketmq.remoting.netty.NettyRequestProcessor;
@@ -48,50 +49,35 @@ public class ClientRequestProcessor implements 
NettyRequestProcessor {
         final GetRouteInfoRequestHeader requestHeader =
             (GetRouteInfoRequestHeader) 
request.decodeCommandCustomHeader(GetRouteInfoRequestHeader.class);
 
-        if (requestHeader.getTopic().indexOf(GetRouteInfoRequestHeader.split) 
< 0) {
-            TopicRouteData topicRouteData = 
this.namesrvController.getRouteInfoManager().pickupTopicRouteData(requestHeader.getTopic());
-
-            if (topicRouteData != null) {
-                if 
(this.namesrvController.getNamesrvConfig().isOrderMessageEnable()) {
-                    String orderTopicConf =
-                        
this.namesrvController.getKvConfigManager().getKVConfig(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG,
-                            requestHeader.getTopic());
-                    topicRouteData.setOrderTopicConf(orderTopicConf);
-                }
-
-                byte[] content = topicRouteData.encode();
-                response.setBody(content);
-                response.setCode(ResponseCode.SUCCESS);
-                response.setRemark(null);
-                return response;
-            }
-
-            response.setCode(ResponseCode.TOPIC_NOT_EXIST);
-            response.setRemark("No topic route info in name server for the 
topic: " + requestHeader.getTopic()
-                + FAQUrl.suggestTodo(FAQUrl.APPLY_TOPIC_URL));
-            return response;
-        }
-
-        String[] topics = 
requestHeader.getTopic().split(String.valueOf(GetRouteInfoRequestHeader.split));
-        TopicRouteDatas topicRouteDatas = new TopicRouteDatas();
-
-        for (String topic : topics) {
-            TopicRouteData topicRouteData = 
this.namesrvController.getRouteInfoManager().pickupTopicRouteData(topic);
-            if (topicRouteData == null) {
-                continue;
-            }
+        TopicRouteData topicRouteData = 
this.namesrvController.getRouteInfoManager().pickupTopicRouteData(requestHeader.getTopic());
 
+        if (topicRouteData != null) {
             if 
(this.namesrvController.getNamesrvConfig().isOrderMessageEnable()) {
                 String orderTopicConf =
-                    
this.namesrvController.getKvConfigManager().getKVConfig(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG,
 topic);
+                    
this.namesrvController.getKvConfigManager().getKVConfig(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG,
+                        requestHeader.getTopic());
                 topicRouteData.setOrderTopicConf(orderTopicConf);
             }
 
-            topicRouteDatas.getTopics().put(topic, topicRouteData);
+            byte[] content;
+            Boolean standardJsonOnly = 
requestHeader.getAcceptStandardJsonOnly();
+            if (request.getVersion() >= MQVersion.Version.V4_9_4.ordinal() || 
(null != standardJsonOnly && standardJsonOnly)) {
+                content = 
topicRouteData.encode(SerializerFeature.BrowserCompatible,
+                    SerializerFeature.QuoteFieldNames, 
SerializerFeature.SkipTransientField,
+                    SerializerFeature.MapSortField);
+            } else {
+                content = topicRouteData.encode();
+            }
+
+            response.setBody(content);
+            response.setCode(ResponseCode.SUCCESS);
+            response.setRemark(null);
+            return response;
         }
-        response.setBody(topicRouteDatas.encode());
-        response.setCode(ResponseCode.SUCCESS);
-        response.setRemark(null);
+
+        response.setCode(ResponseCode.TOPIC_NOT_EXIST);
+        response.setRemark("No topic route info in name server for the topic: 
" + requestHeader.getTopic()
+            + FAQUrl.suggestTodo(FAQUrl.APPLY_TOPIC_URL));
         return response;
     }
 
diff --git 
a/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessor.java
 
b/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessor.java
index 3f50e4245..278499227 100644
--- 
a/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessor.java
+++ 
b/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessor.java
@@ -365,6 +365,7 @@ public class DefaultRequestProcessor implements 
NettyRequestProcessor {
         final BrokerHeartbeatRequestHeader requestHeader =
             (BrokerHeartbeatRequestHeader) 
request.decodeCommandCustomHeader(BrokerHeartbeatRequestHeader.class);
 
+
         
this.namesrvController.getRouteInfoManager().updateBrokerInfoUpdateTimestamp(requestHeader.getClusterName(),
 requestHeader.getBrokerAddr());
 
         response.setCode(ResponseCode.SUCCESS);

Reply via email to