diff --git a/patch030-backport-remove-some-code.patch b/patch030-backport-remove-some-code.patch new file mode 100644 index 0000000000000000000000000000000000000000..608697467d440753d9a72599f5b2b326241584f9 --- /dev/null +++ b/patch030-backport-remove-some-code.patch @@ -0,0 +1,637 @@ +From 38d267672aefbbdc6456c5e404a8b9e8608a9dd3 Mon Sep 17 00:00:00 2001 +From: rongtong +Date: Tue, 24 Oct 2023 15:15:08 +0800 +Subject: [PATCH 1/2] Remove getBrokerClusterAclConfig from admin and server + (#7486) + +* Remove getBrokerClusterAclConfig from admin and server + +* Add @Deprecated annotation to GET_BROKER_CLUSTER_ACL_CONFIG request code +--- + .../processor/AdminBrokerProcessor.java | 26 ---- + .../rocketmq/client/impl/MQClientAPIImpl.java | 27 ---- + .../client/impl/MQClientAPIImplTest.java | 27 ---- + .../remoting/protocol/RequestCode.java | 1 + + ...GetBrokerClusterAclConfigResponseBody.java | 45 ------ + ...tBrokerClusterAclConfigResponseHeader.java | 42 ------ + .../tools/admin/DefaultMQAdminExt.java | 7 - + .../tools/admin/DefaultMQAdminExtImpl.java | 7 - + .../rocketmq/tools/admin/MQAdminExt.java | 4 - + .../tools/command/MQAdminStartup.java | 2 - + .../acl/GetAccessConfigSubCommand.java | 132 ------------------ + .../acl/GetAccessConfigSubCommandTest.java | 39 ------ + 12 files changed, 1 insertion(+), 358 deletions(-) + delete mode 100644 remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/GetBrokerClusterAclConfigResponseBody.java + delete mode 100644 remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/GetBrokerClusterAclConfigResponseHeader.java + delete mode 100644 tools/src/main/java/org/apache/rocketmq/tools/command/acl/GetAccessConfigSubCommand.java + delete mode 100644 tools/src/test/java/org/apache/rocketmq/tools/command/acl/GetAccessConfigSubCommandTest.java + +diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java +index dd4ec960f..0b7a6d206 100644 +--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java ++++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java +@@ -49,7 +49,6 @@ import org.apache.rocketmq.broker.filter.ExpressionMessageFilter; + import org.apache.rocketmq.broker.plugin.BrokerAttachedPlugin; + import org.apache.rocketmq.broker.subscription.SubscriptionGroupManager; + import org.apache.rocketmq.broker.transaction.queue.TransactionalMessageUtil; +-import org.apache.rocketmq.common.AclConfig; + import org.apache.rocketmq.common.BrokerConfig; + import org.apache.rocketmq.common.KeyBuilder; + import org.apache.rocketmq.common.LockCallback; +@@ -130,8 +129,6 @@ import org.apache.rocketmq.remoting.protocol.header.ExchangeHAInfoResponseHeader + import org.apache.rocketmq.remoting.protocol.header.GetAllProducerInfoRequestHeader; + import org.apache.rocketmq.remoting.protocol.header.GetAllTopicConfigResponseHeader; + import org.apache.rocketmq.remoting.protocol.header.GetBrokerAclConfigResponseHeader; +-import org.apache.rocketmq.remoting.protocol.header.GetBrokerClusterAclConfigResponseBody; +-import org.apache.rocketmq.remoting.protocol.header.GetBrokerClusterAclConfigResponseHeader; + import org.apache.rocketmq.remoting.protocol.header.GetBrokerConfigResponseHeader; + import org.apache.rocketmq.remoting.protocol.header.GetConsumeStatsInBrokerHeader; + import org.apache.rocketmq.remoting.protocol.header.GetConsumeStatsRequestHeader; +@@ -311,8 +308,6 @@ public class AdminBrokerProcessor implements NettyRequestProcessor { + return updateGlobalWhiteAddrsConfig(ctx, request); + case RequestCode.RESUME_CHECK_HALF_MESSAGE: + return resumeCheckHalfMessage(ctx, request); +- case RequestCode.GET_BROKER_CLUSTER_ACL_CONFIG: +- return getBrokerClusterAclConfig(ctx, request); + case RequestCode.GET_TOPIC_CONFIG: + return getTopicConfig(ctx, request); + case RequestCode.UPDATE_AND_CREATE_STATIC_TOPIC: +@@ -699,27 +694,6 @@ public class AdminBrokerProcessor implements NettyRequestProcessor { + return null; + } + +- private RemotingCommand getBrokerClusterAclConfig(ChannelHandlerContext ctx, RemotingCommand request) { +- +- final RemotingCommand response = RemotingCommand.createResponseCommand(GetBrokerClusterAclConfigResponseHeader.class); +- +- try { +- AccessValidator accessValidator = this.brokerController.getAccessValidatorMap().get(PlainAccessValidator.class); +- GetBrokerClusterAclConfigResponseBody body = new GetBrokerClusterAclConfigResponseBody(); +- AclConfig aclConfig = accessValidator.getAllAclConfig(); +- body.setGlobalWhiteAddrs(aclConfig.getGlobalWhiteAddrs()); +- body.setPlainAccessConfigs(aclConfig.getPlainAccessConfigs()); +- response.setCode(ResponseCode.SUCCESS); +- response.setBody(body.encode()); +- response.setRemark(null); +- return response; +- } catch (Exception e) { +- LOGGER.error("Failed to generate a proper getBrokerClusterAclConfig response", e); +- } +- +- return null; +- } +- + private RemotingCommand getUnknownCmdResponse(ChannelHandlerContext ctx, RemotingCommand request) { + String error = " request type " + request.getCode() + " not supported"; + final RemotingCommand response = +diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java b/client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java +index e152be811..6074081c1 100644 +--- a/client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java ++++ b/client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java +@@ -53,7 +53,6 @@ import org.apache.rocketmq.client.impl.producer.TopicPublishInfo; + import org.apache.rocketmq.client.producer.SendCallback; + import org.apache.rocketmq.client.producer.SendResult; + import org.apache.rocketmq.client.producer.SendStatus; +-import org.apache.rocketmq.common.AclConfig; + import org.apache.rocketmq.common.BoundaryType; + import org.apache.rocketmq.common.MQVersion; + import org.apache.rocketmq.common.MixAll; +@@ -154,7 +153,6 @@ import org.apache.rocketmq.remoting.protocol.header.EndTransactionRequestHeader; + import org.apache.rocketmq.remoting.protocol.header.ExtraInfoUtil; + import org.apache.rocketmq.remoting.protocol.header.GetAllProducerInfoRequestHeader; + import org.apache.rocketmq.remoting.protocol.header.GetBrokerAclConfigResponseHeader; +-import org.apache.rocketmq.remoting.protocol.header.GetBrokerClusterAclConfigResponseBody; + import org.apache.rocketmq.remoting.protocol.header.GetConsumeStatsInBrokerHeader; + import org.apache.rocketmq.remoting.protocol.header.GetConsumeStatsRequestHeader; + import org.apache.rocketmq.remoting.protocol.header.GetConsumerConnectionListRequestHeader; +@@ -520,31 +518,6 @@ public class MQClientAPIImpl implements NameServerUpdateCallback { + + } + +- public AclConfig getBrokerClusterConfig(final String addr, +- final long timeoutMillis) throws InterruptedException, RemotingTimeoutException, +- RemotingSendRequestException, RemotingConnectException, MQBrokerException { +- RemotingCommand request = RemotingCommand.createRequestCommand(RequestCode.GET_BROKER_CLUSTER_ACL_CONFIG, null); +- +- RemotingCommand response = this.remotingClient.invokeSync(MixAll.brokerVIPChannel(this.clientConfig.isVipChannelEnabled(), addr), request, timeoutMillis); +- assert response != null; +- switch (response.getCode()) { +- case ResponseCode.SUCCESS: { +- if (response.getBody() != null) { +- GetBrokerClusterAclConfigResponseBody body = +- GetBrokerClusterAclConfigResponseBody.decode(response.getBody(), GetBrokerClusterAclConfigResponseBody.class); +- AclConfig aclConfig = new AclConfig(); +- aclConfig.setGlobalWhiteAddrs(body.getGlobalWhiteAddrs()); +- aclConfig.setPlainAccessConfigs(body.getPlainAccessConfigs()); +- return aclConfig; +- } +- } +- default: +- break; +- } +- throw new MQBrokerException(response.getCode(), response.getRemark(), addr); +- +- } +- + public SendResult sendMessage( + final String addr, + final String brokerName, +diff --git a/client/src/test/java/org/apache/rocketmq/client/impl/MQClientAPIImplTest.java b/client/src/test/java/org/apache/rocketmq/client/impl/MQClientAPIImplTest.java +index c152d38ea..cf399802b 100644 +--- a/client/src/test/java/org/apache/rocketmq/client/impl/MQClientAPIImplTest.java ++++ b/client/src/test/java/org/apache/rocketmq/client/impl/MQClientAPIImplTest.java +@@ -37,7 +37,6 @@ import org.apache.rocketmq.client.producer.DefaultMQProducer; + import org.apache.rocketmq.client.producer.SendCallback; + import org.apache.rocketmq.client.producer.SendResult; + import org.apache.rocketmq.client.producer.SendStatus; +-import org.apache.rocketmq.common.AclConfig; + import org.apache.rocketmq.common.MixAll; + import org.apache.rocketmq.common.PlainAccessConfig; + import org.apache.rocketmq.common.TopicConfig; +@@ -62,8 +61,6 @@ import org.apache.rocketmq.remoting.protocol.header.AckMessageRequestHeader; + import org.apache.rocketmq.remoting.protocol.header.ChangeInvisibleTimeRequestHeader; + import org.apache.rocketmq.remoting.protocol.header.ChangeInvisibleTimeResponseHeader; + import org.apache.rocketmq.remoting.protocol.header.ExtraInfoUtil; +-import org.apache.rocketmq.remoting.protocol.header.GetBrokerClusterAclConfigResponseBody; +-import org.apache.rocketmq.remoting.protocol.header.GetBrokerClusterAclConfigResponseHeader; + import org.apache.rocketmq.remoting.protocol.header.GetConsumerListByGroupResponseBody; + import org.apache.rocketmq.remoting.protocol.header.GetConsumerListByGroupResponseHeader; + import org.apache.rocketmq.remoting.protocol.header.GetEarliestMsgStoretimeResponseHeader; +@@ -700,30 +697,6 @@ public class MQClientAPIImplTest { + mqClientAPI.createTopic(brokerAddr, topic, new TopicConfig(), 10000); + } + +- @Test +- public void testGetBrokerClusterConfig() throws Exception { +- doAnswer(new Answer() { +- @Override +- public RemotingCommand answer(InvocationOnMock mock) { +- RemotingCommand request = mock.getArgument(1); +- +- RemotingCommand response = RemotingCommand.createResponseCommand(GetBrokerClusterAclConfigResponseHeader.class); +- GetBrokerClusterAclConfigResponseBody body = new GetBrokerClusterAclConfigResponseBody(); +- body.setGlobalWhiteAddrs(Collections.singletonList("1.1.1.1")); +- body.setPlainAccessConfigs(Collections.singletonList(new PlainAccessConfig())); +- response.setBody(body.encode()); +- response.makeCustomHeaderToNet(); +- response.setCode(ResponseCode.SUCCESS); +- response.setOpaque(request.getOpaque()); +- return response; +- } +- }).when(remotingClient).invokeSync(anyString(), any(RemotingCommand.class), anyLong()); +- +- AclConfig aclConfig = mqClientAPI.getBrokerClusterConfig(brokerAddr, 10000); +- assertThat(aclConfig.getPlainAccessConfigs()).size().isGreaterThan(0); +- assertThat(aclConfig.getGlobalWhiteAddrs()).size().isGreaterThan(0); +- } +- + @Test + public void testViewMessage() throws Exception { + doAnswer(new Answer() { +diff --git a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/RequestCode.java b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/RequestCode.java +index 0b1a5e010..1811deba2 100644 +--- a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/RequestCode.java ++++ b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/RequestCode.java +@@ -80,6 +80,7 @@ public class RequestCode { + + public static final int UPDATE_GLOBAL_WHITE_ADDRS_CONFIG = 53; + ++ @Deprecated + public static final int GET_BROKER_CLUSTER_ACL_CONFIG = 54; + + public static final int GET_TIMER_CHECK_POINT = 60; +diff --git a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/GetBrokerClusterAclConfigResponseBody.java b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/GetBrokerClusterAclConfigResponseBody.java +deleted file mode 100644 +index 4987242c2..000000000 +--- a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/GetBrokerClusterAclConfigResponseBody.java ++++ /dev/null +@@ -1,45 +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.remoting.protocol.header; +- +-import java.util.List; +-import org.apache.rocketmq.common.PlainAccessConfig; +-import org.apache.rocketmq.remoting.protocol.RemotingSerializable; +- +-public class GetBrokerClusterAclConfigResponseBody extends RemotingSerializable { +- +- private List globalWhiteAddrs; +- +- private List plainAccessConfigs; +- +- public List getGlobalWhiteAddrs() { +- return globalWhiteAddrs; +- } +- +- public void setGlobalWhiteAddrs(List globalWhiteAddrs) { +- this.globalWhiteAddrs = globalWhiteAddrs; +- } +- +- public List getPlainAccessConfigs() { +- return plainAccessConfigs; +- } +- +- public void setPlainAccessConfigs(List plainAccessConfigs) { +- this.plainAccessConfigs = plainAccessConfigs; +- } +-} +diff --git a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/GetBrokerClusterAclConfigResponseHeader.java b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/GetBrokerClusterAclConfigResponseHeader.java +deleted file mode 100644 +index 7de73aa4d..000000000 +--- a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/header/GetBrokerClusterAclConfigResponseHeader.java ++++ /dev/null +@@ -1,42 +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.remoting.protocol.header; +- +-import java.util.List; +-import org.apache.rocketmq.common.PlainAccessConfig; +-import org.apache.rocketmq.remoting.CommandCustomHeader; +-import org.apache.rocketmq.remoting.annotation.CFNotNull; +-import org.apache.rocketmq.remoting.exception.RemotingCommandException; +- +-public class GetBrokerClusterAclConfigResponseHeader implements CommandCustomHeader { +- +- @CFNotNull +- private List plainAccessConfigs; +- +- @Override +- public void checkFields() throws RemotingCommandException { +- } +- +- public List getPlainAccessConfigs() { +- return plainAccessConfigs; +- } +- +- public void setPlainAccessConfigs(List plainAccessConfigs) { +- this.plainAccessConfigs = plainAccessConfigs; +- } +-} +diff --git a/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExt.java b/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExt.java +index f0a08dfb1..40bd5d56d 100644 +--- a/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExt.java ++++ b/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExt.java +@@ -25,7 +25,6 @@ import org.apache.rocketmq.client.ClientConfig; + import org.apache.rocketmq.client.QueryResult; + import org.apache.rocketmq.client.exception.MQBrokerException; + import org.apache.rocketmq.client.exception.MQClientException; +-import org.apache.rocketmq.common.AclConfig; + import org.apache.rocketmq.common.Pair; + import org.apache.rocketmq.common.PlainAccessConfig; + import org.apache.rocketmq.common.TopicConfig; +@@ -231,12 +230,6 @@ public class DefaultMQAdminExt extends ClientConfig implements MQAdminExt { + return defaultMQAdminExtImpl.examineBrokerClusterAclVersionInfo(addr); + } + +- @Override +- public AclConfig examineBrokerClusterAclConfig( +- String addr) throws RemotingException, MQBrokerException, InterruptedException, MQClientException { +- return defaultMQAdminExtImpl.examineBrokerClusterAclConfig(addr); +- } +- + @Override + public void createAndUpdateSubscriptionGroupConfig(String addr, + SubscriptionGroupConfig config) throws RemotingException, +diff --git a/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtImpl.java b/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtImpl.java +index 1ebff6d8a..331b24d60 100644 +--- a/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtImpl.java ++++ b/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtImpl.java +@@ -45,7 +45,6 @@ import org.apache.rocketmq.client.exception.MQBrokerException; + import org.apache.rocketmq.client.exception.MQClientException; + import org.apache.rocketmq.client.impl.MQClientManager; + import org.apache.rocketmq.client.impl.factory.MQClientInstance; +-import org.apache.rocketmq.common.AclConfig; + import org.apache.rocketmq.common.KeyBuilder; + import org.apache.rocketmq.common.MixAll; + import org.apache.rocketmq.common.Pair; +@@ -305,12 +304,6 @@ public class DefaultMQAdminExtImpl implements MQAdminExt, MQAdminExtInner { + return this.mqClientInstance.getMQClientAPIImpl().getBrokerClusterAclInfo(addr, timeoutMillis); + } + +- @Override +- public AclConfig examineBrokerClusterAclConfig( +- String addr) throws RemotingException, MQBrokerException, InterruptedException, MQClientException { +- return this.mqClientInstance.getMQClientAPIImpl().getBrokerClusterConfig(addr, timeoutMillis); +- } +- + @Override + public void createAndUpdateSubscriptionGroupConfig(String addr, + SubscriptionGroupConfig config) throws RemotingException, MQBrokerException, InterruptedException, MQClientException { +diff --git a/tools/src/main/java/org/apache/rocketmq/tools/admin/MQAdminExt.java b/tools/src/main/java/org/apache/rocketmq/tools/admin/MQAdminExt.java +index 7dcfc4fa5..3148fc098 100644 +--- a/tools/src/main/java/org/apache/rocketmq/tools/admin/MQAdminExt.java ++++ b/tools/src/main/java/org/apache/rocketmq/tools/admin/MQAdminExt.java +@@ -24,7 +24,6 @@ import java.util.Set; + import org.apache.rocketmq.client.MQAdmin; + import org.apache.rocketmq.client.exception.MQBrokerException; + import org.apache.rocketmq.client.exception.MQClientException; +-import org.apache.rocketmq.common.AclConfig; + import org.apache.rocketmq.common.Pair; + import org.apache.rocketmq.common.PlainAccessConfig; + import org.apache.rocketmq.common.TopicConfig; +@@ -110,9 +109,6 @@ public interface MQAdminExt extends MQAdmin { + final String addr) throws RemotingException, MQBrokerException, + InterruptedException, MQClientException; + +- AclConfig examineBrokerClusterAclConfig(final String addr) throws RemotingException, MQBrokerException, +- InterruptedException, MQClientException; +- + void createAndUpdateSubscriptionGroupConfig(final String addr, + final SubscriptionGroupConfig config) throws RemotingException, + MQBrokerException, InterruptedException, MQClientException; +diff --git a/tools/src/main/java/org/apache/rocketmq/tools/command/MQAdminStartup.java b/tools/src/main/java/org/apache/rocketmq/tools/command/MQAdminStartup.java +index 788fa83c2..35f007482 100644 +--- a/tools/src/main/java/org/apache/rocketmq/tools/command/MQAdminStartup.java ++++ b/tools/src/main/java/org/apache/rocketmq/tools/command/MQAdminStartup.java +@@ -29,7 +29,6 @@ import org.apache.rocketmq.remoting.protocol.RemotingCommand; + import org.apache.rocketmq.srvutil.ServerUtil; + import org.apache.rocketmq.tools.command.acl.ClusterAclConfigVersionListSubCommand; + import org.apache.rocketmq.tools.command.acl.DeleteAccessConfigSubCommand; +-import org.apache.rocketmq.tools.command.acl.GetAccessConfigSubCommand; + import org.apache.rocketmq.tools.command.acl.UpdateAccessConfigSubCommand; + import org.apache.rocketmq.tools.command.acl.UpdateGlobalWhiteAddrSubCommand; + import org.apache.rocketmq.tools.command.broker.BrokerConsumeStatsSubCommad; +@@ -248,7 +247,6 @@ public class MQAdminStartup { + initCommand(new DeleteAccessConfigSubCommand()); + initCommand(new ClusterAclConfigVersionListSubCommand()); + initCommand(new UpdateGlobalWhiteAddrSubCommand()); +- initCommand(new GetAccessConfigSubCommand()); + + initCommand(new UpdateStaticTopicSubCommand()); + initCommand(new RemappingStaticTopicSubCommand()); +diff --git a/tools/src/main/java/org/apache/rocketmq/tools/command/acl/GetAccessConfigSubCommand.java b/tools/src/main/java/org/apache/rocketmq/tools/command/acl/GetAccessConfigSubCommand.java +deleted file mode 100644 +index f1c9a1496..000000000 +--- a/tools/src/main/java/org/apache/rocketmq/tools/command/acl/GetAccessConfigSubCommand.java ++++ /dev/null +@@ -1,132 +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.tools.command.acl; +- +-import org.apache.commons.cli.CommandLine; +-import org.apache.commons.cli.Option; +-import org.apache.commons.cli.OptionGroup; +-import org.apache.commons.cli.Options; +-import org.apache.rocketmq.client.exception.MQBrokerException; +-import org.apache.rocketmq.client.exception.MQClientException; +-import org.apache.rocketmq.common.AclConfig; +-import org.apache.rocketmq.common.PlainAccessConfig; +-import org.apache.rocketmq.remoting.RPCHook; +-import org.apache.rocketmq.remoting.exception.RemotingException; +-import org.apache.rocketmq.srvutil.ServerUtil; +-import org.apache.rocketmq.tools.admin.DefaultMQAdminExt; +-import org.apache.rocketmq.tools.command.CommandUtil; +-import org.apache.rocketmq.tools.command.SubCommand; +-import org.apache.rocketmq.tools.command.SubCommandException; +- +-import java.lang.reflect.Field; +-import java.util.List; +-import java.util.Set; +- +-public class GetAccessConfigSubCommand implements SubCommand { +- @Override +- public String commandName() { +- return "getAclConfig"; +- } +- +- @Override +- public String commandAlias() { +- return "getAccessConfigSubCommand"; +- } +- +- @Override +- public String commandDesc() { +- return "List all of acl config information in cluster."; +- } +- +- @Override +- public Options buildCommandlineOptions(Options options) { +- OptionGroup optionGroup = new OptionGroup(); +- +- Option opt = new Option("b", "brokerAddr", true, "query acl config version for which broker"); +- optionGroup.addOption(opt); +- +- opt = new Option("c", "clusterName", true, "query acl config version for specified cluster"); +- optionGroup.addOption(opt); +- +- optionGroup.setRequired(true); +- options.addOptionGroup(optionGroup); +- +- return options; +- } +- +- @Override +- public void execute(CommandLine commandLine, Options options, +- RPCHook rpcHook) throws SubCommandException { +- +- DefaultMQAdminExt defaultMQAdminExt = new DefaultMQAdminExt(rpcHook); +- defaultMQAdminExt.setInstanceName(Long.toString(System.currentTimeMillis())); +- +- try { +- +- if (commandLine.hasOption('b')) { +- String addr = commandLine.getOptionValue('b').trim(); +- defaultMQAdminExt.start(); +- printClusterBaseInfo(defaultMQAdminExt, addr); +- return; +- +- } else if (commandLine.hasOption('c')) { +- String clusterName = commandLine.getOptionValue('c').trim(); +- +- defaultMQAdminExt.start(); +- +- Set masterSet = +- CommandUtil.fetchMasterAddrByClusterName(defaultMQAdminExt, clusterName); +- for (String addr : masterSet) { +- printClusterBaseInfo(defaultMQAdminExt, addr); +- } +- return; +- } +- +- ServerUtil.printCommandLineHelp("mqadmin " + this.commandName(), options); +- } catch (Exception e) { +- throw new SubCommandException(this.getClass().getSimpleName() + " command failed", e); +- } finally { +- defaultMQAdminExt.shutdown(); +- } +- } +- +- private void printClusterBaseInfo( +- final DefaultMQAdminExt defaultMQAdminExt, final String addr) throws +- InterruptedException, MQBrokerException, RemotingException, MQClientException, IllegalAccessException { +- AclConfig aclConfig = defaultMQAdminExt.examineBrokerClusterAclConfig(addr); +- List configs = aclConfig.getPlainAccessConfigs(); +- List globalWhiteAddrs = aclConfig.getGlobalWhiteAddrs(); +- System.out.printf("\n"); +- System.out.printf("%-20s: %s\n", "globalWhiteRemoteAddresses", globalWhiteAddrs.toString()); +- System.out.printf("\n"); +- System.out.printf("accounts:\n"); +- if (configs != null && configs.size() > 0) { +- for (PlainAccessConfig config : configs) { +- Field[] fields = config.getClass().getDeclaredFields(); +- for (Field field : fields) { +- field.setAccessible(true); +- if (field.get(config) != null) { +- System.out.printf("%-1s %-18s: %s\n", "", field.getName(), field.get(config).toString()); +- } else { +- System.out.printf("%-1s %-18s: %s\n", "", field.getName(), ""); +- } +- } +- System.out.printf("\n"); +- } +- } +- } +-} +diff --git a/tools/src/test/java/org/apache/rocketmq/tools/command/acl/GetAccessConfigSubCommandTest.java b/tools/src/test/java/org/apache/rocketmq/tools/command/acl/GetAccessConfigSubCommandTest.java +deleted file mode 100644 +index ae4eca435..000000000 +--- a/tools/src/test/java/org/apache/rocketmq/tools/command/acl/GetAccessConfigSubCommandTest.java ++++ /dev/null +@@ -1,39 +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.tools.command.acl; +- +-import org.apache.commons.cli.CommandLine; +-import org.apache.commons.cli.DefaultParser; +-import org.apache.commons.cli.Options; +-import org.apache.rocketmq.srvutil.ServerUtil; +-import org.junit.Test; +- +-import static org.assertj.core.api.Assertions.assertThat; +- +-public class GetAccessConfigSubCommandTest { +- +- @Test +- public void testExecute() { +- GetAccessConfigSubCommand cmd = new GetAccessConfigSubCommand(); +- Options options = ServerUtil.buildCommandlineOptions(new Options()); +- String[] subargs = new String[] {"-c default-cluster"}; +- final CommandLine commandLine = +- ServerUtil.parseCmdLine("mqadmin " + cmd.commandName(), subargs, +- cmd.buildCommandlineOptions(options), new DefaultParser()); +- assertThat(commandLine.getOptionValue('c').trim()).isEqualTo("default-cluster"); +- } +-} +-- +2.32.0.windows.2 + + +From f90c55341ce253f6b532a83de47172ad14928e9e Mon Sep 17 00:00:00 2001 +From: lk +Date: Tue, 24 Oct 2023 16:13:36 +0800 +Subject: [PATCH 2/2] [ISSUE #7497] Extract the frequency of calling + updateNamesrvAddr into a configuration (#7498) + +merge +--- + .../apache/rocketmq/container/BrokerContainer.java | 2 +- + .../rocketmq/container/BrokerContainerConfig.java | 13 +++++++++++++ + 2 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/container/src/main/java/org/apache/rocketmq/container/BrokerContainer.java b/container/src/main/java/org/apache/rocketmq/container/BrokerContainer.java +index 5b712bc30..d0a550be6 100644 +--- a/container/src/main/java/org/apache/rocketmq/container/BrokerContainer.java ++++ b/container/src/main/java/org/apache/rocketmq/container/BrokerContainer.java +@@ -164,7 +164,7 @@ public class BrokerContainer implements IBrokerContainer { + LOG.error("ScheduledTask fetchNameServerAddr exception", e); + } + } +- }, 1000 * 10, 1000 * 60 * 2, TimeUnit.MILLISECONDS); ++ }, 1000 * 10, this.brokerContainerConfig.getUpdateNamesrvAddrInterval(), TimeUnit.MILLISECONDS); + } else if (this.brokerContainerConfig.isFetchNamesrvAddrByAddressServer()) { + this.scheduledExecutorService.scheduleAtFixedRate(new AbstractBrokerRunnable(BrokerIdentity.BROKER_CONTAINER_IDENTITY) { + +diff --git a/container/src/main/java/org/apache/rocketmq/container/BrokerContainerConfig.java b/container/src/main/java/org/apache/rocketmq/container/BrokerContainerConfig.java +index 77422adde..e03b10c34 100644 +--- a/container/src/main/java/org/apache/rocketmq/container/BrokerContainerConfig.java ++++ b/container/src/main/java/org/apache/rocketmq/container/BrokerContainerConfig.java +@@ -44,6 +44,11 @@ public class BrokerContainerConfig { + */ + private long fetchNamesrvAddrInterval = 10 * 1000; + ++ /** ++ * The interval to update namesrv addr, default value is 120 second ++ */ ++ private long updateNamesrvAddrInterval = 60 * 2 * 1000; ++ + public String getRocketmqHome() { + return rocketmqHome; + } +@@ -95,4 +100,12 @@ public class BrokerContainerConfig { + public void setFetchNamesrvAddrInterval(final long fetchNamesrvAddrInterval) { + this.fetchNamesrvAddrInterval = fetchNamesrvAddrInterval; + } ++ ++ public long getUpdateNamesrvAddrInterval() { ++ return updateNamesrvAddrInterval; ++ } ++ ++ public void setUpdateNamesrvAddrInterval(long updateNamesrvAddrInterval) { ++ this.updateNamesrvAddrInterval = updateNamesrvAddrInterval; ++ } + } +-- +2.32.0.windows.2 + diff --git a/rocketmq.spec b/rocketmq.spec index 4e6d93404646b10d83662c39f9ec97efebcd48a7..47b3b67a98ce991e08e13e1e9717d8c262ca2381 100644 --- a/rocketmq.spec +++ b/rocketmq.spec @@ -5,7 +5,7 @@ Summary: Cloud-Native, Distributed Messaging and Streaming Name: rocketmq Version: 5.1.5 -Release: 30 +Release: 31 License: Apache-2.0 Group: Applications/Message URL: https://rocketmq.apache.org/ @@ -39,6 +39,7 @@ Patch0026: patch026-backport-AddBroker-removes-parsing-configuration-from-body.p Patch0027: patch027-backport-Utilizing-cache-to-avoid-duplicate-parsing.patch Patch0028: patch028-backport-Fix-proxy-client-language-error.patch Patch0029: patch029-backport-Introduce-new-event-NettyEventType.ACTIVEr.patch +Patch0030: patch030-backport-remove-some-code.patch BuildRequires: java-1.8.0-openjdk-devel, maven, maven-local, git Requires: java-1.8.0-openjdk-devel @@ -79,6 +80,9 @@ exit 0 %changelog +* Fri Dec 8 2023 ShiZhili - 5.1.3-31 +- backport remove some code + * Fri Dec 8 2023 ShiZhili - 5.1.3-30 - backport Introduce a new event NettyEventType.ACTIVE