Package org.apache.geode.distributed
Class ServerLauncher.Builder
java.lang.Object
org.apache.geode.distributed.ServerLauncher.Builder
- Enclosing class:
- ServerLauncher
The Builder class, modeled after the Builder creational design pattern, is used to construct a
properly configured and initialized instance of the ServerLauncher to control and run Geode
servers (in particular, cache servers).
-
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, passed in 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 ServerLauncher class to invoke operations on a Geode Server.Determines whether buckets should be assigned to partitioned regions in the cache upon Server start.Gets the Server launcher command used during the invocation of the ServerLauncher.getDebug()Determines whether the new instance of the ServerLauncher will be set to debug mode.Determines whether the Geode Server should delete the pid file when its service stops or when the JVM exits.Determines whether a default cache server will be added when the Geode Server comes online.Gets the Geode Distributed System (cluster) Properties configuration.getForce()Gets the boolean value used by the Server to determine if it should overwrite the PID file if it already exists.getHelp()Determines whether the new instance of the ServerLauncher will be used to output help information for either a specific command, or for using ServerLauncher in general.Gets the member name of this Server in Geode.getPid()Gets the process ID (PID) of the running Server indicated by the user as an argument to the ServerLauncher.Determines whether a rebalance operation on the cache will occur upon starting the Geode server.Determines whether the new instance of ServerLauncher will redirect output to system logs when starting a Server.Gets the IP address to which the Server will be bound listening for and accepting cache client connections in a client/server topology.Gets the port on which the Server will listen for and accept cache client connections in a client/server topology.Gets the location of the Spring XML configuration meta-data file used to bootstrap, configure and initialize the Geode Server on start.Gets the working directory pathname in which the Server will be ran.protected booleanDetermines whether help has been enabled.protected voidparseCommand(String... args) Iterates the list of arguments in search of the target Server launcher command.protected voidparseMemberName(String... args) Iterates the list of arguments in search of the Server's Geode member name.Sets a Geode Distributed System Property.set(Properties properties) add the properties in the Gemfire Distributed System PropertysetAssignBuckets(Boolean assignBuckets) Sets whether buckets should be assigned to partitioned regions in the cache upon Server start.setCommand(ServerLauncher.Command command) Sets the Sever launcher command used during the invocation of the ServerLaunchersetCriticalHeapPercentage(Float criticalHeapPercentage) setCriticalOffHeapPercentage(Float criticalOffHeapPercentage) Sets whether the new instance of the ServerLauncher will be set to debug mode.setDeletePidFileOnStop(Boolean deletePidFileOnStop) Sets whether the Geode Server should delete the pid file when its service stops or when the JVM exits.setDisableDefaultServer(Boolean disableDefaultServer) Sets a boolean value indicating whether to add a default cache when the Geode Server comes online.setEvictionHeapPercentage(Float evictionHeapPercentage) setEvictionOffHeapPercentage(Float evictionOffHeapPercentage) Sets the boolean value used by the Server to determine if it should overwrite the PID file if it already exists.Sets whether the new instance of ServerLauncher will be used to output help information for either a specific command, or for using ServerLauncher in general.setHostNameForClients(String hostNameForClients) setMaxConnections(Integer maxConnections) setMaxMessageCount(Integer maxMessageCount) setMaxThreads(Integer maxThreads) setMemberName(String memberName) Sets the member name of the Server in Geode.setMessageTimeToLive(Integer messageTimeToLive) setPdxDiskStore(String pdxDiskStore) Sets the Geode Disk Store to be used to persist PDX type meta-data.setPdxIgnoreUnreadFields(boolean ignore) Sets whether fields in the PDX instance should be ignored when unread.setPdxPersistent(boolean persistent) Sets whether the PDX type meta-data should be persisted to disk.setPdxReadSerialized(boolean readSerialized) Sets whether PDX instances should be returned as is when Region.get(key:String):Object is called.setPdxSerializer(PdxSerializer pdxSerializer) Set the PdxSerializer to use to serialize POJOs to the Geode Cache Region or when sent between peers, client/server, or during persistence to disk.Sets the process ID (PID) of the running Server indicated by the user as an argument to the ServerLauncher.setRebalance(Boolean rebalance) Set a boolean value indicating whether a rebalance operation on the cache should occur upon starting the Geode server.setRedirectOutput(Boolean redirectOutput) Sets whether the new instance of ServerLauncher will redirect output to system logs when starting a Server.setServerBindAddress(String serverBindAddress) Sets the IP address to which the Server will be bound listening for and accepting cache client connections in a client/server topology.setServerPort(Integer serverPort) Sets the port on which the Server will listen for and accept cache client connections in a client/server topology.setSocketBufferSize(Integer socketBufferSize) setSpringXmlLocation(String springXmlLocation) Sets the location of the Spring XML configuration meta-data file used to bootstrap, configure and initialize the Geode Server on start.setWorkingDirectory(String workingDirectory) Sets the working directory in which the Server will be ran.protected voidvalidate()Validates the configuration settings and properties of this Builder, ensuring that all invariants have been met.
-
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, passed in 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.- See Also:
-
parseArguments(String...)
-
-
Method Details
-
parseCommand
Iterates the list of arguments in search of the target Server launcher command.- Parameters:
args- an array of arguments from which to search for the Server launcher command.- See Also:
-
ServerLauncher.Command.valueOfName(String)parseArguments(String...)
-
parseMemberName
Iterates the list of arguments in search of the Server's Geode member name. If the argument does not start with '-' or is not the name of a Server launcher command, then the value is presumed to be the member name for the Server in Geode.- Parameters:
args- the array of arguments from which to search for the Server's member name in Geode.- See Also:
-
ServerLauncher.Command.isCommand(String)parseArguments(String...)
-
getCommand
Gets the Server launcher command used during the invocation of the ServerLauncher.- Returns:
- the Server launcher command used to invoke (run) the ServerLauncher class.
- See Also:
-
setCommand
Sets the Sever launcher command used during the invocation of the ServerLauncher- Parameters:
command- the targeted Server launcher command used during the invocation (run) of ServerLauncher.- Returns:
- this Builder instance.
- See Also:
-
getAssignBuckets
Determines whether buckets should be assigned to partitioned regions in the cache upon Server start.- Returns:
- a boolean indicating if buckets should be assigned upon Server start.
- See Also:
-
setAssignBuckets
Sets whether buckets should be assigned to partitioned regions in the cache upon Server start.- Parameters:
assignBuckets- a boolean indicating if buckets should be assigned upon Server start.- Returns:
- this Builder instance.
- See Also:
-
getDebug
Determines whether the new instance of the ServerLauncher 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 ServerLauncher 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 Server 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 Server 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:
-
getDisableDefaultServer
Determines whether a default cache server will be added when the Geode Server comes online.- Returns:
- a boolean value indicating whether to add a default cache server.
- See Also:
-
setDisableDefaultServer
Sets a boolean value indicating whether to add a default cache when the Geode Server comes online.- Parameters:
disableDefaultServer- a boolean value indicating whether to add a default cache server.- 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 Server 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 Server 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 the ServerLauncher will be used to output help information for either a specific command, or for using ServerLauncher in general.- Returns:
- a boolean value indicating whether help will be output during the invocation of the ServerLauncher.
- See Also:
-
isHelping
protected boolean isHelping()Determines whether help has been enabled.- Returns:
- a boolean indicating if help was enabled.
-
setHelp
Sets whether the new instance of ServerLauncher will be used to output help information for either a specific command, or for using ServerLauncher in general.- Parameters:
help- a boolean indicating whether help information is to be displayed during invocation of ServerLauncher.- Returns:
- this Builder instance.
- See Also:
-
getRebalance
Determines whether a rebalance operation on the cache will occur upon starting the Geode server.- Returns:
- a boolean indicating if the cache will be rebalance when the Geode server starts.
- See Also:
-
setRebalance
Set a boolean value indicating whether a rebalance operation on the cache should occur upon starting the Geode server.- Parameters:
rebalance- a boolean indicating if the cache will be rebalanced when the Geode server starts.- Returns:
- this Builder instance.
- See Also:
-
getMemberName
Gets the member name of this Server in Geode.- Returns:
- a String indicating the member name of this Server in Geode.
- See Also:
-
setMemberName
Sets the member name of the Server in Geode.- Parameters:
memberName- a String indicating the member name of this Server 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 Server indicated by the user as an argument to the ServerLauncher. This PID is used by the Server launcher to determine the Server's status, or invoke shutdown on the Server.- Returns:
- a user specified Integer value indicating the process ID of the running Server.
- See Also:
-
setPid
Sets the process ID (PID) of the running Server indicated by the user as an argument to the ServerLauncher. This PID will be used by the Server launcher to determine the Server's status, or invoke shutdown on the Server.- Parameters:
pid- a user specified Integer value indicating the process ID of the running Server.- Returns:
- this Builder instance.
- Throws:
IllegalArgumentException- if the process ID (PID) is not valid (greater than zero if not null).- See Also:
-
getRedirectOutput
Determines whether the new instance of ServerLauncher will redirect output to system logs when starting a Server.- Returns:
- a boolean value indicating if output will be redirected to system logs when starting a Server
- See Also:
-
setRedirectOutput
Sets whether the new instance of ServerLauncher will redirect output to system logs when starting a Server.- Parameters:
redirectOutput- a boolean value indicating if output will be redirected to system logs when starting a Server.- Returns:
- this Builder instance.
- See Also:
-
getServerBindAddress
Gets the IP address to which the Server will be bound listening for and accepting cache client connections in a client/server topology.- Returns:
- an InetAddress indicating the IP address that the Server is bound to listening for and accepting cache client connections in a client/server topology.
- See Also:
-
setServerBindAddress
Sets the IP address to which the Server will be bound listening for and accepting cache client connections in a client/server topology.- Parameters:
serverBindAddress- a String specifying the IP address or hostname that the Server will be bound to listen for and accept cache client connections in a client/server topology.- Returns:
- this Builder instance.
- Throws:
IllegalArgumentException- wrapping the UnknownHostException if the IP address or hostname for the server bind address is unknown.- See Also:
-
getServerPort
Gets the port on which the Server will listen for and accept cache client connections in a client/server topology.- Returns:
- an Integer value specifying the port the Server will listen on and accept cache client connections in a client/server topology.
- See Also:
-
setServerPort
Sets the port on which the Server will listen for and accept cache client connections in a client/server topology.- Parameters:
serverPort- an Integer value specifying the port the Server will listen on and accept cache client connections in a client/server topology.- Returns:
- this Builder instance.
- Throws:
IllegalArgumentException- if the port number is not valid.- See Also:
-
getSpringXmlLocation
Gets the location of the Spring XML configuration meta-data file used to bootstrap, configure and initialize the Geode Server on start.- Returns:
- a String indicating the location of the Spring XML configuration file.
- See Also:
-
setSpringXmlLocation
Sets the location of the Spring XML configuration meta-data file used to bootstrap, configure and initialize the Geode Server on start.- Parameters:
springXmlLocation- a String indicating the location of the Spring XML configuration file.- Returns:
- this Builder instance.
- See Also:
-
getWorkingDirectory
Gets the working directory pathname in which the Server 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 Server will be ran. This also the directory in which all Server 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 Server will be ran.- Returns:
- this Builder instance.
- Throws:
IllegalArgumentException- wrapping a FileNotFoundException if the working directory pathname cannot be found.- See Also:
-
getCriticalHeapPercentage
-
setCriticalHeapPercentage
-
getCriticalOffHeapPercentage
-
setCriticalOffHeapPercentage
-
getEvictionHeapPercentage
-
setEvictionHeapPercentage
-
getEvictionOffHeapPercentage
-
setEvictionOffHeapPercentage
-
getHostNameForClients
-
setHostNameForClients
-
getMaxConnections
-
setMaxConnections
-
getMaxMessageCount
-
setMaxMessageCount
-
getMaxThreads
-
setMaxThreads
-
getMessageTimeToLive
-
setMessageTimeToLive
-
getSocketBufferSize
-
setSocketBufferSize
-
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 Gemfire Distributed System Property- Parameters:
properties- a property object that holds one or more Gemfire Distributed System properties as described inConfigurationProperties- Returns:
- this Builder instance
- Since:
- Geode 1.12
-
setPdxPersistent
Sets whether the PDX type meta-data should be persisted to disk.- Parameters:
persistent- a boolean indicating whether PDX type meta-data should be persisted to disk.- Returns:
- this Builder instance.
-
setPdxDiskStore
Sets the Geode Disk Store to be used to persist PDX type meta-data.- Parameters:
pdxDiskStore- a String indicating the name of the Geode Disk Store to use to store PDX type meta-data- Returns:
- this Builder instance.
-
setPdxIgnoreUnreadFields
Sets whether fields in the PDX instance should be ignored when unread.- Parameters:
ignore- a boolean indicating whether unread fields in the PDX instance should be ignored.- Returns:
- this Builder instance.
-
setPdxReadSerialized
Sets whether PDX instances should be returned as is when Region.get(key:String):Object is called.- Parameters:
readSerialized- a boolean indicating whether the PDX instance should be returned from a call to Region.get(key:String):Object- Returns:
- this Builder instance.
-
setPdxSerializer
Set the PdxSerializer to use to serialize POJOs to the Geode Cache Region or when sent between peers, client/server, or during persistence to disk.- Parameters:
pdxSerializer- the PdxSerializer that is used to serialize application domain objects into PDX.- Returns:
- this Builder instance.
-
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 Server in the Geode distributed system as a command-line argument, or by setting the memberName property programmatically using the corresponding setter method.- Throws:
IllegalStateException- if the Builder is not properly configured.
-
build
Validates the Builder configuration settings and then constructs an instance of the ServerLauncher class to invoke operations on a Geode Server.- Returns:
- a newly constructed instance of the ServerLauncher configured with this Builder.
- See Also:
-