tree dc8bdd297e479b5f51c2ba4487327a0030600e55
parent 30c04eb38a796183643bdcbaff8f425d90ebf671
author Francisco Guerrero <francisco.guerrero@apple.com> 1667418894 -0700
committer Yifan Cai <yifan_cai@apple.com> 1668795377 -0800

CASSANDRASC-47: Introduce JMX foundation in Sidecar

In this commit, we introduce the JMX foundation in Sidecar to enable the ability to communicate
with the Cassandra process. This commit adds new configuration parameters to configure the
a `org.apache.cassandra.sidecar.common.JmxClient`. This client is available as part of the Cassandra
delegate.

A new interface is introduced and exposed through the `org.apache.cassandra.sidecar.common.ICassandraAdapter`.
The new interface `StorageOperations` is intended to interface with the Cassandra StorageService.
This commit provides an example implementation of the `takeSnapshot` method, which is also found
in the Cassandra code base. This should allow us to interact with the Cassandra process to create
snapshots.

A fix is required in the `CassandraSidecarDaemon` class, where the `healthCheck` runs the first time
only after the configured health check frequency (millis) has passed. This causes issues in the unit
tests as well as the actual execution of the service, as the `adapter` will be `null` until the first
health check is performed. To fix this issue, we perform a health check right after the server
successfully starts up.

Additional integration tests are added for testing the JMX integration with Cassandra. In the test,
we spin up a new Cassandra container using `testcontainers` and we perform validation against the
StorageService in Cassandra.

Co-authored-by: Doug Rohrer <drohrer@apple.com>

patch by Francisco Guerrero, Doug Rohrer; reviewed by Yifan Cai, Dinesh Joshi for CASSANDRASC-47
