Package org.apache.geode.distributed
Class LocatorLauncher.Builder
java.lang.Object
org.apache.geode.distributed.LocatorLauncher.Builder
- Enclosing class:
- LocatorLauncher
Following the Builder design pattern, the LocatorLauncher Builder is used to configure and
create a properly initialized instance of the LocatorLauncher class for running the Locator and
performing other Locator operations.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionBuilder()Default constructor used to create an instance of the Builder class for programmatical access.Constructor used to create and configure an instance of the Builder class with the specified arguments, often passed from the command-line when launching an instance of this class from the command-line using the Java launcher. -
Method Summary
Modifier and TypeMethodDescriptionbuild()Validates the Builder configuration settings and then constructs an instance of the LocatorLauncher class to invoke operations on a Geode Locator.Gets the IP address to which the Locator has bound itself listening for client requests.Gets the Locator launcher command used during the invocation of the LocatorLauncher.getDebug()Determines whether the new instance of the LocatorLauncher will be set to debug mode.Determines whether the Geode Locator should delete the pid file when its service stops or when the JVM exits.Gets the Geode Distributed System (cluster) Properties configuration.getForce()Gets the boolean value used by the Locator to determine if it should overwrite the PID file if it already exists.getHelp()Determines whether the new instance of LocatorLauncher will be used to output help information for either a specific command, or for using LocatorLauncher in general.Gets the hostname used by clients to lookup the Locator.Gets the member name of this Locator in Geode.getPid()Gets the process ID (PID) of the running Locator indicated by the user as an argument to the LocatorLauncher.getPort()Gets the port number used by the Locator to listen for client requests.Determines whether the new instance of LocatorLauncher will redirect output to system logs when starting a Locator.Gets the working directory pathname in which the Locator will be ran.protected voidparseArguments(String... args) Parses an array of arguments to configure this Builder with the intent of constructing a Locator launcher to invoke a Locator.protected voidparseCommand(String... args) Iterates the list of arguments in search of the target Locator launcher command.protected voidparseMemberName(String... args) Iterates the list of arguments in search of the Locator's Geode member name.Sets a Geode Distributed System Property.set(Properties properties) add the properties in the Geode Distributed System PropertysetBindAddress(String addressString) Sets the IP address as an java.net.InetAddress to which the Locator has bound itself listening for client requests.setCommand(LocatorLauncher.Command command) Sets the Locator launcher command used during the invocation of the LocatorLauncherSets whether the new instance of the LocatorLauncher will be set to debug mode.setDeletePidFileOnStop(Boolean deletePidFileOnStop) Sets whether the Geode Locator should delete the pid file when its service stops or when the JVM exits.Sets the boolean value used by the Locator to determine if it should overwrite the PID file if it already exists.Sets whether the new instance of LocatorLauncher will be used to output help information for either a specific command, or for using LocatorLauncher in general.setHostnameForClients(String hostnameForClients) Sets the hostname used by clients to lookup the Locator.setMemberName(String memberName) Sets the member name of the Locator in Geode.Sets the process ID (PID) of the running Locator indicated by the user as an argument to the LocatorLauncher.Sets the port number used by the Locator to listen for client requests.setRedirectOutput(Boolean redirectOutput) Sets whether the new instance of LocatorLauncher will redirect output to system logs when starting a Locator.setWorkingDirectory(String workingDirectory) Sets the working directory in which the Locator will be ran.protected voidvalidate()Validates the configuration settings and properties of this Builder, ensuring that all invariants have been met.protected voidValidates the arguments passed to the Builder when the 'start' command has been issued.protected voidValidates the arguments passed to the Builder when the 'status' command has been issued.protected voidValidates the arguments passed to the Builder when the 'stop' command has been issued.
-
Field Details
-
DEFAULT_COMMAND
-
-
Constructor Details
-
Builder
public Builder()Default constructor used to create an instance of the Builder class for programmatical access. -
Builder
Constructor used to create and configure an instance of the Builder class with the specified arguments, often passed from the command-line when launching an instance of this class from the command-line using the Java launcher.- Parameters:
args- the array of arguments used to configure the Builder.
-
-
Method Details
-
parseArguments
Parses an array of arguments to configure this Builder with the intent of constructing a Locator launcher to invoke a Locator. This method is called to parse the arguments specified by the user on the command-line.- Parameters:
args- the array of arguments used to configure this Builder and create an instance of LocatorLauncher.
-
parseCommand
Iterates the list of arguments in search of the target Locator launcher command.- Parameters:
args- an array of arguments from which to search for the Locator launcher command.- See Also:
-
parseMemberName
Iterates the list of arguments in search of the Locator's Geode member name. If the argument does not start with '-' or is not the name of a Locator launcher command, then the value is presumed to be the member name for the Locator in Geode.- Parameters:
args- the array of arguments from which to search for the Locator's member name in Geode.- See Also:
-
getCommand
Gets the Locator launcher command used during the invocation of the LocatorLauncher.- Returns:
- the Locator launcher command used to invoke (run) the LocatorLauncher class.
- See Also:
-
setCommand
Sets the Locator launcher command used during the invocation of the LocatorLauncher- Parameters:
command- the targeted Locator launcher command used during the invocation (run) of LocatorLauncher.- Returns:
- this Builder instance.
- See Also:
-
getDebug
Determines whether the new instance of the LocatorLauncher will be set to debug mode.- Returns:
- a boolean value indicating whether debug mode is enabled or disabled.
- See Also:
-
setDebug
Sets whether the new instance of the LocatorLauncher will be set to debug mode.- Parameters:
debug- a boolean value indicating whether debug mode is to be enabled or disabled.- Returns:
- this Builder instance.
- See Also:
-
getDeletePidFileOnStop
Determines whether the Geode Locator should delete the pid file when its service stops or when the JVM exits.- Returns:
- a boolean value indicating if the pid file should be deleted when this service stops or when the JVM exits.
- See Also:
-
setDeletePidFileOnStop
Sets whether the Geode Locator should delete the pid file when its service stops or when the JVM exits.- Parameters:
deletePidFileOnStop- a boolean value indicating if the pid file should be deleted when this service stops or when the JVM exits.- Returns:
- this Builder instance.
- See Also:
-
getDistributedSystemProperties
Gets the Geode Distributed System (cluster) Properties configuration.- Returns:
- a Properties object containing configuration settings for the Geode Distributed System (cluster).
- See Also:
-
getForce
Gets the boolean value used by the Locator to determine if it should overwrite the PID file if it already exists.- Returns:
- the boolean value specifying whether or not to overwrite the PID file if it already exists.
- See Also:
-
setForce
Sets the boolean value used by the Locator to determine if it should overwrite the PID file if it already exists.- Parameters:
force- a boolean value indicating whether to overwrite the PID file when it already exists.- Returns:
- this Builder instance.
- See Also:
-
getHelp
Determines whether the new instance of LocatorLauncher will be used to output help information for either a specific command, or for using LocatorLauncher in general.- Returns:
- a boolean value indicating whether help will be output during the invocation of LocatorLauncher.
- See Also:
-
setHelp
Sets whether the new instance of LocatorLauncher will be used to output help information for either a specific command, or for using LocatorLauncher in general.- Parameters:
help- a boolean indicating whether help information is to be displayed during invocation of LocatorLauncher.- Returns:
- this Builder instance.
- See Also:
-
getBindAddress
Gets the IP address to which the Locator has bound itself listening for client requests.- Returns:
- an InetAddress with the IP address or hostname on which the Locator is bound and listening.
- See Also:
-
setBindAddress
Sets the IP address as an java.net.InetAddress to which the Locator has bound itself listening for client requests.- Parameters:
addressString- the InetAddress with the IP address or hostname on which the Locator is bound and listening.- Returns:
- this Builder instance.
- Throws:
IllegalArgumentException- wrapping the UnknownHostException if the IP address or hostname for the bind address is unknown.- See Also:
-
getHostnameForClients
Gets the hostname used by clients to lookup the Locator.- Returns:
- a String indicating the hostname Locator binding used in client lookups.
- See Also:
-
setHostnameForClients
Sets the hostname used by clients to lookup the Locator.- Parameters:
hostnameForClients- a String indicating the hostname Locator binding used in client lookups.- Returns:
- this Builder instance.
- Throws:
IllegalArgumentException- if the hostname was not specified (is blank or empty), such as when the --hostname-for-clients command-line option may have been specified without any argument.- See Also:
-
getMemberName
Gets the member name of this Locator in Geode.- Returns:
- a String indicating the member name of this Locator in Geode.
- See Also:
-
setMemberName
Sets the member name of the Locator in Geode.- Parameters:
memberName- a String indicating the member name of this Locator in Geode.- Returns:
- this Builder instance.
- Throws:
IllegalArgumentException- if the member name is invalid.- See Also:
-
getPid
Gets the process ID (PID) of the running Locator indicated by the user as an argument to the LocatorLauncher. This PID is used by the Locator launcher to determine the Locator's status, or invoke shutdown on the Locator.- Returns:
- a user specified Integer value indicating the process ID of the running Locator.
- See Also:
-
setPid
Sets the process ID (PID) of the running Locator indicated by the user as an argument to the LocatorLauncher. This PID will be used by the Locator launcher to determine the Locator's status, or invoke shutdown on the Locator.- Parameters:
pid- a user specified Integer value indicating the process ID of the running Locator.- Returns:
- this Builder instance.
- Throws:
IllegalArgumentException- if the process ID (PID) is not valid (greater than zero if not null).- See Also:
-
getPort
Gets the port number used by the Locator to listen for client requests. If the port was not specified, then the default Locator port (10334) is returned.- Returns:
- the specified Locator port or the default port if unspecified.
- See Also:
-
setPort
Sets the port number used by the Locator to listen for client requests. The port number must be between 1 and 65535 inclusive.- Parameters:
port- an Integer value indicating the port used by the Locator to listen for client requests.- Returns:
- this Builder instance.
- Throws:
IllegalArgumentException- if the port number is not valid.- See Also:
-
getRedirectOutput
Determines whether the new instance of LocatorLauncher will redirect output to system logs when starting a Locator.- Returns:
- a boolean value indicating if output will be redirected to system logs when starting a Locator
- See Also:
-
setRedirectOutput
Sets whether the new instance of LocatorLauncher will redirect output to system logs when starting a Locator.- Parameters:
redirectOutput- a boolean value indicating if output will be redirected to system logs when starting a Locator.- Returns:
- this Builder instance.
- See Also:
-
getWorkingDirectory
Gets the working directory pathname in which the Locator will be ran. If the directory is unspecified, then working directory defaults to the current directory.- Returns:
- a String indicating the working directory pathname.
- See Also:
-
setWorkingDirectory
Sets the working directory in which the Locator will be ran. This also the directory in which all Locator files (such as log and license files) will be written. If the directory is unspecified, then the working directory defaults to the current directory.- Parameters:
workingDirectory- a String indicating the pathname of the directory in which the Locator will be ran.- Returns:
- this Builder instance.
- Throws:
IllegalArgumentException- wrapping a FileNotFoundException if the working directory pathname cannot be found.- See Also:
-
set
Sets a Geode Distributed System Property.- Parameters:
propertyName- a String indicating the name of the Geode Distributed System property as described inConfigurationPropertiespropertyValue- a String value for the Geode Distributed System property.- Returns:
- this Builder instance.
-
set
add the properties in the Geode Distributed System Property- Parameters:
properties- a property object that holds one or more Geode Distributed System properties as described inConfigurationProperties- Returns:
- this Builder instance
- Since:
- Geode 1.12
-
validate
protected void validate()Validates the configuration settings and properties of this Builder, ensuring that all invariants have been met. Currently, the only invariant constraining the Builder is that the user must specify the member name for the Locator in the Geode distributed system as a command-line argument, or by setting the memberName property programmatically using the corresponding setter method. If the member name is not given, then the user must have specified the pathname to the gemfire.properties file before validate is called. It is then assumed, but not further validated, that the user has specified the Locator's member name in the properties file.- Throws:
IllegalStateException- if the Builder is not properly configured.
-
validateOnStart
protected void validateOnStart()Validates the arguments passed to the Builder when the 'start' command has been issued.- See Also:
-
validateOnStatus
protected void validateOnStatus()Validates the arguments passed to the Builder when the 'status' command has been issued.- See Also:
-
validateOnStop
protected void validateOnStop()Validates the arguments passed to the Builder when the 'stop' command has been issued.- See Also:
-
build
Validates the Builder configuration settings and then constructs an instance of the LocatorLauncher class to invoke operations on a Geode Locator.- Returns:
- a newly constructed instance of LocatorLauncher configured with this Builder.
- See Also:
-