This is an automated email from the ASF dual-hosted git repository. frankgh pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git
The following commit(s) were added to refs/heads/trunk by this push: new 00309bdb CASSSIDECAR-194: Deprecate Java 8 support for Sidecar Server (#181) 00309bdb is described below commit 00309bdb6b25ef783ccef71f15bdde4083a60715 Author: Francisco Guerrero <fran...@apache.org> AuthorDate: Sat Feb 1 20:17:43 2025 -0800 CASSSIDECAR-194: Deprecate Java 8 support for Sidecar Server (#181) Patch by Francisco Guerrero; reviewed by Bernardo Botella, Yifan Cai for CASSSIDECAR-194 --- .circleci/config.yml | 174 ++------------------- README.md | 9 +- adapters/base/build.gradle | 2 +- adapters/cassandra41/build.gradle | 2 +- build.gradle | 14 +- integration-framework/build.gradle | 2 +- .../testing/SharedClusterIntegrationTestBase.java | 9 +- integration-tests/build.gradle | 2 + server-common/build.gradle | 11 +- server/build.gradle | 2 +- settings.gradle | 23 +-- test-common/build.gradle | 2 +- vertx-auth-mtls/build.gradle | 2 +- 13 files changed, 61 insertions(+), 193 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6b4ee04f..973505f2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -50,7 +50,8 @@ commands: jobs: # Runs java 8 tests on a docker image - unit_java8: + # We only produce client artifacts for java 8 builds + client_only_unit_java8: docker: - image: cimg/openjdk:8.0 environment: @@ -59,127 +60,7 @@ jobs: - install_common - setup_remote_docker - checkout - - run: ./gradlew build -x integrationTest --stacktrace - - - store_artifacts: - path: build/reports - destination: test-reports - - - store_artifacts: - path: build/test-results/ - destination: test-results - - - store_test_results: - path: build/test-results/ - - build-dtest-jdk8: - docker: - - image: cimg/openjdk:8.0 - resource_class: large - steps: - - install_common - - checkout - - run: - name: Build jvm dtest jars with jdk8 - command: | - CASSANDRA_USE_JDK11=false BRANCHES="cassandra-4.0 cassandra-4.1" scripts/build-dtest-jars.sh - - persist_to_workspace: - root: dtest-jars - paths: - - "*.jar" - - integration_cassandra_40_java8: - docker: - - image: cimg/openjdk:8.0 - environment: - INTEGRATION_MAX_PARALLEL_FORKS: 3 - INTEGRATION_MAX_HEAP_SIZE: "2500M" - resource_class: large - steps: - - install_common - - checkout - - attach_workspace: - at: dtest-jars - - run: ./scripts/install-shaded-dtest-jar-local.sh - - run: ./gradlew --no-daemon -PdtestVersion=4.1.8 -Dcassandra.sidecar.versions_to_test="4.0" checkstyleIntegrationTest spotbugsIntegrationTest integrationTestLightWeight --stacktrace - - - store_artifacts: - path: build/reports - destination: test-reports - - - store_artifacts: - path: build/test-results/ - destination: test-results - - - store_test_results: - path: build/test-results/ - - integration_heavy_cassandra_40_java8: - docker: - - image: cimg/openjdk:8.0 - environment: - INTEGRATION_MAX_PARALLEL_FORKS: 1 - INTEGRATION_MAX_HEAP_SIZE: "7000M" - resource_class: large - steps: - - install_common - - checkout - - attach_workspace: - at: dtest-jars - - run: ./scripts/install-shaded-dtest-jar-local.sh - - run: ./gradlew --no-daemon -PdtestVersion=4.1.8 -Dcassandra.sidecar.versions_to_test="4.0" integrationTestHeavyWeight --stacktrace - - - store_artifacts: - path: build/reports - destination: test-reports - - - store_artifacts: - path: build/test-results/ - destination: test-results - - - store_test_results: - path: build/test-results/ - - integration_cassandra_41_java8: - docker: - - image: cimg/openjdk:8.0 - environment: - INTEGRATION_MAX_PARALLEL_FORKS: 3 - INTEGRATION_MAX_HEAP_SIZE: "2500M" - resource_class: large - steps: - - install_common - - checkout - - attach_workspace: - at: dtest-jars - - run: ./scripts/install-shaded-dtest-jar-local.sh - - run: ./gradlew --no-daemon -PdtestVersion=4.1.8 -Dcassandra.sidecar.versions_to_test="4.1" checkstyleIntegrationTest spotbugsIntegrationTest integrationTestLightWeight --stacktrace - - - store_artifacts: - path: build/reports - destination: test-reports - - - store_artifacts: - path: build/test-results/ - destination: test-results - - - store_test_results: - path: build/test-results/ - - integration_heavy_cassandra_41_java8: - docker: - - image: cimg/openjdk:8.0 - environment: - INTEGRATION_MAX_PARALLEL_FORKS: 1 - INTEGRATION_MAX_HEAP_SIZE: "7000M" - resource_class: large - steps: - - install_common - - checkout - - attach_workspace: - at: dtest-jars - - run: ./scripts/install-shaded-dtest-jar-local.sh - - run: ./gradlew --no-daemon -PdtestVersion=4.1.8 -Dcassandra.sidecar.versions_to_test="4.1" integrationTestHeavyWeight --stacktrace + - run: ./gradlew build --stacktrace - store_artifacts: path: build/reports @@ -428,24 +309,7 @@ workflows: version: 2 build-and-test: jobs: - - unit_java8 - - build-dtest-jdk8 - - integration_cassandra_40_java8: - requires: - - unit_java8 - - build-dtest-jdk8 - - integration_cassandra_41_java8: - requires: - - unit_java8 - - build-dtest-jdk8 - - integration_heavy_cassandra_40_java8: - requires: - - unit_java8 - - build-dtest-jdk8 - - integration_heavy_cassandra_41_java8: - requires: - - unit_java8 - - build-dtest-jdk8 + - client_only_unit_java8 - unit_java11 - build-dtest-jdk11 - integration_cassandra_40_java11: @@ -474,11 +338,7 @@ workflows: - build-dtest-jdk11 - docs_build: requires: - - unit_java8 - - integration_cassandra_40_java8 - - integration_heavy_cassandra_40_java8 - - integration_cassandra_41_java8 - - integration_heavy_cassandra_41_java8 + - client_only_unit_java8 - unit_java11 - integration_cassandra_40_java11 - integration_heavy_cassandra_40_java11 @@ -488,11 +348,7 @@ workflows: - integration_heavy_cassandra_trunk_java11 - docker_build: requires: - - unit_java8 - - integration_cassandra_40_java8 - - integration_heavy_cassandra_40_java8 - - integration_cassandra_41_java8 - - integration_heavy_cassandra_41_java8 + - client_only_unit_java8 - unit_java11 - integration_cassandra_40_java11 - integration_heavy_cassandra_40_java11 @@ -502,11 +358,7 @@ workflows: - integration_heavy_cassandra_trunk_java11 - rpm_build_install: requires: - - unit_java8 - - integration_cassandra_40_java8 - - integration_heavy_cassandra_40_java8 - - integration_cassandra_41_java8 - - integration_heavy_cassandra_41_java8 + - client_only_unit_java8 - unit_java11 - integration_cassandra_40_java11 - integration_heavy_cassandra_40_java11 @@ -516,11 +368,7 @@ workflows: - integration_heavy_cassandra_trunk_java11 - deb_build_install: requires: - - unit_java8 - - integration_cassandra_40_java8 - - integration_heavy_cassandra_40_java8 - - integration_cassandra_41_java8 - - integration_heavy_cassandra_41_java8 + - client_only_unit_java8 - unit_java11 - integration_cassandra_40_java11 - integration_heavy_cassandra_40_java11 @@ -530,11 +378,7 @@ workflows: - integration_heavy_cassandra_trunk_java11 - docker_build: requires: - - unit_java8 - - integration_cassandra_40_java8 - - integration_heavy_cassandra_40_java8 - - integration_cassandra_41_java8 - - integration_heavy_cassandra_41_java8 + - client_only_unit_java8 - unit_java11 - integration_cassandra_40_java11 - integration_heavy_cassandra_40_java11 diff --git a/README.md b/README.md index f032e691..19967f9a 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ # --> -# Apache Cassandra Sidecar [WIP] +# Apache Cassandra Sidecar This is a Sidecar for the highly scalable Apache Cassandra database. For more information, see [the Apache Cassandra web site](http://cassandra.apache.org/) and [CIP-1](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=95652224). @@ -27,7 +27,7 @@ For more information, see [the Apache Cassandra web site](http://cassandra.apach Requirements ------------ - 1. Java >= 1.8 (OpenJDK or Oracle), or Java 11 + 1. Java >= 11<sup>1</sup> (OpenJDK or Oracle) 2. Apache Cassandra 4.0. We depend on virtual tables which is a 4.0 only feature. 3. [Docker](https://www.docker.com/products/docker-desktop/) for running integration tests. @@ -101,3 +101,8 @@ Wondering where to go from here? * Visit the [community section](http://cassandra.apache.org/community/) of the Cassandra website for more information on getting involved. * Visit the [development section](http://cassandra.apache.org/doc/latest/development/index.html) of the Cassandra website for more information on how to contribute. * File issues with our [Sidecar JIRA](https://issues.apache.org/jira/projects/CASSANDRASC/issues/) + +Notes +----- + +<sup>1</sup> The Sidecar Client offers Java 1.8 compatibility, and produces artifacts for both Java 1.8 and Java 11. diff --git a/adapters/base/build.gradle b/adapters/base/build.gradle index 37becd25..ad379914 100644 --- a/adapters/base/build.gradle +++ b/adapters/base/build.gradle @@ -34,7 +34,7 @@ group 'org.apache.cassandra.sidecar' version project.version -sourceCompatibility = 1.8 +sourceCompatibility = JavaVersion.VERSION_11 repositories { mavenCentral() diff --git a/adapters/cassandra41/build.gradle b/adapters/cassandra41/build.gradle index 77df3459..190e09ea 100644 --- a/adapters/cassandra41/build.gradle +++ b/adapters/cassandra41/build.gradle @@ -33,7 +33,7 @@ group 'org.apache.cassandra.sidecar' version project.version -sourceCompatibility = 1.8 +sourceCompatibility = JavaVersion.VERSION_11 test { useJUnitPlatform() diff --git a/build.gradle b/build.gradle index b62975a0..f04390d2 100644 --- a/build.gradle +++ b/build.gradle @@ -96,8 +96,6 @@ allprojects { group 'org.apache.cassandra' version project.version -sourceCompatibility = 1.8 - application { // Take the application out once we're running via Cassandra mainClassName = "org.apache.cassandra.sidecar.CassandraSidecarDaemon" @@ -173,9 +171,11 @@ configurations { runtime.exclude(group: 'com.github.jnr', module: 'jnr-posix') } -dependencies { - runtimeOnly(project(':server')) - jolokia 'org.jolokia:jolokia-jvm:1.6.0:agent' +if (JavaVersion.current().isJava11Compatible()) { + dependencies { + runtimeOnly(project(':server')) + jolokia 'org.jolokia:jolokia-jvm:1.6.0:agent' + } } jar { @@ -314,7 +314,9 @@ rat { installDist.dependsOn copyJolokia check.dependsOn codeCheckTasks -build.dependsOn copyJolokia, copyDocs +if (JavaVersion.current().isJava11Compatible()) { + build.dependsOn copyJolokia, copyDocs +} run.dependsOn build tasks.named('rat').configure { diff --git a/integration-framework/build.gradle b/integration-framework/build.gradle index 8e8c2a2a..04d370dd 100644 --- a/integration-framework/build.gradle +++ b/integration-framework/build.gradle @@ -29,7 +29,7 @@ def dtestJarFullPath = "${dependencyLocation}${ext.dtestJar}" File dtestJarFile = new File(dtestJarFullPath) println("Using DTest jar: " + dtestJarFullPath + "; present? " + dtestJarFile.exists()) -sourceCompatibility = 1.8 +sourceCompatibility = JavaVersion.VERSION_11 test { useJUnitPlatform() diff --git a/integration-framework/src/main/java/org/apache/cassandra/sidecar/testing/SharedClusterIntegrationTestBase.java b/integration-framework/src/main/java/org/apache/cassandra/sidecar/testing/SharedClusterIntegrationTestBase.java index 477d91f3..e14977db 100644 --- a/integration-framework/src/main/java/org/apache/cassandra/sidecar/testing/SharedClusterIntegrationTestBase.java +++ b/integration-framework/src/main/java/org/apache/cassandra/sidecar/testing/SharedClusterIntegrationTestBase.java @@ -26,7 +26,6 @@ import java.net.URI; import java.net.UnknownHostException; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Objects; @@ -712,7 +711,6 @@ public abstract class SharedClusterIntegrationTestBase } int port = tryGetIntConfig(config, "native_transport_port", 9042); String[] dataDirectories = (String[]) config.get("data_file_directories"); - String storageDir = Paths.get(dataDirectories[0]).getParent().toAbsolutePath().toString(); String stagingDir = stagingDir(dataDirectories); JmxClient jmxClient = new JmxClientProxy(wrapper, @@ -736,8 +734,11 @@ public abstract class SharedClusterIntegrationTestBase .id(config.num()) .host(hostName) .port(port) - .dataDirs(Arrays.asList(dataDirectories)) - .storageDir(storageDir) + .dataDirs(List.of(dataDirectories)) + .cdcDir(config.getString("cdc_raw_directory")) + .commitlogDir(config.getString("commitlog_directory")) + .hintsDir(config.getString("hints_directory")) + .savedCachesDir(config.getString("saved_caches_directory")) .stagingDir(stagingDir) .delegate(delegate) .metricRegistry(metricRegistry) diff --git a/integration-tests/build.gradle b/integration-tests/build.gradle index 9fa982f9..72a9884c 100644 --- a/integration-tests/build.gradle +++ b/integration-tests/build.gradle @@ -25,6 +25,8 @@ plugins { group 'org.apache.cassandra.sidecar' version project.version +sourceCompatibility = JavaVersion.VERSION_11 + sourceSets { integrationTest { java { diff --git a/server-common/build.gradle b/server-common/build.gradle index 911b55ae..755b3dd1 100644 --- a/server-common/build.gradle +++ b/server-common/build.gradle @@ -34,7 +34,7 @@ group 'org.apache.cassandra.sidecar' version project.version -sourceCompatibility = 1.8 +sourceCompatibility = JavaVersion.VERSION_11 test { useJUnitPlatform() @@ -85,4 +85,13 @@ publishing { } } +compileTestJava { + // Required for the JmxClientTest which imports sun.rmi.server.UnicastRef + // and sun.rmi.transport.LiveRef + options.compilerArgs = [ + '--add-exports', 'java.rmi/sun.rmi.server=ALL-UNNAMED', + '--add-exports', 'java.rmi/sun.rmi.transport=ALL-UNNAMED' + ] +} + check.dependsOn(checkstyleMain, checkstyleTest, jacocoTestReport) diff --git a/server/build.gradle b/server/build.gradle index 3318faf9..c83b3ddf 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -32,7 +32,7 @@ plugins { id('com.google.cloud.tools.jib') version '3.4.4' } -sourceCompatibility = 1.8 +sourceCompatibility = JavaVersion.VERSION_11 println("Using DTest jar: ${dtestVersion}") diff --git a/settings.gradle b/settings.gradle index c2bd732f..a9a85664 100644 --- a/settings.gradle +++ b/settings.gradle @@ -19,16 +19,21 @@ rootProject.name = "cassandra-sidecar" -include "adapters:base" -include "adapters:cassandra41" +// The client code supports Java 8+ include "client" include "client-common" -include "docs" -include "server" -include "server-common" include "vertx-client" include "vertx-client-shaded" -include "vertx-auth-mtls" -include "integration-framework" -include 'integration-tests' -include 'test-common' + +// The server code supports Java 11, but it doesn't support Java 8 +if (JavaVersion.current().isJava11Compatible()) { + include "adapters:base" + include "adapters:cassandra41" + include "docs" + include "server" + include "server-common" + include "vertx-auth-mtls" + include "integration-framework" + include 'integration-tests' + include 'test-common' +} diff --git a/test-common/build.gradle b/test-common/build.gradle index 1c0ae875..a683409e 100644 --- a/test-common/build.gradle +++ b/test-common/build.gradle @@ -26,7 +26,7 @@ plugins { group 'org.apache.cassandra.sidecar' version project.version -sourceCompatibility = 1.8 +sourceCompatibility = JavaVersion.VERSION_11 publishing { publications { diff --git a/vertx-auth-mtls/build.gradle b/vertx-auth-mtls/build.gradle index 244a7a8c..ba2b248f 100644 --- a/vertx-auth-mtls/build.gradle +++ b/vertx-auth-mtls/build.gradle @@ -28,7 +28,7 @@ plugins { group 'org.apache.cassandra.sidecar' version project.version -sourceCompatibility = 1.8 +sourceCompatibility = JavaVersion.VERSION_11 test { useJUnitPlatform() --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org