This is an automated email from the ASF dual-hosted git repository.

colegreer pushed a commit to branch TINKERPOP-3172
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 7c83997b88f8a3f6898a8db52055c0cbbe7ab330
Author: Cole-Greer <[email protected]>
AuthorDate: Thu Jul 10 18:25:50 2025 -0700

    Update java language version to 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 edb201b985..c74b13c89d 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 e202953491..15e1e38a4c 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.
 
 The Gremlin Console is a 
link:http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop[REPL 
environment],
diff --git a/docs/src/upgrade/release-3.8.x.asciidoc 
b/docs/src/upgrade/release-3.8.x.asciidoc
index e8ed68dee1..0379bfafd7 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.
+
 ==== Removal of Vertex/ReferenceVertex from grammar
 
 `StructureVertex`, previously used to construct new vertices in the grammar, 
now been removed. The `V()` step, as well
@@ -385,6 +389,10 @@ See: 
link:https://issues.apache.org/jira/browse/TINKERPOP-3121[TINKERPOP-3121]
 
 ==== 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>

Reply via email to