You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2018/07/11 13:35:58 UTC

[2/3] activemq-artemis git commit: ARTEMIS-1959 Fixing JournalDataPrintTest

ARTEMIS-1959 Fixing JournalDataPrintTest


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/7c0f6633
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/7c0f6633
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/7c0f6633

Branch: refs/heads/master
Commit: 7c0f6633f1e6f4fbcfc754dd2be723e8eefbdca6
Parents: 048f46b
Author: Clebert Suconic <cl...@apache.org>
Authored: Tue Jul 10 22:07:36 2018 -0400
Committer: Clebert Suconic <cl...@apache.org>
Committed: Tue Jul 10 23:40:16 2018 -0400

----------------------------------------------------------------------
 .../impl/journal/DescribeJournal.java            | 19 +++++++++++--------
 .../journal/JournalDataPrintTest.java            | 14 +++++++++++++-
 2 files changed, 24 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/7c0f6633/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/DescribeJournal.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/DescribeJournal.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/DescribeJournal.java
index 1842a58..d05e23d 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/DescribeJournal.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/DescribeJournal.java
@@ -105,12 +105,12 @@ public final class DescribeJournal {
 
    private final List<RecordInfo> records;
    private final List<PreparedTransactionInfo> preparedTransactions;
-   private static final Configuration CONFIGURATION;
 
-   static {
+   private static Configuration getConfiguration() {
+      Configuration configuration;
       String instanceFolder = System.getProperty("artemis.instance");
       if (instanceFolder != null) {
-         CONFIGURATION = new FileConfiguration();
+         configuration = new FileConfiguration();
          File configFile = new File(instanceFolder + "/etc/broker.xml");
          URL url;
 
@@ -121,19 +121,21 @@ public final class DescribeJournal {
             xml = XMLUtil.replaceSystemProps(xml);
             Element e = XMLUtil.stringToElement(xml);
 
-            String root = ((FileConfiguration) CONFIGURATION).getRootElement();
+            String root = ((FileConfiguration) configuration).getRootElement();
             NodeList children = e.getElementsByTagName(root);
             if (root != null && children.getLength() > 0) {
                Node item = children.item(0);
-               XMLUtil.validate(item, ((FileConfiguration) CONFIGURATION).getSchema());
-               ((FileConfiguration) CONFIGURATION).parse((Element) item, url);
+               XMLUtil.validate(item, ((FileConfiguration) configuration).getSchema());
+               ((FileConfiguration) configuration).parse((Element) item, url);
             }
          } catch (Exception e) {
             logger.error("failed to load broker.xml", e);
          }
       } else {
-         CONFIGURATION = new ConfigurationImpl();
+         configuration = new ConfigurationImpl();
       }
+
+      return configuration;
    }
 
    public DescribeJournal(List<RecordInfo> records, List<PreparedTransactionInfo> preparedTransactions) {
@@ -166,10 +168,11 @@ public final class DescribeJournal {
    }
 
    public static DescribeJournal describeMessagesJournal(final File messagesDir, PrintStream out, boolean safe) throws Exception {
+      Configuration configuration = getConfiguration();
       SequentialFileFactory messagesFF = new NIOSequentialFileFactory(messagesDir, null, 1);
 
       // Will use only default values. The load function should adapt to anything different
-      JournalImpl messagesJournal = new JournalImpl(CONFIGURATION.getJournalFileSize(), CONFIGURATION.getJournalMinFiles(), CONFIGURATION.getJournalPoolFiles(), 0, 0, messagesFF, "activemq-data", "amq", 1);
+      JournalImpl messagesJournal = new JournalImpl(configuration.getJournalFileSize(), configuration.getJournalMinFiles(), configuration.getJournalPoolFiles(), 0, 0, messagesFF, "activemq-data", "amq", 1);
 
       return describeJournal(messagesFF, messagesJournal, messagesDir, out, safe);
    }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/7c0f6633/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/journal/JournalDataPrintTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/journal/JournalDataPrintTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/journal/JournalDataPrintTest.java
index 8e8b0d3..dd8fe38 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/journal/JournalDataPrintTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/journal/JournalDataPrintTest.java
@@ -21,6 +21,7 @@ import org.apache.activemq.artemis.cli.commands.tools.PrintData;
 import org.apache.activemq.artemis.core.config.FileDeploymentManager;
 import org.apache.activemq.artemis.core.config.impl.FileConfiguration;
 import org.apache.activemq.artemis.core.config.impl.SecurityConfiguration;
+import org.apache.activemq.artemis.core.persistence.impl.journal.DescribeJournal;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
 import org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl;
 import org.apache.activemq.artemis.jms.server.config.impl.FileJMSConfiguration;
@@ -32,6 +33,9 @@ import org.junit.Before;
 import org.junit.Test;
 
 import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
 
 public class JournalDataPrintTest extends ActiveMQTestBase {
 
@@ -49,9 +53,17 @@ public class JournalDataPrintTest extends ActiveMQTestBase {
       try {
          server.start();
          server.stop();
+         // This will force some static load that used to be on the class, which would make this test to fail.
+         DescribeJournal journal = new DescribeJournal(null, null);
          System.setProperty("artemis.instance",
                this.getClass().getClassLoader().getResource("dataprint").getFile());
-         PrintData.printData(server.getConfiguration().getBindingsLocation().getAbsoluteFile(), server.getConfiguration().getJournalLocation().getAbsoluteFile(), server.getConfiguration().getPagingLocation().getAbsoluteFile());
+         PrintData.printData(server.getConfiguration().getBindingsLocation().getAbsoluteFile(), server.getConfiguration().getJournalLocation().getAbsoluteFile(), server.getConfiguration().getPagingLocation().getAbsoluteFile(),
+                             new PrintStream(new OutputStream() {
+                                @Override
+                                public void write(int b) throws IOException {
+                                    // dev/null
+                                }
+                             }), false);
 
          // list journal file
          File dirFile = server.getConfiguration().getJournalLocation().getAbsoluteFile();