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

lizhimins 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 df8194146e [ISSUE #10641] Deprecate legacy Broker DLedger mode (#10642)
df8194146e is described below

commit df8194146e4cc398878476476b18140a1a07dc28
Author: rongtong <[email protected]>
AuthorDate: Wed Aug 19 17:42:51 2026 +0800

    [ISSUE #10641] Deprecate legacy Broker DLedger mode (#10642)
---
 .../org/apache/rocketmq/broker/BrokerStartup.java  | 11 +++++
 .../apache/rocketmq/broker/BrokerStartupTest.java  | 26 +++++++++-
 .../rocketmq/store/config/MessageStoreConfig.java  | 56 ++++++++++++++++++++++
 .../rocketmq/store/dledger/DLedgerCommitLog.java   |  3 ++
 .../store/dledger/DLedgerDeprecationTest.java      | 53 ++++++++++++++++++++
 5 files changed, 148 insertions(+), 1 deletion(-)

diff --git a/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java 
b/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java
index aa51754874..ec4282e31f 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java
@@ -44,6 +44,10 @@ import org.apache.rocketmq.store.config.MessageStoreConfig;
 
 public class BrokerStartup {
 
+    static final String DLEDGER_COMMIT_LOG_DEPRECATION_WARNING =
+        "Broker DLedger mode is deprecated and may be removed in a future 
release. " +
+            "Use Controller mode for new deployments.";
+
     public static Logger log;
 
     public static void main(String[] args) {
@@ -228,6 +232,7 @@ public class BrokerStartup {
         }
 
         log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+        warnIfDLedgerCommitLogEnabled(messageStoreConfig, log);
         MixAll.printObjectProperties(log, brokerConfig);
         MixAll.printObjectProperties(log, nettyServerConfig);
         MixAll.printObjectProperties(log, nettyClientConfig);
@@ -248,6 +253,12 @@ public class BrokerStartup {
         return controller;
     }
 
+    static void warnIfDLedgerCommitLogEnabled(MessageStoreConfig 
messageStoreConfig, Logger logger) {
+        if (messageStoreConfig.isEnableDLegerCommitLog()) {
+            logger.warn(DLEDGER_COMMIT_LOG_DEPRECATION_WARNING);
+        }
+    }
+
     public static Runnable buildShutdownHook(BrokerController 
brokerController) {
         return new Runnable() {
             private volatile boolean hasShutdown = false;
diff --git 
a/broker/src/test/java/org/apache/rocketmq/broker/BrokerStartupTest.java 
b/broker/src/test/java/org/apache/rocketmq/broker/BrokerStartupTest.java
index ce370a39c1..dbe71937c1 100644
--- a/broker/src/test/java/org/apache/rocketmq/broker/BrokerStartupTest.java
+++ b/broker/src/test/java/org/apache/rocketmq/broker/BrokerStartupTest.java
@@ -21,8 +21,11 @@ import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.Properties;
 import org.apache.rocketmq.common.MixAll;
+import org.apache.rocketmq.logging.org.slf4j.Logger;
+import org.apache.rocketmq.store.config.MessageStoreConfig;
 import org.junit.Assert;
 import org.junit.Test;
+import org.mockito.Mockito;
 
 public class BrokerStartupTest {
 
@@ -52,4 +55,25 @@ public class BrokerStartupTest {
 
 
     }
-}
\ No newline at end of file
+
+    @Test
+    public void testWarnIfDLedgerCommitLogEnabled() {
+        MessageStoreConfig messageStoreConfig = new MessageStoreConfig();
+        messageStoreConfig.setEnableDLegerCommitLog(true);
+        Logger logger = Mockito.mock(Logger.class);
+
+        BrokerStartup.warnIfDLedgerCommitLogEnabled(messageStoreConfig, 
logger);
+
+        
Mockito.verify(logger).warn(BrokerStartup.DLEDGER_COMMIT_LOG_DEPRECATION_WARNING);
+    }
+
+    @Test
+    public void testDoesNotWarnIfDLedgerCommitLogDisabled() {
+        MessageStoreConfig messageStoreConfig = new MessageStoreConfig();
+        Logger logger = Mockito.mock(Logger.class);
+
+        BrokerStartup.warnIfDLedgerCommitLogEnabled(messageStoreConfig, 
logger);
+
+        Mockito.verifyNoInteractions(logger);
+    }
+}
diff --git 
a/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java 
b/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java
index 3d1a988e24..f0367023dd 100644
--- 
a/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java
+++ 
b/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java
@@ -909,10 +909,18 @@ public class MessageStoreConfig {
         this.storePathCommitLog = storePathCommitLog;
     }
 
+    /**
+     * @deprecated Broker DLedger mode is deprecated. Use Controller mode for 
new deployments.
+     */
+    @Deprecated
     public String getStorePathDLedgerCommitLog() {
         return storePathDLedgerCommitLog;
     }
 
+    /**
+     * @deprecated Broker DLedger mode is deprecated. Use Controller mode for 
new deployments.
+     */
+    @Deprecated
     public void setStorePathDLedgerCommitLog(String storePathDLedgerCommitLog) 
{
         this.storePathDLedgerCommitLog = storePathDLedgerCommitLog;
     }
@@ -1381,50 +1389,98 @@ public class MessageStoreConfig {
         this.readOnlyCommitLogStorePaths = readOnlyCommitLogStorePaths;
     }
 
+    /**
+     * @deprecated Broker DLedger mode is deprecated. Use Controller mode for 
new deployments.
+     */
+    @Deprecated
     public String getdLegerGroup() {
         return dLegerGroup;
     }
 
+    /**
+     * @deprecated Broker DLedger mode is deprecated. Use Controller mode for 
new deployments.
+     */
+    @Deprecated
     public void setdLegerGroup(String dLegerGroup) {
         this.dLegerGroup = dLegerGroup;
     }
 
+    /**
+     * @deprecated Broker DLedger mode is deprecated. Use Controller mode for 
new deployments.
+     */
+    @Deprecated
     public String getdLegerPeers() {
         return dLegerPeers;
     }
 
+    /**
+     * @deprecated Broker DLedger mode is deprecated. Use Controller mode for 
new deployments.
+     */
+    @Deprecated
     public void setdLegerPeers(String dLegerPeers) {
         this.dLegerPeers = dLegerPeers;
     }
 
+    /**
+     * @deprecated Broker DLedger mode is deprecated. Use Controller mode for 
new deployments.
+     */
+    @Deprecated
     public String getdLegerSelfId() {
         return dLegerSelfId;
     }
 
+    /**
+     * @deprecated Broker DLedger mode is deprecated. Use Controller mode for 
new deployments.
+     */
+    @Deprecated
     public void setdLegerSelfId(String dLegerSelfId) {
         this.dLegerSelfId = dLegerSelfId;
     }
 
+    /**
+     * @deprecated Broker DLedger mode is deprecated. Use Controller mode for 
new deployments.
+     */
+    @Deprecated
     public boolean isEnableDLegerCommitLog() {
         return enableDLegerCommitLog;
     }
 
+    /**
+     * @deprecated Broker DLedger mode is deprecated. Use Controller mode for 
new deployments.
+     */
+    @Deprecated
     public void setEnableDLegerCommitLog(boolean enableDLegerCommitLog) {
         this.enableDLegerCommitLog = enableDLegerCommitLog;
     }
 
+    /**
+     * @deprecated Broker DLedger mode is deprecated. Use Controller mode for 
new deployments.
+     */
+    @Deprecated
     public String getPreferredLeaderId() {
         return preferredLeaderId;
     }
 
+    /**
+     * @deprecated Broker DLedger mode is deprecated. Use Controller mode for 
new deployments.
+     */
+    @Deprecated
     public void setPreferredLeaderId(String preferredLeaderId) {
         this.preferredLeaderId = preferredLeaderId;
     }
 
+    /**
+     * @deprecated Broker DLedger mode is deprecated. Use Controller mode for 
new deployments.
+     */
+    @Deprecated
     public boolean isEnableBatchPush() {
         return enableBatchPush;
     }
 
+    /**
+     * @deprecated Broker DLedger mode is deprecated. Use Controller mode for 
new deployments.
+     */
+    @Deprecated
     public void setEnableBatchPush(boolean enableBatchPush) {
         this.enableBatchPush = enableBatchPush;
     }
diff --git 
a/store/src/main/java/org/apache/rocketmq/store/dledger/DLedgerCommitLog.java 
b/store/src/main/java/org/apache/rocketmq/store/dledger/DLedgerCommitLog.java
index 34fdcf1b6c..fe8f975669 100644
--- 
a/store/src/main/java/org/apache/rocketmq/store/dledger/DLedgerCommitLog.java
+++ 
b/store/src/main/java/org/apache/rocketmq/store/dledger/DLedgerCommitLog.java
@@ -58,7 +58,10 @@ import org.rocksdb.RocksDBException;
 
 /**
  * Store all metadata downtime for recovery, data protection reliability
+ *
+ * @deprecated Use Controller mode for automatic Broker failover in new 
deployments.
  */
+@Deprecated
 public class DLedgerCommitLog extends CommitLog {
 
     static {
diff --git 
a/store/src/test/java/org/apache/rocketmq/store/dledger/DLedgerDeprecationTest.java
 
b/store/src/test/java/org/apache/rocketmq/store/dledger/DLedgerDeprecationTest.java
new file mode 100644
index 0000000000..09aa193f45
--- /dev/null
+++ 
b/store/src/test/java/org/apache/rocketmq/store/dledger/DLedgerDeprecationTest.java
@@ -0,0 +1,53 @@
+/*
+ * 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.store.dledger;
+
+import java.lang.reflect.Method;
+import org.apache.rocketmq.store.config.MessageStoreConfig;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class DLedgerDeprecationTest {
+
+    @Test
+    public void testDLedgerCommitLogIsDeprecated() {
+        
Assert.assertTrue(DLedgerCommitLog.class.isAnnotationPresent(Deprecated.class));
+    }
+
+    @Test
+    public void testDLedgerMessageStoreConfigAccessorsAreDeprecated() throws 
Exception {
+        
assertDeprecated(MessageStoreConfig.class.getMethod("getStorePathDLedgerCommitLog"));
+        
assertDeprecated(MessageStoreConfig.class.getMethod("setStorePathDLedgerCommitLog",
 String.class));
+        assertDeprecated(MessageStoreConfig.class.getMethod("getdLegerGroup"));
+        assertDeprecated(MessageStoreConfig.class.getMethod("setdLegerGroup", 
String.class));
+        assertDeprecated(MessageStoreConfig.class.getMethod("getdLegerPeers"));
+        assertDeprecated(MessageStoreConfig.class.getMethod("setdLegerPeers", 
String.class));
+        
assertDeprecated(MessageStoreConfig.class.getMethod("getdLegerSelfId"));
+        assertDeprecated(MessageStoreConfig.class.getMethod("setdLegerSelfId", 
String.class));
+        
assertDeprecated(MessageStoreConfig.class.getMethod("isEnableDLegerCommitLog"));
+        
assertDeprecated(MessageStoreConfig.class.getMethod("setEnableDLegerCommitLog", 
boolean.class));
+        
assertDeprecated(MessageStoreConfig.class.getMethod("getPreferredLeaderId"));
+        
assertDeprecated(MessageStoreConfig.class.getMethod("setPreferredLeaderId", 
String.class));
+        
assertDeprecated(MessageStoreConfig.class.getMethod("isEnableBatchPush"));
+        
assertDeprecated(MessageStoreConfig.class.getMethod("setEnableBatchPush", 
boolean.class));
+    }
+
+    private void assertDeprecated(Method method) {
+        Assert.assertTrue(method.getName() + " should be deprecated",
+            method.isAnnotationPresent(Deprecated.class));
+    }
+}

Reply via email to