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

Reply via email to