Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ ARROW_REPO=ghcr.io/apache/arrow-dev
ULIMIT_CORE=-1

# Default versions for various dependencies
JDK=11
JDK=17
MAVEN=3.9.9

# Versions for various dependencies used to build artifacts
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/rc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ jobs:
run: |
set -e
# make brew Java available to CMake
export JAVA_HOME=$(brew --prefix openjdk@11)/libexec/openjdk.jdk/Contents/Home
export JAVA_HOME=$(brew --prefix openjdk@17)/libexec/openjdk.jdk/Contents/Home
ci/scripts/jni_macos_build.sh . arrow build jni
- name: Compress into single artifact to keep directory structure
run: tar -cvzf jni-macos-${{ matrix.platform.arch }}.tar.gz jni/
Expand Down Expand Up @@ -317,7 +317,7 @@ jobs:
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: '11'
java-version: '17'
distribution: 'temurin'
- name: Download Timezone Database
shell: bash
Expand Down
10 changes: 6 additions & 4 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,16 @@ jobs:
strategy:
fail-fast: false
matrix:
jdk: [11, 17, 21, 23]
jdk: [17, 21, 25]
maven: [3.9.9]
image: [ubuntu, conda-jni-cdata]
include:
- image: ubuntu
name: "Ubuntu"
- image: conda-jni-cdata
name: "Conda JNI"
# JDK 25 is early-access; Docker images may not be available yet
continue-on-error: ${{ matrix.jdk == 25 }}
env:
JDK: ${{ matrix.jdk }}
MAVEN: ${{ matrix.maven }}
Expand Down Expand Up @@ -88,10 +90,10 @@ jobs:
matrix:
include:
- arch: AMD64
jdk: 11
jdk: 17
macos: 15-intel
- arch: AArch64
jdk: 11
jdk: 17
macos: latest
steps:
- name: Set up Java
Expand Down Expand Up @@ -123,7 +125,7 @@ jobs:
strategy:
fail-fast: false
matrix:
jdk: [11]
jdk: [17]
steps:
- name: Set up Java
uses: actions/setup-java@v5
Expand Down
2 changes: 1 addition & 1 deletion Brewfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@
# specific language governing permissions and limitations
# under the License.

brew "openjdk@11"
brew "openjdk@17"
brew "sccache"
8 changes: 4 additions & 4 deletions bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,10 @@ under the License.
<properties>
<arrow.vector.classifier></arrow.vector.classifier>
<!-- org.apache:apache overrides -->
<minimalJavaBuildVersion>11</minimalJavaBuildVersion>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.release>11</maven.compiler.release>
<minimalJavaBuildVersion>17</minimalJavaBuildVersion>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.release>17</maven.compiler.release>
</properties>

<dependencyManagement>
Expand Down
2 changes: 1 addition & 1 deletion ci/docker/conda-jni.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

FROM ghcr.io/mamba-org/micromamba:ubuntu24.04

ARG jdk=11
ARG jdk=17
ARG maven=3.9.9

RUN micromamba install -y \
Expand Down
2 changes: 1 addition & 1 deletion ci/docker/vcpkg-jni.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ FROM ${base}

# Install Java
# We need Java for JNI headers, but we don't invoke Maven in this build.
ARG java=11
ARG java=17
RUN dnf install -y java-$java-openjdk-devel && dnf clean all

# For ci/scripts/{cpp,java}_*.sh
Expand Down
4 changes: 2 additions & 2 deletions compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ services:
# docker compose run ubuntu
# Parameters:
# MAVEN: 3.9.9
# JDK: 11, 17, 21
# JDK: 17, 21
image: ${ARCH}/maven:${MAVEN}-eclipse-temurin-${JDK}
volumes:
- .:/arrow-java:delegated
Expand All @@ -60,7 +60,7 @@ services:
# docker compose run conda-jni-cdata
# Parameters:
# MAVEN: 3.9.9
# JDK: 11, 17, 21
# JDK: 17, 21
image: ${REPO}:${ARCH}-conda-java-${JDK}-maven-${MAVEN}-jni-integration
build:
context: .
Expand Down
8 changes: 4 additions & 4 deletions docs/source/cdata.rst
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,8 @@ without writing JNI bindings ourselves.
<version>1.0-SNAPSHOT</version>

<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<arrow.version>9.0.0</arrow.version>
</properties>
<dependencies>
Expand Down Expand Up @@ -237,8 +237,8 @@ For this example, we will build a JAR with all dependencies bundled.
<artifactId>cpptojava</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<arrow.version>9.0.0</arrow.version>
</properties>
<dependencies>
Expand Down
16 changes: 8 additions & 8 deletions docs/source/developers/building.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Arrow Java uses the `Maven <https://maven.apache.org/>`_ build system.

Building requires:

* JDK 11+
* JDK 17+
* Maven 3+

.. note::
Expand Down Expand Up @@ -345,7 +345,7 @@ configuration file usually located under ``${HOME}/.m2`` with the following snip
<toolchain>
<type>jdk</type>
<provides>
<version>21</version> <!-- Replace with the corresponding JDK version: 11, 17, ... -->
<version>21</version> <!-- Replace with the corresponding JDK version: 17, 21, ... -->
<vendor>temurin</vendor> <!-- Replace with the vendor/distribution: temurin, oracle, zulu ... -->
</provides>
<configuration>
Expand Down Expand Up @@ -383,11 +383,11 @@ Arrow repository, and update the following settings:
right click the directory, and select Mark Directory as > Generated Sources
Root. There is no need to mark other generated sources directories, as only
the ``vector`` module generates sources.
* For JDK 11, due to an `IntelliJ bug
<https://youtrack.jetbrains.com/issue/IDEA-201168>`__, you must go into
* Due to an `IntelliJ bug
<https://youtrack.jetbrains.com/issue/IDEA-201168>`__, you may need to go into
Settings > Build, Execution, Deployment > Compiler > Java Compiler and disable
"Use '--release' option for cross-compilation (Java 9 and later)". Otherwise
you will get an error like "package sun.misc does not exist".
you may get an error like "package sun.misc does not exist".
* You may want to disable error-prone entirely if it gives spurious
warnings (disable both error-prone profiles in the Maven tool window
and "Reload All Maven Projects").
Expand All @@ -397,7 +397,7 @@ Arrow repository, and update the following settings:
* To enable debugging JNI-based modules like ``dataset``,
activate specific profiles in the Maven tab under "Profiles".
Ensure the profiles ``arrow-c-data``, ``arrow-jni``, ``generate-libs-cdata-all-os``,
``generate-libs-jni-macos-linux``, and ``jdk11+`` are enabled, so that the
``generate-libs-jni-macos-linux``, and ``jdk17+`` are enabled, so that the
IDE can build them and enable debugging.

You may not need to update all of these settings if you build/test with the
Expand Down Expand Up @@ -478,8 +478,8 @@ Installing Manually
.. code-block:: xml

<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<arrow.version>9.0.0.dev501</arrow.version>
</properties>

Expand Down
2 changes: 1 addition & 1 deletion docs/source/flight_sql_jdbc_driver.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Flight SQL.
Installation and Requirements
=============================

The driver is compatible with JDK 11+. Note that the following JVM
The driver is compatible with JDK 17+. Note that the following JVM
parameter is required:

.. code-block:: shell
Expand Down
4 changes: 2 additions & 2 deletions docs/source/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ Java modules are regularly built and tested on macOS and Linux distributions.
Java Compatibility
==================

Java modules are compatible with JDK 11 and above. Currently, JDK versions
11, 17, 21, and latest are tested in CI.
Java modules are compatible with JDK 17 and above. Currently, JDK versions
17, 21, and latest are tested in CI.

Note that some JDK internals must be exposed by
adding ``--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED`` to the ``java`` command:
Expand Down
2 changes: 1 addition & 1 deletion docs/source/jdbc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ mapping, with additional support for the UUID extension type noted below.
JDBC value, because a JDBC Timestamp is in UTC, and we have no
timezone information. In this case, the default binder will call
`setTimestamp(int, Timestamp)
<https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/PreparedStatement.html#setTimestamp(int,java.sql.Timestamp)>`_,
<https://docs.oracle.com/en/java/javase/17/docs/api/java.sql/java/sql/PreparedStatement.html#setTimestamp(int,java.sql.Timestamp)>`_,
which will lead to the driver using the "default timezone" (that of
the Java VM).
* \(3) For the Flight SQL JDBC driver, the Arrow UUID extension type
Expand Down
2 changes: 1 addition & 1 deletion docs/source/memory.rst
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ How this works:
.. _`newChildAllocator`: https://arrow.apache.org/java/current/reference/org.apache.arrow.memory.core/org/apache/arrow/memory/RootAllocator.html#newChildAllocator-java.lang.String-org.apache.arrow.memory.AllocationListener-long-long-
.. _`Netty`: https://netty.io/wiki/
.. _`sun.misc.unsafe`: https://web.archive.org/web/20210929024401/http://www.docjar.com/html/api/sun/misc/Unsafe.java.html
.. _`Direct Memory`: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html
.. _`Direct Memory`: https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/nio/ByteBuffer.html
.. _`ReferenceManager`: https://arrow.apache.org/java/current/reference/org.apache.arrow.memory.core/org/apache/arrow/memory/ReferenceManager.html
.. _`ReferenceManager.release`: https://arrow.apache.org/java/current/reference/org.apache.arrow.memory.core/org/apache/arrow/memory/ReferenceManager.html#release--
.. _`ReferenceManager.retain`: https://arrow.apache.org/java/current/reference/org.apache.arrow.memory.core/org/apache/arrow/memory/ReferenceManager.html#retain--
Expand Down
10 changes: 5 additions & 5 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -119,10 +119,10 @@ under the License.
<!-- List of add-opens arg line arguments for tests -->
<surefire.add-opens.argLine>--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED</surefire.add-opens.argLine>
<!-- org.apache:apache overrides -->
<minimalJavaBuildVersion>11</minimalJavaBuildVersion>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.release>11</maven.compiler.release>
<minimalJavaBuildVersion>17</minimalJavaBuildVersion>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.release>17</maven.compiler.release>
<!--
Downgrade maven-jar-plugin until https://github.com/codehaus-plexus/plexus-archiver/issues/332
is addressed
Expand Down Expand Up @@ -1246,7 +1246,7 @@ under the License.
<property>arrow.test.jdk-version</property>
<message>"JDK version used for test must be specified."</message>
<regex>^\d{2,}</regex>
<regexMessage>"JDK version used for test must be 11, 17, 21, ..."</regexMessage>
<regexMessage>"JDK version used for test must be 17, 21, ..."</regexMessage>
</requireProperty>
</rules>
</configuration>
Expand Down
4 changes: 2 additions & 2 deletions vector/src/main/codegen/templates/HolderReaderImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ public void read(Nullable${name}Holder h) {
<#elseif minor.class == "Duration">
return DurationVector.toDuration(holder.value, holder.unit);
<#elseif minor.class == "Bit" >
return new Boolean(holder.value != 0);
return Boolean.valueOf(holder.value != 0);
<#elseif minor.class == "Decimal">
byte[] bytes = new byte[${type.width}];
holder.buffer.getBytes(holder.start, bytes, 0, ${type.width});
Expand All @@ -151,7 +151,7 @@ public void read(Nullable${name}Holder h) {
<#elseif minor.class == "TimeStampNano">
return DateUtility.getLocalDateTimeFromEpochNano(holder.value);
<#else>
${friendlyType} value = new ${friendlyType}(this.holder.value);
${friendlyType} value = ${friendlyType}.valueOf(this.holder.value);
return value;
</#if>
}
Expand Down
Loading