Skip to content

Commit

Permalink
Java 21 (#1928)
Browse files Browse the repository at this point in the history
* Introducing Java 21

* Gradle 8.11, fixed CI

* Gradle 8.10
  • Loading branch information
szczygiel-m authored Nov 21, 2024
1 parent 37ccfd4 commit f4099e4
Show file tree
Hide file tree
Showing 20 changed files with 112 additions and 95 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,10 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK 17
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 17
java-version: 21
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up JDK 17
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 17
java-version: 21
distribution: 'temurin'

# Initializes the CodeQL tools for scanning.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '21'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
Expand Down
2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 9 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@ scmVersion {
versionCreator 'versionWithBranch'
}

java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}

nexusPublishing {
connectTimeout = Duration.ofMinutes(getIntProperty('publishingTimeoutInMin', 10))
clientTimeout = Duration.ofMinutes(getIntProperty('publishingTimeoutInMin', 10))
Expand All @@ -43,9 +49,6 @@ allprojects {
group = 'pl.allegro.tech.hermes'
version = scmVersion.version

sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17

project.ext.versions = [
kafka : '2.8.2',
guava : '33.1.0-jre',
Expand Down Expand Up @@ -195,9 +198,9 @@ subprojects {

test {
reports {
html.enabled = false
junitXml.enabled = true
junitXml.destination = file("$buildDir/test-results/$name")
html.required = false
junitXml.required = true
junitXml.outputLocation = file("$buildDir/test-results/$name")
}

testLogging {
Expand Down
4 changes: 2 additions & 2 deletions docker/latest/consumers/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
FROM gradle:7.6-jdk17 AS builder
FROM gradle:7.6-jdk21 AS builder

COPY --chown=gradle:gradle . /home/gradle/src/
WORKDIR /home/gradle/src/
RUN gradle clean distZip -Pdistribution

FROM eclipse-temurin:17.0.7_7-jre
FROM eclipse-temurin:21-jre

RUN apt-get update \
&& apt-get -y install unzip wget bash \
Expand Down
4 changes: 2 additions & 2 deletions docker/latest/frontend/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
FROM gradle:7.6-jdk17 AS builder
FROM gradle:7.6-jdk21 AS builder

COPY --chown=gradle:gradle . /home/gradle/src/
WORKDIR /home/gradle/src/
RUN gradle clean distZip -Pdistribution

FROM eclipse-temurin:17.0.7_7-jre
FROM eclipse-temurin:21-jre

RUN apt-get update \
&& apt-get -y install unzip wget bash \
Expand Down
4 changes: 2 additions & 2 deletions docker/latest/management/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
FROM gradle:7.6-jdk17 AS builder
FROM gradle:7.6-jdk21 AS builder

COPY --chown=gradle:gradle . /home/gradle/src/
WORKDIR /home/gradle/src/
RUN gradle clean distZip -Pdistribution

FROM eclipse-temurin:17.0.7_7-jre
FROM eclipse-temurin:21-jre

RUN apt-get update \
&& apt-get -y install unzip wget bash \
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
4 changes: 3 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
44 changes: 31 additions & 13 deletions gradlew
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
#

##############################################################################
#
Expand Down Expand Up @@ -55,7 +57,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
Expand All @@ -80,13 +82,12 @@ do
esac
done

APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit

APP_NAME="Gradle"
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
' "$PWD" ) || exit

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
Expand Down Expand Up @@ -133,22 +134,29 @@ location of your Java installation."
fi
else
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi

# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
Expand Down Expand Up @@ -193,18 +201,28 @@ if "$cygwin" || "$msys" ; then
done
fi

# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'

# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.

set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \
"$@"

# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi

# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
Expand Down
37 changes: 21 additions & 16 deletions gradlew.bat
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@rem SPDX-License-Identifier: Apache-2.0
@rem

@if "%DEBUG%" == "" @echo off
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
Expand All @@ -25,7 +27,8 @@
if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

Expand All @@ -40,13 +43,13 @@ if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
if %ERRORLEVEL% equ 0 goto execute

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
echo. 1>&2
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2

goto fail

Expand All @@ -56,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto execute

echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
echo. 1>&2
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2

goto fail

Expand All @@ -75,13 +78,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar

:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
if %ERRORLEVEL% equ 0 goto mainEnd

:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%

:mainEnd
if "%OS%"=="Windows_NT" endlocal
Expand Down
2 changes: 1 addition & 1 deletion hermes-frontend/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ dependencies {
api group: 'org.springframework.boot', name: 'spring-boot-starter', version: versions.spring
api group: 'io.undertow', name: 'undertow-core', version: versions.undertow
// Did not update that as we're trying to abandon buffers
api(group: 'net.openhft', name: 'chronicle-map', version: '3.22.9') {
api(group: 'net.openhft', name: 'chronicle-map', version: '3.25ea6') {
exclude group: 'net.openhft', module: 'chronicle-analytics'
}
implementation group: 'commons-io', name: 'commons-io', version: '2.16.1'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package pl.allegro.tech.hermes.frontend.producer.kafka

import com.codahale.metrics.MetricRegistry
import io.micrometer.core.instrument.simple.SimpleMeterRegistry
import org.apache.commons.lang3.tuple.ImmutablePair
import org.apache.kafka.clients.admin.AdminClient
Expand Down Expand Up @@ -85,7 +84,7 @@ class LocalDatacenterMessageProducerIntegrationTest extends Specification {
String datacenter = "dc"

@Shared
ScheduledExecutorService chaosScheduler = Executors.newSingleThreadScheduledExecutor();
ScheduledExecutorService chaosScheduler = Executors.newSingleThreadScheduledExecutor()

@Shared
MetricsFacade metricsFacade = new MetricsFacade(new SimpleMeterRegistry())
Expand Down
8 changes: 8 additions & 0 deletions hermes-management/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,14 @@ tasks.register('prepareIndexTemplate') {
}
}

tasks.named('compileTestGroovy') {
dependsOn 'attachHermesConsole'
}

tasks.named('javadoc') {
dependsOn 'attachHermesConsole'
}

jar.dependsOn(attachHermesConsole, 'prepareIndexTemplate')

run.dependsOn(attachHermesConsole, 'prepareIndexTemplate')
Expand Down
7 changes: 2 additions & 5 deletions hermes-tracker-elasticsearch/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,12 @@ dependencies {
implementation project(':hermes-common')
implementation project(':hermes-tracker')
implementation 'org.slf4j:slf4j-api:2.0.13'
// TODO: client has to have the same major version as backend: https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/client.html
// we need to use test-containers for elasticsearch server to able to use newer client.
api group: 'org.elasticsearch.client', name: 'transport', version: '6.8.12'
api group: 'org.elasticsearch.client', name: 'transport', version: '7.10.2'

testImplementation project(path: ":hermes-tracker", configuration: "testArtifacts")
testImplementation project(path: ":hermes-test-helper")
testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock
testImplementation group: 'org.spockframework', name: 'spock-junit4', version: versions.spock
// this should be migrated to testcontainers
testImplementation 'pl.allegro.tech:embedded-elasticsearch:2.10.0'
testImplementation "org.testcontainers:elasticsearch:1.20.3"
testRuntimeOnly group: 'org.junit.vintage', name: 'junit-vintage-engine', version: versions.junit_jupiter
}
Loading

0 comments on commit f4099e4

Please sign in to comment.