This is an automated email from the ASF dual-hosted git repository.
colegreer pushed a commit to branch 3.8-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/3.8-dev by this push:
new 7b3f394bcc Update java language version to 11 (#3155)
7b3f394bcc is described below
commit 7b3f394bcc668278d8578c0f0ff1519de980f99c
Author: Cole Greer <[email protected]>
AuthorDate: Fri Jul 18 13:18:39 2025 -0700
Update java language version to 11 (#3155)
https://issues.apache.org/jira/browse/TINKERPOP-3172
Drops support for Java 8 and sets the minimum language version to Java 11.
---
.github/workflows/build-test.yml | 14 -----
CHANGELOG.asciidoc | 1 +
docker/Dockerfile | 5 +-
docs/site/home/download.html | 2 +-
.../dev/developer/development-environment.asciidoc | 4 +-
docs/src/reference/gremlin-applications.asciidoc | 4 +-
docs/src/reference/gremlin-variants.asciidoc | 2 +-
docs/src/tutorials/getting-started/index.asciidoc | 2 +-
docs/src/upgrade/release-3.8.x.asciidoc | 8 +++
gremlin-console/src/main/bin/gremlin-java8.bat | 59 ----------------------
pom.xml | 32 +++---------
11 files changed, 23 insertions(+), 110 deletions(-)
diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml
index 590025d253..f009bbf6ff 100644
--- a/.github/workflows/build-test.yml
+++ b/.github/workflows/build-test.yml
@@ -46,20 +46,6 @@ jobs:
uses: codecov/codecov-action@v5
with:
directory: ./gremlin-tools/gremlin-coverage/target/site
- java-jdk8:
- name: mvn clean install - jdk8
- timeout-minutes: 45
- needs: smoke
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - name: Set up JDK 8
- uses: actions/setup-java@v4
- with:
- java-version: '8'
- distribution: 'temurin'
- - name: Build with Maven
- run: mvn clean install -pl -:gremlin-javascript -Dci --batch-mode
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
gremlin-server-default:
name: gremlin-server default
timeout-minutes: 45
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 8bc743b338..d598be35b7 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -73,6 +73,7 @@ This release also includes changes from <<release-3-7-XXX,
3.7.XXX>>.
* Deprecated `ProcessLimitedStandardSuite` and `ProcessLimitedComputerSuite`
in favor of `ProcessEmbeddedStandardSuite` and `ProcessEmbeddedComputerSuite`
respectively.
* Deprecated `ProcessStandardSuite` and the `ProcessComputerSuite` in favor of
Gherkin testing and the `ProcessEmbeddedStandardSuite` and
`ProcessEmbeddedComputerSuite` for testing JVM-specific Gremlin behaviors.
* Removed lambda oriented Gremlin testing from Gherkin test suite.
+* Increase minimum Java version from 1.8 to 11 for building and running.
* Moved all lambda oriented Gremlin tests to `LambdaStepTest` in the Java test
suite.
* Removed the `@RemoteOnly` testing tag in Gherkin as lambda tests have all
been moved to the Java test suite.
* Updated gremlin-javascript to use GraphBinary as default instead of
GraphSONv3
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 7d978b702c..d82f6e5906 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -29,9 +29,7 @@ RUN apt-get install apt-transport-https gnupg ca-certificates
RUN sh -c 'echo "deb https://download.mono-project.com/repo/ubuntu
stable-focal main" | tee /etc/apt/sources.list.d/mono-official-stable.list'
RUN apt-get update
-# include both java 8/11 so that we can use the same docker image for future
builds on that version of the jdk as we do
-# for the older release branches. the java version to use is just controlled
by JAVA_HOME hardcoded below
-RUN apt-get install -y openjdk-8-jdk openjdk-11-jdk gawk git maven
openssh-server subversion zip
+RUN apt-get install -y openjdk-11-jdk gawk git maven openssh-server subversion
zip
RUN apt-get install -y --force-yes dotnet-sdk-8.0 mono-devel
ENV DEBIAN_FRONTEND=noninteractive
@@ -45,7 +43,6 @@ RUN python3 -m pip install --upgrade pip
RUN pip install virtualenv
RUN pip install virtualenvwrapper --no-deps
-RUN rm -rf /var/lib/apt/lists/* /var/cache/openjdk-8-jdk
RUN rm -rf /var/lib/apt/lists/* /var/cache/openjdk-11-jdk
RUN sed -i 's@PermitRootLogin without-password@PermitRootLogin yes@'
/etc/ssh/sshd_config
diff --git a/docs/site/home/download.html b/docs/site/home/download.html
index ad70377e10..6f81ec548d 100644
--- a/docs/site/home/download.html
+++ b/docs/site/home/download.html
@@ -329,7 +329,7 @@ limitations under the License.
<div class="d-flex mb-3 align-items-start">
<img
src="img/download/information-circle-outline.svg" class="img-fluid me-2 pt-1"
alt="img">
<div>
- Gremlin Console and Gremlin Server are
compatible with Java 8/11.
+ Gremlin Console and Gremlin Server are
compatible with Java 11/17.
</div>
</div>
<div class="d-flex mb-3 align-items-start">
diff --git a/docs/src/dev/developer/development-environment.asciidoc
b/docs/src/dev/developer/development-environment.asciidoc
index 248dcdb6fe..65d5f6ab08 100644
--- a/docs/src/dev/developer/development-environment.asciidoc
+++ b/docs/src/dev/developer/development-environment.asciidoc
@@ -26,9 +26,7 @@ image:conspiracy.png[]
[[system-configuration]]
== System Configuration
-At a minimum, development of TinkerPop requires
link:https://openjdk.java.net/projects/jdk8/[Java 8] but it is
-preferable to use link:https://openjdk.java.net/projects/jdk/11/[Java 11]
cross-compiled to Java 8 (the
-cross-compilation happens automatically as part of the build). Starting with
3.7.0, you can also build with
+At a minimum, development of TinkerPop requires
link:https://openjdk.java.net/projects/jdk/11/[Java 11]. Since 3.7.0, you can
also build with
link:https://openjdk.org/projects/jdk/17/[Java 17]. Note, however, that there
are some issues with deep reflection
so there are `--add-opens` JVM options included in the pom files to enable
this to work. Maven (requiring a minimum of
link:https://maven.apache.org/download.cgi[Maven 3.5.3+]) is used as the
common build system, which even
diff --git a/docs/src/reference/gremlin-applications.asciidoc
b/docs/src/reference/gremlin-applications.asciidoc
index 99afcf2667..f5c40e491c 100644
--- a/docs/src/reference/gremlin-applications.asciidoc
+++ b/docs/src/reference/gremlin-applications.asciidoc
@@ -70,7 +70,7 @@ analysis, small to medium sized data loading projects and
other exploratory func
highly extensible, featuring a rich plugin system that allows new tools,
commands,
link:http://en.wikipedia.org/wiki/Domain-specific_language[DSLs], etc. to be
exposed to users.
-To start the Gremlin Console, run `gremlin.sh` or `gremlin.bat`
(`gremlin-java8.bat` for Java 8):
+To start the Gremlin Console, run `gremlin.sh` or `gremlin.bat`:
[source,text]
----
@@ -1066,7 +1066,7 @@ The following table describes the various YAML
configuration options that Gremli
|ssl.enabled |Determines if SSL is turned on or not. |false
|ssl.keyStore |The private key in JKS or PKCS#12 format. |_none_
|ssl.keyStorePassword |The password of the `keyStore` if it is
password-protected. |_none_
-|ssl.keyStoreType |`JKS` (Java 8 default) or `PKCS12` (Java 9+ default) |_none_
+|ssl.keyStoreType |`PKCS12` |_none_
|ssl.needClientAuth | Optional. One of NONE, REQUIRE. Enables client
certificate authentication at the enforcement level specified. Can be used in
combination with Authenticator. |_none_
|ssl.sslCipherSuites |The list of JSSE ciphers to support for SSL connections.
If specified, only the ciphers that are listed and supported will be enabled.
If not specified, the JVM default is used. |_none_
|ssl.sslEnabledProtocols |The list of SSL protocols to support for SSL
connections. If specified, only the protocols that are listed and supported
will be enabled. If not specified, the JVM default is used. |_none_
diff --git a/docs/src/reference/gremlin-variants.asciidoc
b/docs/src/reference/gremlin-variants.asciidoc
index 7b73c22e94..165b8a27bb 100644
--- a/docs/src/reference/gremlin-variants.asciidoc
+++ b/docs/src/reference/gremlin-variants.asciidoc
@@ -789,7 +789,7 @@ The following table describes the various configuration
options for the Gremlin
|connectionPool.keepAliveInterval |Length of time in milliseconds to wait on
an idle connection before sending a keep-alive request. Set to zero to disable
this feature. |180000
|connectionPool.keyStore |The private key in JKS or PKCS#12 format. |_none_
|connectionPool.keyStorePassword |The password of the `keyStore` if it is
password-protected. |_none_
-|connectionPool.keyStoreType |`JKS` (Java 8 default) or `PKCS12` (Java 9+
default)|_none_
+|connectionPool.keyStoreType |`PKCS12` |_none_
|connectionPool.maxContentLength |The maximum length in bytes that a message
can be sent to the server. This number can be no greater than the setting of
the same name in the server configuration. |65536
|connectionPool.maxInProcessPerConnection |The maximum number of in-flight
requests that can occur on a connection. |4
|connectionPool.maxSimultaneousUsagePerConnection |The maximum number of times
that a connection can be borrowed from the pool simultaneously. |16
diff --git a/docs/src/tutorials/getting-started/index.asciidoc
b/docs/src/tutorials/getting-started/index.asciidoc
index 62dff045e8..e1b1f8e5d8 100644
--- a/docs/src/tutorials/getting-started/index.asciidoc
+++ b/docs/src/tutorials/getting-started/index.asciidoc
@@ -72,7 +72,7 @@ plugin activated: tinkerpop.tinkergraph
gremlin>
----
-TIP: Windows users may use the included `bin/gremlin.bat`
(`bin/gremlin-java8.bat` for Java 8) file to start the Gremlin
+TIP: Windows users may use the included `bin/gremlin.bat` file to start the
Gremlin
Console.
TIP: If you make a mistake when entering a command and the prompt gets "stuck"
(for example, after a syntax error or an
diff --git a/docs/src/upgrade/release-3.8.x.asciidoc
b/docs/src/upgrade/release-3.8.x.asciidoc
index 81515243e0..916521df8b 100644
--- a/docs/src/upgrade/release-3.8.x.asciidoc
+++ b/docs/src/upgrade/release-3.8.x.asciidoc
@@ -30,6 +30,10 @@ complete list of all the modifications that are part of this
release.
=== Upgrading for Users
+==== Set minimum Java version to 11
+
+TinkerPop 3.8 requires a minimum of Java 11 for building and running. Support
for Java 1.8 has been dropped.
+
==== Auto-promotion of Numbers
Previously, operations like `sum` or `sack` that involved mathematical
calculations did not automatically promote the
@@ -396,6 +400,10 @@
link:https://issues.apache.org/jira/browse/TINKERPOP-2974[TINKERPOP-2974]
==== Graph System Providers
+==== Set minimum Java version to 11
+
+TinkerPop 3.8 requires a minimum of Java 11 for building and running. Support
for Java 1.8 has been dropped.
+
===== Test Suite Changes
In 3.6.0, providers were encouraged to begin using the Gherkin test suite for
testing Gremlin rather than the original
diff --git a/gremlin-console/src/main/bin/gremlin-java8.bat
b/gremlin-console/src/main/bin/gremlin-java8.bat
deleted file mode 100644
index 227633f975..0000000000
--- a/gremlin-console/src/main/bin/gremlin-java8.bat
+++ /dev/null
@@ -1,59 +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.
-
-:: Windows launcher script for Gremlin Console
-:: Use this with Java8 as it contains a workaround for Windows Path Loading
for Java8
-
-@echo off
-SETLOCAL EnableDelayedExpansion
-
-set work=%CD%
-if [%work:~-3%]==[bin] cd ..
-set work=%CD%
-
-set CONSOLE_JARS=
-
-FOR %%i in (.\lib\*.jar .\lib\*.JAR) do (
- :: get lib jars with a relative path as there is a hard limit to length of
a variable
- set CONSOLE_JARS=!CONSOLE_JARS!;%%i
-)
-
-cd ext
-FOR /r %%j in (*.jar *.JAR) do (
- :: get all ext jars with a relative path as there is a hard limit to
length of a variable
- SET FULL_PATH=%%j
- set CONSOLE_JARS=!CONSOLE_JARS!;.!FULL_PATH:%work%=!
-)
-cd ..
-
-set GREMLIN_LOG_LEVEL=WARN
-
-:: Process options
-
-:parse
-IF "%~1"=="" GOTO endparse
-IF "%~1"=="-l" set GREMLIN_LOG_LEVEL=%~2
-SHIFT
-GOTO parse
-:endparse
-
-:: workaround for https://issues.apache.org/jira/browse/GROOVY-6453
-set JAVA_OPTIONS=-Xms32m -Xmx512m -Djline.terminal=none
-
-:: Launch the application
-
-java %JAVA_OPTIONS% %JAVA_ARGS% -cp "%CONSOLE_JARS%"
"-Dlogback.configurationFile=conf/logback.xml"
"-Dgremlin.logback.level=%GREMLIN_LOG_LEVEL%"
org.apache.tinkerpop.gremlin.console.Console %*
diff --git a/pom.xml b/pom.xml
index 3154cec546..6cd5183705 100644
--- a/pom.xml
+++ b/pom.xml
@@ -183,7 +183,7 @@ limitations under the License.
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<skipIntegrationTests>true</skipIntegrationTests>
- <suresafeArgs> </suresafeArgs>
+ <suresafeArgs>--illegal-access=permit</suresafeArgs>
<!--
This file will come from the root of each modules test/resources/
directories. logback-silent.xml will
@@ -246,7 +246,7 @@ limitations under the License.
<rules>
<DependencyConvergence/>
<requireJavaVersion>
- <version>[1.8,18)</version>
+ <version>[11,18)</version>
</requireJavaVersion>
<requireMavenVersion>
<version>[3.5.3,)</version>
@@ -586,15 +586,14 @@ limitations under the License.
<basedir>${basedir}</basedir>
</configuration>
</plugin>
- <!-- there is a jdk11 profile that will be enabled if built
with that version - these settings will be overriden -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.0</version>
<configuration>
- <release>8</release>
- <source>8</source>
- <target>8</target>
+ <release>11</release>
+ <source>11</source>
+ <target>11</target>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
@@ -699,7 +698,7 @@ limitations under the License.
<artifactId>maven-javadoc-plugin</artifactId>
<version>${javadoc-plugin.version}</version>
<configuration>
- <source>1.8</source>
+ <source>11</source>
</configuration>
</plugin>
<plugin>
@@ -707,7 +706,7 @@ limitations under the License.
<artifactId>gmavenplus-plugin</artifactId>
<version>2.1.0</version>
<configuration>
- <targetBytecode>1.8</targetBytecode>
+ <targetBytecode>11</targetBytecode>
</configuration>
</plugin>
<plugin>
@@ -758,13 +757,6 @@ limitations under the License.
<groupId>org.apache.commons</groupId>
<artifactId>commons-configuration2</artifactId>
<version>${commons.configuration.version}</version>
- <exclusions>
- <!-- still on 1.8 and we need 1.9 -->
- <exclusion>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-text</artifactId>
- </exclusion>
- </exclusions>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -930,16 +922,6 @@ limitations under the License.
</dependencyManagement>
<profiles>
- <profile>
- <id>jdk11</id>
- <activation>
- <jdk>[11,18)</jdk>
- </activation>
- <properties>
- <suresafeArgs>--illegal-access=permit</suresafeArgs>
- </properties>
- </profile>
-
<profile>
<id>asciidoc</id>
<activation>