From fc3c0910b7086411d72104c0a2cf4b8b45a95015 Mon Sep 17 00:00:00 2001 From: Ben Soares Date: Fri, 19 Jan 2024 17:00:46 +0000 Subject: [PATCH] JAL-4373 Setting the jvmmempc and jvmmemmax strings from the Arg.getName() for consistency. Updated some comments. --- src/jalview/bin/Launcher.java | 41 +++++++++++++++--------------------- src/jalview/bin/MemorySetting.java | 8 +++++-- src/jalview/bin/argparser/Arg.java | 2 +- 3 files changed, 24 insertions(+), 27 deletions(-) diff --git a/src/jalview/bin/Launcher.java b/src/jalview/bin/Launcher.java index 507f501..2a78d8e 100644 --- a/src/jalview/bin/Launcher.java +++ b/src/jalview/bin/Launcher.java @@ -28,6 +28,7 @@ import java.util.List; import java.util.Locale; import java.util.concurrent.TimeUnit; +import jalview.bin.argparser.Arg; import jalview.util.ChannelProperties; import jalview.util.LaunchUtils; @@ -35,12 +36,12 @@ import jalview.util.LaunchUtils; * A Launcher class for Jalview. This class is used to launch Jalview from the * shadowJar when Getdown is not used or available. It attempts to take all the * command line arguments to pass on to the jalview.bin.Jalview class, but to - * insert a -Xmx memory setting to a sensible default, using the -jvmmempc and + * insert a -Xmx memory setting to a sensible default, using the --jvmmempc and * -jvmmemmax application arguments if specified. If not specified then system * properties will be looked for by jalview.bin.MemorySetting. If the user has - * provided the JVM with a -Xmx setting directly and not set -jvmmempc or - * -jvmmemmax then this setting will be used and system properties ignored. If - * -Xmx is set as well as -jvmmempc or -jvmmemmax as argument(s) then the -Xmx + * provided the JVM with a -Xmx setting directly and not set --jvmmempc or + * --jvmmemmax then this setting will be used and system properties ignored. If + * -Xmx is set as well as --jvmmempc or --jvmmemmax as argument(s) then the -Xmx * argument will NOT be passed on to the main application launch. * * @author bsoares @@ -62,8 +63,8 @@ public class Launcher /** * main method for jalview.bin.Launcher. This restarts the same JRE's JVM with - * the same arguments but with memory adjusted based on extracted -jvmmempc - * and -jvmmemmax application arguments. If on a Mac then extra dock:icon and + * the same arguments but with memory adjusted based on extracted --jvmmempc + * and --jvmmemmax application arguments. If on a Mac then extra dock:icon and * dock:name arguments are also set. * * @param args @@ -168,32 +169,24 @@ public class Launcher } // jvmmempc and jvmmemmax args used to set memory and are not passed on to // startClass - if (arg.startsWith( - "-" + MemorySetting.MAX_HEAPSIZE_PERCENT_PROPERTY_NAME + "=")) + final String jvmmempcArg = Arg.JVMMEMPC.getName(); + final String jvmmemmaxArg = Arg.JVMMEMMAX.getName(); + if (arg.startsWith("-" + jvmmempcArg + "=")) { - jvmmempc = arg.substring( - MemorySetting.MAX_HEAPSIZE_PERCENT_PROPERTY_NAME.length() - + 2); + jvmmempc = arg.substring(jvmmempcArg.length() + 2); } - else if (arg.startsWith( - "-" + MemorySetting.MAX_HEAPSIZE_PROPERTY_NAME + "=")) + else if (arg.startsWith("-" + jvmmemmaxArg + "=")) { - jvmmemmax = arg.substring( - MemorySetting.MAX_HEAPSIZE_PROPERTY_NAME.length() + 2); + jvmmemmax = arg.substring(jvmmemmaxArg.length() + 2); } // --doubledash versions - else if (arg.startsWith("--" - + MemorySetting.MAX_HEAPSIZE_PERCENT_PROPERTY_NAME + "=")) + else if (arg.startsWith("--" + jvmmempcArg + "=")) { - jvmmempc = arg.substring( - MemorySetting.MAX_HEAPSIZE_PERCENT_PROPERTY_NAME.length() - + 3); + jvmmempc = arg.substring(jvmmempcArg.length() + 3); } - else if (arg.startsWith( - "--" + MemorySetting.MAX_HEAPSIZE_PROPERTY_NAME + "=")) + else if (arg.startsWith("--" + jvmmemmaxArg + "=")) { - jvmmemmax = arg.substring( - MemorySetting.MAX_HEAPSIZE_PROPERTY_NAME.length() + 3); + jvmmemmax = arg.substring(jvmmemmaxArg.length() + 3); } // retain arg else diff --git a/src/jalview/bin/MemorySetting.java b/src/jalview/bin/MemorySetting.java index 7458d55..738d1e7 100644 --- a/src/jalview/bin/MemorySetting.java +++ b/src/jalview/bin/MemorySetting.java @@ -24,6 +24,8 @@ package jalview.bin; import java.util.Locale; +import jalview.bin.argparser.Arg; + /** * Methods to decide on appropriate memory setting for Jalview based on two * optionally provided values: jvmmempc - the maximum percentage of total @@ -37,9 +39,11 @@ import java.util.Locale; */ public class MemorySetting { - public static final String MAX_HEAPSIZE_PERCENT_PROPERTY_NAME = "jvmmempc"; + public static final String MAX_HEAPSIZE_PERCENT_PROPERTY_NAME = Arg.JVMMEMPC + .getName(); - public static final String MAX_HEAPSIZE_PROPERTY_NAME = "jvmmemmax"; + public static final String MAX_HEAPSIZE_PROPERTY_NAME = Arg.JVMMEMMAX + .getName(); private static final int MAX_HEAPSIZE_PERCENT_DEFAULT = 90; // 90% diff --git a/src/jalview/bin/argparser/Arg.java b/src/jalview/bin/argparser/Arg.java index 9a05c9f..36f7794 100644 --- a/src/jalview/bin/argparser/Arg.java +++ b/src/jalview/bin/argparser/Arg.java @@ -311,7 +311,7 @@ public enum Arg // these last two have no purpose in the normal Jalview application but are // used by jalview.bin.Launcher to set memory settings. They are not used by - // argparser but are here for Usage statement reasons. + // argparser but are here for Usage statement and parsing reasons. JVMMEMPC(Type.CONFIG, "Limit maximum heap size (memory) to PERCENT% of total physical memory detected. This defaults to 90 if total physical memory can be detected.\n" + "The equals sign (\"=\") separator must be used with no spaces.", -- 1.7.10.2