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/activemq-artemis.git


The following commit(s) were added to refs/heads/main by this push:
     new 7742936583 ARTEMIS-4676 use ActionContext consistently for logging in 
CLI commands
7742936583 is described below

commit 7742936583d48e179f67c7d73b7b49cbe83731d5
Author: Justin Bertram <[email protected]>
AuthorDate: Thu Mar 7 12:28:01 2024 -0600

    ARTEMIS-4676 use ActionContext consistently for logging in CLI commands
---
 .../artemis/cli/commands/Configurable.java         |  6 +--
 .../activemq/artemis/cli/commands/Connect.java     |  4 +-
 .../activemq/artemis/cli/commands/Create.java      | 16 ++++----
 .../activemq/artemis/cli/commands/Disconnect.java  |  2 +-
 .../apache/activemq/artemis/cli/commands/PWD.java  | 16 ++++----
 .../apache/activemq/artemis/cli/commands/Run.java  | 12 +++---
 .../artemis/cli/commands/messages/Browse.java      |  2 +-
 .../cli/commands/messages/ConnectionAbstract.java  |  2 +-
 .../artemis/cli/commands/messages/Consumer.java    |  6 +--
 .../cli/commands/messages/ConsumerThread.java      | 46 ++++++++++++----------
 .../cli/commands/messages/DestAbstract.java        |  6 +--
 .../artemis/cli/commands/messages/Producer.java    | 10 ++---
 .../cli/commands/messages/ProducerThread.java      | 17 ++++----
 .../artemis/cli/commands/messages/Transfer.java    | 20 +++++-----
 .../cli/commands/messages/perf/PerfCommand.java    |  2 +-
 .../artemis/cli/commands/tools/LockAbstract.java   |  4 +-
 .../cli/commands/tools/journal/PerfJournal.java    | 10 ++---
 .../cli/commands/tools/xml/XmlDataExporter.java    |  6 +--
 .../cli/commands/tools/xml/XmlDataImporter.java    |  2 +-
 .../artemis/cli/commands/util/SyncCalculation.java | 38 +++++++++---------
 .../org/apache/activemq/cli/test/ArtemisTest.java  |  4 +-
 21 files changed, 120 insertions(+), 111 deletions(-)

diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Configurable.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Configurable.java
index d2aa15d30a..78bbd531ac 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Configurable.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Configurable.java
@@ -52,9 +52,9 @@ public abstract class Configurable extends ActionAbstract {
 
    protected void treatError(Exception e, String group, String command) {
       logger.debug(e.getMessage(), e);
-      System.err.println();
-      System.err.println("Error:" + e.getMessage());
-      System.err.println();
+      getActionContext().err.println();
+      getActionContext().err.println("Error:" + e.getMessage());
+      getActionContext().err.println();
 
       if (!(e instanceof ActiveMQException)) {
          e.printStackTrace();
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Connect.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Connect.java
index 5ff144f78a..d3e7eff5dd 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Connect.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Connect.java
@@ -29,9 +29,9 @@ public class Connect extends ConnectionAbstract {
       try {
          CONNECTION_INFORMATION.remove();
          createConnectionFactory();
-         System.out.println("Connection Successful!");
+         context.out.println("Connection Successful!");
       } catch (Exception e) {
-         System.out.println("Connection Failure!");
+         context.out.println("Connection Failure!");
          e.printStackTrace();
       }
       return null;
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Create.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Create.java
index 431bf8a495..eab174ccab 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Create.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Create.java
@@ -994,7 +994,7 @@ public class Create extends InstallAbstract {
             RoutingType.valueOf(routingType.toUpperCase());
          } catch (Exception e) {
             e.printStackTrace();
-            System.err.println("Invalid routing type: " + routingType);
+            getActionContext().err.println("Invalid routing type: " + 
routingType);
          }
          printWriter.println("         <address name=\"" + name + "\">");
          printWriter.println("            <" + routingType + ">");
@@ -1011,7 +1011,7 @@ public class Create extends InstallAbstract {
             RoutingType.valueOf(routingType.toUpperCase());
          } catch (Exception e) {
             e.printStackTrace();
-            System.err.println("Invalid routing type: " + routingType);
+            getActionContext().err.println("Invalid routing type: " + 
routingType);
          }
          printWriter.println("         <address name=\"" + name + "\">");
          printWriter.println("            <" + routingType + "/>");
@@ -1042,8 +1042,8 @@ public class Create extends InstallAbstract {
 
                filters.put("${page-sync.settings}", 
readTextFile(ETC_PAGE_SYNC_SETTINGS, syncFilter));
             } else {
-               long time = SyncCalculation.syncTest(dataFolder, 4096, writes, 
5, verbose, !noJournalSync, false, "journal-test.tmp", 
ActiveMQDefaultConfiguration.getDefaultJournalMaxIoAio(), journalType);
-               long nanoseconds = SyncCalculation.toNanos(time, writes, 
verbose);
+               long time = SyncCalculation.syncTest(dataFolder, 4096, writes, 
5, verbose, !noJournalSync, false, "journal-test.tmp", 
ActiveMQDefaultConfiguration.getDefaultJournalMaxIoAio(), journalType, 
getActionContext());
+               long nanoseconds = SyncCalculation.toNanos(time, writes, 
verbose, getActionContext());
                double writesPerMillisecond = (double) writes / (double) time;
 
                String writesPerMillisecondStr = new 
DecimalFormat("###.##").format(writesPerMillisecond);
@@ -1061,8 +1061,8 @@ public class Create extends InstallAbstract {
                if (noJournalSync) {
                   syncFilter.put("${nanoseconds}", "0");
                } else if (journalType != JournalType.NIO) {
-                  long nioTime = SyncCalculation.syncTest(dataFolder, 4096, 
writes, 5, verbose, !noJournalSync, false, "journal-test.tmp", 
ActiveMQDefaultConfiguration.getDefaultJournalMaxIoAio(), JournalType.NIO);
-                  long nioNanoseconds = SyncCalculation.toNanos(nioTime, 
writes, verbose);
+                  long nioTime = SyncCalculation.syncTest(dataFolder, 4096, 
writes, 5, verbose, !noJournalSync, false, "journal-test.tmp", 
ActiveMQDefaultConfiguration.getDefaultJournalMaxIoAio(), JournalType.NIO, 
getActionContext());
+                  long nioNanoseconds = SyncCalculation.toNanos(nioTime, 
writes, verbose, getActionContext());
                   syncFilter.put("${nanoseconds}", 
Long.toString(nioNanoseconds));
                }
 
@@ -1075,7 +1075,7 @@ public class Create extends InstallAbstract {
             filters.put("${journal-buffer.settings}", "");
             filters.put("${page-sync.settings}", "");
             e.printStackTrace();
-            System.err.println("Couldn't perform sync calculation, using 
default values");
+            getActionContext().err.println("Couldn't perform sync calculation, 
using default values");
          }
       }
    }
@@ -1096,7 +1096,7 @@ public class Create extends InstallAbstract {
             }
             tmpFile.delete();
             if (!supportsLibaio) {
-               System.err.println("The filesystem used on " + directory + " 
doesn't support libAIO and O_DIRECT files, switching journal-type to NIO");
+               getActionContext().err.println("The filesystem used on " + 
directory + " doesn't support libAIO and O_DIRECT files, switching journal-type 
to NIO");
             }
             return supportsLibaio;
          }
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Disconnect.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Disconnect.java
index 4d05496b4c..8423e78da9 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Disconnect.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Disconnect.java
@@ -27,7 +27,7 @@ public class Disconnect extends ConnectionAbstract {
    public Object execute(ActionContext context) throws Exception {
       super.execute(context);
       CONNECTION_INFORMATION.remove();
-      System.out.println("Connection information cleared!");
+      context.out.println("Connection information cleared!");
       return null;
    }
 }
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/PWD.java 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/PWD.java
index 29ec8a7172..74e25faae7 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/PWD.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/PWD.java
@@ -26,16 +26,16 @@ public class PWD extends ActionAbstract {
    public Object execute(ActionContext context) throws Exception {
       super.execute(context);
 
-      System.out.println();
-      
System.out.println("*******************************************************************************************************************************");
-      System.out.println("* Artemis instance:: " + getBrokerInstance());
-      System.out.println("* Home:: " + getBrokerHome());
-      System.out.println("* etc:: " + getBrokerEtc());
+      context.out.println();
+      
context.out.println("*******************************************************************************************************************************");
+      context.out.println("* Artemis instance:: " + getBrokerInstance());
+      context.out.println("* Home:: " + getBrokerHome());
+      context.out.println("* etc:: " + getBrokerEtc());
 
       String canonicalPath = new java.io.File(".").getCanonicalPath();
-      System.out.println("* Current dir:" + canonicalPath);
-      
System.out.println("*******************************************************************************************************************************");
-      System.out.println();
+      context.out.println("* Current dir:" + canonicalPath);
+      
context.out.println("*******************************************************************************************************************************");
+      context.out.println();
 
       return null;
    }
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Run.java 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Run.java
index c032d69bc5..e5200a9727 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Run.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Run.java
@@ -195,7 +195,7 @@ public class Run extends LockAbstract {
          public void run() {
             if (allowKill && fileKill.exists()) {
                try {
-                  System.err.println("Halting by user request");
+                  getActionContext().err.println("Halting by user request");
                   fileKill.delete();
                } catch (Throwable ignored) {
                }
@@ -243,15 +243,15 @@ public class Run extends LockAbstract {
    }
 
 
-   public static void verifyOlderLogging(File etc) throws Exception {
+   public void verifyOlderLogging(File etc) {
       File newLogging = new File(etc, Create.ETC_LOG4J2_PROPERTIES);
       File oldLogging = new File(etc, Upgrade.OLD_LOGGING_PROPERTIES);
 
       if (oldLogging.exists() && !newLogging.exists()) {
-         
System.out.println("******************************************************************************************************************************************************************************");
-         System.out.println("Your system has the older logging file " + 
Upgrade.OLD_LOGGING_PROPERTIES + ", but not the new " + 
Create.ETC_LOG4J2_PROPERTIES);
-         System.out.println("It appears you did not complete the migration on 
this artemis instance properly. Please check all the settings or run the 
'./artemis upgrade' command from the new artemis home");
-         
System.out.println("******************************************************************************************************************************************************************************");
+         
getActionContext().out.println("******************************************************************************************************************************************************************************");
+         getActionContext().out.println("Your system has the older logging 
file " + Upgrade.OLD_LOGGING_PROPERTIES + ", but not the new " + 
Create.ETC_LOG4J2_PROPERTIES);
+         getActionContext().out.println("It appears you did not complete the 
migration on this artemis instance properly. Please check all the settings or 
run the './artemis upgrade' command from the new artemis home");
+         
getActionContext().out.println("******************************************************************************************************************************************************************************");
       }
    }
 
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Browse.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Browse.java
index c133ed7d89..fdc3ba8ae7 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Browse.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Browse.java
@@ -50,7 +50,7 @@ public class Browse extends DestAbstract {
                session = connection.createSession(false, 
Session.AUTO_ACKNOWLEDGE);
             }
             Destination dest = getDestination(session);
-            threadsArray[i] = new ConsumerThread(session, dest, i);
+            threadsArray[i] = new ConsumerThread(session, dest, i, context);
 
             threadsArray[i]
                .setVerbose(verbose)
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/ConnectionAbstract.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/ConnectionAbstract.java
index 52422f5993..ceabc5b825 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/ConnectionAbstract.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/ConnectionAbstract.java
@@ -234,7 +234,7 @@ public class ConnectionAbstract extends InputAbstract {
    void saveConnectionInfo(String brokerURL, String user, String password) {
       if (Shell.inShell() && CONNECTION_INFORMATION.get() == null) {
          CONNECTION_INFORMATION.set(new ConnectionInformation(brokerURL, user, 
password));
-         System.out.println("CLI connected to broker " + brokerURL + ", user:" 
+ user);
+         getActionContext().out.println("CLI connected to broker " + brokerURL 
+ ", user:" + user);
          this.brokerURL = brokerURL;
          this.user = user;
          this.password = password;
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Consumer.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Consumer.java
index a14a820c9c..9140da987a 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Consumer.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Consumer.java
@@ -63,14 +63,14 @@ public class Consumer extends DestAbstract {
       if (file != null) {
          serializer = getMessageSerializer();
          if (serializer == null) {
-            System.err.println("Error. Unable to instantiate serializer class: 
" + this.serializer);
+            context.err.println("Error. Unable to instantiate serializer 
class: " + this.serializer);
             return null;
          }
 
          try {
             outputStream = new BufferedOutputStream(new 
FileOutputStream(file));
          } catch (Exception e) {
-            System.err.println("Error: Unable to open file for writing\n" + 
e.getMessage());
+            context.err.println("Error: Unable to open file for writing\n" + 
e.getMessage());
             return null;
          }
 
@@ -92,7 +92,7 @@ public class Consumer extends DestAbstract {
             }
 
             Destination dest = getDestination(session);
-            threadsArray[i] = new ConsumerThread(session, dest, i);
+            threadsArray[i] = new ConsumerThread(session, dest, i, context);
 
             threadsArray[i]
                .setVerbose(verbose)
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/ConsumerThread.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/ConsumerThread.java
index f2bee77ba4..6c9424db2f 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/ConsumerThread.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/ConsumerThread.java
@@ -31,12 +31,15 @@ import javax.jms.Topic;
 import java.util.Enumeration;
 import java.util.concurrent.CountDownLatch;
 
+import org.apache.activemq.artemis.cli.commands.ActionContext;
+
 public class ConsumerThread extends Thread {
 
    long messageCount = 1000;
    int receiveTimeOut = 3000;
    Destination destination;
    Session session;
+   ActionContext context;
    boolean durable;
    boolean breakOnNull = true;
    int sleep;
@@ -53,10 +56,11 @@ public class ConsumerThread extends Thread {
    boolean bytesAsText;
    MessageListener listener;
 
-   public ConsumerThread(Session session, Destination destination, int 
threadNr) {
+   public ConsumerThread(Session session, Destination destination, int 
threadNr, ActionContext context) {
       super("Consumer " + destination.toString() + ", thread=" + threadNr);
       this.destination = destination;
       this.session = session;
+      this.context = context;
    }
 
    @Override
@@ -74,32 +78,32 @@ public class ConsumerThread extends Thread {
       } else {
          if (browse) {
             if (verbose) {
-               System.out.println("..." + msg);
+               context.out.println("..." + msg);
             }
             if (bytesAsText && (msg instanceof BytesMessage)) {
                long length = ((BytesMessage) msg).getBodyLength();
                byte[] bytes = new byte[(int) length];
                ((BytesMessage) msg).readBytes(bytes);
-               System.out.println("Message:" + msg);
+               context.out.println("Message:" + msg);
             }
          } else {
             if (verbose) {
-               System.out.println("JMS Message ID:" + msg.getJMSMessageID());
+               context.out.println("JMS Message ID:" + msg.getJMSMessageID());
                if (bytesAsText && (msg instanceof BytesMessage)) {
                   long length = ((BytesMessage) msg).getBodyLength();
                   byte[] bytes = new byte[(int) length];
                   ((BytesMessage) msg).readBytes(bytes);
-                  System.out.println("Received a message with " + 
bytes.length);
+                  context.out.println("Received a message with " + 
bytes.length);
                }
 
                if (msg instanceof TextMessage) {
                   String text = ((TextMessage) msg).getText();
-                  System.out.println("Received text sized at " + 
text.length());
+                  context.out.println("Received text sized at " + 
text.length());
                }
 
                if (msg instanceof ObjectMessage) {
                   Object obj = ((ObjectMessage) msg).getObject();
-                  System.out.println("Received object " + 
obj.toString().length());
+                  context.out.println("Received object " + 
obj.toString().length());
                }
             }
          }
@@ -110,7 +114,7 @@ public class ConsumerThread extends Thread {
       running = true;
       QueueBrowser consumer = null;
       String threadName = Thread.currentThread().getName();
-      System.out.println(threadName + " trying to browse " + messageCount + " 
messages");
+      context.out.println(threadName + " trying to browse " + messageCount + " 
messages");
       try {
          if (filter != null) {
             consumer = session.createBrowser((Queue) destination, filter);
@@ -122,7 +126,7 @@ public class ConsumerThread extends Thread {
          while (enumBrowse.hasMoreElements()) {
             Message msg = enumBrowse.nextElement();
             if (msg != null) {
-               System.out.println(threadName + " browsing " + (msg instanceof 
TextMessage ? ((TextMessage) msg).getText() : msg.getJMSMessageID()));
+               context.out.println(threadName + " browsing " + (msg instanceof 
TextMessage ? ((TextMessage) msg).getText() : msg.getJMSMessageID()));
                handle(msg, true);
                received++;
 
@@ -147,7 +151,7 @@ public class ConsumerThread extends Thread {
             finished.countDown();
          }
          if (consumer != null) {
-            System.out.println(threadName + " browsed: " + this.getReceived() 
+ " messages");
+            context.out.println(threadName + " browsed: " + this.getReceived() 
+ " messages");
             try {
                consumer.close();
             } catch (JMSException e) {
@@ -156,14 +160,14 @@ public class ConsumerThread extends Thread {
          }
       }
 
-      System.out.println(threadName + " Browser thread finished");
+      context.out.println(threadName + " Browser thread finished");
    }
 
    public void consume() {
       running = true;
       MessageConsumer consumer = null;
       String threadName = Thread.currentThread().getName();
-      System.out.println(threadName + " wait until " + messageCount + " 
messages are consumed");
+      context.out.println(threadName + " wait until " + messageCount + " 
messages are consumed");
       try {
          if (durable && destination instanceof Topic) {
             if (filter != null) {
@@ -184,10 +188,10 @@ public class ConsumerThread extends Thread {
             Message msg = consumer.receive(receiveTimeOut);
             if (msg != null) {
                if (verbose) {
-                  System.out.println(threadName + " Received " + (msg 
instanceof TextMessage ? ((TextMessage) msg).getText() : 
msg.getJMSMessageID()));
+                  context.out.println(threadName + " Received " + (msg 
instanceof TextMessage ? ((TextMessage) msg).getText() : 
msg.getJMSMessageID()));
                } else {
                   if (++count % 1000 == 0) {
-                     System.out.println("Received " + count);
+                     context.out.println("Received " + count);
                   }
                }
                handle(msg, false);
@@ -200,12 +204,12 @@ public class ConsumerThread extends Thread {
 
             if (session.getTransacted()) {
                if (batchSize > 0 && received > 0 && received % batchSize == 0) 
{
-                  System.out.println(threadName + " Committing transaction: " 
+ transactions++);
+                  context.out.println(threadName + " Committing transaction: " 
+ transactions++);
                   session.commit();
                }
             } else if (session.getAcknowledgeMode() == 
Session.CLIENT_ACKNOWLEDGE && msg != null) {
                if (batchSize > 0 && received > 0 && received % batchSize == 0) 
{
-                  System.out.println("Acknowledging last " + batchSize + " 
messages; messages so far = " + received);
+                  context.out.println("Acknowledging last " + batchSize + " 
messages; messages so far = " + received);
                   msg.acknowledge();
                }
             }
@@ -221,11 +225,11 @@ public class ConsumerThread extends Thread {
          }
 
 
-         System.out.println(threadName + " Consumed: " + 
this.getMessageCount() + " messages");
+         context.out.println(threadName + " Consumed: " + 
this.getMessageCount() + " messages");
          long tEnd = System.currentTimeMillis();
          long elapsed = (tEnd - tStart) / 1000;
-         System.out.println(threadName + " Elapsed time in second : " + 
elapsed + " s");
-         System.out.println(threadName + " Elapsed time in milli second : " + 
(tEnd - tStart) + " milli seconds");
+         context.out.println(threadName + " Elapsed time in second : " + 
elapsed + " s");
+         context.out.println(threadName + " Elapsed time in milli second : " + 
(tEnd - tStart) + " milli seconds");
 
       } catch (Exception e) {
          e.printStackTrace();
@@ -234,7 +238,7 @@ public class ConsumerThread extends Thread {
             finished.countDown();
          }
          if (consumer != null) {
-            System.out.println(threadName + " Consumed: " + this.getReceived() 
+ " messages");
+            context.out.println(threadName + " Consumed: " + 
this.getReceived() + " messages");
             try {
                consumer.close();
             } catch (JMSException e) {
@@ -243,7 +247,7 @@ public class ConsumerThread extends Thread {
          }
       }
 
-      System.out.println(threadName + " Consumer thread finished");
+      context.out.println(threadName + " Consumer thread finished");
    }
 
    public int getReceived() {
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/DestAbstract.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/DestAbstract.java
index a23a22c1db..88c87c28f0 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/DestAbstract.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/DestAbstract.java
@@ -55,13 +55,13 @@ public class DestAbstract extends ConnectionAbstract {
          try {
             return (MessageSerializer) 
Class.forName(serializer).getConstructor().newInstance();
          } catch (Exception e) {
-            System.err.println("Error: unable to instantiate serializer class: 
" + serializer);
-            System.err.println("Defaulting to: " + 
XMLMessageSerializer.class.getName());
+            getActionContext().err.println("Error: unable to instantiate 
serializer class: " + serializer);
+            getActionContext().err.println("Defaulting to: " + 
XMLMessageSerializer.class.getName());
          }
       }
 
       if (protocol != ConnectionProtocol.CORE) {
-         System.err.println("Default Serializer does not support: " + protocol 
+ " protocol");
+         getActionContext().err.println("Default Serializer does not support: 
" + protocol + " protocol");
          return null;
       }
 
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Producer.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Producer.java
index 20235f7e0c..38870b09c6 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Producer.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Producer.java
@@ -153,7 +153,7 @@ public class Producer extends DestAbstract {
             try {
                MessageSerializer serializer = getMessageSerializer();
                if (serializer == null) {
-                  System.err.println("Error. Unable to instantiate serializer 
class: " + serializer);
+                  context.err.println("Error. Unable to instantiate serializer 
class: " + serializer);
                   return null;
                }
 
@@ -161,7 +161,7 @@ public class Producer extends DestAbstract {
                try {
                   in = new FileInputStream(file);
                } catch (Exception e) {
-                  System.err.println("Error: Unable to open file for 
reading\n" + e.getMessage());
+                  context.err.println("Error: Unable to open file for 
reading\n" + e.getMessage());
                   return null;
                }
 
@@ -179,12 +179,12 @@ public class Producer extends DestAbstract {
                session.commit();
                serializer.stop();
             } catch (Exception e) {
-               System.err.println("Error occurred during import.  Rolling 
back.");
+               context.err.println("Error occurred during import.  Rolling 
back.");
                session.rollback();
                e.printStackTrace();
                return 0;
             }
-            System.out.println("Sent " + messageCount + " Messages.");
+            context.out.println("Sent " + messageCount + " Messages.");
             return messageCount;
          } else {
             ProducerThread[] threadsArray = new ProducerThread[threads];
@@ -196,7 +196,7 @@ public class Producer extends DestAbstract {
                   session = connection.createSession(false, 
Session.AUTO_ACKNOWLEDGE);
                }
                Destination dest = getDestination(session);
-               threadsArray[i] = new ProducerThread(session, dest, i);
+               threadsArray[i] = new ProducerThread(session, dest, i, context);
 
                threadsArray[i]
                   .setVerbose(verbose)
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/ProducerThread.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/ProducerThread.java
index efff71af67..a624366fe3 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/ProducerThread.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/ProducerThread.java
@@ -30,11 +30,13 @@ import java.io.InputStreamReader;
 import java.net.URL;
 import java.util.concurrent.atomic.AtomicLong;
 
+import org.apache.activemq.artemis.cli.commands.ActionContext;
 import org.apache.activemq.artemis.utils.ReusableLatch;
 
 public class ProducerThread extends Thread {
 
    protected final Session session;
+   protected final ActionContext context;
 
    boolean verbose;
    long messageCount = 1000;
@@ -59,10 +61,11 @@ public class ProducerThread extends Thread {
    final ReusableLatch finished = new ReusableLatch(1);
    final ReusableLatch paused = new ReusableLatch(0);
 
-   public ProducerThread(Session session, Destination destination, int 
threadNr) {
+   public ProducerThread(Session session, Destination destination, int 
threadNr, ActionContext context) {
       super("Producer " + destination.toString() + ", thread=" + threadNr);
       this.destination = destination;
       this.session = session;
+      this.context = context;
    }
 
    @Override
@@ -76,7 +79,7 @@ public class ProducerThread extends Thread {
          initPayLoad();
          running = true;
 
-         System.out.println(threadName + " Started to calculate elapsed time 
...\n");
+         context.out.println(threadName + " Started to calculate elapsed time 
...\n");
          long tStart = System.currentTimeMillis();
 
          if (runIndefinitely) {
@@ -97,11 +100,11 @@ public class ProducerThread extends Thread {
          } catch (Throwable ignored) {
          }
 
-         System.out.println(threadName + " Produced: " + this.getSentCount() + 
" messages");
+         context.out.println(threadName + " Produced: " + this.getSentCount() 
+ " messages");
          long tEnd = System.currentTimeMillis();
          long elapsed = (tEnd - tStart) / 1000;
-         System.out.println(threadName + " Elapsed time in second : " + 
elapsed + " s");
-         System.out.println(threadName + " Elapsed time in milli second : " + 
(tEnd - tStart) + " milli seconds");
+         context.out.println(threadName + " Elapsed time in second : " + 
elapsed + " s");
+         context.out.println(threadName + " Elapsed time in milli second : " + 
(tEnd - tStart) + " milli seconds");
 
       } catch (Exception e) {
          e.printStackTrace();
@@ -124,11 +127,11 @@ public class ProducerThread extends Thread {
 
       producer.send(message);
       if (verbose) {
-         System.out.println(threadName + " Sent: " + (message instanceof 
TextMessage ? ((TextMessage) message).getText() : message.getJMSMessageID()));
+         context.out.println(threadName + " Sent: " + (message instanceof 
TextMessage ? ((TextMessage) message).getText() : message.getJMSMessageID()));
       }
 
       if (transactionBatchSize > 0 && sentCount.get() > 0 && sentCount.get() % 
transactionBatchSize == 0) {
-         System.out.println(threadName + " Committing transaction: " + 
transactions++);
+         context.out.println(threadName + " Committing transaction: " + 
transactions++);
          session.commit();
       }
 
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Transfer.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Transfer.java
index abb1bf6e2a..ed6f6e4260 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Transfer.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/Transfer.java
@@ -335,7 +335,7 @@ public class Transfer extends InputAbstract {
          }
       }
 
-      System.out.println("Connection brokerURL = " + sourceURL);
+      context.out.println("Connection brokerURL = " + sourceURL);
 
       ConnectionFactory sourceConnectionFactory = 
createConnectionFactory("source", sourceProtocol, sourceURL, sourceUser, 
sourcePassword, sourceClientID);
       Connection sourceConnection = sourceConnectionFactory.createConnection();
@@ -383,7 +383,7 @@ public class Transfer extends InputAbstract {
       MessageProducer producer = 
targetSession.createProducer(targetDestination);
 
       if (sourceURL.equals(targetURL) && 
sourceDestination.equals(targetDestination)) {
-         System.out.println("You cannot transfer between " + sourceURL + "/" + 
sourceDestination + " and " + targetURL + "/" + targetDestination + ".\n" + 
"That would create an infinite recursion.");
+         context.out.println("You cannot transfer between " + sourceURL + "/" 
+ sourceDestination + " and " + targetURL + "/" + targetDestination + ".\n" + 
"That would create an infinite recursion.");
          throw new IllegalArgumentException("cannot use " + sourceDestination 
+ " == " + targetDestination);
       }
 
@@ -402,7 +402,7 @@ public class Transfer extends InputAbstract {
 
          if (receivedMessage == null) {
             if (isVerbose()) {
-               System.out.println("could not receive any more messages");
+               context.out.println("could not receive any more messages");
             }
             break;
          }
@@ -411,10 +411,10 @@ public class Transfer extends InputAbstract {
          total++;
 
          if (isVerbose()) {
-            System.out.println("Received message " + total + " with " + 
pending + " messages pending to be commited");
+            context.out.println("Received message " + total + " with " + 
pending + " messages pending to be commited");
          }
          if (pending > commitInterval) {
-            System.out.println("Transferred " + pending + " messages of " + 
total);
+            context.out.println("Transferred " + pending + " messages of " + 
total);
             pending = 0;
             targetSession.commit();
             if (!isCopy()) {
@@ -423,7 +423,7 @@ public class Transfer extends InputAbstract {
          }
       }
 
-      System.out.println("Transferred a total of " + total + " messages");
+      context.out.println("Transferred a total of " + total + " messages");
 
       if (pending != 0) {
          targetSession.commit();
@@ -464,12 +464,12 @@ public class Transfer extends InputAbstract {
                                                        String clientID) throws 
Exception {
       if (protocol.equals("core")) {
          if (isVerbose()) {
-            System.out.println("Creating " + role + " CORE Connection towards 
" + brokerURL);
+            getActionContext().out.println("Creating " + role + " CORE 
Connection towards " + brokerURL);
          }
          return createCoreConnectionFactory(brokerURL, user, password, 
clientID);
       } else if (protocol.equals("amqp")) {
          if (isVerbose()) {
-            System.out.println("Creating " + role + " AMQP Connection towards 
" + brokerURL);
+            getActionContext().out.println("Creating " + role + " AMQP 
Connection towards " + brokerURL);
          }
          return createAMQPConnectionFactory(brokerURL, user, password, 
clientID);
       } else {
@@ -523,7 +523,7 @@ public class Transfer extends InputAbstract {
       ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory(brokerURL, 
user, password);
 
       if (clientID != null) {
-         System.out.println("Consumer:: clientID = " + clientID);
+         getActionContext().out.println("Consumer:: clientID = " + clientID);
          cf.setClientID(clientID);
       }
       try {
@@ -553,7 +553,7 @@ public class Transfer extends InputAbstract {
    }
 
    Pair<String, String> userPassword(String uri) {
-      System.out.println("Type in user/password towards " + uri);
+      getActionContext().out.println("Type in user/password towards " + uri);
       String user, password;
       user = input("--user", "Type the username for a retry", null);
       password = inputPassword("--password", "Type the password for a retry", 
null);
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/perf/PerfCommand.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/perf/PerfCommand.java
index a8f3011dd1..e551b5a233 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/perf/PerfCommand.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/messages/perf/PerfCommand.java
@@ -72,7 +72,7 @@ public abstract class PerfCommand extends ConnectionAbstract {
    public Object execute(ActionContext context) throws Exception {
       super.execute(context);
       if (txSize > 0) {
-         System.out.println("--tx-size is deprecated, please use 
--commit-interval");
+         context.out.println("--tx-size is deprecated, please use 
--commit-interval");
          commitInterval = txSize;
       }
       final ConnectionFactory factory = createConnectionFactory(brokerURL, 
user, password, null, protocol);
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/LockAbstract.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/LockAbstract.java
index 88e9e8375b..05e7fadeac 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/LockAbstract.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/LockAbstract.java
@@ -51,8 +51,8 @@ public abstract class LockAbstract extends DataAbstract {
       super.execute(context);
 
       if (getBrokerInstance() == null) {
-         System.err.println("Warning: You are running a data tool outside of 
any broker instance. Modifying data on a running server might break the 
server's data");
-         System.err.println();
+         context.err.println("Warning: You are running a data tool outside of 
any broker instance. Modifying data on a running server might break the 
server's data");
+         context.err.println();
       } else {
          lockCLI(getLockPlace());
       }
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/journal/PerfJournal.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/journal/PerfJournal.java
index ad0d739dc4..8c3b9e6aa4 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/journal/PerfJournal.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/journal/PerfJournal.java
@@ -75,10 +75,10 @@ public class PerfJournal extends OptionalLocking {
          fileConfiguration.setJournalType(JournalType.getType(journalType));
       }
 
-      System.out.println("");
-      System.out.println("Auto tuning journal ...");
+      context.out.println("");
+      context.out.println("Auto tuning journal ...");
 
-      System.out.println("Performing " + tries + " tests writing " + writes + 
" blocks of " + size + " on each test, sync=" + 
fileConfiguration.isJournalDatasync() + " with journalType = " + 
fileConfiguration.getJournalType());
+      context.out.println("Performing " + tries + " tests writing " + writes + 
" blocks of " + size + " on each test, sync=" + 
fileConfiguration.isJournalDatasync() + " with journalType = " + 
fileConfiguration.getJournalType());
 
       fileConfiguration.getJournalLocation().mkdirs();
 
@@ -86,9 +86,9 @@ public class PerfJournal extends OptionalLocking {
          maxAIO = fileConfiguration.getJournalMaxIO_AIO();
       }
 
-      long time = 
SyncCalculation.syncTest(fileConfiguration.getJournalLocation(), size, writes, 
tries, verbose, fileConfiguration.isJournalDatasync(), syncWrites, fileName, 
maxAIO, fileConfiguration.getJournalType());
+      long time = 
SyncCalculation.syncTest(fileConfiguration.getJournalLocation(), size, writes, 
tries, verbose, fileConfiguration.isJournalDatasync(), syncWrites, fileName, 
maxAIO, fileConfiguration.getJournalType(), context);
 
-      long nanosecondsWait = SyncCalculation.toNanos(time, writes, verbose);
+      long nanosecondsWait = SyncCalculation.toNanos(time, writes, verbose, 
context);
       double writesPerMillisecond = (double) writes / (double) time;
 
       String writesPerMillisecondStr = new 
DecimalFormat("###.##").format(writesPerMillisecond);
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/xml/XmlDataExporter.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/xml/XmlDataExporter.java
index 2588eebc57..83dc493c90 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/xml/XmlDataExporter.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/xml/XmlDataExporter.java
@@ -374,7 +374,7 @@ public final class XmlDataExporter extends DBOption {
       xmlWriter.writeStartElement(XmlDataConstants.MESSAGES_PARENT);
 
       if (logInterval > 0) {
-         System.err.println("Processing journal messages");
+         getActionContext().err.println("Processing journal messages");
       }
 
       long msgs = 0;
@@ -385,7 +385,7 @@ public final class XmlDataExporter extends DBOption {
          msgs++;
          if (logInterval > 0) {
             if (msgs % logInterval == 0) {
-               System.err.println("exported " + msgs + " messages from 
journal");
+               getActionContext().err.println("exported " + msgs + " messages 
from journal");
             }
          }
       }
@@ -433,7 +433,7 @@ public final class XmlDataExporter extends DBOption {
                      while (iter.hasNext()) {
                         msgs++;
                         if (logInterval > 0 && msgs % logInterval == 0) {
-                           System.err.println("Exported " + msgs + " messages 
from paging");
+                           getActionContext().err.println("Exported " + msgs + 
" messages from paging");
                         }
                         PagedMessage message = iter.next();
                         message.initMessage(storageManager);
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/xml/XmlDataImporter.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/xml/XmlDataImporter.java
index 0d76b82b24..31da6f752e 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/xml/XmlDataImporter.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/xml/XmlDataImporter.java
@@ -299,7 +299,7 @@ public final class XmlDataImporter extends ActionAbstract {
       messageNr++;
 
       if (messageNr % commitInterval == 0) {
-         System.err.println("Processed " + messageNr + " messages");
+         getActionContext().err.println("Processed " + messageNr + " 
messages");
          session.commit();
       }
       XMLMessageImporter.MessageInfo info = messageReader.readMessage(false);
diff --git 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/util/SyncCalculation.java
 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/util/SyncCalculation.java
index b7076c91b5..082560e150 100644
--- 
a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/util/SyncCalculation.java
+++ 
b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/util/SyncCalculation.java
@@ -23,6 +23,7 @@ import java.text.DecimalFormat;
 import java.util.Arrays;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.artemis.cli.commands.ActionContext;
 import org.apache.activemq.artemis.core.io.IOCallback;
 import org.apache.activemq.artemis.core.io.SequentialFile;
 import org.apache.activemq.artemis.core.io.SequentialFileFactory;
@@ -74,7 +75,8 @@ public class SyncCalculation {
                                boolean syncWrites,
                                String fileName,
                                int maxAIO,
-                               JournalType journalType) throws Exception {
+                               JournalType journalType,
+                               ActionContext context) throws Exception {
       SequentialFileFactory factory = newFactory(datafolder, fsync, 
journalType, blockSize * blocks, maxAIO);
 
       if (factory instanceof AIOSequentialFileFactory) {
@@ -83,17 +85,17 @@ public class SyncCalculation {
       //the write latencies could be taken only when writes are effectively 
synchronous
 
       if (journalType == JournalType.ASYNCIO && syncWrites) {
-         System.out.println();
-         
System.out.println("*******************************************************************************************");
-         System.out.println("*** Notice: The recommendation for AsyncIO 
journal is to not use --sync-writes          ***");
-         System.out.println("***         The measures here will be useful to 
understand your device                  ***");
-         System.out.println("***         however the result here won't 
represent the best configuration option       ***");
-         
System.out.println("*******************************************************************************************");
-         System.out.println();
+         context.out.println();
+         
context.out.println("*******************************************************************************************");
+         context.out.println("*** Notice: The recommendation for AsyncIO 
journal is to not use --sync-writes          ***");
+         context.out.println("***         The measures here will be useful to 
understand your device                  ***");
+         context.out.println("***         however the result here won't 
represent the best configuration option       ***");
+         
context.out.println("*******************************************************************************************");
+         context.out.println();
       }
 
       if (verbose) {
-         System.out.println("Using " + factory.getClass().getName() + " to 
calculate sync times, alignment=" + factory.getAlignment());
+         context.out.println("Using " + factory.getClass().getName() + " to 
calculate sync times, alignment=" + factory.getAlignment());
       }
       SequentialFile file = factory.createSequentialFile(fileName);
       //to be sure that a process/thread crash won't leave the dataFolder with 
garbage files
@@ -131,8 +133,8 @@ public class SyncCalculation {
          for (int ntry = 0; ntry < tries; ntry++) {
 
             if (verbose) {
-               
System.out.println("**************************************************");
-               System.out.println(ntry + " of " + tries + " calculation");
+               
context.out.println("**************************************************");
+               context.out.println(ntry + " of " + tries + " calculation");
             }
             file.open();
             file.position(0);
@@ -156,10 +158,10 @@ public class SyncCalculation {
 
             if (verbose) {
                double writesPerMillisecond = (double) blocks / (double) 
result[ntry];
-               System.out.println("Time = " + result[ntry] + " milliseconds");
-               System.out.println("Writes / millisecond = " + 
dcformat.format(writesPerMillisecond));
-               System.out.println("bufferTimeout = " + toNanos(result[ntry], 
blocks, verbose));
-               
System.out.println("**************************************************");
+               context.out.println("Time = " + result[ntry] + " milliseconds");
+               context.out.println("Writes / millisecond = " + 
dcformat.format(writesPerMillisecond));
+               context.out.println("bufferTimeout = " + toNanos(result[ntry], 
blocks, verbose, context));
+               
context.out.println("**************************************************");
             }
             file.close();
 
@@ -206,12 +208,12 @@ public class SyncCalculation {
       }
    }
 
-   public static long toNanos(long time, long blocks, boolean verbose) {
+   public static long toNanos(long time, long blocks, boolean verbose, 
ActionContext context) {
 
       double blocksPerMillisecond = (double) blocks / (double) (time);
 
       if (verbose) {
-         System.out.println("Blocks per millisecond::" + blocksPerMillisecond);
+         context.out.println("Blocks per millisecond::" + 
blocksPerMillisecond);
       }
 
       long nanoSeconds = TimeUnit.NANOSECONDS.convert(1, 
TimeUnit.MILLISECONDS);
@@ -219,7 +221,7 @@ public class SyncCalculation {
       long timeWait = (long) (nanoSeconds / blocksPerMillisecond);
 
       if (verbose) {
-         System.out.println("your system could make a sync every " + timeWait 
+ " nanoseconds, and this will be your timeout");
+         context.out.println("your system could make a sync every " + timeWait 
+ " nanoseconds, and this will be your timeout");
       }
 
       return timeWait;
diff --git 
a/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java 
b/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java
index ac27177fc9..b4ee3f75b8 100644
--- a/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java
+++ b/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java
@@ -169,9 +169,9 @@ public class ArtemisTest extends CliTestBase {
    public void testSync() throws Exception {
       int writes = 2;
       int tries = 5;
-      long totalAvg = SyncCalculation.syncTest(temporaryFolder.getRoot(), 
4096, writes, tries, true, true, true, "file.tmp", 1, JournalType.NIO);
+      long totalAvg = SyncCalculation.syncTest(temporaryFolder.getRoot(), 
4096, writes, tries, true, true, true, "file.tmp", 1, JournalType.NIO, new 
TestActionContext());
       logger.debug("TotalAvg = {}", totalAvg);
-      long nanoTime = SyncCalculation.toNanos(totalAvg, writes, false);
+      long nanoTime = SyncCalculation.toNanos(totalAvg, writes, false, null);
       logger.debug("nanoTime avg = {}", nanoTime);
       assertEquals(0, LibaioContext.getTotalMaxIO());
 

Reply via email to