You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by do...@apache.org on 2021/11/16 07:10:10 UTC
[rocketmq] branch 5.0.0-alpha-static-topic updated: Add request header builder
This is an automated email from the ASF dual-hosted git repository.
dongeforever pushed a commit to branch 5.0.0-alpha-static-topic
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/5.0.0-alpha-static-topic by this push:
new 077cf09 Add request header builder
077cf09 is described below
commit 077cf09db3a17c1b9a0fe1a9b18e89d3ae4be0b2
Author: dongeforever <do...@apache.org>
AuthorDate: Tue Nov 16 15:09:59 2021 +0800
Add request header builder
---
.../apache/rocketmq/common/rpc/RequestBuilder.java | 65 ++++++++++++++++++++++
.../common/rpc/TopicQueueRequestHeader.java | 2 -
2 files changed, 65 insertions(+), 2 deletions(-)
diff --git a/common/src/main/java/org/apache/rocketmq/common/rpc/RequestBuilder.java b/common/src/main/java/org/apache/rocketmq/common/rpc/RequestBuilder.java
new file mode 100644
index 0000000..aa69b17
--- /dev/null
+++ b/common/src/main/java/org/apache/rocketmq/common/rpc/RequestBuilder.java
@@ -0,0 +1,65 @@
+package org.apache.rocketmq.common.rpc;
+
+import org.apache.rocketmq.common.message.MessageQueue;
+import org.apache.rocketmq.common.protocol.RequestCode;
+import org.apache.rocketmq.common.protocol.header.PullMessageRequestHeader;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class RequestBuilder {
+
+ private static Map<Integer, Class> requestCodeMap = new HashMap<Integer, Class>();
+ static {
+ requestCodeMap.put(RequestCode.PULL_MESSAGE, PullMessageRequestHeader.class);
+ }
+
+ public static CommonRpcHeader buildCommonRpcHeader(int requestCode, String destBrokerName) {
+ return buildCommonRpcHeader(requestCode, null, destBrokerName);
+ }
+
+ public static CommonRpcHeader buildCommonRpcHeader(int requestCode, Boolean oneway, String destBrokerName) {
+ Class requestHeaderClass = requestCodeMap.get(requestCode);
+ if (requestHeaderClass == null) {
+ throw new UnsupportedOperationException("unknown " + requestCode);
+ }
+ try {
+ CommonRpcHeader requestHeader = (CommonRpcHeader) requestHeaderClass.newInstance();
+ requestHeader.setOneway(oneway);
+ requestHeader.setBname(destBrokerName);
+ return requestHeader;
+ } catch (Throwable t) {
+ throw new RuntimeException(t);
+ }
+ }
+
+ public static TopicQueueRequestHeader buildTopicQueueRequestHeader(int requestCode, MessageQueue mq) {
+ return buildTopicQueueRequestHeader(requestCode, null, mq.getBrokerName(), mq.getTopic(), mq.getQueueId(), null);
+ }
+
+ public static TopicQueueRequestHeader buildTopicQueueRequestHeader(int requestCode, MessageQueue mq, Boolean physical) {
+ return buildTopicQueueRequestHeader(requestCode, null, mq.getBrokerName(), mq.getTopic(), mq.getQueueId(), physical);
+ }
+
+ public static TopicQueueRequestHeader buildTopicQueueRequestHeader(int requestCode, Boolean oneway, MessageQueue mq, Boolean physical) {
+ return buildTopicQueueRequestHeader(requestCode, oneway, mq.getBrokerName(), mq.getTopic(), mq.getQueueId(), physical);
+ }
+
+ public static TopicQueueRequestHeader buildTopicQueueRequestHeader(int requestCode, Boolean oneway, String destBrokerName, String topic, int queueId, Boolean physical) {
+ Class requestHeaderClass = requestCodeMap.get(requestCode);
+ if (requestHeaderClass == null) {
+ throw new UnsupportedOperationException("unknown " + requestCode);
+ }
+ try {
+ TopicQueueRequestHeader requestHeader = (TopicQueueRequestHeader) requestHeaderClass.newInstance();
+ requestHeader.setOneway(oneway);
+ requestHeader.setBname(destBrokerName);
+ requestHeader.setTopic(topic);
+ requestHeader.setQueueId(queueId);
+ requestHeader.setPhysical(physical);
+ return requestHeader;
+ } catch (Throwable t) {
+ throw new RuntimeException(t);
+ }
+ }
+}
diff --git a/common/src/main/java/org/apache/rocketmq/common/rpc/TopicQueueRequestHeader.java b/common/src/main/java/org/apache/rocketmq/common/rpc/TopicQueueRequestHeader.java
index 897dfcb..4b0a394 100644
--- a/common/src/main/java/org/apache/rocketmq/common/rpc/TopicQueueRequestHeader.java
+++ b/common/src/main/java/org/apache/rocketmq/common/rpc/TopicQueueRequestHeader.java
@@ -20,12 +20,10 @@ public abstract class TopicQueueRequestHeader extends CommonRpcHeader {
//Physical or Logical
protected Boolean physical;
- @Override
public Boolean getPhysical() {
return physical;
}
- @Override
public void setPhysical(Boolean physical) {
this.physical = physical;
}