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();