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.

Files for ccm-java8, version 1.0
Filename, size File type Python version Upload date Hashes
Filename, size ccm_java8-1.0-py3-none-any.whl (7.8 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size ccm_java8-1.0.tar.gz (3.5 kB) File type Source Python version None Upload date Hashes View

Supported by

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