Class ServerLauncher.Builder

java.lang.Object
org.apache.geode.distributed.ServerLauncher.Builder
Enclosing class:
ServerLauncher

public static class ServerLauncher.Builder extends Object
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 Details

  • Constructor Details

    • Builder

      public Builder()
      Default constructor used to create an instance of the Builder class for programmatical access.
    • Builder

      public Builder(String... args)
      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

      protected void parseCommand(String... args)
      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:
    • parseMemberName

      protected void parseMemberName(String... args)
      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:
    • getCommand

      public ServerLauncher.Command 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

      public ServerLauncher.Builder setCommand(ServerLauncher.Command command)
      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

      public Boolean 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

      public ServerLauncher.Builder setAssignBuckets(Boolean assignBuckets)
      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

      public Boolean 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

      public ServerLauncher.Builder setDebug(Boolean debug)
      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

      public Boolean 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

      public ServerLauncher.Builder setDeletePidFileOnStop(Boolean deletePidFileOnStop)
      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

      public Boolean 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

      public ServerLauncher.Builder setDisableDefaultServer(Boolean disableDefaultServer)
      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

      public Properties 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

      public Boolean 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

      public ServerLauncher.Builder setForce(Boolean force)
      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

      public Boolean 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

      public ServerLauncher.Builder setHelp(Boolean help)
      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

      public Boolean 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

      public ServerLauncher.Builder setRebalance(Boolean rebalance)
      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

      public String 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

      public ServerLauncher.Builder setMemberName(String memberName)
      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

      public Integer 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

      public ServerLauncher.Builder setPid(Integer pid)
      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

      public Boolean 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

      public ServerLauncher.Builder setRedirectOutput(Boolean redirectOutput)
      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

      public InetAddress 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

      public ServerLauncher.Builder 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.
      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

      public Integer 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

      public ServerLauncher.Builder setServerPort(Integer serverPort)
      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

      public String 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

      public ServerLauncher.Builder 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.

      Parameters:
      springXmlLocation - a String indicating the location of the Spring XML configuration file.
      Returns:
      this Builder instance.
      See Also:
    • getWorkingDirectory

      public String 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

      public ServerLauncher.Builder setWorkingDirectory(String workingDirectory)
      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

      public Float getCriticalHeapPercentage()
    • setCriticalHeapPercentage

      public ServerLauncher.Builder setCriticalHeapPercentage(Float criticalHeapPercentage)
    • getCriticalOffHeapPercentage

      public Float getCriticalOffHeapPercentage()
    • setCriticalOffHeapPercentage

      public ServerLauncher.Builder setCriticalOffHeapPercentage(Float criticalOffHeapPercentage)
    • getEvictionHeapPercentage

      public Float getEvictionHeapPercentage()
    • setEvictionHeapPercentage

      public ServerLauncher.Builder setEvictionHeapPercentage(Float evictionHeapPercentage)
    • getEvictionOffHeapPercentage

      public Float getEvictionOffHeapPercentage()
    • setEvictionOffHeapPercentage

      public ServerLauncher.Builder setEvictionOffHeapPercentage(Float evictionOffHeapPercentage)
    • getHostNameForClients

      public String getHostNameForClients()
    • setHostNameForClients

      public ServerLauncher.Builder setHostNameForClients(String hostNameForClients)
    • getMaxConnections

      public Integer getMaxConnections()
    • setMaxConnections

      public ServerLauncher.Builder setMaxConnections(Integer maxConnections)
    • getMaxMessageCount

      public Integer getMaxMessageCount()
    • setMaxMessageCount

      public ServerLauncher.Builder setMaxMessageCount(Integer maxMessageCount)
    • getMaxThreads

      public Integer getMaxThreads()
    • setMaxThreads

      public ServerLauncher.Builder setMaxThreads(Integer maxThreads)
    • getMessageTimeToLive

      public Integer getMessageTimeToLive()
    • setMessageTimeToLive

      public ServerLauncher.Builder setMessageTimeToLive(Integer messageTimeToLive)
    • getSocketBufferSize

      public Integer getSocketBufferSize()
    • setSocketBufferSize

      public ServerLauncher.Builder setSocketBufferSize(Integer socketBufferSize)
    • set

      public ServerLauncher.Builder set(String propertyName, String propertyValue)
      Sets a Geode Distributed System Property.
      Parameters:
      propertyName - a String indicating the name of the Geode Distributed System property as described in ConfigurationProperties
      propertyValue - a String value for the Geode Distributed System property.
      Returns:
      this Builder instance.
    • set

      public ServerLauncher.Builder set(Properties properties)
      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 in ConfigurationProperties
      Returns:
      this Builder instance
      Since:
      Geode 1.12
    • setPdxPersistent

      public ServerLauncher.Builder setPdxPersistent(boolean persistent)
      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

      public ServerLauncher.Builder setPdxDiskStore(String pdxDiskStore)
      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

      public ServerLauncher.Builder setPdxIgnoreUnreadFields(boolean ignore)
      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

      public ServerLauncher.Builder setPdxReadSerialized(boolean readSerialized)
      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

      public ServerLauncher.Builder 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.
      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

      public ServerLauncher 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: