diff --git a/Jenkinsfile-datastax b/Jenkinsfile-datastax index 9e7b92bed4f..c6d2624a58d 100644 --- a/Jenkinsfile-datastax +++ b/Jenkinsfile-datastax @@ -220,67 +220,61 @@ pipeline { ''') choice( name: 'ADHOC_BUILD_AND_EXECUTE_TESTS_SERVER_VERSION', - choices: ['2.1', // Legacy Apache CassandraⓇ - '2.2', // Legacy Apache CassandraⓇ - '3.0', // Previous Apache CassandraⓇ - '3.11', // Current Apache CassandraⓇ - '4.0', // Development Apache CassandraⓇ - 'dse-5.1', // Legacy DataStax Enterprise - 'dse-6.0', // Previous DataStax Enterprise - 'dse-6.7', // Previous DataStax Enterprise - 'dse-6.8.0', // Current DataStax Enterprise + choices: ['4.0', + '4.1', + '5.0', + 'dse-5.1.35', + 'dse-6.0.18', + 'dse-6.7.17', + 'dse-6.8.30', + 'dse-6.9.0', + 'hcd-1.0.0', 'ALL'], description: '''Apache Cassandra® or DataStax Enterprise server version to use for adhoc BUILD-AND-EXECUTE-TESTS builds - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +
ChoiceDescription
2.1Apache Cassandra® v2.1.x4.0Apache Cassandra® v4.0.x
2.2Apache Cassandra® v2.2.x4.1Apache Cassandra® v4.1.x
3.0Apache Cassandra® v3.0.x5.0Apache Cassandra® v5.0.x
3.11Apache Cassandra® v3.11.xdse-5.1.35DataStax Enterprise v5.1.35
4.0Apache Cassandra® v4.x (CURRENTLY UNDER DEVELOPMENT)dse-6.0.18DataStax Enterprise v6.0.18
dse-5.1DataStax Enterprise v5.1.xdse-6.7.17DataStax Enterprise v6.7.17
dse-6.0DataStax Enterprise v6.0.xdse-6.8.30DataStax Enterprise v6.8.30
dse-6.7DataStax Enterprise v6.7.xdse-6.9.0DataStax Enterprise v6.9.0
dse-6.8.0DataStax Enterprise v6.8.0hcd-1.0.0DataStax HCD v1.0.0
''') choice( name: 'ADHOC_BUILD_AND_EXECUTE_TESTS_JABBA_VERSION', - choices: ['zulu@1.6', // Zulu JDK 1.6 - 'zulu@1.7', // Zulu JDK 1.7 - '1.8', // Oracle JDK version 1.8 (current default) - 'openjdk@1.11'], // OpenJDK version 11 + choices: ['1.8', + 'openjdk@1.11'], description: '''JDK version to use for TESTING when running adhoc BUILD-AND-EXECUTE-TESTS builds. All builds will use JDK8 for building the driver @@ -289,14 +283,6 @@ pipeline { - - - - - - - - @@ -341,7 +327,7 @@ pipeline { } environment { - OS_VERSION = 'ubuntu/jammy64/java-driver' + OS_VERSION = 'ubuntu/focal64/java-driver' JABBA_SHELL = '/usr/lib/jabba/jabba.sh' CCM_ENVIRONMENT_SHELL = '/usr/local/bin/ccm_environment.sh' } @@ -367,8 +353,9 @@ pipeline { axes { axis { name 'SERVER_VERSION' - values '3.11', // Current Apache CassandraⓇ - '4.0' // Development Apache CassandraⓇ + values '4.0', + '4.1', + '5.0' } } @@ -474,14 +461,15 @@ pipeline { axes { axis { name 'SERVER_VERSION' - values '2.1', // Legacy Apache CassandraⓇ - '3.0', // Previous Apache CassandraⓇ - '3.11', // Current Apache CassandraⓇ - '4.0', // Development Apache CassandraⓇ - 'dse-5.1', // Legacy DataStax Enterprise - 'dse-6.0', // Previous DataStax Enterprise - 'dse-6.7', // Previous DataStax Enterprise - 'dse-6.8.0' // Current DataStax Enterprise + values '4.0', + '4.1', + '5.0', + 'dse-5.1.35', + 'dse-6.0.18', + 'dse-6.7.17', + 'dse-6.8.30', + 'dse-6.9.0', + 'hcd-1.0.0' } } when { diff --git a/driver-core/pom.xml b/driver-core/pom.xml index 45aff62c17d..c1e1de9c392 100644 --- a/driver-core/pom.xml +++ b/driver-core/pom.xml @@ -76,7 +76,7 @@ - org.lz4 + at.yawk.lz4 lz4-java true diff --git a/driver-core/src/test/java/com/datastax/driver/core/cloud/CloudTest.java b/driver-core/src/test/java/com/datastax/driver/core/cloud/CloudTest.java deleted file mode 100644 index 7e91543861c..00000000000 --- a/driver-core/src/test/java/com/datastax/driver/core/cloud/CloudTest.java +++ /dev/null @@ -1,259 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.datastax.driver.core.cloud; - -import static com.datastax.driver.core.cloud.SniProxyServer.CERTS_BUNDLE_SUFFIX; -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.any; -import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.fail; - -import com.datastax.driver.core.Cluster; -import com.datastax.driver.core.EndPoint; -import com.datastax.driver.core.PlainTextAuthProvider; -import com.datastax.driver.core.ProtocolVersion; -import com.datastax.driver.core.ResultSet; -import com.datastax.driver.core.Session; -import com.datastax.driver.core.exceptions.AuthenticationException; -import com.github.tomakehurst.wiremock.WireMockServer; -import java.io.File; -import java.io.IOException; -import java.net.InetSocketAddress; -import java.net.URL; -import org.parboiled.common.FileUtils; -import org.testng.annotations.AfterClass; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; - -public class CloudTest { - - private SniProxyServer proxy = new SniProxyServer(); - - private WireMockServer wireMockServer; - - @BeforeClass(groups = "short") - public void startProxy() { - proxy.startProxy(); - } - - @BeforeMethod(groups = "short") - public void startWireMock() { - wireMockServer = new WireMockServer(wireMockConfig().dynamicPort().dynamicHttpsPort()); - wireMockServer.start(); - } - - @AfterMethod(groups = "short") - public void stopWireMock() { - wireMockServer.stop(); - } - - @AfterClass(groups = "short", alwaysRun = true) - public void stopProxy() throws Exception { - proxy.stopProxy(); - } - - @Test(groups = "short") - public void should_connect_to_proxy_using_absolute_path() { - Session session = - Cluster.builder() - .withCloudSecureConnectBundle(proxy.getSecureBundleFile()) - .withProtocolVersion(ProtocolVersion.V4) - .build() - .connect(); - ResultSet set = session.execute("select * from system.local"); - assertThat(set).isNotNull(); - } - - @Test(groups = "short") - public void should_connect_to_proxy_using_non_normalized_path() { - String path = - String.format("%s/%s", proxy.getProxyRootPath(), "certs/bundles/../bundles/creds-v1.zip"); - Session session = - Cluster.builder() - .withCloudSecureConnectBundle(new File(path)) - .withProtocolVersion(ProtocolVersion.V4) - .build() - .connect(); - ResultSet set = session.execute("select * from system.local"); - assertThat(set).isNotNull(); - } - - @Test(groups = "short") - public void should_connect_to_proxy_using_file_provided_by_the_http_URL() throws IOException { - // given - wireMockServer.stubFor( - any(urlEqualTo(CERTS_BUNDLE_SUFFIX)) - .willReturn( - aResponse() - .withStatus(200) - .withHeader("Content-Type", "application/octet-stream") - .withBody(FileUtils.readAllBytes(proxy.getSecureBundleFile())))); - - URL configFile = - new URL(String.format("http://localhost:%d%s", wireMockServer.port(), CERTS_BUNDLE_SUFFIX)); - - // when - Session session = - Cluster.builder() - .withCloudSecureConnectBundle(configFile) - .withProtocolVersion(ProtocolVersion.V4) - .build() - .connect(); - - // then - ResultSet set = session.execute("select * from system.local"); - assertThat(set).isNotNull(); - } - - @Test(groups = "short") - public void should_connect_to_proxy_using_file_provided_by_input_stream() throws IOException { - // given - wireMockServer.stubFor( - any(urlEqualTo(CERTS_BUNDLE_SUFFIX)) - .willReturn( - aResponse() - .withStatus(200) - .withHeader("Content-Type", "application/octet-stream") - .withBody(FileUtils.readAllBytes(proxy.getSecureBundleFile())))); - - URL configFile = - new URL(String.format("http://localhost:%d%s", wireMockServer.port(), CERTS_BUNDLE_SUFFIX)); - - // when - Session session = - Cluster.builder() - .withCloudSecureConnectBundle(configFile.openStream()) - .withProtocolVersion(ProtocolVersion.V4) - .build() - .connect(); - - // then - ResultSet set = session.execute("select * from system.local"); - assertThat(set).isNotNull(); - } - - @Test(groups = "short") - public void should_connect_to_proxy_using_auth_provider() { - Session session = - Cluster.builder() - .withCloudSecureConnectBundle(proxy.getSecureBundleNoCredsPath()) - .withAuthProvider(new PlainTextAuthProvider("cassandra", "cassandra")) - .withProtocolVersion(ProtocolVersion.V4) - .build() - .connect(); - ResultSet set = session.execute("select * from system.local"); - assertThat(set).isNotNull(); - } - - @Test(groups = "short") - public void should_not_connect_to_proxy_bad_creds() { - try { - Session session = - Cluster.builder() - .withCloudSecureConnectBundle(proxy.getSecureBundleNoCredsPath()) - .withProtocolVersion(ProtocolVersion.V4) - .build() - .connect(); - fail("Expected an AuthenticationException"); - } catch (AuthenticationException e) { - assertThat(e).hasMessageStartingWith("Authentication error on host"); - } - } - - @Test(groups = "short") - public void should_not_connect_to_proxy() { - try { - Session session = - Cluster.builder() - .withCloudSecureConnectBundle(proxy.getSecureBundleUnreachable()) - .withProtocolVersion(ProtocolVersion.V4) - .build() - .connect(); - fail("Expected an IllegalStateException"); - } catch (IllegalStateException e) { - assertThat(e).hasMessageStartingWith("Cannot construct cloud config from the cloudConfigUrl"); - } - } - - @Test(groups = "short") - public void should_not_allow_contact_points_and_cloud() { - try { - Session session = - Cluster.builder() - .addContactPoint("127.0.0.1") - .withCloudSecureConnectBundle(proxy.getSecureBundleNoCredsPath()) - .withCredentials("cassandra", "cassandra") - .withProtocolVersion(ProtocolVersion.V4) - .build() - .connect(); - fail("Expected an IllegalStateException"); - } catch (IllegalStateException e) { - assertThat(e) - .hasMessageStartingWith( - "Can't use withCloudSecureConnectBundle if you've already called addContactPoint(s)"); - } - } - - @Test(groups = "short") - public void should_not_allow_cloud_with_contact_points_string() { - try { - Session session = - Cluster.builder() - .withCloudSecureConnectBundle(proxy.getSecureBundleNoCredsPath()) - .addContactPoint("127.0.0.1") - .withCredentials("cassandra", "cassandra") - .withProtocolVersion(ProtocolVersion.V4) - .build() - .connect(); - fail("Expected an IllegalStateException"); - } catch (IllegalStateException e) { - assertThat(e) - .hasMessageStartingWith( - "Can't use addContactPoint(s) if you've already called withCloudSecureConnectBundle"); - } - } - - @Test(groups = "short") - public void should_not_allow_cloud_with_contact_points_endpoint() { - try { - Session session = - Cluster.builder() - .withCloudSecureConnectBundle(proxy.getSecureBundleNoCredsPath()) - .addContactPoint( - new EndPoint() { - @Override - public InetSocketAddress resolve() { - return null; - } - }) - .withCredentials("cassandra", "cassandra") - .withProtocolVersion(ProtocolVersion.V4) - .build() - .connect(); - fail("Expected an IllegalStateException"); - } catch (IllegalStateException e) { - assertThat(e) - .hasMessageStartingWith( - "Can't use addContactPoint(s) if you've already called withCloudSecureConnectBundle"); - } - } -} diff --git a/driver-core/src/test/java/com/datastax/driver/core/cloud/SniProxyServer.java b/driver-core/src/test/java/com/datastax/driver/core/cloud/SniProxyServer.java deleted file mode 100644 index 59c3e0c51e4..00000000000 --- a/driver-core/src/test/java/com/datastax/driver/core/cloud/SniProxyServer.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.datastax.driver.core.cloud; - -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.IOException; -import java.util.concurrent.TimeUnit; -import org.apache.commons.exec.CommandLine; -import org.apache.commons.exec.DefaultExecutor; -import org.apache.commons.exec.ExecuteStreamHandler; -import org.apache.commons.exec.ExecuteWatchdog; -import org.apache.commons.exec.Executor; -import org.apache.commons.exec.LogOutputStream; -import org.apache.commons.exec.PumpStreamHandler; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class SniProxyServer { - private static final Logger logger = LoggerFactory.getLogger(SniProxyServer.class); - private final File proxyPath; - private boolean isRunning = false; - - static final String CERTS_BUNDLE_SUFFIX = "/certs/bundles/creds-v1.zip"; - - public SniProxyServer() { - proxyPath = new File(System.getProperty("proxy.path", "./")); - } - - public void startProxy() { - CommandLine run = CommandLine.parse(proxyPath + "/run.sh"); - execute(run); - isRunning = true; - } - - public void stopProxy() { - if (isRunning) { - CommandLine findImageId = - CommandLine.parse("docker ps -a -q --filter ancestor=single_endpoint"); - String id = execute(findImageId); - CommandLine stop = CommandLine.parse("docker kill " + id); - execute(stop); - isRunning = false; - } - } - - public boolean isRunning() { - return isRunning; - } - - public File getProxyRootPath() { - return proxyPath; - } - - public File getSecureBundleFile() { - return new File(proxyPath + CERTS_BUNDLE_SUFFIX); - } - - public File getSecureBundleNoCredsPath() { - return new File(proxyPath + "/certs/bundles/creds-v1-wo-creds.zip"); - } - - public File getSecureBundleUnreachable() { - return new File(proxyPath + "/certs/bundles/creds-v1-unreachable.zip"); - } - - private String execute(CommandLine cli) { - logger.debug("Executing: " + cli); - ExecuteWatchdog watchDog = new ExecuteWatchdog(TimeUnit.MINUTES.toMillis(10)); - ByteArrayOutputStream outStream = new ByteArrayOutputStream(); - LogOutputStream errStream = - new LogOutputStream() { - @Override - protected void processLine(String line, int logLevel) { - logger.error("sniendpointerr> {}", line); - } - }; - try { - Executor executor = new DefaultExecutor(); - ExecuteStreamHandler streamHandler = new PumpStreamHandler(outStream, errStream); - executor.setStreamHandler(streamHandler); - executor.setWatchdog(watchDog); - executor.setWorkingDirectory(proxyPath); - int retValue = executor.execute(cli); - if (retValue != 0) { - logger.error( - "Non-zero exit code ({}) returned from executing ccm command: {}", retValue, cli); - } - return outStream.toString(); - } catch (IOException ex) { - if (watchDog.killedProcess()) { - throw new RuntimeException("The command '" + cli + "' was killed after 10 minutes"); - } else { - throw new RuntimeException("The command '" + cli + "' failed to execute", ex); - } - } - } -} diff --git a/driver-examples/pom.xml b/driver-examples/pom.xml index a5508fa9d9b..a160e11743a 100644 --- a/driver-examples/pom.xml +++ b/driver-examples/pom.xml @@ -47,7 +47,6 @@ - com.fasterxml.jackson.core jackson-annotations diff --git a/driver-tests/osgi/common/src/test/java/com/datastax/driver/osgi/BundleOptions.java b/driver-tests/osgi/common/src/test/java/com/datastax/driver/osgi/BundleOptions.java index e4d9ef9aaa0..8186b8a4c07 100644 --- a/driver-tests/osgi/common/src/test/java/com/datastax/driver/osgi/BundleOptions.java +++ b/driver-tests/osgi/common/src/test/java/com/datastax/driver/osgi/BundleOptions.java @@ -97,7 +97,7 @@ public static CompositeOption lz4Bundle() { public Option[] getOptions() { return options( systemProperty("cassandra.compression").value(ProtocolOptions.Compression.LZ4.name()), - mavenBundle("org.lz4", "lz4-java", getVersion("lz4.version"))); + mavenBundle("at.yawk.lz4", "lz4-java", getVersion("lz4.version"))); } }; } @@ -182,13 +182,13 @@ public Option[] getOptions() { mavenBundle( "com.fasterxml.jackson.core", "jackson-databind", - getVersion("jackson-databind.version")), + getVersion("jackson.version")), mavenBundle( "com.fasterxml.jackson.core", "jackson-core", getVersion("jackson.version")), mavenBundle( "com.fasterxml.jackson.core", "jackson-annotations", - getVersion("jackson.version")), + getVersion("jackson-annotations.version")), mavenBundle("org.testng", "testng", getVersion("testng.version")), systemPackages( "org.testng", diff --git a/driver-tests/osgi/pom.xml b/driver-tests/osgi/pom.xml index 8609753a8c9..34a96f6d84d 100644 --- a/driver-tests/osgi/pom.xml +++ b/driver-tests/osgi/pom.xml @@ -166,7 +166,7 @@ ${testng.version} ${jsr353-api.version} ${jackson.version} - ${jackson-databind.version} + ${jackson-annotations.version} ${ipprefix} false diff --git a/manual/compression/README.md b/manual/compression/README.md index 6b25b5e5c69..3872699cc01 100644 --- a/manual/compression/README.md +++ b/manual/compression/README.md @@ -47,9 +47,9 @@ Maven dependency: ```xml - org.lz4 + at.yawk.lz4 lz4-java - 1.4.1 + 1.10.1 ``` diff --git a/pom.xml b/pom.xml index d179f45d04f..1db686960a8 100644 --- a/pom.xml +++ b/pom.xml @@ -53,20 +53,19 @@ UTF-8 UTF-8 3.11.2 - 1.6 + 1.8 1.2.17 - 1.7.25 - 1.7.25 + 1.7.26 + 1.7.26 19.0 - 4.1.119.Final - 2.0.70.Final + 4.1.130.Final + 2.0.74.Final 3.2.2 1.1.2.6 - 1.4.1 + 1.10.1 2.1.10 - 2.8.11 - - 2.7.9.7 + 2.20.1 + 2.20 2.9.9 1.0 1.0.4 @@ -88,7 +87,7 @@ 2.25.0 1.3 1.1.2 - 1.2.3 + 1.2.13 3.0.8 127.0.1. @@ -176,7 +175,7 @@ - org.lz4 + at.yawk.lz4 lz4-java ${lz4.version} @@ -202,13 +201,13 @@ com.fasterxml.jackson.core jackson-databind - ${jackson-databind.version} + ${jackson.version} com.fasterxml.jackson.core jackson-annotations - ${jackson.version} + ${jackson-annotations.version} @@ -1006,18 +1005,6 @@ limitations under the License. true - - - - - - modern-jdks - - [1.8,) - - - - com.coveo fmt-maven-plugin @@ -1031,39 +1018,11 @@ limitations under the License. - - org.apache.maven.plugins - maven-javadoc-plugin - - none - - - - - - - - legacy-jdks - - [,1.8) - - - - - maven-surefire-plugin - - - **/jdk8/*.java - **/Jdk8*.java - + org.apache.maven.plugins + maven-javadoc-plugin + + none
Choice Description
zulu@1.6Zulu JDK version 1.6
zulu@1.7Zulu JDK version 1.7
1.8 Oracle JDK version 1.8 (Used for compiling regardless of choice)