Class AbstractLauncher<T extends Comparable<T>>

    • Constructor Detail

      • AbstractLauncher

        public AbstractLauncher()
    • Method Detail

      • assertPortAvailable

        protected static void assertPortAvailable​(int port)
                                           throws BindException
        Asserts that the specified port is available on all network interfaces on this local system.
        Parameters:
        port - an integer indicating the network port to listen for client network requests.
        Throws:
        BindException - if the network port is not available.
      • assertPortAvailable

        protected static void assertPortAvailable​(InetAddress bindAddress,
                                                  int port)
                                           throws BindException
        Asserts that the specified port is available on the specified network interface, indicated by it's assigned IP address, on this local system.
        Parameters:
        bindAddress - an InetAddress indicating the bounded network interface to determine whether the service port is available or not.
        port - an integer indicating the network port to listen for client network requests.
        Throws:
        BindException - if the network address and port are not available. Address defaults to localhost (or all network interfaces on the local system) if null.
        See Also:
        AvailablePort
      • isSet

        protected static boolean isSet​(Properties properties,
                                       String propertyName)
        Determines whether the specified property with name is set to a value in the referenced Properties. The property is considered "set" if the String value of the property is not non-null, non-empty and non-blank. Therefore, the Properties may "have" a property with name, but having no value as determined by this method.
        Parameters:
        properties - the Properties used in determining whether the given property is set.
        propertyName - a String indicating the name of the property to check if set.
        Returns:
        a boolean indicating whether the specified property with name has been given a value in the referenced Properties.
        See Also:
        Properties
      • loadGemFireProperties

        protected static Properties loadGemFireProperties​(URL url)
        Loads the GemFire properties at the specified URL.
        Parameters:
        url - the URL to the gemfire.properties to load.
        Returns:
        a Properties instance populated with the gemfire.properties.
        See Also:
        URL
      • isDebugging

        public boolean isDebugging()
        Determines whether the Locator launcher is in debug mode.
        Returns:
        a boolean to indicate whether the Locator launcher is in debug mode.
        See Also:
        setDebug(boolean)
      • setDebug

        public void setDebug​(boolean debug)
        Sets the debug mode of the GemFire launcher class. This mutable property of the launcher enables the user to turn the debug mode on and off programmatically.
        Parameters:
        debug - a boolean used to enable or disable debug mode.
        See Also:
        isDebugging()
      • isRunning

        public boolean isRunning()
        Determines whether the Locator referenced by this launcher is running.
        Returns:
        a boolean valued indicating if the referenced Locator is running.
      • getDistributedSystemProperties

        protected Properties getDistributedSystemProperties()
        Creates a Properties object with configuration settings that the launcher has that should take precedence over anything the user has defined in their gemfire properties file.
        Returns:
        a Properties object with GemFire properties that the launcher has defined.
        See Also:
        getDistributedSystemProperties(java.util.Properties), Properties
      • getDistributedSystemProperties

        protected Properties getDistributedSystemProperties​(Properties defaults)
        Creates a Properties object with configuration settings that the launcher has that should take precedence over anything the user has defined in their gemfire properties file.
        Parameters:
        defaults - default GemFire Distributed System properties as configured in the Builder.
        Returns:
        a Properties object with GemFire properties that the launcher has defined.
        See Also:
        Properties
      • getLogFile

        protected File getLogFile()
        Gets a File reference with the path to the log file for the process.
        Returns:
        a File reference to the path of the log file for the process.
      • getLogFileCanonicalPath

        protected String getLogFileCanonicalPath()
        Gets the fully qualified canonical path of the log file for the process.
        Returns:
        a String value indicating the canonical path of the log file for the process.
      • getLogFileName

        public abstract String getLogFileName()
        Gets the name of the log file used to log information about this GemFire service.
        Returns:
        a String value indicating the name of this GemFire service's log file.
      • getMember

        public String getMember()
        Gets the name or ID of the member in the GemFire distributed system. This method prefers name if specified, otherwise the ID is returned. If name was not specified to the Builder that created this Launcher and this call is not in-process, then null is returned.
        Returns:
        a String value indicating the member's name if specified, otherwise the member's ID is returned if this call is made in-process, or finally, null is returned if neither name name was specified or the call is out-of-process.
        See Also:
        getMemberName(), getMemberId()
      • getMemberId

        public String getMemberId()
        Gets the ID of the member in the GemFire distributed system as determined and assigned by GemFire when the member process joins the distributed system. Note, this call only works if the API is used in-process.
        Returns:
        a String value indicating the ID of the member in the GemFire distributed system.
      • getMemberName

        public String getMemberName()
        Gets the name of the member in the GemFire distributed system as determined by the 'name' GemFire property. Note, this call only works if the API is used in-process.
        Returns:
        a String value indicating the name of the member in the GemFire distributed system.
      • getPid

        public abstract Integer getPid()
        Gets the user-specified process ID (PID) of the running GemFire service that AbstractLauncher implementations can use to determine status, or stop the service.
        Returns:
        an Integer value indicating the process ID (PID) of the running GemFire service.
      • getServiceName

        public abstract String getServiceName()
        Gets the name of the GemFire service.
        Returns:
        a String indicating the name of the GemFire service.
      • getWorkingDirectory

        public String getWorkingDirectory()
        Gets the working directory pathname in which the process will be run.
        Returns:
        a String value indicating the pathname of the Server's working directory.
      • debug

        protected void debug​(String message,
                             Object... args)
        Prints the specified debug message to standard err, replacing any placeholder values with the specified arguments on output, if debugging has been enabled.
        Parameters:
        message - the String value written to standard err.
        args - an Object array containing arguments to replace the placeholder values in the message.
        See Also:
        System.err, isDebugging(), debug(Throwable), info(Object, Object...)
      • info

        protected void info​(Object message,
                            Object... args)
        Prints the specified informational message to standard err, replacing any placeholder values with the specified arguments on output.
        Parameters:
        message - the String value written to standard err.
        args - an Object array containing arguments to replace the placeholder values in the message.
        See Also:
        System.err, debug(String, Object...)
      • redirectOutput

        protected void redirectOutput​(DistributedSystem distributedSystem)
                               throws IOException
        Redirects the standard out and standard err to the configured log file as specified in the GemFire distributed system properties.
        Parameters:
        distributedSystem - the GemFire model for a distributed system.
        Throws:
        IOException - if the standard out and err redirection was unsuccessful.
      • version

        public String version()
        Gets the version of GemFire currently running.
        Returns:
        a String representation of GemFire's version.