http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3d62a1e1/software/base/src/main/java/org/apache/brooklyn/entity/java/UsesJava.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/java/UsesJava.java b/software/base/src/main/java/org/apache/brooklyn/entity/java/UsesJava.java index 1f80eda..eee5846 100644 --- a/software/base/src/main/java/org/apache/brooklyn/entity/java/UsesJava.java +++ b/software/base/src/main/java/org/apache/brooklyn/entity/java/UsesJava.java @@ -32,7 +32,9 @@ public interface UsesJava { /** system properties (-D) to append to JAVA_OPTS; normally accessed through {@link JavaEntityMethods#javaSysProp(String)} */ @SetFromFlag("javaSysProps") public static final MapConfigKey<String> JAVA_SYSPROPS = new MapConfigKey<String>(String.class, - "java.sysprops", "Java command line system properties", Maps.<String,String>newLinkedHashMap()); + "java.sysprops", + "Java command line system properties (converted automatically into the format '-Dkey=value')", + Maps.<String,String>newLinkedHashMap()); /** * Used to set java options. These options are prepended to the defaults. @@ -58,8 +60,10 @@ public interface UsesJava { "java.opts", "Java command line options", ImmutableSet.<String>of()); public static final ConfigKey<Boolean> CHECK_JAVA_HOSTNAME_BUG = ConfigKeys.newBooleanConfigKey( - "java.check.hostname.bug", "Check whether hostname is too long and will likely crash Java" + - "due to bug 7089443", true); + "java.check.hostname.bug", + "Check whether hostname is too long and will likely crash Java 1.7 " + + "due to bug http://bugs.java.com/view_bug.do?bug_id=7089443", + true); @SetFromFlag("javaVersionRequired") ConfigKey<String> JAVA_VERSION_REQUIRED = ConfigKeys.newStringConfigKey("java.version.required", "Java version required", "1.7");
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3d62a1e1/software/base/src/main/java/org/apache/brooklyn/entity/java/UsesJmx.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/java/UsesJmx.java b/software/base/src/main/java/org/apache/brooklyn/entity/java/UsesJmx.java index 7d44bd3..d201f2a 100644 --- a/software/base/src/main/java/org/apache/brooklyn/entity/java/UsesJmx.java +++ b/software/base/src/main/java/org/apache/brooklyn/entity/java/UsesJmx.java @@ -38,18 +38,25 @@ public interface UsesJmx extends UsesJava { public static final int DEFAULT_JMX_PORT = 1099; // RMI port? @SetFromFlag("useJmx") - ConfigKey<Boolean> USE_JMX = ConfigKeys.newConfigKey("jmx.enabled", "JMX enabled", Boolean.TRUE); + ConfigKey<Boolean> USE_JMX = ConfigKeys.newConfigKey( + "jmx.enabled", + "Whether JMX is enabled", + Boolean.TRUE); /** Chosen by Java itself by default, setting this will only have any effect if using an agent. */ @SetFromFlag("jmxPort") PortAttributeSensorAndConfigKey JMX_PORT = new PortAttributeSensorAndConfigKey( - "jmx.direct.port", "JMX direct/private port (e.g. JMX RMI server port, or JMXMP port, but not RMI registry port)", PortRanges.fromString("31001+")); + "jmx.direct.port", + "JMX direct/private port (e.g. JMX RMI server port, or JMXMP port, but not RMI registry port)", + PortRanges.fromString("31001+")); // Default is deliberately null for this unused config; if we used "31001+" then we'd potentially give this sensor // the value 31001 and jmx.direct.port the value 31002. See https://issues.apache.org/jira/browse/BROOKLYN-98 /** @deprecated since 0.7.0, kept for rebinding with the anonymous class; code should only ever use {@link #JMX_PORT} */ @Deprecated PortAttributeSensorAndConfigKey JMX_PORT_LEGACY = new PortAttributeSensorAndConfigKey( - "jmx.direct.port.legacy.NOT_USED", "Legacy definition JMX direct/private port (e.g. JMX RMI server port, or JMXMP port, but not RMI registry port)", null) { + "jmx.direct.port.legacy.NOT_USED", + "Legacy definition JMX direct/private port (e.g. JMX RMI server port, or JMXMP port, but not RMI registry port)", + null) { private static final long serialVersionUID = 3846846080809179437L; @Override protected Integer convertConfigToSensor(PortRange value, Entity entity) { // TODO when using JmxAgentModes.NONE we should *not* convert, but leave it null @@ -67,14 +74,19 @@ public interface UsesJmx extends UsesJava { "rmi.registry.port", "RMI registry port, used for discovering JMX (private) port", PortRanges.fromString("1099,19099+")); @SetFromFlag("jmxContext") - AttributeSensorAndConfigKey<String, String> JMX_CONTEXT = ConfigKeys.newStringSensorAndConfigKey("jmx.context", "JMX context path", "jmxrmi"); + AttributeSensorAndConfigKey<String, String> JMX_CONTEXT = ConfigKeys.newStringSensorAndConfigKey("jmx.context", "JMX context path (defaults to 'jmxrmi')", "jmxrmi"); AttributeSensor<String> JMX_URL = new BasicAttributeSensorAndConfigKey<String>( - String.class, "jmx.service.url", "The URL for connecting to the MBean Server"); + String.class, + "jmx.service.url", + "The URL for connecting to the MBean Server"); /** Forces JMX to be secured, using JMXMP so it gets through firewalls <em>and</em> SSL/TLS. */ @SetFromFlag("jmxSecure") - ConfigKey<Boolean> JMX_SSL_ENABLED = ConfigKeys.newBooleanConfigKey("jmx.ssl.enabled", "JMX over JMXMP enabled with SSL/TLS", Boolean.FALSE); + ConfigKey<Boolean> JMX_SSL_ENABLED = ConfigKeys.newBooleanConfigKey( + "jmx.ssl.enabled", + "Whether to enable JMX over JMXMP with SSL/TLS", + Boolean.FALSE); enum JmxAgentModes { /** Auto-detect the agent to use based on location. Prefer {@link #JMXMP} except at localhost which uses {@link #JMX_RMI_CUSTOM_AGENT}. */ @@ -105,10 +117,17 @@ public interface UsesJmx extends UsesJava { JmxAgentModes.AUTODETECT); /* Currently these are only used to connect, so only applies where systems set this up themselves. */ - AttributeSensorAndConfigKey<String, String> JMX_USER = ConfigKeys.newStringSensorAndConfigKey("jmx.user", "JMX username"); - AttributeSensorAndConfigKey<String, String> JMX_PASSWORD = ConfigKeys.newStringSensorAndConfigKey("jmx.password", "JMX password"); + AttributeSensorAndConfigKey<String, String> JMX_USER = ConfigKeys.newStringSensorAndConfigKey( + "jmx.user", + "Optional JMX username to use when connecting"); - AttributeSensorAndConfigKey<String, String> JMX_AGENT_LOCAL_PATH = ConfigKeys.newStringSensorAndConfigKey("jmx.agent.local.path", "Path to JMX driver on the local machine"); + AttributeSensorAndConfigKey<String, String> JMX_PASSWORD = ConfigKeys.newStringSensorAndConfigKey( + "jmx.password", + "Optional JMX password to use when connecting"); + + AttributeSensorAndConfigKey<String, String> JMX_AGENT_LOCAL_PATH = ConfigKeys.newStringSensorAndConfigKey( + "jmx.agent.local.path", + "Optional path to where JMX driver should be installed on the local machine (if using JMXMP or custom agent)"); /* * Synopsis of how the keys work for JMX_SSL: http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3d62a1e1/software/base/src/main/java/org/apache/brooklyn/entity/software/base/AbstractVanillaProcess.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/AbstractVanillaProcess.java b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/AbstractVanillaProcess.java index f5c1bf5..702d270 100644 --- a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/AbstractVanillaProcess.java +++ b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/AbstractVanillaProcess.java @@ -18,6 +18,7 @@ */ package org.apache.brooklyn.entity.software.base; +import org.apache.brooklyn.api.catalog.CatalogConfig; import org.apache.brooklyn.config.ConfigInheritance; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; @@ -28,25 +29,33 @@ public interface AbstractVanillaProcess extends SoftwareProcess { ConfigKey<String> SUGGESTED_VERSION = ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "0.0.0"); + @CatalogConfig(label = "Install Command", priority=5) ConfigKey<String> INSTALL_COMMAND = ConfigKeys.builder(String.class, "install.command") .description("command to run during the install phase") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); + + @CatalogConfig(label = "Customize command", priority=4) ConfigKey<String> CUSTOMIZE_COMMAND = ConfigKeys.builder(String.class, "customize.command") .description("command to run during the customization phase") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); + + @CatalogConfig(label = "Launch Command", priority=3) ConfigKey<String> LAUNCH_COMMAND = ConfigKeys.builder(String.class, "launch.command") .description("command to run to launch the process") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); + + @CatalogConfig(label = "Check-running Command", priority=2) ConfigKey<String> CHECK_RUNNING_COMMAND = ConfigKeys.builder(String.class, "checkRunning.command") .description("command to determine whether the process is running") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); + + @CatalogConfig(label = "Stop Command", priority=1) ConfigKey<String> STOP_COMMAND = ConfigKeys.builder(String.class, "stop.command") .description("command to run to stop the process") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); - } http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3d62a1e1/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcess.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcess.java b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcess.java index 1e4ace6..ab7cff0 100644 --- a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcess.java +++ b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcess.java @@ -56,15 +56,18 @@ public interface SoftwareProcess extends Entity, Startable { ConfigKey<Collection<Integer>> REQUIRED_OPEN_LOGIN_PORTS = ConfigKeys.newConfigKey( new TypeToken<Collection<Integer>>() {}, "requiredOpenLoginPorts", - "The port(s) to be opened, to allow login", + "The port(s) to be opened (also see 'inboundPorts.autoInfer')", ImmutableSet.of(22)); ConfigKey<String> INBOUND_PORTS_CONFIG_REGEX = ConfigKeys.newStringConfigKey("inboundPorts.configRegex", - "Regex governing the opening of ports based on config names", + "Regex governing the opening of ports based on config names (see 'inboundPorts.autoInfer')", ".*\\.port"); ConfigKey<Boolean> INBOUND_PORTS_AUTO_INFER = ConfigKeys.newBooleanConfigKey("inboundPorts.autoInfer", - "If set to false turns off the opening of ports based on naming convention, and also those that are of type PortRange in Java entities", + "By default, the ports to open in iptables and security group is inferred from the config keys. " + + "This follows a naming convention (defaulting to all config keys matching the name '*.\\.port', " + + "but customizable with the config key 'inboundPorts.configRegex'), and also including all " + + "config keys of type 'PortRange'. This behaviour is turned off by setting it to 'false'.", true); @SetFromFlag("startTimeout") @@ -150,16 +153,20 @@ public interface SoftwareProcess extends Entity, Startable { @SetFromFlag("runDir") AttributeSensorAndConfigKey<String,String> RUN_DIR = BrooklynConfigKeys.RUN_DIR; - ConfigKey<Boolean> ADD_OPEN_INBOUND_PORTS_EFFECTOR = ConfigKeys.newBooleanConfigKey("effector.add.openInboundPorts", - "Flag which adds effector for opening ports through Cloud security groups", false); + ConfigKey<Boolean> ADD_OPEN_INBOUND_PORTS_EFFECTOR = ConfigKeys.newBooleanConfigKey( + "effector.add.openInboundPorts", + "Whether to add an effector to the entity for opening ports through Cloud security groups", + false); ConfigKey<Boolean> OPEN_IPTABLES = ConfigKeys.newBooleanConfigKey("openIptables", "Whether to open the INBOUND_PORTS via iptables rules; " + - "if true then ssh in to run iptables commands, as part of machine provisioning", false); + "if true then ssh in to run iptables commands, as part of machine provisioning", + false); ConfigKey<Boolean> STOP_IPTABLES = ConfigKeys.newBooleanConfigKey("stopIptables", "Whether to stop iptables entirely; " + - "if true then ssh in to stop the iptables service, as part of machine provisioning", false); + "if true then ssh in to stop the iptables service, as part of machine provisioning", + false); ConfigKey<Boolean> DONT_REQUIRE_TTY_FOR_SUDO = ConfigKeys.newBooleanConfigKey("dontRequireTtyForSudo", "Whether to explicitly set /etc/sudoers, so don't need tty (will leave unchanged if 'false'); " + @@ -187,7 +194,7 @@ public interface SoftwareProcess extends Entity, Startable { @Beta @SetFromFlag("preInstallFiles") MapConfigKey<String> PRE_INSTALL_FILES = new MapConfigKey.Builder<String>(String.class, "files.preinstall") - .description("Mapping of files, to be copied before install, to destination name relative to installDir") + .description("Files to be copied before pre-install; mapping from resource to the destination name relative to installDir") .typeInheritance(BasicConfigInheritance.DEEP_MERGE) .runtimeInheritance(BasicConfigInheritance.NOT_REINHERITED_ELSE_DEEP_MERGE) .build(); @@ -200,7 +207,7 @@ public interface SoftwareProcess extends Entity, Startable { @Beta @SetFromFlag("preInstallTemplates") MapConfigKey<String> PRE_INSTALL_TEMPLATES = new MapConfigKey.Builder<String>(String.class, "templates.preinstall") - .description("Mapping of templates, to be filled in and copied before pre-install, to destination name relative to installDir") + .description("Templated files to be filled in and copied before pre-install; mapping from resource to the destination name relative to installDir") .typeInheritance(BasicConfigInheritance.DEEP_MERGE) .runtimeInheritance(BasicConfigInheritance.NOT_REINHERITED_ELSE_DEEP_MERGE) .build(); @@ -216,7 +223,7 @@ public interface SoftwareProcess extends Entity, Startable { @Beta @SetFromFlag("installFiles") MapConfigKey<String> INSTALL_FILES = new MapConfigKey.Builder<String>(String.class, "files.install") - .description("Mapping of files, to be copied before install, to destination name relative to installDir") + .description("Files to be copied before install; mapping from resource to the destination name relative to installDir") .typeInheritance(BasicConfigInheritance.DEEP_MERGE) .runtimeInheritance(BasicConfigInheritance.NOT_REINHERITED_ELSE_DEEP_MERGE) .build(); @@ -229,7 +236,7 @@ public interface SoftwareProcess extends Entity, Startable { @Beta @SetFromFlag("installTemplates") MapConfigKey<String> INSTALL_TEMPLATES = new MapConfigKey.Builder<String>(String.class, "templates.install") - .description("Mapping of templates, to be filled in and copied before install, to destination name relative to installDir") + .description("Templated files to be filled in and copied before install; mapping from resource to the destination name relative to installDir") .typeInheritance(BasicConfigInheritance.DEEP_MERGE) .runtimeInheritance(BasicConfigInheritance.NOT_REINHERITED_ELSE_DEEP_MERGE) .build(); @@ -245,7 +252,7 @@ public interface SoftwareProcess extends Entity, Startable { @Beta @SetFromFlag("customizeFiles") MapConfigKey<String> CUSTOMIZE_FILES = new MapConfigKey.Builder<String>(String.class, "files.customize") - .description("Mapping of files, to be copied before customize, to destination name relative to installDir") + .description("Files to be copied before customize; mapping from resource to the destination name relative to installDir") .typeInheritance(BasicConfigInheritance.DEEP_MERGE) .runtimeInheritance(BasicConfigInheritance.NOT_REINHERITED_ELSE_DEEP_MERGE) .build(); @@ -258,7 +265,7 @@ public interface SoftwareProcess extends Entity, Startable { @Beta @SetFromFlag("customizeTemplates") MapConfigKey<String> CUSTOMIZE_TEMPLATES = new MapConfigKey.Builder<String>(String.class, "templates.customize") - .description("Mapping of templates, to be filled in and copied before customize, to destination name relative to installDir") + .description("Templated files to be filled in and copied before customize; mapping from resource to the destination name relative to installDir") .typeInheritance(BasicConfigInheritance.DEEP_MERGE) .runtimeInheritance(BasicConfigInheritance.NOT_REINHERITED_ELSE_DEEP_MERGE) .build(); @@ -274,7 +281,7 @@ public interface SoftwareProcess extends Entity, Startable { @Beta @SetFromFlag("runtimeFiles") MapConfigKey<String> RUNTIME_FILES = new MapConfigKey.Builder<String>(String.class, "files.runtime") - .description("Mapping of files, to be copied before customisation, to destination name relative to runDir") + .description("Files to be copied before launch (and before pre-launch); mapping from resource to the destination name relative to runDir") .typeInheritance(BasicConfigInheritance.DEEP_MERGE) .runtimeInheritance(BasicConfigInheritance.NOT_REINHERITED_ELSE_DEEP_MERGE) .build(); @@ -287,7 +294,7 @@ public interface SoftwareProcess extends Entity, Startable { @Beta @SetFromFlag("runtimeTemplates") MapConfigKey<String> RUNTIME_TEMPLATES = new MapConfigKey.Builder<String>(String.class, "templates.runtime") - .description("Mapping of templates, to be filled in and copied before customisation, to destination name relative to runDir") + .description("Templated files to be filled in and copied before launch (and before pre-launch); mapping from resource to the destination name relative to installDir") .typeInheritance(BasicConfigInheritance.DEEP_MERGE) .runtimeInheritance(BasicConfigInheritance.NOT_REINHERITED_ELSE_DEEP_MERGE) .build(); http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3d62a1e1/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcessImpl.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcessImpl.java b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcessImpl.java index ea31359..c0dd252 100644 --- a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcessImpl.java +++ b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcessImpl.java @@ -525,7 +525,6 @@ public abstract class SoftwareProcessImpl extends AbstractEntity implements Soft * @see #INBOUND_PORTS_AUTO_INFER * @see #INBOUND_PORTS_CONFIG_REGEX */ - @SuppressWarnings("serial") protected Collection<Integer> getRequiredOpenPorts() { Set<Integer> ports = MutableSet.copyOf(getConfig(REQUIRED_OPEN_LOGIN_PORTS)); Boolean portsAutoInfer = getConfig(INBOUND_PORTS_AUTO_INFER); http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3d62a1e1/software/base/src/main/java/org/apache/brooklyn/entity/software/base/VanillaWindowsProcess.java ---------------------------------------------------------------------- diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/VanillaWindowsProcess.java b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/VanillaWindowsProcess.java index 63ccfbe..e772f24 100644 --- a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/VanillaWindowsProcess.java +++ b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/VanillaWindowsProcess.java @@ -44,7 +44,7 @@ public interface VanillaWindowsProcess extends AbstractVanillaProcess { @CatalogConfig(label = "Install PowerShell command", priority=5.5) ConfigKey<String> INSTALL_POWERSHELL_COMMAND = ConfigKeys.builder(String.class, "install.powershell.command") .description("powershell command to run during the install phase") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); @CatalogConfig(label = "Install Command", priority=5) @@ -53,7 +53,7 @@ public interface VanillaWindowsProcess extends AbstractVanillaProcess { @CatalogConfig(label = "Customize PowerShell command", priority=4.5) ConfigKey<String> CUSTOMIZE_POWERSHELL_COMMAND = ConfigKeys.builder(String.class, "customize.powershell.command") .description("powershell command to run during the customization phase") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); @CatalogConfig(label = "Customize command", priority=4) @@ -62,7 +62,7 @@ public interface VanillaWindowsProcess extends AbstractVanillaProcess { @CatalogConfig(label = "Launch PowerShell command", priority=3.5) ConfigKey<String> LAUNCH_POWERSHELL_COMMAND = ConfigKeys.builder(String.class, "launch.powershell.command") .description("command to run to launch the process") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); @CatalogConfig(label = "Launch Command", priority=3) @@ -71,7 +71,7 @@ public interface VanillaWindowsProcess extends AbstractVanillaProcess { @CatalogConfig(label = "Check-running PowerShell Command", priority=2.5) ConfigKey<String> CHECK_RUNNING_POWERSHELL_COMMAND = ConfigKeys.builder(String.class, "checkRunning.powershell.command") .description("command to determine whether the process is running") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); @CatalogConfig(label = "Check-running Command", priority=2) @@ -80,7 +80,7 @@ public interface VanillaWindowsProcess extends AbstractVanillaProcess { @CatalogConfig(label = "Stop PowerShell Command", priority=1.5) ConfigKey<String> STOP_POWERSHELL_COMMAND = ConfigKeys.builder(String.class, "stop.powershell.command") .description("command to run to stop the process") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); @CatalogConfig(label = "Stop Command", priority=1) @@ -88,32 +88,32 @@ public interface VanillaWindowsProcess extends AbstractVanillaProcess { ConfigKey<String> PRE_INSTALL_POWERSHELL_COMMAND = ConfigKeys.builder(String.class, "pre.install.powershell.command") .description("powershell command to run during the pre-install phase") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); ConfigKey<String> POST_INSTALL_POWERSHELL_COMMAND = ConfigKeys.builder(String.class, "post.install.powershell.command") .description("powershell command to run during the post-install phase") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); ConfigKey<String> PRE_CUSTOMIZE_POWERSHELL_COMMAND = ConfigKeys.builder(String.class, "pre.customize.powershell.command") .description("powershell command to run during the pre-customize phase") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); ConfigKey<String> POST_CUSTOMIZE_POWERSHELL_COMMAND = ConfigKeys.builder(String.class, "post.customize.powershell.command") .description("powershell command to run during the post-customize phase") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); ConfigKey<String> PRE_LAUNCH_POWERSHELL_COMMAND = ConfigKeys.builder(String.class, "pre.launch.powershell.command") .description("powershell command to run during the pre-launch phase") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); ConfigKey<String> POST_LAUNCH_POWERSHELL_COMMAND = ConfigKeys.builder(String.class, "post.launch.powershell.command") .description("powershell command to run during the post-launch phase") - .parentInheritance(ConfigInheritance.NONE) + .runtimeInheritance(ConfigInheritance.NONE) .build(); ConfigKey<Boolean> PRE_INSTALL_REBOOT_REQUIRED = ConfigKeys.newBooleanConfigKey("pre.install.reboot.required",
