Skip to main content

CCM extension that starts Cassandra (and related tools) under Java 8

Project description

ccm-java8

PyPi Badge

ccm-java8 is a CCM extension that explicitly sets the JAVA_HOME environment variable for all CCM-managed Cassandra nodes (and related tools) to an available Java 8 installation, which is required to run Cassandra 3.11 and lower.

Platforms Currently Supported:

  • macOS
  • Linux
    • Arch
    • Debian-based
    • RHEL-based

Usage

ccm-java8 is available on PyPI.

  1. Install it alongside CCM:

    pip install ccm ccm-java8
    
  2. Run CCM commands as normal.

    Cassandra and various tools will launch using the Java 8 VM.

    If no Java 8 VM can be found, CCM will refuse to start. Install Java 8 if this occurs.

Motivation

Many operating systems support the side-by-side installation of multiple Java versions, yet only one version can be selected as the default (i.e., what version of java is on $PATH).

Cassandra's bin/cassandra launch script prefers the java binary under $JAVA_HOME, and will fallback to using the java binary on $PATH if $JAVA_HOME isn't set. Hence, unless $JAVA_HOME or the platform default is explicitly set to a Java 8 installation, Cassandra will try, and fail, to start under an incompatible Java version.

ccm-java8 works by registering a CCM extension that when loaded by CCM explicitly sets the JAVA_HOME environment variable to a directory containing a Java 8 installation, or throws an exception otherwise.

Older versions used to register a hook into the append_to_server_env function, but this function doesn't get called for tools (nodetool, sstabledump, etc.). The current version sets the JAVA_HOME environment variable globally in the CCM Python process, which gets inherited by all sub-processes launched by CCM.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ccm_java8-1.0.tar.gz (3.5 kB view hashes)

Uploaded source

Built Distribution

ccm_java8-1.0-py3-none-any.whl (7.8 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page