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>
