From cbe3621431184c767501869fb53af1691b8d56a0 Mon Sep 17 00:00:00 2001 From: Clebert Suconic Date: Thu, 6 Apr 2017 15:03:25 -0400 Subject: [PATCH] ARTEMIS-1096 Changing Global Max Size's default --- .../activemq/artemis/cli/commands/Create.java | 17 ++++++++++++++--- .../activemq/artemis/cli/commands/Run.java | 12 ------------ .../artemis/integration/FileBroker.java | 10 ++++++++++ .../artemis/cli/commands/etc/broker.xml | 5 +---- .../cli/commands/etc/global-max-default.txt | 9 +++++++++ .../cli/commands/etc/global-max-specified.txt | 4 ++++ .../activemq/cli/test/StreamClassPathTest.java | 2 ++ .../config/ActiveMQDefaultConfiguration.java | 2 +- .../core/config/impl/ConfigurationImpl.java | 8 ++++++-- .../core/server/ActiveMQServerLogger.java | 7 +++++++ docs/user-manual/en/configuration-index.md | 2 +- docs/user-manual/en/paging.md | 2 ++ 12 files changed, 57 insertions(+), 23 deletions(-) create mode 100644 artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/global-max-default.txt create mode 100644 artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/global-max-specified.txt 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 49e55455fc..3468cbf9eb 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 @@ -101,6 +101,9 @@ public class Create extends InputAbstract { public static final String ETC_PING_TXT = "etc/ping-settings.txt"; public static final String ETC_COMMENTED_PING_TXT = "etc/commented-ping-settings.txt"; + public static final String ETC_GLOBAL_MAX_SPECIFIED_TXT = "etc/global-max-specified.txt"; + public static final String ETC_GLOBAL_MAX_DEFAULT_TXT = "etc/global-max-default.txt"; + @Arguments(description = "The instance directory to hold the broker's configuration and data. Path must be writable.", required = true) File directory; @@ -251,8 +254,8 @@ public class Create extends InputAbstract { @Option(name = "--no-fsync", description = "Disable usage of fdatasync (channel.force(false) from java nio) on the journal") boolean noJournalSync; - @Option(name = "--global-max-size", description = "Maximum amount of memory which message data may consume (Default: 100Mb)") - String globalMaxSize = "100Mb"; + @Option(name = "--global-max-size", description = "Maximum amount of memory which message data may consume (Default: Undefined, half of the system's memory)") + String globalMaxSize; boolean IS_WINDOWS; @@ -661,7 +664,15 @@ public class Create extends InputAbstract { filters.put("${user}", getUser()); filters.put("${password}", getPassword()); filters.put("${role}", role); - filters.put("${global-max-size}", globalMaxSize); + + + if (globalMaxSize == null || globalMaxSize.trim().equals("")) { + filters.put("${global-max-section}", readTextFile(ETC_GLOBAL_MAX_DEFAULT_TXT)); + } else { + filters.put("${global-max-size}", globalMaxSize); + filters.put("${global-max-section}", applyFilters(readTextFile(ETC_GLOBAL_MAX_SPECIFIED_TXT), filters)); + } + if (clustered) { filters.put("${host}", getHostForClustered()); 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 1811365175..02478a179d 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 @@ -25,7 +25,6 @@ import io.airlift.airline.Option; import org.apache.activemq.artemis.cli.Artemis; import org.apache.activemq.artemis.cli.commands.tools.LockAbstract; import org.apache.activemq.artemis.components.ExternalComponent; -import org.apache.activemq.artemis.core.config.impl.FileConfiguration; import org.apache.activemq.artemis.dto.BrokerDTO; import org.apache.activemq.artemis.dto.ComponentDTO; import org.apache.activemq.artemis.factory.BrokerFactory; @@ -61,12 +60,8 @@ public class Run extends LockAbstract { public Object execute(ActionContext context) throws Exception { super.execute(context); - FileConfiguration fileConfiguration = getFileConfiguration(); - Artemis.printBanner(); - createDirectories(getFileConfiguration()); - BrokerDTO broker = getBrokerDTO(); addShutdownHook(broker.server.getConfigurationFile().getParentFile()); @@ -91,13 +86,6 @@ public class Run extends LockAbstract { return null; } - private void createDirectories(FileConfiguration fileConfiguration) { - fileConfiguration.getPagingLocation().mkdirs(); - fileConfiguration.getJournalLocation().mkdirs(); - fileConfiguration.getBindingsLocation().mkdirs(); - fileConfiguration.getLargeMessagesLocation().mkdirs(); - } - /** * Add a simple shutdown hook to stop the server. * diff --git a/artemis-cli/src/main/java/org/apache/activemq/artemis/integration/FileBroker.java b/artemis-cli/src/main/java/org/apache/activemq/artemis/integration/FileBroker.java index 03df935483..e1126448c4 100644 --- a/artemis-cli/src/main/java/org/apache/activemq/artemis/integration/FileBroker.java +++ b/artemis-cli/src/main/java/org/apache/activemq/artemis/integration/FileBroker.java @@ -67,6 +67,8 @@ public class FileBroker implements Broker { fileDeploymentManager.addDeployable(configuration).addDeployable(jmsConfiguration); fileDeploymentManager.readConfiguration(); + createDirectories(configuration); + /** * This is a bit of a hack for backwards config compatibility since we no longer want to start the broker * using the JMSServerManager which would normally deploy JMS destinations. Here we take the JMS destination @@ -112,6 +114,14 @@ public class FileBroker implements Broker { } + + private void createDirectories(FileConfiguration fileConfiguration) { + fileConfiguration.getPagingLocation().mkdirs(); + fileConfiguration.getJournalLocation().mkdirs(); + fileConfiguration.getBindingsLocation().mkdirs(); + fileConfiguration.getLargeMessagesLocation().mkdirs(); + } + @Override public void stop() throws Exception { stop(false); diff --git a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/broker.xml b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/broker.xml index a3b3d8a4d2..6276b76f21 100644 --- a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/broker.xml +++ b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/broker.xml @@ -56,10 +56,7 @@ ${ping-config.settings}${journal-buffer.settings}${connector-config.settings} that won't support flow control. --> 90 - - ${global-max-size} - +${global-max-section} diff --git a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/global-max-default.txt b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/global-max-default.txt new file mode 100644 index 0000000000..2d029ac24b --- /dev/null +++ b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/global-max-default.txt @@ -0,0 +1,9 @@ + diff --git a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/global-max-specified.txt b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/global-max-specified.txt new file mode 100644 index 0000000000..afea35b3ff --- /dev/null +++ b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/global-max-specified.txt @@ -0,0 +1,4 @@ + +