diff --git a/.env b/.env
index 8f3288d488..d7ff7ad64d 100644
--- a/.env
+++ b/.env
@@ -28,7 +28,7 @@ ARCH_SHORT=amd64
ARCH_CONDA_FORGE=linux_64_
# Default versions for various dependencies
-JDK=8
+JDK=11
MANYLINUX=2-28
MAVEN=3.6.3
PLATFORM=linux/amd64
diff --git a/.github/workflows/java.yml b/.github/workflows/java.yml
index d33247f819..e2457f29c2 100644
--- a/.github/workflows/java.yml
+++ b/.github/workflows/java.yml
@@ -42,7 +42,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- java: ['8', '11', '17', '21', '22']
+ java: ['11', '17', '21', '22']
steps:
- uses: actions/checkout@v4
with:
diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml
index cf3764d5f7..20d088da49 100644
--- a/.github/workflows/packaging.yml
+++ b/.github/workflows/packaging.yml
@@ -243,7 +243,7 @@ jobs:
docs.tgz
java:
- name: "Java 1.8"
+ name: "Java 11"
runs-on: ubuntu-latest
needs:
- source
diff --git a/dev/release/verify-release-candidate.sh b/dev/release/verify-release-candidate.sh
index cb1107d4ec..a5b277560d 100755
--- a/dev/release/verify-release-candidate.sh
+++ b/dev/release/verify-release-candidate.sh
@@ -21,7 +21,7 @@
# Requirements
# - Ruby >= 2.3
# - Maven >= 3.3.9
-# - JDK >=7
+# - JDK >= 11
# - gcc >= 4.8
# - Go >= 1.21
# - Docker
diff --git a/docs/source/development/releasing.rst b/docs/source/development/releasing.rst
index d370ae27fe..6d6130b8d1 100644
--- a/docs/source/development/releasing.rst
+++ b/docs/source/development/releasing.rst
@@ -218,7 +218,7 @@ How to Verify Release Candidates
- GLib and gobject-introspection with headers
- pkg-config or cmake must be able to find libarrow-glib.so
- GI_TYPELIB_PATH should be set to the path to the girepository-1.0 directory
- - Java JRE and JDK (Java 8+)
+ - Java JRE and JDK (Java 11+)
- the javadoc command must also be accessible
- Go
- CMake, ninja-build, libpq (with headers), SQLite (with headers)
diff --git a/java/driver/flight-sql/pom.xml b/java/driver/flight-sql/pom.xml
index 9e8ce65ecd..49d79b114d 100644
--- a/java/driver/flight-sql/pom.xml
+++ b/java/driver/flight-sql/pom.xml
@@ -103,13 +103,6 @@
junit-vintage-engine
test
-
-
- junit
- junit
- 4.13.2
- test
-
org.apache.arrow
flight-sql-jdbc-core
diff --git a/java/driver/flight-sql/src/test/java/org/apache/arrow/adbc/driver/flightsql/GetObjectsTests.java b/java/driver/flight-sql/src/test/java/org/apache/arrow/adbc/driver/flightsql/GetObjectsTests.java
index 454527b716..c0beba9e4b 100644
--- a/java/driver/flight-sql/src/test/java/org/apache/arrow/adbc/driver/flightsql/GetObjectsTests.java
+++ b/java/driver/flight-sql/src/test/java/org/apache/arrow/adbc/driver/flightsql/GetObjectsTests.java
@@ -38,7 +38,7 @@
import org.apache.arrow.adbc.core.AdbcDriver;
import org.apache.arrow.adbc.core.AdbcException;
import org.apache.arrow.adbc.drivermanager.AdbcDriverManager;
-import org.apache.arrow.driver.jdbc.FlightServerTestRule;
+import org.apache.arrow.driver.jdbc.FlightServerTestExtension;
import org.apache.arrow.driver.jdbc.utils.MockFlightSqlProducer;
import org.apache.arrow.flight.FlightProducer;
import org.apache.arrow.flight.sql.FlightSqlProducer;
@@ -58,19 +58,19 @@
import org.apache.arrow.vector.types.pojo.Field;
import org.apache.arrow.vector.types.pojo.Schema;
import org.apache.arrow.vector.util.Text;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
/** Test functions for returning database catalog information. */
public class GetObjectsTests {
private static final BufferAllocator allocator = new RootAllocator(Long.MAX_VALUE);
private static final MockFlightSqlProducer FLIGHT_SQL_PRODUCER = new MockFlightSqlProducer();
- @ClassRule
- public static final FlightServerTestRule FLIGHT_SERVER_TEST_RULE =
- FlightServerTestRule.createStandardTestRule(FLIGHT_SQL_PRODUCER);
+ @RegisterExtension
+ public static FlightServerTestExtension FLIGHT_SERVER_TEST_EXTENSION =
+ FlightServerTestExtension.createStandardTestExtension(FLIGHT_SQL_PRODUCER);
private static final int BASE_ROW_COUNT = 10;
private static AdbcConnection connection;
@@ -82,13 +82,14 @@ private enum ExpectedColumnSelection {
ALL_COLUMNS
}
- @BeforeClass
+ @BeforeAll
public static void setUpBeforeClass() throws AdbcException {
- String uri = String.format("grpc+tcp://%s:%d", "localhost", FLIGHT_SERVER_TEST_RULE.getPort());
+ String uri =
+ String.format("grpc+tcp://%s:%d", "localhost", FLIGHT_SERVER_TEST_EXTENSION.getPort());
Map params = new HashMap<>();
params.put(AdbcDriver.PARAM_URI.getKey(), uri);
- params.put(AdbcDriver.PARAM_USERNAME.getKey(), FlightServerTestRule.DEFAULT_USER);
- params.put(AdbcDriver.PARAM_PASSWORD.getKey(), FlightServerTestRule.DEFAULT_PASSWORD);
+ params.put(AdbcDriver.PARAM_USERNAME.getKey(), FlightServerTestExtension.DEFAULT_USER);
+ params.put(AdbcDriver.PARAM_PASSWORD.getKey(), FlightServerTestExtension.DEFAULT_PASSWORD);
params.put(FlightSqlConnectionProperties.WITH_COOKIE_MIDDLEWARE.getKey(), true);
AdbcDatabase db =
AdbcDriverManager.getInstance()
@@ -291,7 +292,7 @@ public static void setUpBeforeClass() throws AdbcException {
commandGetTablesWithSchema, commandGetTablesWithSchemaResultProducer);
}
- @AfterClass
+ @AfterAll
public static void tearDown() throws Exception {
AutoCloseables.close(connection, FLIGHT_SQL_PRODUCER, allocator);
}
diff --git a/java/driver/flight-sql/src/test/java/org/apache/arrow/adbc/driver/flightsql/MutualTlsTest.java b/java/driver/flight-sql/src/test/java/org/apache/arrow/adbc/driver/flightsql/MutualTlsTest.java
index f98a7c3470..17fa13fb24 100644
--- a/java/driver/flight-sql/src/test/java/org/apache/arrow/adbc/driver/flightsql/MutualTlsTest.java
+++ b/java/driver/flight-sql/src/test/java/org/apache/arrow/adbc/driver/flightsql/MutualTlsTest.java
@@ -30,21 +30,21 @@
import org.apache.arrow.adbc.core.AdbcException;
import org.apache.arrow.adbc.core.AdbcStatusCode;
import org.apache.arrow.adbc.drivermanager.AdbcDriverManager;
-import org.apache.arrow.driver.jdbc.FlightServerTestRule;
+import org.apache.arrow.driver.jdbc.FlightServerTestExtension;
import org.apache.arrow.driver.jdbc.authentication.UserPasswordAuthentication;
import org.apache.arrow.driver.jdbc.utils.FlightSqlTestCertificates;
import org.apache.arrow.driver.jdbc.utils.MockFlightSqlProducer;
import org.apache.arrow.memory.BufferAllocator;
import org.apache.arrow.memory.RootAllocator;
import org.apache.arrow.util.AutoCloseables;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
public class MutualTlsTest {
- @ClassRule public static final FlightServerTestRule FLIGHT_SERVER_TEST_RULE;
+ @RegisterExtension public static FlightServerTestExtension FLIGHT_SERVER_TEST_EXTENSION;
private static final String USER_1 = "user1";
private static final String PASS_1 = "pass1";
@@ -67,8 +67,8 @@ public class MutualTlsTest {
UserPasswordAuthentication authentication =
new UserPasswordAuthentication.Builder().user(USER_1, PASS_1).build();
- FLIGHT_SERVER_TEST_RULE =
- new FlightServerTestRule.Builder()
+ FLIGHT_SERVER_TEST_EXTENSION =
+ new FlightServerTestExtension.Builder()
.authentication(authentication)
.useEncryption(certKey.cert, certKey.key)
.useMTlsClientVerification(FlightSqlTestCertificates.exampleCACert())
@@ -79,7 +79,7 @@ public class MutualTlsTest {
private BufferAllocator allocator;
private Map params;
- @Before
+ @BeforeEach
public void setUp() {
allocator = new RootAllocator(Long.MAX_VALUE);
params = new HashMap<>();
@@ -87,7 +87,7 @@ public void setUp() {
params.put(AdbcDriver.PARAM_PASSWORD.getKey(), PASS_1);
}
- @After
+ @AfterEach
public void tearDown() throws Exception {
AutoCloseables.close(allocator);
}
@@ -147,6 +147,6 @@ private String getUri(boolean withTls) {
String protocol = String.format("grpc%s", withTls ? "+tls" : "+tcp");
return String.format(
"%s://%s:%d",
- protocol, FLIGHT_SERVER_TEST_RULE.getHost(), FLIGHT_SERVER_TEST_RULE.getPort());
+ protocol, FLIGHT_SERVER_TEST_EXTENSION.getHost(), FLIGHT_SERVER_TEST_EXTENSION.getPort());
}
}
diff --git a/java/driver/flight-sql/src/test/java/org/apache/arrow/adbc/driver/flightsql/TlsTest.java b/java/driver/flight-sql/src/test/java/org/apache/arrow/adbc/driver/flightsql/TlsTest.java
index 0301f3d8fb..bcfff64dd0 100644
--- a/java/driver/flight-sql/src/test/java/org/apache/arrow/adbc/driver/flightsql/TlsTest.java
+++ b/java/driver/flight-sql/src/test/java/org/apache/arrow/adbc/driver/flightsql/TlsTest.java
@@ -30,21 +30,21 @@
import org.apache.arrow.adbc.core.AdbcException;
import org.apache.arrow.adbc.core.AdbcStatusCode;
import org.apache.arrow.adbc.drivermanager.AdbcDriverManager;
-import org.apache.arrow.driver.jdbc.FlightServerTestRule;
+import org.apache.arrow.driver.jdbc.FlightServerTestExtension;
import org.apache.arrow.driver.jdbc.authentication.UserPasswordAuthentication;
import org.apache.arrow.driver.jdbc.utils.FlightSqlTestCertificates;
import org.apache.arrow.driver.jdbc.utils.MockFlightSqlProducer;
import org.apache.arrow.memory.BufferAllocator;
import org.apache.arrow.memory.RootAllocator;
import org.apache.arrow.util.AutoCloseables;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
public class TlsTest {
- @ClassRule public static final FlightServerTestRule FLIGHT_SERVER_TEST_RULE;
+ @RegisterExtension public static FlightServerTestExtension FLIGHT_SERVER_TEST_EXTENSION;
private static final String USER_1 = "user1";
private static final String PASS_1 = "pass1";
@@ -59,8 +59,8 @@ public class TlsTest {
UserPasswordAuthentication authentication =
new UserPasswordAuthentication.Builder().user(USER_1, PASS_1).build();
- FLIGHT_SERVER_TEST_RULE =
- new FlightServerTestRule.Builder()
+ FLIGHT_SERVER_TEST_EXTENSION =
+ new FlightServerTestExtension.Builder()
.authentication(authentication)
.useEncryption(certKey.cert, certKey.key)
.producer(new MockFlightSqlProducer())
@@ -70,7 +70,7 @@ public class TlsTest {
private BufferAllocator allocator;
private Map params;
- @Before
+ @BeforeEach
public void setUp() {
allocator = new RootAllocator(Long.MAX_VALUE);
params = new HashMap<>();
@@ -78,7 +78,7 @@ public void setUp() {
params.put(AdbcDriver.PARAM_PASSWORD.getKey(), PASS_1);
}
- @After
+ @AfterEach
public void tearDown() throws Exception {
AutoCloseables.close(allocator);
}
@@ -160,7 +160,7 @@ public void testClientTlsOnGoodHostnameOverride() throws Exception {
params.put(AdbcDriver.PARAM_URI.getKey(), getUri(true));
params.put(
FlightSqlConnectionProperties.TLS_OVERRIDE_HOSTNAME.getKey(),
- FLIGHT_SERVER_TEST_RULE.getHost());
+ FLIGHT_SERVER_TEST_EXTENSION.getHost());
try (InputStream stream = Files.newInputStream(Paths.get(TLS_ROOT_CERTS_PATH))) {
params.put(FlightSqlConnectionProperties.TLS_ROOT_CERTS.getKey(), stream);
AdbcDatabase db =
@@ -174,6 +174,6 @@ private String getUri(boolean withTls) {
String protocol = String.format("grpc%s", withTls ? "+tls" : "+tcp");
return String.format(
"%s://%s:%d",
- protocol, FLIGHT_SERVER_TEST_RULE.getHost(), FLIGHT_SERVER_TEST_RULE.getPort());
+ protocol, FLIGHT_SERVER_TEST_EXTENSION.getHost(), FLIGHT_SERVER_TEST_EXTENSION.getPort());
}
}
diff --git a/java/driver/jdbc-validation-mssqlserver/pom.xml b/java/driver/jdbc-validation-mssqlserver/pom.xml
index 218ab68660..3a23709249 100644
--- a/java/driver/jdbc-validation-mssqlserver/pom.xml
+++ b/java/driver/jdbc-validation-mssqlserver/pom.xml
@@ -72,17 +72,4 @@
test
-
-
-
- jdk8
-
- 1.8
-
-
-
- 12.4.1.jre8
-
-
-
diff --git a/java/pom.xml b/java/pom.xml
index 7129c92d68..75f5fba0d6 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -23,7 +23,7 @@
org.apache
apache
- 18
+ 33
org.apache.arrow.adbc
@@ -96,9 +96,13 @@
- 15.0.0
+ 18.0.0
3.48.1
- 0.15.0-SNAPSHOT
+
+ 11
+ 11
+ 3.5.1
+ 3.10.1
@@ -116,32 +120,32 @@
org.apache.arrow.adbc
adbc-core
- ${adbc.version}
+ ${project.version}
org.apache.arrow.adbc
adbc-driver-flight-sql
- ${adbc.version}
+ ${project.version}
org.apache.arrow.adbc
adbc-driver-jdbc
- ${adbc.version}
+ ${project.version}
org.apache.arrow.adbc
adbc-driver-validation
- ${adbc.version}
+ ${project.version}
org.apache.arrow.adbc
adbc-driver-manager
- ${adbc.version}
+ ${project.version}
org.apache.arrow.adbc
adbc-sql
- ${adbc.version}
+ ${project.version}
@@ -170,11 +174,6 @@
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 3.5.1
-
com.diffplug.spotless
spotless-maven-plugin
@@ -186,11 +185,9 @@
org.apache.maven.plugins
- maven-compiler-plugin
- 3.13.0
+ maven-surefire-plugin
-
- 1.8
+ --add-opens=java.base/java.nio=ALL-UNNAMED
@@ -236,11 +233,9 @@
-
+
org.apache.maven.plugins
maven-javadoc-plugin
- 3.10.1
all,-missing
@@ -248,9 +243,7 @@
https://arrow.apache.org/docs/java/reference/
- 8
public
-
@@ -272,39 +265,6 @@
-
- jdk8
-
- 8
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
-
-
-
-
- jdk9+
-
- [9,]
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
- --add-opens=java.base/java.nio=ALL-UNNAMED
-
-
-
-
-
-
errorprone
@@ -312,11 +272,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.13.0
-
- 1.8
- UTF-8
-XDcompilePolicy=simple
-Xplugin:ErrorProne -Xep:NullAway:ERROR -XepOpt:NullAway:AnnotatedPackages=com.uber