Package org.apache.geode.distributed
Class AbstractLauncher<T extends Comparable<T>>
java.lang.Object
org.apache.geode.distributed.AbstractLauncher<T>
- All Implemented Interfaces:
Runnable
- Direct Known Subclasses:
LocatorLauncher,ServerLauncher
The AbstractLauncher class is a base class for implementing various launchers to construct and
run different GemFire processes, like Cache Servers, Locators, Managers, HTTP servers and so on.
- Since:
- GemFire 7.0
- See Also:
-
ComparableRunnableIdentifiable
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAbstractLauncher.ServiceState<T extends Comparable<T>>The ServiceState is an immutable type representing the state of the specified Locator at any given moment in time.static enumThe Status enumerated type represents the various lifecycle states of a GemFire service (such as a Cache Server, a Locator or a Manager). -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Booleanstatic final Stringprotected LoggerDeprecated.Please use Log4J 2 instead.static final Stringprotected static final Stringprotected static final longDeprecated.This timeout is no longer needed.protected final AtomicBooleanstatic final Stringstatic final Stringstatic final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static voidassertPortAvailable(int port) Asserts that the specified port is available on all network interfaces on this local system.protected static voidassertPortAvailable(InetAddress bindAddress, int port) Asserts that the specified port is available on the specified network interface, indicated by it's assigned IP address, on this local system.protected voidPrints the specified debug message to standard output, replacing any placeholder values with the specified arguments on output, if debugging has been enabled.protected voidPrints the stack trace of the given Throwable to standard err if debugging has been enabled.protected PropertiesCreates 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.protected PropertiesgetDistributedSystemProperties(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.protected FileGets a File reference with the path to the log file for the process.protected StringGets the fully qualified canonical path of the log file for the process.abstract StringGets the name of the log file used to log information about this GemFire service.Gets the name or ID of the member in the GemFire distributed system.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.Gets the name of the member in the GemFire distributed system as determined by the 'name' GemFire property.abstract IntegergetPid()Gets the user-specified process ID (PID) of the running GemFire service that AbstractLauncher implementations can use to determine status, or stop the service.abstract StringGets the name of the GemFire service.Gets the working directory pathname in which the process will be run.protected voidPrints the specified informational message to standard out, replacing any placeholder values with the specified arguments on output.booleanDetermines whether the Locator launcher is in debug mode.booleanDetermines whether the Locator referenced by this launcher is running.protected static booleanisSet(Properties properties, String propertyName) Determines whether the specified property with name is set to a value in the referenced Properties.protected static PropertiesloadGemFireProperties(URL url) Loads the GemFire properties at the specified URL.protected voidredirectOutput(DistributedSystem distributedSystem) Redirects the standard out and standard err to the configured log file as specified in the GemFire distributed system properties.voidsetDebug(boolean debug) Sets the debug mode of the GemFire launcher class.version()Gets the version of GemFire currently running.
-
Field Details
-
MEMBER_NAME_ERROR_MESSAGE
- See Also:
-
WORKING_DIRECTORY_OPTION_NOT_VALID_ERROR_MESSAGE
- See Also:
-
WORKING_DIRECTORY_NOT_FOUND_ERROR_MESSAGE
- See Also:
-
DEFAULT_FORCE
-
READ_PID_FILE_TIMEOUT_MILLIS
Deprecated.This timeout is no longer needed.- See Also:
-
DEFAULT_WORKING_DIRECTORY
-
SIGNAL_HANDLER_REGISTRATION_SYSTEM_PROPERTY
- See Also:
-
OPTION_PREFIX
- See Also:
-
running
-
logger
Deprecated.Please use Log4J 2 instead.
-
-
Constructor Details
-
AbstractLauncher
public AbstractLauncher()
-
-
Method Details
-
assertPortAvailable
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
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
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:
-
loadGemFireProperties
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:
-
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
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:
-
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
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
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:
-
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
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
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
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:
-
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
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
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
Gets the name of the GemFire service.- Returns:
- a String indicating the name of the GemFire service.
-
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
Prints the specified debug message to standard output, replacing any placeholder values with the specified arguments on output, if debugging has been enabled.- Parameters:
message- the String value written to standard output.args- an Object array containing arguments to replace the placeholder values in the message.- See Also:
-
debug
Prints the stack trace of the given Throwable to standard err if debugging has been enabled.- Parameters:
t- the Throwable who's stack trace is printed to standard err.- See Also:
-
info
Prints the specified informational message to standard out, replacing any placeholder values with the specified arguments on output.- Parameters:
message- the String value written to standard out.args- an Object array containing arguments to replace the placeholder values in the message.- See Also:
-
redirectOutput
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
Gets the version of GemFire currently running.- Returns:
- a String representation of GemFire's version.
-