# HG changeset patch # User Omair Majid # Date 1361894205 18000 # Node ID 81508fc5f27baf7d866388666e470ffe3d8a91a0 # Parent a51dd3bfa1d136e0fe939d76fdf09fafef9bd8e1 Avoid warnings for commands Reviewed-by: vanaltj Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2013-February/005821.html diff -r a51dd3bfa1d1 -r 81508fc5f27b distribution/config/commands/agent.properties --- a/distribution/config/commands/agent.properties Tue Feb 26 15:24:07 2013 +0100 +++ b/distribution/config/commands/agent.properties Tue Feb 26 10:56:45 2013 -0500 @@ -48,6 +48,8 @@ saveOnExit.short = s saveOnExit.long = saveOnExit saveOnExit.description = save the data on exit +saveOnExit.required = false +saveOnExit.hasarg = false dbUrl.required = true diff -r a51dd3bfa1d1 -r 81508fc5f27b launcher/src/main/java/com/redhat/thermostat/launcher/internal/BuiltInCommandInfo.java --- a/launcher/src/main/java/com/redhat/thermostat/launcher/internal/BuiltInCommandInfo.java Tue Feb 26 15:24:07 2013 +0100 +++ b/launcher/src/main/java/com/redhat/thermostat/launcher/internal/BuiltInCommandInfo.java Tue Feb 26 10:56:45 2013 -0500 @@ -70,9 +70,9 @@ private Options options; private List dependencies; - BuiltInCommandInfo(String name, Properties properties, String libRoot) { + BuiltInCommandInfo(String commandName, Properties properties, String libRoot) { options = new Options(); - this.name = name; + this.name = commandName; for (Entry entry: properties.entrySet()) { String key = (String) entry.getKey(); if (key.equals(PROPERTY_BUNDLES)) { @@ -152,7 +152,9 @@ List optionsList = Arrays.asList(optionString.split("\\|")); if (optionsList.size() == 1) { // Not a group - Option option = optionFromProperties(optionsList.get(0).trim(), props); + String optionName = optionsList.get(0).trim(); + boolean forOverridingRequired = CommonOptions.ALL_COMMON_OPTIONS.contains(optionName); + Option option = optionFromProperties(optionName, props, forOverridingRequired); if (optionConflicts(option, commonOptionsToAdd, propertiesOptions)) { throwConflictingOption(option); } @@ -183,7 +185,14 @@ } } - private Option optionFromProperties(String name, Properties props) { + /** + * @param name the name of the option + * @param props the properties object that contains more information about that option + * @param forOverridingRequiredOnly indicates that the option is for + * overriding the required property of a common option + * @return an Option object created by parsing the props + */ + private Option optionFromProperties(String name, Properties props, boolean forOverridingRequiredOnly) { String opt = null; String longOpt = null; boolean hasArg = false; @@ -203,18 +212,22 @@ longOpt = (String) props.getProperty(longKey); } if (opt == null && longOpt == null) { - logger.warning("Neither short nor long version of option " + name + " was set. Assuming long option same as name."); longOpt = name; + if (!forOverridingRequiredOnly) { + logger.info("Command '" + this.name + "': Neither short nor long version of option " + name + " was set. Assuming long option same as name."); + } } if (props.containsKey(argKey)) { hasArg = Boolean.parseBoolean((String) props.getProperty(argKey)); } else { - logger.warning("The 'hasarg' property for " + name + " was not set. Assuming FALSE"); + if (!forOverridingRequiredOnly) { + logger.info("Command '" + this.name + "': The 'hasarg' property for " + name + " was not set. Assuming FALSE"); + } } if (props.containsKey(requiredKey)) { required = Boolean.parseBoolean((String) props.getProperty(requiredKey)); } else { - logger.warning("The 'required' property for " + name + " was not set. Assuming FALSE"); + logger.info("Command '" + this.name + "': The 'required' property for " + name + " was not set. Assuming FALSE"); } if (props.containsKey(descKey)) { description = (String) props.getProperty(descKey); @@ -236,7 +249,8 @@ OptionGroup og = new OptionGroup(); og.setRequired(true); for (String optionName : optionsList) { - Option option = optionFromProperties(optionName.trim(), props); + boolean forOverridingRequired = CommonOptions.ALL_COMMON_OPTIONS.contains(optionName); + Option option = optionFromProperties(optionName.trim(), props, forOverridingRequired); if (optionConflictsWithGroup(option, og) | optionConflicts(option, commonOpts, propOpts)) { throwConflictingOption(option);