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

clebertsuconic pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/artemis.git


The following commit(s) were added to refs/heads/main by this push:
     new 7c55dd6844 ARTEMIS-5862 CLI command to export broker properties
7c55dd6844 is described below

commit 7c55dd6844c076aad1852894c0bded56c37637cd
Author: Clebert Suconic <[email protected]>
AuthorDate: Tue Jan 27 15:51:19 2026 -0500

    ARTEMIS-5862 CLI command to export broker properties
---
 .../org/apache/activemq/artemis/cli/Artemis.java   |  2 +
 .../commands/tools/config/ExportProperties.java    | 63 ++++++++++++++++++++++
 2 files changed, 65 insertions(+)

diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/Artemis.java 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/Artemis.java
index f460f6e986..5105b5bec0 100644
--- a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/Artemis.java
+++ b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/Artemis.java
@@ -53,6 +53,7 @@ import 
org.apache.activemq.artemis.cli.commands.messages.Transfer;
 import org.apache.activemq.artemis.cli.commands.messages.perf.PerfGroup;
 import org.apache.activemq.artemis.cli.commands.queue.QueueGroup;
 import org.apache.activemq.artemis.cli.commands.tools.DataGroup;
+import org.apache.activemq.artemis.cli.commands.tools.config.ExportProperties;
 import org.apache.activemq.artemis.cli.commands.tools.journal.PerfJournal;
 import org.apache.activemq.artemis.cli.commands.user.UserGroup;
 import org.apache.activemq.artemis.dto.ManagementContextDTO;
@@ -281,6 +282,7 @@ public class Artemis implements Runnable {
       }
 
       if (includeInstanceCommands) {
+         commandLine.addSubcommand(new ExportProperties());
          commandLine.addSubcommand(new ActivationGroup(commandLine));
          commandLine.addSubcommand(new DataGroup(commandLine));
          commandLine.addSubcommand(new UserGroup(commandLine));
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/config/ExportProperties.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/config/ExportProperties.java
new file mode 100644
index 0000000000..a5cbf403be
--- /dev/null
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/config/ExportProperties.java
@@ -0,0 +1,63 @@
+/*
+ * 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.activemq.artemis.cli.commands.tools.config;
+
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.io.PrintStream;
+
+import org.apache.activemq.artemis.cli.commands.ActionContext;
+import org.apache.activemq.artemis.cli.commands.Configurable;
+import org.apache.activemq.artemis.core.config.impl.FileConfiguration;
+import picocli.CommandLine;
+
[email protected](name = "properties", description = "Export the broker's 
configuration as a properties file to be used with broker properties.")
+public class ExportProperties extends Configurable {
+
+   @CommandLine.Option(names = "--output", description = "Output name for the 
file.", defaultValue = "broker.properties")
+   private File output;
+
+   @Override
+   public Object execute(ActionContext context) throws Exception {
+      super.execute(context);
+
+      PrintStream out = context.out;
+      OutputStream outputStream = null;
+
+      System.out.println("Exporting configuration as broker.properties");
+
+      if (output == null) {
+         throw new RuntimeException("output is a required property");
+      }
+
+
+      if (output != null) {
+         outputStream = new BufferedOutputStream(new FileOutputStream(output));
+         PrintStream printStream = new PrintStream(outputStream);
+         context.out = printStream;
+      }
+
+      FileConfiguration configuration = readConfiguration();
+      configuration.exportAsProperties(output);
+
+      return null;
+   }
+
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to