Class ServerLauncher.Builder

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

    public static class ServerLauncher.Builder
    extends java.lang.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).
    • Constructor Detail

      • Builder

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

        public Builder​(java.lang.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 Detail

      • parseCommand

        protected void parseCommand​(java.lang.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:
        ServerLauncher.Command.valueOfName(String), parseArguments(String...)
      • parseMemberName

        protected void parseMemberName​(java.lang.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:
        ServerLauncher.Command.isCommand(String), parseArguments(String...)
      • getAssignBuckets

        public java.lang.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(Boolean)
      • setAssignBuckets

        public ServerLauncher.Builder setAssignBuckets​(java.lang.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:
        getAssignBuckets()
      • getDebug

        public java.lang.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(Boolean)
      • setDebug

        public ServerLauncher.Builder setDebug​(java.lang.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:
        getDebug()
      • getDeletePidFileOnStop

        public java.lang.Boolean getDeletePidFileOnStop()
        Determines whether the GemFire 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(Boolean)
      • setDeletePidFileOnStop

        public ServerLauncher.Builder setDeletePidFileOnStop​(java.lang.Boolean deletePidFileOnStop)
        Sets whether the GemFire 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:
        getDeletePidFileOnStop()
      • getDisableDefaultServer

        public java.lang.Boolean getDisableDefaultServer()
        Determines whether a default cache server will be added when the GemFire server comes online.
        Returns:
        a boolean value indicating whether to add a default cache server.
        See Also:
        setDisableDefaultServer(Boolean)
      • setDisableDefaultServer

        public ServerLauncher.Builder setDisableDefaultServer​(java.lang.Boolean disableDefaultServer)
        Sets a boolean value indicating whether to add a default cache when the GemFire server comes online.
        Parameters:
        disableDefaultServer - a boolean value indicating whether to add a default cache server.
        Returns:
        this Builder instance.
        See Also:
        getDisableDefaultServer()
      • getDistributedSystemProperties

        public java.util.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:
        Properties
      • getForce

        public java.lang.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(Boolean)
      • setForce

        public ServerLauncher.Builder setForce​(java.lang.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:
        getForce()
      • getHelp

        public java.lang.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:
        setHelp(Boolean)
      • isHelping

        protected boolean isHelping()
        Determines whether help has been enabled.
        Returns:
        a boolean indicating if help was enabled.
      • setHelp

        public ServerLauncher.Builder setHelp​(java.lang.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:
        getHelp()
      • getRebalance

        public java.lang.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 GemFire server starts.
        See Also:
        setRebalance(Boolean)
      • setRebalance

        public ServerLauncher.Builder setRebalance​(java.lang.Boolean rebalance)
        Set a boolean value indicating whether a rebalance operation on the cache should occur upon starting the GemFire server.
        Parameters:
        rebalance - a boolean indicating if the cache will be rebalanced when the GemFire server starts.
        Returns:
        this Builder instance.
        See Also:
        getRebalance()
      • getMemberName

        public java.lang.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(String)
      • setMemberName

        public ServerLauncher.Builder setMemberName​(java.lang.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:
        java.lang.IllegalArgumentException - if the member name is invalid.
        See Also:
        getMemberName()
      • getPid

        public java.lang.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(Integer)
      • setPid

        public ServerLauncher.Builder setPid​(java.lang.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:
        java.lang.IllegalArgumentException - if the process ID (PID) is not valid (greater than zero if not null).
        See Also:
        getPid()
      • getRedirectOutput

        public java.lang.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(Boolean)
      • setRedirectOutput

        public ServerLauncher.Builder setRedirectOutput​(java.lang.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:
        getRedirectOutput()
      • getServerBindAddress

        public java.net.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(String)
      • setServerBindAddress

        public ServerLauncher.Builder setServerBindAddress​(java.lang.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:
        java.lang.IllegalArgumentException - wrapping the UnknownHostException if the IP address or hostname for the server bind address is unknown.
        See Also:
        getServerBindAddress()
      • getServerPort

        public java.lang.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(Integer)
      • setServerPort

        public ServerLauncher.Builder setServerPort​(java.lang.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:
        java.lang.IllegalArgumentException - if the port number is not valid.
        See Also:
        getServerPort()
      • getSpringXmlLocation

        public java.lang.String getSpringXmlLocation()
        Gets the location of the Spring XML configuration meta-data file used to bootstrap, configure and initialize the GemFire server on start.

        Returns:
        a String indicating the location of the Spring XML configuration file.
        See Also:
        setSpringXmlLocation(String)
      • setSpringXmlLocation

        public ServerLauncher.Builder setSpringXmlLocation​(java.lang.String springXmlLocation)
        Sets the location of the Spring XML configuration meta-data file used to bootstrap, configure and initialize the GemFire server on start.

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

        public java.lang.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(String)
      • setWorkingDirectory

        public ServerLauncher.Builder setWorkingDirectory​(java.lang.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:
        java.lang.IllegalArgumentException - wrapping a FileNotFoundException if the working directory pathname cannot be found.
        See Also:
        getWorkingDirectory(), FileNotFoundException
      • getCriticalHeapPercentage

        public java.lang.Float getCriticalHeapPercentage()
      • setCriticalHeapPercentage

        public ServerLauncher.Builder setCriticalHeapPercentage​(java.lang.Float criticalHeapPercentage)
      • getCriticalOffHeapPercentage

        public java.lang.Float getCriticalOffHeapPercentage()
      • setCriticalOffHeapPercentage

        public ServerLauncher.Builder setCriticalOffHeapPercentage​(java.lang.Float criticalOffHeapPercentage)
      • getEvictionHeapPercentage

        public java.lang.Float getEvictionHeapPercentage()
      • setEvictionHeapPercentage

        public ServerLauncher.Builder setEvictionHeapPercentage​(java.lang.Float evictionHeapPercentage)
      • getEvictionOffHeapPercentage

        public java.lang.Float getEvictionOffHeapPercentage()
      • setEvictionOffHeapPercentage

        public ServerLauncher.Builder setEvictionOffHeapPercentage​(java.lang.Float evictionOffHeapPercentage)
      • getHostNameForClients

        public java.lang.String getHostNameForClients()
      • setHostNameForClients

        public ServerLauncher.Builder setHostNameForClients​(java.lang.String hostNameForClients)
      • getMaxConnections

        public java.lang.Integer getMaxConnections()
      • getMaxConnectionsNotificationThreshold

        public java.lang.Float getMaxConnectionsNotificationThreshold()
      • setMaxConnectionsNotificationThreshold

        public ServerLauncher.Builder setMaxConnectionsNotificationThreshold​(java.lang.Float maxConnectionsNotificationThreshold)
      • getMaxMessageCount

        public java.lang.Integer getMaxMessageCount()
      • setMaxMessageCount

        public ServerLauncher.Builder setMaxMessageCount​(java.lang.Integer maxMessageCount)
      • getMaxThreads

        public java.lang.Integer getMaxThreads()
      • getMessageTimeToLive

        public java.lang.Integer getMessageTimeToLive()
      • setMessageTimeToLive

        public ServerLauncher.Builder setMessageTimeToLive​(java.lang.Integer messageTimeToLive)
      • getSocketBufferSize

        public java.lang.Integer getSocketBufferSize()
      • setSocketBufferSize

        public ServerLauncher.Builder setSocketBufferSize​(java.lang.Integer socketBufferSize)
      • set

        public ServerLauncher.Builder set​(java.lang.String propertyName,
                                          java.lang.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​(java.util.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​(java.lang.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:
        java.lang.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 GemFire server.
        Returns:
        a newly constructed instance of the ServerLauncher configured with this Builder.
        See Also:
        validate(), ServerLauncher