Class GemConfig

java.lang.Object
io.gem.config.GemConfig

public final class GemConfig extends Object
Configuration properties for SBK-GEM orchestration.

Values are typically loaded from gem.properties and may be overridden via command-line parameters. Contains defaults for SSH connection, remote directory management, and SBM coordination.

  • Field Details

    • DIAGNOSTIC_TRUNCATION_MARKER

      public static final String DIAGNOSTIC_TRUNCATION_MARKER
      Marker inserted between retained diagnostic prefix and suffix text.
      See Also:
    • DEFAULT_DIAGNOSTIC_BYTES

      public static final int DEFAULT_DIAGNOSTIC_BYTES
      Default maximum stdout/stderr bytes retained per SSH command.
      See Also:
    • DEFAULT_MAXIMUM_DIAGNOSTIC_CHARACTERS

      public static final int DEFAULT_MAXIMUM_DIAGNOSTIC_CHARACTERS
      Default maximum characters retained in a diagnostic summary.
      See Also:
    • DEFAULT_DIAGNOSTIC_PREFIX_CHARACTERS

      public static final int DEFAULT_DIAGNOSTIC_PREFIX_CHARACTERS
      Default diagnostic prefix retained before the truncation marker.
      See Also:
    • DEFAULT_SSH_COPY_BUFFER_BYTES

      public static final int DEFAULT_SSH_COPY_BUFFER_BYTES
      Backward-compatible SCP copy buffer for direct SshSession construction.
      See Also:
    • SBK_GEM_APP_NAME

      public static final String SBK_GEM_APP_NAME
      String SBK_GEM_APP_NAME = "sbk.gem.applicationName.
      See Also:
    • NAME

      public static final String NAME
      String NAME = "sbk-gem".
      See Also:
    • DESC

      public static final String DESC
      String DESC = "Storage Benchmark Kit - Group Execution Monitor".
      See Also:
    • BIN_DIR

      public static final String BIN_DIR
      String BIN_DIR = "bin".
      See Also:
    • SBK_COMMAND

      public static final String SBK_COMMAND
      Standard SBK launcher relative to an installed distribution.
    • LOCAL_HOST

      public static final String LOCAL_HOST
      String LOCAL_HOST = "localhost".
      See Also:
    • SBK_GEM_LOGGER_PACKAGE_NAME

      public static final String SBK_GEM_LOGGER_PACKAGE_NAME
      Default logger package to scan for GemLogger implementations.
      See Also:
    • SBK_GEM_SSH_PASSWD

      public static final String SBK_GEM_SSH_PASSWD
      Environment variable name from which to read the SSH password if not provided in properties.
      See Also:
    • GEM_PASS_OPTION

      public static final String GEM_PASS_OPTION
      Command-line option name used to supply the SSH password.
      See Also:
    • nodes

      public String nodes
      String nodes.
    • gemuser

      public String gemuser
      SSH user name.
    • gempass

      public String gempass
      SSH password.
    • hostkeycheck

      public boolean hostkeycheck
      Whether remote SSH host keys must match an entry in knownhosts.
    • knownhosts

      public String knownhosts
      Optional known-hosts file path; an empty value uses the launching user's default file.
    • gemport

      public int gemport
      SSH port.
    • sbkdir

      public String sbkdir
      Local SBK application directory resolved from the generated launcher's sbk.appHome.
    • sbkVersion

      public String sbkVersion
      Expected SBK version, discovered from the local SBK distribution under sbkdir.
    • javadir

      public String javadir
      Optional remote Java home containing bin/java.
    • packagescleanup

      public boolean packagescleanup
      Whether inactive non-current managed runtimes and local cached bundles are removed automatically.
    • fullcopy

      public boolean fullcopy
      Whether complete JDK and SBK distribution copies replace the default minimal copies.
    • driverClass

      public String driverClass
      Resolved driver class selected for this invocation; assigned after driver discovery.
    • remoteTimeoutSeconds

      public long remoteTimeoutSeconds
      Timeout value used for remote operations (seconds).
    • deploymentTimeoutSeconds

      public long deploymentTimeoutSeconds
      Maximum runtime bundle creation, transfer, and activation duration in seconds.
    • runtimeProgressIntervalSeconds

      public int runtimeProgressIntervalSeconds
      Interval between runtime preparation and transfer progress messages.
    • runtimeCacheDirectory

      public String runtimeCacheDirectory
      Local content-addressed runtime bundle cache directory, absolute or relative to the user's home.
    • runtimeManagementLockTimeoutSeconds

      public long runtimeManagementLockTimeoutSeconds
      Maximum wait for the remote managed-runtime lifecycle lock.
    • runtimeManagementLockStaleSeconds

      public long runtimeManagementLockStaleSeconds
      Age after which an abandoned remote managed-runtime lifecycle lock may be reclaimed.
    • runtimeLeaseReservationSeconds

      public long runtimeLeaseReservationSeconds
      Age after which an unlaunched runtime lease reservation may be reclaimed.
    • sbmRegistrationTimeoutSeconds

      public long sbmRegistrationTimeoutSeconds
      Maximum time to wait for all remote SBK clients to register with SBM (seconds).
    • timeoutSeconds

      public int timeoutSeconds
      Per-iteration wait timeout used during async joins (seconds).
    • remoteDir

      public String remoteDir
      Remote working directory on each host (derived from app name/version).
    • controlExecutorThreads

      public int controlExecutorThreads
      Maximum platform threads used for concurrent SSH connection and control operations.
    • transferExecutorThreads

      public int transferExecutorThreads
      Fixed deployment-transfer threads, or zero to size the pool automatically.
    • transferExecutorMinimumThreads

      public int transferExecutorMinimumThreads
      Minimum deployment-transfer threads used by automatic sizing.
    • transferExecutorMaximumThreads

      public int transferExecutorMaximumThreads
      Maximum deployment-transfer threads used by automatic sizing.
    • transferTargetWaves

      public int transferTargetWaves
      Desired number of queued transfer waves used by automatic sizing.
    • sshCopyBufferBytes

      public int sshCopyBufferBytes
      Read buffer bytes used by each bulk SCP upload.
    • diagnosticBytes

      public int diagnosticBytes
      Maximum stdout/stderr bytes retained per SSH command.
    • maximumAgentResponseBytes

      public int maximumAgentResponseBytes
      Maximum accepted OpenSSH-agent response frame bytes.
    • maximumDiagnosticCharacters

      public int maximumDiagnosticCharacters
      Maximum characters retained in a summarized remote diagnostic.
    • diagnosticPrefixCharacters

      public int diagnosticPrefixCharacters
      Prefix characters retained when a remote diagnostic is truncated.
  • Constructor Details

    • GemConfig

      public GemConfig()
      Creates an empty GEM configuration for property binding.
  • Method Details

    • load

      public static GemConfig load() throws IOException
      Loads the module-owned GEM configuration.
      Returns:
      GEM configuration
      Throws:
      IOException - if the bundled configuration cannot be read