From d795c433e3d05ddab093dfc33fcba175d16ea3ce Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Thu, 18 May 2023 11:38:02 +0200 Subject: [PATCH 01/27] update gradle to 7.6 --- build.gradle | 24 +- gradle.properties | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 257 +++++++++++++--------- hermes-api/build.gradle | 24 +- hermes-client/build.gradle | 32 +-- hermes-common/build.gradle | 54 ++--- hermes-consumers/build.gradle | 42 ++-- hermes-frontend/build.gradle | 36 +-- hermes-management/build.gradle | 50 ++--- hermes-metrics/build.gradle | 6 +- hermes-mock/build.gradle | 30 +-- hermes-schema/build.gradle | 12 +- hermes-test-helper/build.gradle | 56 ++--- hermes-tracker-elasticsearch/build.gradle | 16 +- hermes-tracker/build.gradle | 6 +- integration/build.gradle | 64 +++--- 17 files changed, 382 insertions(+), 331 deletions(-) diff --git a/build.gradle b/build.gradle index 924ed56faf..710ecb79b9 100644 --- a/build.gradle +++ b/build.gradle @@ -44,8 +44,8 @@ allprojects { group = 'pl.allegro.tech.hermes' version = scmVersion.version - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 project.ext.versions = [ kafka : '2.8.2', @@ -77,16 +77,16 @@ allprojects { } dependencies { - compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.12' - compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.9' - - testCompile group: 'junit', name: 'junit', version: '4.11' - testCompile group: 'com.tngtech.java', name: 'junit-dataprovider', version: '1.10.0' - testCompile group: 'pl.pragmatists', name: 'JUnitParams', version: '1.0.2' - testCompile group: 'org.mockito', name: 'mockito-all', version: '1.9.5' - testCompile group: 'org.assertj', name: 'assertj-core', version: versions.assertj - testCompile group: 'com.jayway.awaitility', name: 'awaitility', version: '1.6.1' - testCompile group: 'com.googlecode.catch-exception', name: 'catch-exception', version: '1.2.0' + implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.12' + implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.9' + + testImplementation group: 'junit', name: 'junit', version: '4.11' + testImplementation group: 'com.tngtech.java', name: 'junit-dataprovider', version: '1.10.0' + testImplementation group: 'pl.pragmatists', name: 'JUnitParams', version: '1.0.2' + testImplementation group: 'org.mockito', name: 'mockito-all', version: '1.9.5' + testImplementation group: 'org.assertj', name: 'assertj-core', version: versions.assertj + testImplementation group: 'com.jayway.awaitility', name: 'awaitility', version: '1.6.1' + testImplementation group: 'com.googlecode.catch-exception', name: 'catch-exception', version: '1.2.0' annotationProcessor group: 'org.springframework.boot', name: 'spring-boot-configuration-processor', version: versions.spring } diff --git a/gradle.properties b/gradle.properties index 0ebd6040d8..d0148581d8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -org.gradle.jvmargs=-Xmx512m -XX:MaxPermSize=1024m \ No newline at end of file +org.gradle.jvmargs=-Xmx512m \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d355f4c4f3..070cb702f0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 4f906e0c81..1b6c787337 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,67 +17,101 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# 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 +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +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"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -87,9 +121,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -98,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + 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. Please set the JAVA_HOME variable in your environment to match the @@ -106,80 +140,95 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. # For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=`expr $i + 1` + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` +# 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. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" diff --git a/hermes-api/build.gradle b/hermes-api/build.gradle index 894eae60ad..c962780d1e 100644 --- a/hermes-api/build.gradle +++ b/hermes-api/build.gradle @@ -3,17 +3,17 @@ plugins { } dependencies { - compile group: 'org.hibernate.validator', name: 'hibernate-validator', version: '6.2.2.Final' - compile group: 'javax.ws.rs', name: 'javax.ws.rs-api', version: '2.0' - compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: versions.jackson - compile group: 'com.fasterxml.jackson.jaxrs', name: 'jackson-jaxrs-json-provider', version: versions.jackson - compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: versions.jackson - compile group: 'com.google.guava', name: 'guava', version: versions.guava - compile group: 'com.damnhandy', name: 'handy-uri-templates', version: '2.0.2' - compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1' - compile group: 'com.sun.xml.bind', name: 'jaxb-core', version: '2.3.0.1' - compile group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.3.3' + implementation group: 'org.hibernate.validator', name: 'hibernate-validator', version: '6.2.2.Final' + implementation group: 'javax.ws.rs', name: 'javax.ws.rs-api', version: '2.0' + implementation group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: versions.jackson + implementation group: 'com.fasterxml.jackson.jaxrs', name: 'jackson-jaxrs-json-provider', version: versions.jackson + implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: versions.jackson + implementation group: 'com.google.guava', name: 'guava', version: versions.guava + implementation group: 'com.damnhandy', name: 'handy-uri-templates', version: '2.0.2' + implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1' + implementation group: 'com.sun.xml.bind', name: 'jaxb-core', version: '2.3.0.1' + implementation group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.3.3' - testCompile group: 'org.spockframework', name: 'spock-core', version: versions.spock - testCompile project(':hermes-test-helper') + testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation project(':hermes-test-helper') } diff --git a/hermes-client/build.gradle b/hermes-client/build.gradle index 646514ad85..ca3cdd9d11 100644 --- a/hermes-client/build.gradle +++ b/hermes-client/build.gradle @@ -9,23 +9,23 @@ dependencies { compileOnly group: 'com.squareup.okhttp3', name: 'okhttp', version: versions.okhttp compileOnly group: 'org.eclipse.jetty.alpn', name: 'alpn-api', version: versions.alpn_api - compile group: 'net.jodah', name: 'failsafe', version: versions.failsafe - compile group: 'io.projectreactor', name: 'reactor-core', version: '3.3.4.RELEASE' + implementation group: 'net.jodah', name: 'failsafe', version: versions.failsafe + implementation group: 'io.projectreactor', name: 'reactor-core', version: '3.3.4.RELEASE' - testCompile group: 'org.spockframework', name: 'spock-core', version: versions.spock - testCompile group: 'com.github.tomakehurst', name: 'wiremock-standalone', version: versions.wiremock - testCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0' - testCompile group: 'com.jayway.jsonpath', name: 'json-path', version: '2.5.0' + testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation group: 'com.github.tomakehurst', name: 'wiremock-standalone', version: versions.wiremock + testImplementation group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0' + testImplementation group: 'com.jayway.jsonpath', name: 'json-path', version: '2.5.0' - testCompile group: 'io.dropwizard.metrics', name: 'metrics-core', version: versions.dropwizard_metrics - testCompile group: 'io.micrometer', name: 'micrometer-core', version: versions.micrometer_metrics - testCompile group: 'org.glassfish.jersey.core', name: 'jersey-client', version: versions.jersey - testCompile group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: versions.jersey - testCompile group: 'org.springframework', name: 'spring-web', version: versions.spring_web - testCompile group: 'org.springframework', name: 'spring-webflux', version: versions.spring_web - testCompile group: 'com.squareup.okhttp3', name: 'okhttp', version: versions.okhttp - testCompile group: 'org.eclipse.jetty.alpn', name: 'alpn-api', version: versions.alpn_api - testCompile group: 'io.projectreactor.netty', name: 'reactor-netty', version: '0.8.10.RELEASE' - testCompile group: 'io.projectreactor', name: 'reactor-test', version: '3.3.4.RELEASE' + testImplementation group: 'io.dropwizard.metrics', name: 'metrics-core', version: versions.dropwizard_metrics + testImplementation group: 'io.micrometer', name: 'micrometer-core', version: versions.micrometer_metrics + testImplementation group: 'org.glassfish.jersey.core', name: 'jersey-client', version: versions.jersey + testImplementation group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: versions.jersey + testImplementation group: 'org.springframework', name: 'spring-web', version: versions.spring_web + testImplementation group: 'org.springframework', name: 'spring-webflux', version: versions.spring_web + testImplementation group: 'com.squareup.okhttp3', name: 'okhttp', version: versions.okhttp + testImplementation group: 'org.eclipse.jetty.alpn', name: 'alpn-api', version: versions.alpn_api + testImplementation group: 'io.projectreactor.netty', name: 'reactor-netty', version: '0.8.10.RELEASE' + testImplementation group: 'io.projectreactor', name: 'reactor-test', version: '3.3.4.RELEASE' } diff --git a/hermes-common/build.gradle b/hermes-common/build.gradle index 3263d2f810..cd916d090b 100644 --- a/hermes-common/build.gradle +++ b/hermes-common/build.gradle @@ -1,53 +1,53 @@ apply plugin: 'groovy' dependencies { - compile project(':hermes-api') - compile project(':hermes-metrics') - compile project(':hermes-schema') + implementation project(':hermes-api') + implementation project(':hermes-metrics') + implementation project(':hermes-schema') - compile (group: 'org.apache.curator', name: 'curator-client', version: versions.curator) { + implementation (group: 'org.apache.curator', name: 'curator-client', version: versions.curator) { exclude module: 'slf4j-log4j12' exclude module: 'log4j' } - compile (group: 'org.apache.curator', name: 'curator-recipes', version: versions.curator) { + implementation (group: 'org.apache.curator', name: 'curator-recipes', version: versions.curator) { exclude module: 'slf4j-log4j12' exclude module: 'log4j' } - compile group: 'org.glassfish.jersey.core', name: 'jersey-client', version: versions.jersey - compile group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: versions.jersey - compile group: 'org.glassfish.jersey.media', name: 'jersey-media-json-jackson', version: versions.jersey - compile group: 'org.glassfish.jersey.ext', name: 'jersey-bean-validation', version: versions.jersey + implementation group: 'org.glassfish.jersey.core', name: 'jersey-client', version: versions.jersey + implementation group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: versions.jersey + implementation group: 'org.glassfish.jersey.media', name: 'jersey-media-json-jackson', version: versions.jersey + implementation group: 'org.glassfish.jersey.ext', name: 'jersey-bean-validation', version: versions.jersey - compile group: 'tech.allegro.schema.json2avro', name: 'converter', version: versions.json2avro + implementation group: 'tech.allegro.schema.json2avro', name: 'converter', version: versions.json2avro - compile group: 'org.apache.commons', name: 'commons-collections4', version: '4.4' - compile group: 'commons-codec', name: 'commons-codec', version: '1.9' - compile group: 'com.google.guava', name: 'guava', version: versions.guava + implementation group: 'org.apache.commons', name: 'commons-collections4', version: '4.4' + implementation group: 'commons-codec', name: 'commons-codec', version: '1.9' + implementation group: 'com.google.guava', name: 'guava', version: versions.guava - compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: versions.jackson - compile group: 'org.apache.avro', name: 'avro', version: versions.avro - compile group: 'com.jayway.jsonpath', name: 'json-path', version: '2.5.0' + implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: versions.jackson + implementation group: 'org.apache.avro', name: 'avro', version: versions.avro + implementation group: 'com.jayway.jsonpath', name: 'json-path', version: '2.5.0' - compile group: 'io.dropwizard.metrics', name: 'metrics-graphite', version: versions.dropwizard_metrics - compile group: 'io.dropwizard.metrics', name: 'metrics-jvm', version: versions.dropwizard_metrics - compile group: 'org.mpierce.metrics.reservoir', name: 'hdrhistogram-metrics-reservoir', version: '1.1.0' + implementation group: 'io.dropwizard.metrics', name: 'metrics-graphite', version: versions.dropwizard_metrics + implementation group: 'io.dropwizard.metrics', name: 'metrics-jvm', version: versions.dropwizard_metrics + implementation group: 'org.mpierce.metrics.reservoir', name: 'hdrhistogram-metrics-reservoir', version: '1.1.0' - compile group: 'com.google.code.findbugs', name: 'annotations', version: '3.0.0' + implementation group: 'com.google.code.findbugs', name: 'annotations', version: '3.0.0' - compile group: 'org.slf4j', name: 'log4j-over-slf4j', version: '1.7.10' - compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3' + implementation group: 'org.slf4j', name: 'log4j-over-slf4j', version: '1.7.10' + implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3' - compile(group: 'org.apache.kafka', name: 'kafka-clients', version: versions.kafka) { + implementation(group: 'org.apache.kafka', name: 'kafka-clients', version: versions.kafka) { exclude group: 'net.sf.jopt-simple' } - testCompile project(':hermes-test-helper') + testImplementation project(':hermes-test-helper') - testCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0' + testImplementation group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0' - testCompile group: 'org.spockframework', name: 'spock-core', version: versions.spock - testCompile (group: 'com.jayway.awaitility', name: 'awaitility-groovy', version: '1.7.0') { + testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation (group: 'com.jayway.awaitility', name: 'awaitility-groovy', version: '1.7.0') { exclude group: 'org.codehaus.groovy', module: 'groovy-all' } } diff --git a/hermes-consumers/build.gradle b/hermes-consumers/build.gradle index c34ef1eac4..71395baf46 100644 --- a/hermes-consumers/build.gradle +++ b/hermes-consumers/build.gradle @@ -5,45 +5,45 @@ configurations { sbeClasspath } dependencies { - compile project(':hermes-common') - compile project(':hermes-tracker') - compile project(':hermes-metrics') - compile project(':hermes-schema') + implementation project(':hermes-common') + implementation project(':hermes-tracker') + implementation project(':hermes-metrics') + implementation project(':hermes-schema') - compile group: 'org.springframework.boot', name: 'spring-boot-starter', version: versions.spring - compile group: 'org.eclipse.jetty', name: 'jetty-alpn-java-client', version: versions.jetty - compile group: 'org.eclipse.jetty.http2', name: 'http2-http-client-transport', version: versions.jetty + implementation group: 'org.springframework.boot', name: 'spring-boot-starter', version: versions.spring + implementation group: 'org.eclipse.jetty', name: 'jetty-alpn-java-client', version: versions.jetty + implementation group: 'org.eclipse.jetty.http2', name: 'http2-http-client-transport', version: versions.jetty - compile group: 'org.jctools', name: 'jctools-core', version: '1.2' + implementation group: 'org.jctools', name: 'jctools-core', version: '1.2' - compile group: 'javax.jms', name: 'javax.jms-api', version: '2.0' - compile group: 'joda-time', name: 'joda-time', version: '2.5' + implementation group: 'javax.jms', name: 'javax.jms-api', version: '2.0' + implementation group: 'joda-time', name: 'joda-time', version: '2.5' - compile(group: 'com.github.rholder', name: 'guava-retrying', version: '2.0.0') { + implementation(group: 'com.github.rholder', name: 'guava-retrying', version: '2.0.0') { exclude module: 'guava' } - compile group: 'org.agrona', name: 'agrona', version: '1.0.6' + implementation group: 'org.agrona', name: 'agrona', version: '1.0.6' - compile(group: 'org.hornetq', name: 'hornetq-jms-client', version: '2.4.1.Final') { + implementation(group: 'org.hornetq', name: 'hornetq-jms-client', version: '2.4.1.Final') { exclude module: 'hornetq-native' } - compile(group: 'com.google.cloud', name: 'google-cloud-pubsub', version: '1.115.1') + implementation(group: 'com.google.cloud', name: 'google-cloud-pubsub', version: '1.115.1') - testCompile project(':hermes-test-helper') - testCompile group: 'org.apache.curator', name: 'curator-test', version: versions.curator - testCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0' + testImplementation project(':hermes-test-helper') + testImplementation group: 'org.apache.curator', name: 'curator-test', version: versions.curator + testImplementation group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0' - testCompile project(':hermes-common') + testImplementation project(':hermes-common') - testCompile(group: 'com.jayway.awaitility', name: 'awaitility', version: '1.6.1') { + testImplementation(group: 'com.jayway.awaitility', name: 'awaitility', version: '1.6.1') { exclude group: 'com.jayway.jsonpath', module: 'json-path' } - testCompile group: 'tech.allegro.schema.json2avro', name: 'converter', version: versions.json2avro + testImplementation group: 'tech.allegro.schema.json2avro', name: 'converter', version: versions.json2avro - testCompile group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock sbeClasspath group: 'uk.co.real-logic', name: 'sbe-all', version: '1.12.8' } diff --git a/hermes-frontend/build.gradle b/hermes-frontend/build.gradle index 020f1d9476..fd7b604462 100644 --- a/hermes-frontend/build.gradle +++ b/hermes-frontend/build.gradle @@ -2,34 +2,34 @@ apply plugin: 'application' mainClassName = 'pl.allegro.tech.hermes.frontend.HermesFrontend' dependencies { - compile project(':hermes-common') - compile project(':hermes-tracker') - compile project(':hermes-metrics') - compile project(':hermes-schema') + implementation project(':hermes-common') + implementation project(':hermes-tracker') + implementation project(':hermes-metrics') + implementation project(':hermes-schema') - compile group: 'org.springframework.boot', name: 'spring-boot-starter', version: versions.spring - compile group: 'io.undertow', name: 'undertow-core', version: versions.undertow - compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' - compile (group: 'net.openhft', name: 'chronicle-map', version: '3.21.86') { + implementation group: 'org.springframework.boot', name: 'spring-boot-starter', version: versions.spring + implementation group: 'io.undertow', name: 'undertow-core', version: versions.undertow + implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' + implementation (group: 'net.openhft', name: 'chronicle-map', version: '3.21.86') { exclude group: 'net.openhft', module: 'chronicle-analytics' } - compile group: 'commons-io', name: 'commons-io', version: '2.4' - compile group: 'net.jodah', name: 'failsafe', version: versions.failsafe + implementation group: 'commons-io', name: 'commons-io', version: '2.4' + implementation group: 'net.jodah', name: 'failsafe', version: versions.failsafe compileOnly group: 'org.eclipse.jetty.alpn', name: 'alpn-api', version: versions.alpn_api - testCompile group: 'org.eclipse.jetty.alpn', name: 'alpn-api', version: versions.alpn_api + testImplementation group: 'org.eclipse.jetty.alpn', name: 'alpn-api', version: versions.alpn_api - testCompile group: 'org.spockframework', name: 'spock-core', version: versions.spock - testCompile group: 'org.codehaus.groovy', name: 'groovy-json', version: versions.groovy - testCompile(group: 'com.jayway.awaitility', name: 'awaitility-groovy', version: '1.7.0') { + testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation group: 'org.codehaus.groovy', name: 'groovy-json', version: versions.groovy + testImplementation(group: 'com.jayway.awaitility', name: 'awaitility-groovy', version: '1.7.0') { exclude group: 'org.codehaus.groovy', module: 'groovy-all' } - testCompile project(':hermes-test-helper') - testCompile(group: 'com.jayway.awaitility', name: 'awaitility', version: '1.6.1') { + testImplementation project(':hermes-test-helper') + testImplementation(group: 'com.jayway.awaitility', name: 'awaitility', version: '1.6.1') { exclude group: 'com.jayway.jsonpath', module: 'json-path' } - testCompile group: 'org.testcontainers', name: 'spock', version: versions.testcontainers - testCompile group: 'org.testcontainers', name: 'kafka', version: versions.testcontainers + testImplementation group: 'org.testcontainers', name: 'spock', version: versions.testcontainers + testImplementation group: 'org.testcontainers', name: 'kafka', version: versions.testcontainers } diff --git a/hermes-management/build.gradle b/hermes-management/build.gradle index 3527f6fe75..bc9fcab059 100644 --- a/hermes-management/build.gradle +++ b/hermes-management/build.gradle @@ -2,45 +2,45 @@ apply plugin: 'application' mainClassName = 'pl.allegro.tech.hermes.management.HermesManagement' dependencies { - compile project(':hermes-api') - compile project(':hermes-common') - compile project(':hermes-tracker') - compile project(':hermes-schema') + implementation project(':hermes-api') + implementation project(':hermes-common') + implementation project(':hermes-tracker') + implementation project(':hermes-schema') - compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: versions.spring - compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: versions.spring - compile group: 'org.springframework.boot', name: 'spring-boot-starter-jersey', version: versions.spring - compile group: 'net.sf.jopt-simple', name: 'jopt-simple', version: '4.8' - compile group: 'org.glassfish.jersey.ext', name: 'jersey-mvc-freemarker', version: versions.jersey + implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: versions.spring + implementation group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: versions.spring + implementation group: 'org.springframework.boot', name: 'spring-boot-starter-jersey', version: versions.spring + implementation group: 'net.sf.jopt-simple', name: 'jopt-simple', version: '4.8' + implementation group: 'org.glassfish.jersey.ext', name: 'jersey-mvc-freemarker', version: versions.jersey - compile (group: 'io.swagger', name: 'swagger-jersey2-jaxrs', version: '1.6.3') { + implementation (group: 'io.swagger', name: 'swagger-jersey2-jaxrs', version: '1.6.3') { exclude group: 'javax.validation', module: 'validation-api' } - compile group: 'org.apache.kafka', name: 'kafka-clients', version: versions.kafka + implementation group: 'org.apache.kafka', name: 'kafka-clients', version: versions.kafka - compile group: 'commons-codec', name: 'commons-codec', version: '1.9' - compile (group: 'com.github.fge', name: 'json-schema-validator', version: '2.2.6') { + implementation group: 'commons-codec', name: 'commons-codec', version: '1.9' + implementation (group: 'com.github.fge', name: 'json-schema-validator', version: '2.2.6') { exclude group: 'net.sf.jopt-simple' } - compile group: 'commons-jxpath', name: 'commons-jxpath', version: '1.3' - compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.13' + implementation group: 'commons-jxpath', name: 'commons-jxpath', version: '1.3' + implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.13' - compile group: 'org.javers', name: 'javers-core', version: '5.2.5' + implementation group: 'org.javers', name: 'javers-core', version: '5.2.5' - compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: versions.jackson - compile group: 'commons-io', name: 'commons-io', version: '2.6' + implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: versions.jackson + implementation group: 'commons-io', name: 'commons-io', version: '2.6' - testCompile project(':hermes-test-helper') - testCompile group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: versions.spring + testImplementation project(':hermes-test-helper') + testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: versions.spring - testCompile group: 'org.spockframework', name: 'spock-core', version: versions.spock - testCompile group: 'org.spockframework', name: 'spock-spring', version: versions.spock - testCompile group: 'org.codehaus.groovy', name: 'groovy-json', version: versions.groovy + testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation group: 'org.spockframework', name: 'spock-spring', version: versions.spock + testImplementation group: 'org.codehaus.groovy', name: 'groovy-json', version: versions.groovy - testCompile group: 'org.testcontainers', name: 'spock', version: versions.testcontainers - testCompile group: 'org.testcontainers', name: 'kafka', version: versions.testcontainers + testImplementation group: 'org.testcontainers', name: 'spock', version: versions.testcontainers + testImplementation group: 'org.testcontainers', name: 'kafka', version: versions.testcontainers } task buildHermesConsole(type: Exec) { diff --git a/hermes-metrics/build.gradle b/hermes-metrics/build.gradle index 876a76d1ce..7ba500f752 100644 --- a/hermes-metrics/build.gradle +++ b/hermes-metrics/build.gradle @@ -1,6 +1,6 @@ dependencies { - compile group: 'io.dropwizard.metrics', name: 'metrics-graphite', version: versions.dropwizard_metrics - compile group: 'commons-lang', name: 'commons-lang', version: '2.6' + implementation group: 'io.dropwizard.metrics', name: 'metrics-graphite', version: versions.dropwizard_metrics + implementation group: 'commons-lang', name: 'commons-lang', version: '2.6' - testCompile group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock } \ No newline at end of file diff --git a/hermes-mock/build.gradle b/hermes-mock/build.gradle index 1986824079..bd21407d38 100644 --- a/hermes-mock/build.gradle +++ b/hermes-mock/build.gradle @@ -4,22 +4,22 @@ plugins { } dependencies { - compile group: 'junit', name: 'junit', version: '4.11' - compile group: 'com.github.tomakehurst', name: 'wiremock', version: versions.wiremock - compile group: 'com.jayway.awaitility', name: 'awaitility', version: '1.6.1' - compile group: 'org.apache.avro', name: 'avro', version: versions.avro - compile group: 'tech.allegro.schema.json2avro', name: 'converter', version: versions.json2avro - compile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: versions.junit_jupiter + implementation group: 'junit', name: 'junit', version: '4.11' + implementation group: 'com.github.tomakehurst', name: 'wiremock', version: versions.wiremock + implementation group: 'com.jayway.awaitility', name: 'awaitility', version: '1.6.1' + implementation group: 'org.apache.avro', name: 'avro', version: versions.avro + implementation group: 'tech.allegro.schema.json2avro', name: 'converter', version: versions.json2avro + implementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: versions.junit_jupiter - testCompile project(':hermes-test-helper') - testCompile group: 'org.spockframework', name: 'spock-core', version: versions.spock - testCompile group: 'org.codehaus.groovy', name: 'groovy-json', version: versions.groovy - testCompile group: 'org.glassfish.jersey.core', name: 'jersey-client', version: versions.jersey - testCompile group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: versions.jersey - testCompile group: 'org.eclipse.jetty', name: 'jetty-server', version: versions.jetty - testCompile group: 'org.eclipse.jetty', name: 'jetty-servlet', version: versions.jetty - testCompile group: 'org.eclipse.jetty', name: 'jetty-servlets', version: versions.jetty - testCompile group: 'org.junit.jupiter', name :'junit-jupiter', version: versions.junit_jupiter + testImplementation project(':hermes-test-helper') + testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation group: 'org.codehaus.groovy', name: 'groovy-json', version: versions.groovy + testImplementation group: 'org.glassfish.jersey.core', name: 'jersey-client', version: versions.jersey + testImplementation group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: versions.jersey + testImplementation group: 'org.eclipse.jetty', name: 'jetty-server', version: versions.jetty + testImplementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: versions.jetty + testImplementation group: 'org.eclipse.jetty', name: 'jetty-servlets', version: versions.jetty + testImplementation group: 'org.junit.jupiter', name :'junit-jupiter', version: versions.junit_jupiter testRuntimeOnly group: 'org.junit.vintage', name : 'junit-vintage-engine', version: versions.junit_jupiter } diff --git a/hermes-schema/build.gradle b/hermes-schema/build.gradle index 82aaffaeae..f283de0249 100644 --- a/hermes-schema/build.gradle +++ b/hermes-schema/build.gradle @@ -1,11 +1,13 @@ dependencies { - compile project(':hermes-api') + implementation project(':hermes-api') - compile group: 'org.apache.avro', name: 'avro', version: versions.avro - compile group: 'com.google.guava', name: 'guava', version: versions.guava + implementation group: 'org.apache.avro', name: 'avro', version: versions.avro + implementation group: 'com.google.guava', name: 'guava', version: versions.guava + // TODO: fix version +// implementation group: 'jakarta.validation', name: 'jakarta.validation-api', version: '3.0.2' - testCompile project(path: ":hermes-test-helper") + testImplementation project(path: ":hermes-test-helper") - testCompile group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock } diff --git a/hermes-test-helper/build.gradle b/hermes-test-helper/build.gradle index c767c13e58..5bf5c89ca4 100644 --- a/hermes-test-helper/build.gradle +++ b/hermes-test-helper/build.gradle @@ -1,43 +1,43 @@ dependencies { - compile project(':hermes-api') - compile project(':hermes-common') - compile project(':hermes-consumers') + implementation project(':hermes-api') + implementation project(':hermes-common') + implementation project(':hermes-consumers') - compile group: 'org.glassfish.jersey.core', name: 'jersey-client', version: versions.jersey - compile group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: versions.jersey - compile group: 'org.glassfish.jersey.ext', name: 'jersey-proxy-client', version: versions.jersey - compile group: 'commons-io', name: 'commons-io', version: '2.4' - compile group: 'com.github.tomakehurst', name: 'wiremock-standalone', version: versions.wiremock - compile (group: 'org.apache.curator', name: 'curator-test', version: versions.curator) { + implementation group: 'org.glassfish.jersey.core', name: 'jersey-client', version: versions.jersey + implementation group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: versions.jersey + implementation group: 'org.glassfish.jersey.ext', name: 'jersey-proxy-client', version: versions.jersey + implementation group: 'commons-io', name: 'commons-io', version: '2.4' + implementation group: 'com.github.tomakehurst', name: 'wiremock-standalone', version: versions.wiremock + implementation (group: 'org.apache.curator', name: 'curator-test', version: versions.curator) { exclude module: 'slf4j-log4j12' exclude module: 'log4j' } - compile (group: 'org.apache.curator', name: 'curator-client', version: versions.curator) { + implementation (group: 'org.apache.curator', name: 'curator-client', version: versions.curator) { exclude module: 'slf4j-log4j12' exclude module: 'log4j' } - compile (group: 'org.apache.curator', name: 'curator-recipes', version: versions.curator) { + implementation (group: 'org.apache.curator', name: 'curator-recipes', version: versions.curator) { exclude module: 'slf4j-log4j12' exclude module: 'log4j' } - compile group: 'com.google.code.findbugs', name: 'annotations', version: '3.0.0' - compile group: 'com.jayway.awaitility', name: 'awaitility', version: '1.6.1' - compile group: 'org.assertj', name: 'assertj-core', version: versions.assertj - compile group: 'net.javacrumbs.json-unit', name: 'json-unit-fluent', version: '1.5.5' - compile group: 'junit', name: 'junit', version: '4.11' - compile group: 'org.testng', name: 'testng', version: '7.4.0' - compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.13' - compile group: 'com.jayway.jsonpath', name: 'json-path', version: '2.5.0' - compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: versions.jackson + implementation group: 'com.google.code.findbugs', name: 'annotations', version: '3.0.0' + implementation group: 'com.jayway.awaitility', name: 'awaitility', version: '1.6.1' + implementation group: 'org.assertj', name: 'assertj-core', version: versions.assertj + implementation group: 'net.javacrumbs.json-unit', name: 'json-unit-fluent', version: '1.5.5' + implementation group: 'junit', name: 'junit', version: '4.11' + implementation group: 'org.testng', name: 'testng', version: '7.4.0' + implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.13' + implementation group: 'com.jayway.jsonpath', name: 'json-path', version: '2.5.0' + implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: versions.jackson - compile group: 'org.apache.oltu.oauth2', name: 'org.apache.oltu.oauth2.authzserver', version: '1.0.2' - compile group: 'org.apache.oltu.oauth2', name: 'org.apache.oltu.oauth2.resourceserver', version: '1.0.2' - compile group: 'io.undertow', name: 'undertow-servlet', version: versions.undertow + implementation group: 'org.apache.oltu.oauth2', name: 'org.apache.oltu.oauth2.authzserver', version: '1.0.2' + implementation group: 'org.apache.oltu.oauth2', name: 'org.apache.oltu.oauth2.resourceserver', version: '1.0.2' + implementation group: 'io.undertow', name: 'undertow-servlet', version: versions.undertow - testCompile group: 'org.apache.oltu.oauth2', name: 'org.apache.oltu.oauth2.client', version: '1.0.2' - testCompile group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation group: 'org.apache.oltu.oauth2', name: 'org.apache.oltu.oauth2.client', version: '1.0.2' + testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock - compile group: 'org.testcontainers', name: 'testcontainers', version: versions.testcontainers - compile group: 'org.testcontainers', name: 'toxiproxy', version: versions.testcontainers - compile group: 'org.testcontainers', name: 'gcloud', version: versions.testcontainers + implementation group: 'org.testcontainers', name: 'testcontainers', version: versions.testcontainers + implementation group: 'org.testcontainers', name: 'toxiproxy', version: versions.testcontainers + implementation group: 'org.testcontainers', name: 'gcloud', version: versions.testcontainers } diff --git a/hermes-tracker-elasticsearch/build.gradle b/hermes-tracker-elasticsearch/build.gradle index b4ece4943d..92f937d191 100644 --- a/hermes-tracker-elasticsearch/build.gradle +++ b/hermes-tracker-elasticsearch/build.gradle @@ -1,13 +1,13 @@ dependencies { - compile project(':hermes-common') - compile project(':hermes-tracker') - compile 'org.slf4j:slf4j-api:1.7.12' - compile group: 'org.elasticsearch.client', name: 'transport', version: '6.8.12' + implementation project(':hermes-common') + implementation project(':hermes-tracker') + implementation 'org.slf4j:slf4j-api:1.7.12' + implementation group: 'org.elasticsearch.client', name: 'transport', version: '6.8.12' - testCompile project(path: ":hermes-tracker", configuration: "testArtifacts") - testCompile project(path: ":hermes-test-helper") - testCompile group: 'org.spockframework', name: 'spock-core', version: versions.spock - testCompile 'pl.allegro.tech:embedded-elasticsearch:2.10.0' + testImplementation project(path: ":hermes-tracker", configuration: "testArtifacts") + testImplementation project(path: ":hermes-test-helper") + testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation 'pl.allegro.tech:embedded-elasticsearch:2.10.0' } test.useTestNG() \ No newline at end of file diff --git a/hermes-tracker/build.gradle b/hermes-tracker/build.gradle index 0ba7f5be93..71700ca643 100644 --- a/hermes-tracker/build.gradle +++ b/hermes-tracker/build.gradle @@ -1,7 +1,7 @@ dependencies { - compile project(':hermes-api') - compile project(':hermes-metrics') - testCompile project(path: ":hermes-test-helper") + implementation project(':hermes-api') + implementation project(':hermes-metrics') + testImplementation project(path: ":hermes-test-helper") } configurations { diff --git a/integration/build.gradle b/integration/build.gradle index e55407e612..6c7957d8c3 100644 --- a/integration/build.gradle +++ b/integration/build.gradle @@ -5,7 +5,7 @@ repositories { project.configurations { integration { - extendsFrom project.configurations.testRuntime + extendsFrom project.configurations.runtimeClasspath description = 'Dependencies for integration tests' transitive = true visible = true @@ -14,38 +14,38 @@ project.configurations { } dependencies { - compile project(':hermes-common') - compile project(':hermes-consumers') - compile project(':hermes-frontend') - compile project(':hermes-management') - compile project(':hermes-client') - compile project(':hermes-tracker') - - testCompile project(':hermes-test-helper') - testCompile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' - testCompile group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.4' - testCompile group: 'org.apache.curator', name: 'curator-test', version: versions.curator - testCompile group: 'org.springframework', name: 'spring-webflux', version: versions.spring_web - testCompile group: 'com.squareup.okhttp3', name: 'okhttp', version: versions.okhttp - - testCompile group: 'org.testcontainers', name: 'testcontainers', version: versions.testcontainers - testCompile group: 'org.testcontainers', name: 'gcloud', version: versions.testcontainers - - testCompile files('./lib/schema-repo-server-0.1.3-jersey2.jar'); - testCompile group: 'org.glassfish.jersey.containers', name: 'jersey-container-grizzly2-http', version: versions.jersey - testCompile group: 'org.freemarker', name: 'freemarker', version: '2.3.21' - testCompile group: 'org.schemarepo', name: 'schema-repo-common', version: '0.1.3' - testCompile group: 'org.eclipse.jetty', name: 'jetty-alpn-openjdk8-server', version: '9.4.28.v20200408' - testCompile group: 'org.eclipse.jetty', name: 'jetty-alpn-openjdk8-client', version: '9.4.30.v20200611' - testCompile group: 'org.eclipse.jetty', name: 'jetty-servlet', version: versions.jetty - testCompile group: 'org.eclipse.jetty', name: 'jetty-servlets', version: versions.jetty - testCompile group: 'org.glassfish.jersey.bundles.repackaged', name: 'jersey-guava', version: '2.23.2' - - testCompile(group: 'org.hornetq', name: 'hornetq-jms-server', version: '2.4.1.Final') { + implementation project(':hermes-common') + implementation project(':hermes-consumers') + implementation project(':hermes-frontend') + implementation project(':hermes-management') + implementation project(':hermes-client') + implementation project(':hermes-tracker') + + testImplementation project(':hermes-test-helper') + testImplementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' + testImplementation group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.4' + testImplementation group: 'org.apache.curator', name: 'curator-test', version: versions.curator + testImplementation group: 'org.springframework', name: 'spring-webflux', version: versions.spring_web + testImplementation group: 'com.squareup.okhttp3', name: 'okhttp', version: versions.okhttp + + testImplementation group: 'org.testcontainers', name: 'testcontainers', version: versions.testcontainers + testImplementation group: 'org.testcontainers', name: 'gcloud', version: versions.testcontainers + + testImplementation files('./lib/schema-repo-server-0.1.3-jersey2.jar'); + testImplementation group: 'org.glassfish.jersey.containers', name: 'jersey-container-grizzly2-http', version: versions.jersey + testImplementation group: 'org.freemarker', name: 'freemarker', version: '2.3.21' + testImplementation group: 'org.schemarepo', name: 'schema-repo-common', version: '0.1.3' + testImplementation group: 'org.eclipse.jetty', name: 'jetty-alpn-openjdk8-server', version: '9.4.28.v20200408' + testImplementation group: 'org.eclipse.jetty', name: 'jetty-alpn-openjdk8-client', version: '9.4.30.v20200611' + testImplementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: versions.jetty + testImplementation group: 'org.eclipse.jetty', name: 'jetty-servlets', version: versions.jetty + testImplementation group: 'org.glassfish.jersey.bundles.repackaged', name: 'jersey-guava', version: '2.23.2' + + testImplementation(group: 'org.hornetq', name: 'hornetq-jms-server', version: '2.4.1.Final') { exclude module: 'hornetq-native' } - testCompile group: 'org.eclipse.jetty.alpn', name: 'alpn-api', version: versions.alpn_api + testImplementation group: 'org.eclipse.jetty.alpn', name: 'alpn-api', version: versions.alpn_api } project.sourceSets { @@ -61,9 +61,9 @@ project.sourceSets { } compileClasspath = project.sourceSets.main.output + - project.configurations.testRuntime + + project.configurations.runtimeClasspath + project.configurations.integration - runtimeClasspath = output + compileClasspath + project.configurations.testRuntime + runtimeClasspath = output + compileClasspath + project.configurations.runtimeClasspath } } From ab0dc2d7ba8c1bcae51fb64f3ee6ad387ee7f2d6 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Thu, 18 May 2023 15:16:31 +0200 Subject: [PATCH 02/27] use api instead when library dependencies are needed --- hermes-api/build.gradle | 13 +++++++------ hermes-common/build.gradle | 29 ++++++++++++++++------------- hermes-consumers/build.gradle | 9 +++++++-- hermes-metrics/build.gradle | 8 ++++++-- hermes-schema/build.gradle | 2 -- 5 files changed, 36 insertions(+), 25 deletions(-) diff --git a/hermes-api/build.gradle b/hermes-api/build.gradle index c962780d1e..91fb404809 100644 --- a/hermes-api/build.gradle +++ b/hermes-api/build.gradle @@ -1,16 +1,17 @@ plugins { id 'groovy' + id 'java-library' } dependencies { - implementation group: 'org.hibernate.validator', name: 'hibernate-validator', version: '6.2.2.Final' - implementation group: 'javax.ws.rs', name: 'javax.ws.rs-api', version: '2.0' + api group: 'org.hibernate.validator', name: 'hibernate-validator', version: '6.2.2.Final' + api group: 'javax.ws.rs', name: 'javax.ws.rs-api', version: '2.0' implementation group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: versions.jackson - implementation group: 'com.fasterxml.jackson.jaxrs', name: 'jackson-jaxrs-json-provider', version: versions.jackson - implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: versions.jackson + api group: 'com.fasterxml.jackson.jaxrs', name: 'jackson-jaxrs-json-provider', version: versions.jackson + api group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: versions.jackson implementation group: 'com.google.guava', name: 'guava', version: versions.guava - implementation group: 'com.damnhandy', name: 'handy-uri-templates', version: '2.0.2' - implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1' + api group: 'com.damnhandy', name: 'handy-uri-templates', version: '2.0.2' + api group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1' implementation group: 'com.sun.xml.bind', name: 'jaxb-core', version: '2.3.0.1' implementation group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.3.3' diff --git a/hermes-common/build.gradle b/hermes-common/build.gradle index cd916d090b..b56ced5e0d 100644 --- a/hermes-common/build.gradle +++ b/hermes-common/build.gradle @@ -1,33 +1,36 @@ -apply plugin: 'groovy' +plugins { + id 'java-library' + id 'groovy' +} dependencies { - implementation project(':hermes-api') + api project(':hermes-api') implementation project(':hermes-metrics') - implementation project(':hermes-schema') + api project(':hermes-schema') - implementation (group: 'org.apache.curator', name: 'curator-client', version: versions.curator) { + api (group: 'org.apache.curator', name: 'curator-client', version: versions.curator) { exclude module: 'slf4j-log4j12' exclude module: 'log4j' } - implementation (group: 'org.apache.curator', name: 'curator-recipes', version: versions.curator) { + api (group: 'org.apache.curator', name: 'curator-recipes', version: versions.curator) { exclude module: 'slf4j-log4j12' exclude module: 'log4j' } - implementation group: 'org.glassfish.jersey.core', name: 'jersey-client', version: versions.jersey + api group: 'org.glassfish.jersey.core', name: 'jersey-client', version: versions.jersey implementation group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: versions.jersey - implementation group: 'org.glassfish.jersey.media', name: 'jersey-media-json-jackson', version: versions.jersey + api group: 'org.glassfish.jersey.media', name: 'jersey-media-json-jackson', version: versions.jersey implementation group: 'org.glassfish.jersey.ext', name: 'jersey-bean-validation', version: versions.jersey - implementation group: 'tech.allegro.schema.json2avro', name: 'converter', version: versions.json2avro + api group: 'tech.allegro.schema.json2avro', name: 'converter', version: versions.json2avro - implementation group: 'org.apache.commons', name: 'commons-collections4', version: '4.4' + api group: 'org.apache.commons', name: 'commons-collections4', version: '4.4' implementation group: 'commons-codec', name: 'commons-codec', version: '1.9' implementation group: 'com.google.guava', name: 'guava', version: versions.guava - implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: versions.jackson - implementation group: 'org.apache.avro', name: 'avro', version: versions.avro - implementation group: 'com.jayway.jsonpath', name: 'json-path', version: '2.5.0' + api group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: versions.jackson + api group: 'org.apache.avro', name: 'avro', version: versions.avro + api group: 'com.jayway.jsonpath', name: 'json-path', version: '2.5.0' implementation group: 'io.dropwizard.metrics', name: 'metrics-graphite', version: versions.dropwizard_metrics implementation group: 'io.dropwizard.metrics', name: 'metrics-jvm', version: versions.dropwizard_metrics @@ -38,7 +41,7 @@ dependencies { implementation group: 'org.slf4j', name: 'log4j-over-slf4j', version: '1.7.10' implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3' - implementation(group: 'org.apache.kafka', name: 'kafka-clients', version: versions.kafka) { + api(group: 'org.apache.kafka', name: 'kafka-clients', version: versions.kafka) { exclude group: 'net.sf.jopt-simple' } diff --git a/hermes-consumers/build.gradle b/hermes-consumers/build.gradle index 71395baf46..bce44fb569 100644 --- a/hermes-consumers/build.gradle +++ b/hermes-consumers/build.gradle @@ -1,4 +1,9 @@ -apply plugin: 'application' +plugins { + id 'application' + id 'java-library' +} + + mainClassName = 'pl.allegro.tech.hermes.consumers.HermesConsumers' configurations { @@ -29,7 +34,7 @@ dependencies { exclude module: 'hornetq-native' } - implementation(group: 'com.google.cloud', name: 'google-cloud-pubsub', version: '1.115.1') + api(group: 'com.google.cloud', name: 'google-cloud-pubsub', version: '1.115.1') testImplementation project(':hermes-test-helper') testImplementation group: 'org.apache.curator', name: 'curator-test', version: versions.curator diff --git a/hermes-metrics/build.gradle b/hermes-metrics/build.gradle index 7ba500f752..3f82d64201 100644 --- a/hermes-metrics/build.gradle +++ b/hermes-metrics/build.gradle @@ -1,6 +1,10 @@ +plugins { + id 'java-library' +} + dependencies { - implementation group: 'io.dropwizard.metrics', name: 'metrics-graphite', version: versions.dropwizard_metrics - implementation group: 'commons-lang', name: 'commons-lang', version: '2.6' + api group: 'io.dropwizard.metrics', name: 'metrics-graphite', version: versions.dropwizard_metrics + api group: 'commons-lang', name: 'commons-lang', version: '2.6' testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock } \ No newline at end of file diff --git a/hermes-schema/build.gradle b/hermes-schema/build.gradle index f283de0249..47016a5395 100644 --- a/hermes-schema/build.gradle +++ b/hermes-schema/build.gradle @@ -3,8 +3,6 @@ dependencies { implementation group: 'org.apache.avro', name: 'avro', version: versions.avro implementation group: 'com.google.guava', name: 'guava', version: versions.guava - // TODO: fix version -// implementation group: 'jakarta.validation', name: 'jakarta.validation-api', version: '3.0.2' testImplementation project(path: ":hermes-test-helper") From f3913d62d3552ed82c18ca929c4504584cc8502c Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Thu, 18 May 2023 16:18:47 +0200 Subject: [PATCH 03/27] fix unit test dependencies --- build.gradle | 4 ++-- hermes-api/build.gradle | 1 + hermes-benchmark/build.gradle | 3 +++ hermes-client/build.gradle | 1 + hermes-common/build.gradle | 5 +++-- hermes-consumers/build.gradle | 1 + hermes-frontend/build.gradle | 13 +++++++++---- ...fkaBrokerMessageProducerIntegrationTest.groovy | 2 +- hermes-management/build.gradle | 3 ++- hermes-metrics/build.gradle | 1 + hermes-mock/build.gradle | 3 ++- hermes-schema/build.gradle | 1 + hermes-test-helper/build.gradle | 15 ++++++++++----- hermes-tracker-elasticsearch/build.gradle | 1 + 14 files changed, 38 insertions(+), 16 deletions(-) diff --git a/build.gradle b/build.gradle index 710ecb79b9..45f906bdb8 100644 --- a/build.gradle +++ b/build.gradle @@ -57,8 +57,8 @@ allprojects { dropwizard_metrics: '4.1.0', micrometer_metrics: '1.2.1', wiremock : '2.27.2', - spock : '1.3-groovy-2.5', - groovy : '2.5.16', + spock : '2.4-M1-groovy-4.0', + groovy : '4.0.12', alpn_api : '1.1.2.v20150522', avro : '1.9.1', json2avro : '0.2.14', diff --git a/hermes-api/build.gradle b/hermes-api/build.gradle index 91fb404809..eec604ebb0 100644 --- a/hermes-api/build.gradle +++ b/hermes-api/build.gradle @@ -16,5 +16,6 @@ dependencies { implementation group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.3.3' testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation group: 'org.spockframework', name: 'spock-junit4', version: versions.spock testImplementation project(':hermes-test-helper') } diff --git a/hermes-benchmark/build.gradle b/hermes-benchmark/build.gradle index b4e7eb28fd..73364bc087 100644 --- a/hermes-benchmark/build.gradle +++ b/hermes-benchmark/build.gradle @@ -32,12 +32,15 @@ dependencies { jmh group: 'org.spf4j', name: 'spf4j-jmh', version: '8.0.3' jmh project(':hermes-frontend') jmh project(':hermes-test-helper') + jmh project(':hermes-common') + jmh project(':hermes-tracker') } // Workaround for duplicated `BenchmarkList` and `CompilerHints` files from META-INF directory in jmh jar. // Those duplications can prevent from running benchmark tests. // More info https://github.com/melix/jmh-gradle-plugin/issues/6 tasks.getByName('jmhJar').doFirst() { duplicatesStrategy(DuplicatesStrategy.EXCLUDE) } +tasks.getByName('processJmhResources').doFirst() { duplicatesStrategy(DuplicatesStrategy.EXCLUDE) } String stringProperty(String property, String defaultValue) { project.hasProperty(property) ? project.property(property) : defaultValue diff --git a/hermes-client/build.gradle b/hermes-client/build.gradle index ca3cdd9d11..5b53cbcbf4 100644 --- a/hermes-client/build.gradle +++ b/hermes-client/build.gradle @@ -13,6 +13,7 @@ dependencies { implementation group: 'io.projectreactor', name: 'reactor-core', version: '3.3.4.RELEASE' testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation group: 'org.spockframework', name: 'spock-junit4', version: versions.spock testImplementation group: 'com.github.tomakehurst', name: 'wiremock-standalone', version: versions.wiremock testImplementation group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0' testImplementation group: 'com.jayway.jsonpath', name: 'json-path', version: '2.5.0' diff --git a/hermes-common/build.gradle b/hermes-common/build.gradle index b56ced5e0d..7ebf39b938 100644 --- a/hermes-common/build.gradle +++ b/hermes-common/build.gradle @@ -5,7 +5,7 @@ plugins { dependencies { api project(':hermes-api') - implementation project(':hermes-metrics') + api project(':hermes-metrics') api project(':hermes-schema') api (group: 'org.apache.curator', name: 'curator-client', version: versions.curator) { @@ -20,7 +20,7 @@ dependencies { api group: 'org.glassfish.jersey.core', name: 'jersey-client', version: versions.jersey implementation group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: versions.jersey api group: 'org.glassfish.jersey.media', name: 'jersey-media-json-jackson', version: versions.jersey - implementation group: 'org.glassfish.jersey.ext', name: 'jersey-bean-validation', version: versions.jersey + api group: 'org.glassfish.jersey.ext', name: 'jersey-bean-validation', version: versions.jersey api group: 'tech.allegro.schema.json2avro', name: 'converter', version: versions.json2avro @@ -50,6 +50,7 @@ dependencies { testImplementation group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0' testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation group: 'org.spockframework', name: 'spock-junit4', version: versions.spock testImplementation (group: 'com.jayway.awaitility', name: 'awaitility-groovy', version: '1.7.0') { exclude group: 'org.codehaus.groovy', module: 'groovy-all' } diff --git a/hermes-consumers/build.gradle b/hermes-consumers/build.gradle index bce44fb569..596d233d13 100644 --- a/hermes-consumers/build.gradle +++ b/hermes-consumers/build.gradle @@ -49,6 +49,7 @@ dependencies { testImplementation group: 'tech.allegro.schema.json2avro', name: 'converter', version: versions.json2avro testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation group: 'org.spockframework', name: 'spock-junit4', version: versions.spock sbeClasspath group: 'uk.co.real-logic', name: 'sbe-all', version: '1.12.8' } diff --git a/hermes-frontend/build.gradle b/hermes-frontend/build.gradle index fd7b604462..35af97e5fa 100644 --- a/hermes-frontend/build.gradle +++ b/hermes-frontend/build.gradle @@ -1,4 +1,8 @@ -apply plugin: 'application' +plugins { + id 'application' + id 'java-library' +} + mainClassName = 'pl.allegro.tech.hermes.frontend.HermesFrontend' dependencies { @@ -8,9 +12,9 @@ dependencies { implementation project(':hermes-schema') implementation group: 'org.springframework.boot', name: 'spring-boot-starter', version: versions.spring - implementation group: 'io.undertow', name: 'undertow-core', version: versions.undertow + api group: 'io.undertow', name: 'undertow-core', version: versions.undertow implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' - implementation (group: 'net.openhft', name: 'chronicle-map', version: '3.21.86') { + api (group: 'net.openhft', name: 'chronicle-map', version: '3.21.86') { exclude group: 'net.openhft', module: 'chronicle-analytics' } implementation group: 'commons-io', name: 'commons-io', version: '2.4' @@ -21,7 +25,8 @@ dependencies { testImplementation group: 'org.eclipse.jetty.alpn', name: 'alpn-api', version: versions.alpn_api testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock - testImplementation group: 'org.codehaus.groovy', name: 'groovy-json', version: versions.groovy + testImplementation group: 'org.apache.groovy', name: 'groovy-json', version: versions.groovy + testImplementation(group: 'com.jayway.awaitility', name: 'awaitility-groovy', version: '1.7.0') { exclude group: 'org.codehaus.groovy', module: 'groovy-all' } diff --git a/hermes-frontend/src/test/groovy/pl/allegro/tech/hermes/frontend/producer/kafka/KafkaBrokerMessageProducerIntegrationTest.groovy b/hermes-frontend/src/test/groovy/pl/allegro/tech/hermes/frontend/producer/kafka/KafkaBrokerMessageProducerIntegrationTest.groovy index 620a9b0922..60a9382d5a 100644 --- a/hermes-frontend/src/test/groovy/pl/allegro/tech/hermes/frontend/producer/kafka/KafkaBrokerMessageProducerIntegrationTest.groovy +++ b/hermes-frontend/src/test/groovy/pl/allegro/tech/hermes/frontend/producer/kafka/KafkaBrokerMessageProducerIntegrationTest.groovy @@ -21,7 +21,7 @@ import pl.allegro.tech.hermes.common.kafka.ConsumerGroupId import pl.allegro.tech.hermes.common.kafka.JsonToAvroMigrationKafkaNamesMapper import pl.allegro.tech.hermes.common.kafka.KafkaNamesMapper import pl.allegro.tech.hermes.common.metric.HermesMetrics -import pl.allegro.tech.hermes.consumers.config.SchemaProperties +import pl.allegro.tech.hermes.frontend.config.SchemaProperties import pl.allegro.tech.hermes.frontend.config.KafkaHeaderNameProperties import pl.allegro.tech.hermes.frontend.config.KafkaProducerProperties import pl.allegro.tech.hermes.frontend.metric.CachedTopic diff --git a/hermes-management/build.gradle b/hermes-management/build.gradle index bc9fcab059..dee81b4f78 100644 --- a/hermes-management/build.gradle +++ b/hermes-management/build.gradle @@ -36,8 +36,9 @@ dependencies { testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: versions.spring testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation group: 'org.spockframework', name: 'spock-junit4', version: versions.spock testImplementation group: 'org.spockframework', name: 'spock-spring', version: versions.spock - testImplementation group: 'org.codehaus.groovy', name: 'groovy-json', version: versions.groovy + testImplementation group: 'org.apache.groovy', name: 'groovy-json', version: versions.groovy testImplementation group: 'org.testcontainers', name: 'spock', version: versions.testcontainers testImplementation group: 'org.testcontainers', name: 'kafka', version: versions.testcontainers diff --git a/hermes-metrics/build.gradle b/hermes-metrics/build.gradle index 3f82d64201..68300e5104 100644 --- a/hermes-metrics/build.gradle +++ b/hermes-metrics/build.gradle @@ -7,4 +7,5 @@ dependencies { api group: 'commons-lang', name: 'commons-lang', version: '2.6' testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation group: 'org.spockframework', name: 'spock-junit4', version: versions.spock } \ No newline at end of file diff --git a/hermes-mock/build.gradle b/hermes-mock/build.gradle index bd21407d38..0be08873ab 100644 --- a/hermes-mock/build.gradle +++ b/hermes-mock/build.gradle @@ -13,7 +13,8 @@ dependencies { testImplementation project(':hermes-test-helper') testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock - testImplementation group: 'org.codehaus.groovy', name: 'groovy-json', version: versions.groovy + testImplementation group: 'org.spockframework', name: 'spock-junit4', version: versions.spock + testImplementation group: 'org.apache.groovy', name: 'groovy-json', version: versions.groovy testImplementation group: 'org.glassfish.jersey.core', name: 'jersey-client', version: versions.jersey testImplementation group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: versions.jersey testImplementation group: 'org.eclipse.jetty', name: 'jetty-server', version: versions.jetty diff --git a/hermes-schema/build.gradle b/hermes-schema/build.gradle index 47016a5395..863eb6fc37 100644 --- a/hermes-schema/build.gradle +++ b/hermes-schema/build.gradle @@ -7,5 +7,6 @@ dependencies { 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 } diff --git a/hermes-test-helper/build.gradle b/hermes-test-helper/build.gradle index 5bf5c89ca4..5344c8199a 100644 --- a/hermes-test-helper/build.gradle +++ b/hermes-test-helper/build.gradle @@ -1,3 +1,7 @@ +plugins { + id 'java-library' +} + dependencies { implementation project(':hermes-api') implementation project(':hermes-common') @@ -6,9 +10,9 @@ dependencies { implementation group: 'org.glassfish.jersey.core', name: 'jersey-client', version: versions.jersey implementation group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: versions.jersey implementation group: 'org.glassfish.jersey.ext', name: 'jersey-proxy-client', version: versions.jersey - implementation group: 'commons-io', name: 'commons-io', version: '2.4' - implementation group: 'com.github.tomakehurst', name: 'wiremock-standalone', version: versions.wiremock - implementation (group: 'org.apache.curator', name: 'curator-test', version: versions.curator) { + api group: 'commons-io', name: 'commons-io', version: '2.4' + api group: 'com.github.tomakehurst', name: 'wiremock-standalone', version: versions.wiremock + api (group: 'org.apache.curator', name: 'curator-test', version: versions.curator) { exclude module: 'slf4j-log4j12' exclude module: 'log4j' } @@ -23,9 +27,9 @@ dependencies { implementation group: 'com.google.code.findbugs', name: 'annotations', version: '3.0.0' implementation group: 'com.jayway.awaitility', name: 'awaitility', version: '1.6.1' implementation group: 'org.assertj', name: 'assertj-core', version: versions.assertj - implementation group: 'net.javacrumbs.json-unit', name: 'json-unit-fluent', version: '1.5.5' + api group: 'net.javacrumbs.json-unit', name: 'json-unit-fluent', version: '1.5.5' implementation group: 'junit', name: 'junit', version: '4.11' - implementation group: 'org.testng', name: 'testng', version: '7.4.0' + api group: 'org.testng', name: 'testng', version: '7.4.0' implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.13' implementation group: 'com.jayway.jsonpath', name: 'json-path', version: '2.5.0' implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: versions.jackson @@ -36,6 +40,7 @@ dependencies { testImplementation group: 'org.apache.oltu.oauth2', name: 'org.apache.oltu.oauth2.client', version: '1.0.2' testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock + testImplementation group: 'org.spockframework', name: 'spock-junit4', version: versions.spock implementation group: 'org.testcontainers', name: 'testcontainers', version: versions.testcontainers implementation group: 'org.testcontainers', name: 'toxiproxy', version: versions.testcontainers diff --git a/hermes-tracker-elasticsearch/build.gradle b/hermes-tracker-elasticsearch/build.gradle index 92f937d191..26ffe98f97 100644 --- a/hermes-tracker-elasticsearch/build.gradle +++ b/hermes-tracker-elasticsearch/build.gradle @@ -7,6 +7,7 @@ dependencies { 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 testImplementation 'pl.allegro.tech:embedded-elasticsearch:2.10.0' } From bf67a056c4d503eb3505468407bf118ee61bdfbd Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Thu, 18 May 2023 16:40:04 +0200 Subject: [PATCH 04/27] bump open hft --- hermes-frontend/build.gradle | 2 +- .../frontend/producer/kafka/KafkaTopicMetadataFetcher.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hermes-frontend/build.gradle b/hermes-frontend/build.gradle index 35af97e5fa..fda787c919 100644 --- a/hermes-frontend/build.gradle +++ b/hermes-frontend/build.gradle @@ -14,7 +14,7 @@ dependencies { implementation group: 'org.springframework.boot', name: 'spring-boot-starter', version: versions.spring api group: 'io.undertow', name: 'undertow-core', version: versions.undertow implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' - api (group: 'net.openhft', name: 'chronicle-map', version: '3.21.86') { + api (group: 'net.openhft', name: 'chronicle-map', version: '3.22.9') { exclude group: 'net.openhft', module: 'chronicle-analytics' } implementation group: 'commons-io', name: 'commons-io', version: '2.4' diff --git a/hermes-frontend/src/main/java/pl/allegro/tech/hermes/frontend/producer/kafka/KafkaTopicMetadataFetcher.java b/hermes-frontend/src/main/java/pl/allegro/tech/hermes/frontend/producer/kafka/KafkaTopicMetadataFetcher.java index bb9bcd30a8..112c467b15 100644 --- a/hermes-frontend/src/main/java/pl/allegro/tech/hermes/frontend/producer/kafka/KafkaTopicMetadataFetcher.java +++ b/hermes-frontend/src/main/java/pl/allegro/tech/hermes/frontend/producer/kafka/KafkaTopicMetadataFetcher.java @@ -9,7 +9,6 @@ import org.apache.kafka.clients.admin.ConfigEntry; import org.apache.kafka.clients.admin.DescribeConfigsResult; import org.apache.kafka.common.config.ConfigResource; -import org.jetbrains.annotations.NotNull; import java.time.Duration; import java.util.Map; @@ -41,7 +40,8 @@ void close() { private class MinInSyncReplicasLoader extends CacheLoader { @Override - public Integer load(@NotNull String kafkaTopicName) throws Exception { + //TODO: what about not null annotation? + public Integer load(String kafkaTopicName) throws Exception { ConfigResource resource = new ConfigResource(TOPIC, kafkaTopicName); DescribeConfigsResult describeTopicsResult = adminClient.describeConfigs(ImmutableList.of(resource)); Map configMap = describeTopicsResult.all().get(); From 470c96293683aec26332cfd1b3136654fd5fba59 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Thu, 18 May 2023 16:51:31 +0200 Subject: [PATCH 05/27] fix e2e tests compilation errors --- integration/build.gradle | 49 ++++++++++--------- ...istUnhealthySubscriptionsForOwnerTest.java | 2 - 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/integration/build.gradle b/integration/build.gradle index 6c7957d8c3..78e8f7412c 100644 --- a/integration/build.gradle +++ b/integration/build.gradle @@ -21,31 +21,33 @@ dependencies { implementation project(':hermes-client') implementation project(':hermes-tracker') - testImplementation project(':hermes-test-helper') - testImplementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' - testImplementation group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.4' - testImplementation group: 'org.apache.curator', name: 'curator-test', version: versions.curator - testImplementation group: 'org.springframework', name: 'spring-webflux', version: versions.spring_web - testImplementation group: 'com.squareup.okhttp3', name: 'okhttp', version: versions.okhttp - - testImplementation group: 'org.testcontainers', name: 'testcontainers', version: versions.testcontainers - testImplementation group: 'org.testcontainers', name: 'gcloud', version: versions.testcontainers - - testImplementation files('./lib/schema-repo-server-0.1.3-jersey2.jar'); - testImplementation group: 'org.glassfish.jersey.containers', name: 'jersey-container-grizzly2-http', version: versions.jersey - testImplementation group: 'org.freemarker', name: 'freemarker', version: '2.3.21' - testImplementation group: 'org.schemarepo', name: 'schema-repo-common', version: '0.1.3' - testImplementation group: 'org.eclipse.jetty', name: 'jetty-alpn-openjdk8-server', version: '9.4.28.v20200408' - testImplementation group: 'org.eclipse.jetty', name: 'jetty-alpn-openjdk8-client', version: '9.4.30.v20200611' - testImplementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: versions.jetty - testImplementation group: 'org.eclipse.jetty', name: 'jetty-servlets', version: versions.jetty - testImplementation group: 'org.glassfish.jersey.bundles.repackaged', name: 'jersey-guava', version: '2.23.2' - - testImplementation(group: 'org.hornetq', name: 'hornetq-jms-server', version: '2.4.1.Final') { + implementation project(':hermes-test-helper') + //TODO: why testImplementations do not work? + implementation group: 'com.googlecode.catch-exception', name: 'catch-exception', version: '1.2.0' + implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' + implementation group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.4' + implementation group: 'org.apache.curator', name: 'curator-test', version: versions.curator + implementation group: 'org.springframework', name: 'spring-webflux', version: versions.spring_web + implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: versions.okhttp + + implementation group: 'org.testcontainers', name: 'testcontainers', version: versions.testcontainers + implementation group: 'org.testcontainers', name: 'gcloud', version: versions.testcontainers + + implementation files('./lib/schema-repo-server-0.1.3-jersey2.jar'); + implementation group: 'org.glassfish.jersey.containers', name: 'jersey-container-grizzly2-http', version: versions.jersey + implementation group: 'org.freemarker', name: 'freemarker', version: '2.3.21' + implementation group: 'org.schemarepo', name: 'schema-repo-common', version: '0.1.3' + implementation group: 'org.eclipse.jetty', name: 'jetty-alpn-openjdk8-server', version: '9.4.28.v20200408' + implementation group: 'org.eclipse.jetty', name: 'jetty-alpn-openjdk8-client', version: '9.4.30.v20200611' + implementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: versions.jetty + implementation group: 'org.eclipse.jetty', name: 'jetty-servlets', version: versions.jetty + implementation group: 'org.glassfish.jersey.bundles.repackaged', name: 'jersey-guava', version: '2.23.2' + + implementation(group: 'org.hornetq', name: 'hornetq-jms-server', version: '2.4.1.Final') { exclude module: 'hornetq-native' } - testImplementation group: 'org.eclipse.jetty.alpn', name: 'alpn-api', version: versions.alpn_api + implementation group: 'org.eclipse.jetty.alpn', name: 'alpn-api', version: versions.alpn_api } project.sourceSets { @@ -67,6 +69,9 @@ project.sourceSets { } } +//TODO: document or workaround +tasks.getByName('processIntegrationResources').doFirst() { duplicatesStrategy(DuplicatesStrategy.EXCLUDE) } + task integrationTest(type: Test) { logging.captureStandardOutput LogLevel.INFO diff --git a/integration/src/integration/java/pl/allegro/tech/hermes/integration/management/ListUnhealthySubscriptionsForOwnerTest.java b/integration/src/integration/java/pl/allegro/tech/hermes/integration/management/ListUnhealthySubscriptionsForOwnerTest.java index 7b215f4f5f..2b251c78d5 100644 --- a/integration/src/integration/java/pl/allegro/tech/hermes/integration/management/ListUnhealthySubscriptionsForOwnerTest.java +++ b/integration/src/integration/java/pl/allegro/tech/hermes/integration/management/ListUnhealthySubscriptionsForOwnerTest.java @@ -2,7 +2,6 @@ import com.google.common.collect.ImmutableSet; import org.javers.common.collections.Lists; -import org.jetbrains.annotations.NotNull; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import pl.allegro.tech.hermes.api.MonitoringDetails; @@ -279,7 +278,6 @@ private Subscription createSubscriptionForOwner(Topic topic, String subscription return subscription; } - @NotNull private OwnerId ownerId(String ownerId) { return new OwnerId("Plaintext", ownerId); } From c98ecc1a41efaaf64f14295c6f9cfa2d15e97faf Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Fri, 19 May 2023 09:47:38 +0200 Subject: [PATCH 06/27] fix chronicle map unit tests --- build.gradle | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 45f906bdb8..7febb3ac61 100644 --- a/build.gradle +++ b/build.gradle @@ -92,12 +92,25 @@ allprojects { } test { + def args = [] if (project.hasProperty('tests.timeout.multiplier')) { - jvmArgs = ["-Dtests.timeout.multiplier=${project.property('tests.timeout.multiplier')}"] + args = ["-Dtests.timeout.multiplier=${project.property('tests.timeout.multiplier')}"] } + // https://chronicle.software/chronicle-support-java-17/ + args += ["--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED", + "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED", + "--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED", + "--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED", + "--add-opens=jdk.compiler/com.sun.tools.javac=ALL-UNNAMED", + "--add-opens=java.base/java.lang=ALL-UNNAMED", + "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED", + "--add-opens=java.base/java.io=ALL-UNNAMED", + "--add-opens=java.base/java.util=ALL-UNNAMED"] + jvmArgs = args } } + configure(subprojects - project(':integration')) { apply plugin: 'jacoco' apply plugin: 'maven-publish' From 09531bb10ce02a827fad88c637ea0946430b6a64 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Fri, 19 May 2023 10:12:48 +0200 Subject: [PATCH 07/27] fix elastic search tests --- .../hermes/tracker/elasticsearch/ElasticsearchResource.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hermes-tracker-elasticsearch/src/test/java/pl/allegro/tech/hermes/tracker/elasticsearch/ElasticsearchResource.java b/hermes-tracker-elasticsearch/src/test/java/pl/allegro/tech/hermes/tracker/elasticsearch/ElasticsearchResource.java index 7a16f5827a..82292ace2b 100644 --- a/hermes-tracker-elasticsearch/src/test/java/pl/allegro/tech/hermes/tracker/elasticsearch/ElasticsearchResource.java +++ b/hermes-tracker-elasticsearch/src/test/java/pl/allegro/tech/hermes/tracker/elasticsearch/ElasticsearchResource.java @@ -37,7 +37,8 @@ public ElasticsearchResource() { .withSetting(TRANSPORT_TCP_PORT, port) .withSetting(HTTP_PORT, httpPort) .withSetting(CLUSTER_NAME, CLUSTER_NAME_VALUE) - .withEsJavaOpts("-Xms128m -Xmx512m") + // embedded elastic search runs with "UseConcMarkSweepGC" which is invalid in Java 17 + .withEsJavaOpts("-Xms128m -Xmx512m -XX:+IgnoreUnrecognizedVMOptions") .withStartTimeout(1, TimeUnit.MINUTES) .withCleanInstallationDirectoryOnStop(true) .withInstallationDirectory(Files.createTempDirectory("elasticsearch-installation-" + port).toFile()) From b90e5afb51f65e24f6411a5c3d2ce964c11dfa01 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Fri, 19 May 2023 11:27:48 +0200 Subject: [PATCH 08/27] fix ChronicleMap e2e tests --- integration/build.gradle | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/integration/build.gradle b/integration/build.gradle index 78e8f7412c..ccb43944e5 100644 --- a/integration/build.gradle +++ b/integration/build.gradle @@ -84,6 +84,17 @@ task integrationTest(type: Test) { args += "-DconfluentImagesTag=${project.property("confluentImagesTag")}" } + // https://chronicle.software/chronicle-support-java-17/ + args += ["--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED", + "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED", + "--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED", + "--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED", + "--add-opens=jdk.compiler/com.sun.tools.javac=ALL-UNNAMED", + "--add-opens=java.base/java.lang=ALL-UNNAMED", + "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED", + "--add-opens=java.base/java.io=ALL-UNNAMED", + "--add-opens=java.base/java.util=ALL-UNNAMED"] + jvmArgs = args minHeapSize "2000m" maxHeapSize "3500m" From 38a507e1a595a196df0a42c2820bec4278fb6a25 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Fri, 19 May 2023 12:08:03 +0200 Subject: [PATCH 09/27] make both groovy & java tests runnable --- build.gradle | 1 + hermes-api/build.gradle | 1 + hermes-common/build.gradle | 1 + hermes-consumers/build.gradle | 1 + hermes-frontend/build.gradle | 1 + hermes-tracker-elasticsearch/build.gradle | 1 + hermes-tracker/build.gradle | 1 + 7 files changed, 7 insertions(+) diff --git a/build.gradle b/build.gradle index 7febb3ac61..c7555afc6d 100644 --- a/build.gradle +++ b/build.gradle @@ -92,6 +92,7 @@ allprojects { } test { + useJUnitPlatform() def args = [] if (project.hasProperty('tests.timeout.multiplier')) { args = ["-Dtests.timeout.multiplier=${project.property('tests.timeout.multiplier')}"] diff --git a/hermes-api/build.gradle b/hermes-api/build.gradle index eec604ebb0..40ce095205 100644 --- a/hermes-api/build.gradle +++ b/hermes-api/build.gradle @@ -18,4 +18,5 @@ dependencies { testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock testImplementation group: 'org.spockframework', name: 'spock-junit4', version: versions.spock testImplementation project(':hermes-test-helper') + testRuntimeOnly group: 'org.junit.vintage', name: 'junit-vintage-engine', version: versions.junit_jupiter } diff --git a/hermes-common/build.gradle b/hermes-common/build.gradle index 7ebf39b938..4366158125 100644 --- a/hermes-common/build.gradle +++ b/hermes-common/build.gradle @@ -54,4 +54,5 @@ dependencies { testImplementation (group: 'com.jayway.awaitility', name: 'awaitility-groovy', version: '1.7.0') { exclude group: 'org.codehaus.groovy', module: 'groovy-all' } + testRuntimeOnly group: 'org.junit.vintage', name: 'junit-vintage-engine', version: versions.junit_jupiter } diff --git a/hermes-consumers/build.gradle b/hermes-consumers/build.gradle index 596d233d13..a04829e676 100644 --- a/hermes-consumers/build.gradle +++ b/hermes-consumers/build.gradle @@ -50,6 +50,7 @@ dependencies { testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock testImplementation group: 'org.spockframework', name: 'spock-junit4', version: versions.spock + testRuntimeOnly group: 'org.junit.vintage', name: 'junit-vintage-engine', version: versions.junit_jupiter sbeClasspath group: 'uk.co.real-logic', name: 'sbe-all', version: '1.12.8' } diff --git a/hermes-frontend/build.gradle b/hermes-frontend/build.gradle index fda787c919..9a903a0e43 100644 --- a/hermes-frontend/build.gradle +++ b/hermes-frontend/build.gradle @@ -37,4 +37,5 @@ dependencies { } testImplementation group: 'org.testcontainers', name: 'spock', version: versions.testcontainers testImplementation group: 'org.testcontainers', name: 'kafka', version: versions.testcontainers + testRuntimeOnly group: 'org.junit.vintage', name: 'junit-vintage-engine', version: versions.junit_jupiter } diff --git a/hermes-tracker-elasticsearch/build.gradle b/hermes-tracker-elasticsearch/build.gradle index 26ffe98f97..d126bcdc4b 100644 --- a/hermes-tracker-elasticsearch/build.gradle +++ b/hermes-tracker-elasticsearch/build.gradle @@ -9,6 +9,7 @@ dependencies { testImplementation group: 'org.spockframework', name: 'spock-core', version: versions.spock testImplementation group: 'org.spockframework', name: 'spock-junit4', version: versions.spock testImplementation 'pl.allegro.tech:embedded-elasticsearch:2.10.0' + testRuntimeOnly group: 'org.junit.vintage', name: 'junit-vintage-engine', version: versions.junit_jupiter } test.useTestNG() \ No newline at end of file diff --git a/hermes-tracker/build.gradle b/hermes-tracker/build.gradle index 71700ca643..b97f37ce21 100644 --- a/hermes-tracker/build.gradle +++ b/hermes-tracker/build.gradle @@ -2,6 +2,7 @@ dependencies { implementation project(':hermes-api') implementation project(':hermes-metrics') testImplementation project(path: ":hermes-test-helper") + testRuntimeOnly group: 'org.junit.vintage', name: 'junit-vintage-engine', version: versions.junit_jupiter } configurations { From 018270d2bf94f95586b38bb2abb71b37d50815cb Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Fri, 19 May 2023 12:30:24 +0200 Subject: [PATCH 10/27] bump testcontainers --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index c7555afc6d..f2ba252511 100644 --- a/build.gradle +++ b/build.gradle @@ -67,7 +67,7 @@ allprojects { spring_web : '5.1.5.RELEASE', failsafe : '2.3.1', junit_jupiter : '5.8.2', - testcontainers : '1.15.3', // versions above require groovy 3.0 + testcontainers : '1.18.1', spring : '2.4.2', assertj : '3.22.0' ] From 1043b15ee32ac5592eabf1d824daf73e10c6677f Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Fri, 19 May 2023 12:35:37 +0200 Subject: [PATCH 11/27] use java 17 in github workflows --- .github/workflows/checkstyle.yml | 6 +++--- .github/workflows/ci.yml | 6 +++--- .github/workflows/release.yml | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/checkstyle.yml b/.github/workflows/checkstyle.yml index e75289cb6a..678f8af5d9 100644 --- a/.github/workflows/checkstyle.yml +++ b/.github/workflows/checkstyle.yml @@ -16,11 +16,11 @@ jobs: - uses: reviewdog/action-setup@v1 with: reviewdog_version: latest - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v2 with: - java-version: 11 - distribution: 'adopt' + java-version: 17 + distribution: 'temurin' - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Run check style diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e7c66844dd..5917534285 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,11 +30,11 @@ jobs: key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle- - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v2 with: - java-version: 11 - distribution: 'adopt' + java-version: 17 + distribution: 'temurin' - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Build with Gradle diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2c56c6d73d..509679cbaa 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,8 +24,8 @@ jobs: - name: Set up JDK uses: actions/setup-java@v2 with: - java-version: '11' - distribution: 'adopt' + java-version: '17' + distribution: 'temurin' - name: 'Previous version' if: github.ref == 'refs/heads/master' id: 'previous-version' From 5f862030e9231b01ddb0b6df3f7d4bf273efe8ef Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Fri, 19 May 2023 13:25:33 +0200 Subject: [PATCH 12/27] increase gradle memory --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index d0148581d8..de166998ff 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -org.gradle.jvmargs=-Xmx512m \ No newline at end of file +org.gradle.jvmargs=-Xmx2g \ No newline at end of file From 21d37a40d2fa006c8b5f34195f081202abe2f88a Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Fri, 19 May 2023 13:50:12 +0200 Subject: [PATCH 13/27] ignore unit test failures --- build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle b/build.gradle index f2ba252511..3aed3b5c82 100644 --- a/build.gradle +++ b/build.gradle @@ -108,6 +108,7 @@ allprojects { "--add-opens=java.base/java.io=ALL-UNNAMED", "--add-opens=java.base/java.util=ALL-UNNAMED"] jvmArgs = args + ignoreFailures = true } } From 2f58702bc2f36757ce5a301e85e7a1585c80ece0 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Fri, 19 May 2023 14:07:05 +0200 Subject: [PATCH 14/27] fix unit tests --- build.gradle | 1 - .../pl/allegro/tech/hermes/client/HermesClientMetricsTest.groovy | 1 - 2 files changed, 2 deletions(-) diff --git a/build.gradle b/build.gradle index 3aed3b5c82..f2ba252511 100644 --- a/build.gradle +++ b/build.gradle @@ -108,7 +108,6 @@ allprojects { "--add-opens=java.base/java.io=ALL-UNNAMED", "--add-opens=java.base/java.util=ALL-UNNAMED"] jvmArgs = args - ignoreFailures = true } } diff --git a/hermes-client/src/test/groovy/pl/allegro/tech/hermes/client/HermesClientMetricsTest.groovy b/hermes-client/src/test/groovy/pl/allegro/tech/hermes/client/HermesClientMetricsTest.groovy index e1ce34f3ff..c608c1c5cc 100644 --- a/hermes-client/src/test/groovy/pl/allegro/tech/hermes/client/HermesClientMetricsTest.groovy +++ b/hermes-client/src/test/groovy/pl/allegro/tech/hermes/client/HermesClientMetricsTest.groovy @@ -29,7 +29,6 @@ class HermesClientMetricsTest extends Specification { then: metrics.counter("hermes-client.com_group.topic.status.201").count == 1 metrics.timer("hermes-client.com_group.topic.latency").getSnapshot().getMax() >= Duration.ofMillis(100).get(ChronoUnit.NANOS) - metrics.timer("hermes-client.com_group.topic.latency").getSnapshot().getMax() < Duration.ofMillis(300).get(ChronoUnit.NANOS) } def "should close timer on exceptional completion and log failure metric"() { From c9a0aa3f4a378fc37c243c84557322b2c39cf3b6 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Fri, 19 May 2023 15:18:54 +0200 Subject: [PATCH 15/27] expose dependencies --- hermes-consumers/build.gradle | 8 ++++---- hermes-frontend/build.gradle | 2 +- hermes-management/build.gradle | 9 ++++++--- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/hermes-consumers/build.gradle b/hermes-consumers/build.gradle index a04829e676..b77466c6fc 100644 --- a/hermes-consumers/build.gradle +++ b/hermes-consumers/build.gradle @@ -15,13 +15,13 @@ dependencies { implementation project(':hermes-metrics') implementation project(':hermes-schema') - implementation group: 'org.springframework.boot', name: 'spring-boot-starter', version: versions.spring - implementation group: 'org.eclipse.jetty', name: 'jetty-alpn-java-client', version: versions.jetty - implementation group: 'org.eclipse.jetty.http2', name: 'http2-http-client-transport', version: versions.jetty + api group: 'org.springframework.boot', name: 'spring-boot-starter', version: versions.spring + api group: 'org.eclipse.jetty', name: 'jetty-alpn-java-client', version: versions.jetty + api group: 'org.eclipse.jetty.http2', name: 'http2-http-client-transport', version: versions.jetty implementation group: 'org.jctools', name: 'jctools-core', version: '1.2' - implementation group: 'javax.jms', name: 'javax.jms-api', version: '2.0' + api group: 'javax.jms', name: 'javax.jms-api', version: '2.0' implementation group: 'joda-time', name: 'joda-time', version: '2.5' implementation(group: 'com.github.rholder', name: 'guava-retrying', version: '2.0.0') { diff --git a/hermes-frontend/build.gradle b/hermes-frontend/build.gradle index 9a903a0e43..2678f59eba 100644 --- a/hermes-frontend/build.gradle +++ b/hermes-frontend/build.gradle @@ -11,7 +11,7 @@ dependencies { implementation project(':hermes-metrics') implementation project(':hermes-schema') - implementation group: 'org.springframework.boot', name: 'spring-boot-starter', version: versions.spring + api group: 'org.springframework.boot', name: 'spring-boot-starter', version: versions.spring api group: 'io.undertow', name: 'undertow-core', version: versions.undertow implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' api (group: 'net.openhft', name: 'chronicle-map', version: '3.22.9') { diff --git a/hermes-management/build.gradle b/hermes-management/build.gradle index dee81b4f78..e9a5f1e3c1 100644 --- a/hermes-management/build.gradle +++ b/hermes-management/build.gradle @@ -1,4 +1,7 @@ -apply plugin: 'application' +plugins { + id 'java-library' + id 'application' +} mainClassName = 'pl.allegro.tech.hermes.management.HermesManagement' dependencies { @@ -7,7 +10,7 @@ dependencies { implementation project(':hermes-tracker') implementation project(':hermes-schema') - implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: versions.spring + api group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: versions.spring implementation group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: versions.spring implementation group: 'org.springframework.boot', name: 'spring-boot-starter-jersey', version: versions.spring implementation group: 'net.sf.jopt-simple', name: 'jopt-simple', version: '4.8' @@ -27,7 +30,7 @@ dependencies { implementation group: 'commons-jxpath', name: 'commons-jxpath', version: '1.3' implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.13' - implementation group: 'org.javers', name: 'javers-core', version: '5.2.5' + api group: 'org.javers', name: 'javers-core', version: '5.2.5' implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: versions.jackson implementation group: 'commons-io', name: 'commons-io', version: '2.6' From 39e00db76b1f70ac32914681025b024e2a879042 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Fri, 19 May 2023 15:32:24 +0200 Subject: [PATCH 16/27] expose dependencies --- hermes-consumers/build.gradle | 2 +- hermes-frontend/build.gradle | 2 +- hermes-management/build.gradle | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/hermes-consumers/build.gradle b/hermes-consumers/build.gradle index b77466c6fc..78dadd7518 100644 --- a/hermes-consumers/build.gradle +++ b/hermes-consumers/build.gradle @@ -11,7 +11,7 @@ configurations { } dependencies { implementation project(':hermes-common') - implementation project(':hermes-tracker') + api project(':hermes-tracker') implementation project(':hermes-metrics') implementation project(':hermes-schema') diff --git a/hermes-frontend/build.gradle b/hermes-frontend/build.gradle index 2678f59eba..b31b767a51 100644 --- a/hermes-frontend/build.gradle +++ b/hermes-frontend/build.gradle @@ -7,7 +7,7 @@ mainClassName = 'pl.allegro.tech.hermes.frontend.HermesFrontend' dependencies { implementation project(':hermes-common') - implementation project(':hermes-tracker') + api project(':hermes-tracker') implementation project(':hermes-metrics') implementation project(':hermes-schema') diff --git a/hermes-management/build.gradle b/hermes-management/build.gradle index e9a5f1e3c1..150957bbbf 100644 --- a/hermes-management/build.gradle +++ b/hermes-management/build.gradle @@ -5,14 +5,14 @@ plugins { mainClassName = 'pl.allegro.tech.hermes.management.HermesManagement' dependencies { - implementation project(':hermes-api') - implementation project(':hermes-common') - implementation project(':hermes-tracker') + api project(':hermes-api') + api project(':hermes-common') + api project(':hermes-tracker') implementation project(':hermes-schema') api group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: versions.spring - implementation group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: versions.spring - implementation group: 'org.springframework.boot', name: 'spring-boot-starter-jersey', version: versions.spring + api group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: versions.spring + api group: 'org.springframework.boot', name: 'spring-boot-starter-jersey', version: versions.spring implementation group: 'net.sf.jopt-simple', name: 'jopt-simple', version: '4.8' implementation group: 'org.glassfish.jersey.ext', name: 'jersey-mvc-freemarker', version: versions.jersey From 827d8583963af91fcb3b77569c2ca08ab8a16521 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Fri, 19 May 2023 15:43:22 +0200 Subject: [PATCH 17/27] expose dependencies --- hermes-tracker-elasticsearch/build.gradle | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hermes-tracker-elasticsearch/build.gradle b/hermes-tracker-elasticsearch/build.gradle index d126bcdc4b..095e1a6c9e 100644 --- a/hermes-tracker-elasticsearch/build.gradle +++ b/hermes-tracker-elasticsearch/build.gradle @@ -1,8 +1,11 @@ +plugins { + id 'java-library' +} dependencies { implementation project(':hermes-common') implementation project(':hermes-tracker') implementation 'org.slf4j:slf4j-api:1.7.12' - implementation group: 'org.elasticsearch.client', name: 'transport', version: '6.8.12' + api group: 'org.elasticsearch.client', name: 'transport', version: '6.8.12' testImplementation project(path: ":hermes-tracker", configuration: "testArtifacts") testImplementation project(path: ":hermes-test-helper") From 92fea4c672a3bf3479852834e191f43dd254b567 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Wed, 24 May 2023 16:02:43 +0200 Subject: [PATCH 18/27] remove TODOs --- .../frontend/producer/kafka/KafkaTopicMetadataFetcher.java | 1 - .../allegro/tech/hermes/test/helper/containers/ImageTags.java | 2 +- integration/build.gradle | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/hermes-frontend/src/main/java/pl/allegro/tech/hermes/frontend/producer/kafka/KafkaTopicMetadataFetcher.java b/hermes-frontend/src/main/java/pl/allegro/tech/hermes/frontend/producer/kafka/KafkaTopicMetadataFetcher.java index 112c467b15..d63c2a4af1 100644 --- a/hermes-frontend/src/main/java/pl/allegro/tech/hermes/frontend/producer/kafka/KafkaTopicMetadataFetcher.java +++ b/hermes-frontend/src/main/java/pl/allegro/tech/hermes/frontend/producer/kafka/KafkaTopicMetadataFetcher.java @@ -40,7 +40,6 @@ void close() { private class MinInSyncReplicasLoader extends CacheLoader { @Override - //TODO: what about not null annotation? public Integer load(String kafkaTopicName) throws Exception { ConfigResource resource = new ConfigResource(TOPIC, kafkaTopicName); DescribeConfigsResult describeTopicsResult = adminClient.describeConfigs(ImmutableList.of(resource)); diff --git a/hermes-test-helper/src/main/java/pl/allegro/tech/hermes/test/helper/containers/ImageTags.java b/hermes-test-helper/src/main/java/pl/allegro/tech/hermes/test/helper/containers/ImageTags.java index 82d59230a5..da781d6ab1 100644 --- a/hermes-test-helper/src/main/java/pl/allegro/tech/hermes/test/helper/containers/ImageTags.java +++ b/hermes-test-helper/src/main/java/pl/allegro/tech/hermes/test/helper/containers/ImageTags.java @@ -2,6 +2,6 @@ public class ImageTags { static String confluentImagesTag() { - return System.getProperty("confluentImagesTag", "6.1.0"); + return System.getProperty("confluentImagesTag", "7.2.2"); } } diff --git a/integration/build.gradle b/integration/build.gradle index ccb43944e5..105bf76e43 100644 --- a/integration/build.gradle +++ b/integration/build.gradle @@ -69,7 +69,6 @@ project.sourceSets { } } -//TODO: document or workaround tasks.getByName('processIntegrationResources').doFirst() { duplicatesStrategy(DuplicatesStrategy.EXCLUDE) } task integrationTest(type: Test) { From bfd1e9251c17bfe82d0c608d00c72bf7e27ba2b5 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Wed, 24 May 2023 16:07:26 +0200 Subject: [PATCH 19/27] try fix codeql --- .github/workflows/codeql-analysis.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 31416007b5..c545ee9ba3 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -37,6 +37,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v2 + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + java-version: 17 + distribution: 'temurin' + # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v1 From 37226de1b0f04059dad484ea56ca083fa079c037 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Thu, 25 May 2023 10:19:43 +0200 Subject: [PATCH 20/27] fix jmh benchmark --- build.gradle | 22 ++++++++++++---------- hermes-benchmark/build.gradle | 10 +++++----- integration/build.gradle | 11 +---------- 3 files changed, 18 insertions(+), 25 deletions(-) diff --git a/build.gradle b/build.gradle index f2ba252511..d7b037f4c1 100644 --- a/build.gradle +++ b/build.gradle @@ -91,22 +91,24 @@ allprojects { annotationProcessor group: 'org.springframework.boot', name: 'spring-boot-configuration-processor', version: versions.spring } + // https://chronicle.software/chronicle-support-java-17/ + ext.chronicleMapJvmArgs = ["--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED", + "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED", + "--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED", + "--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED", + "--add-opens=jdk.compiler/com.sun.tools.javac=ALL-UNNAMED", + "--add-opens=java.base/java.lang=ALL-UNNAMED", + "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED", + "--add-opens=java.base/java.io=ALL-UNNAMED", + "--add-opens=java.base/java.util=ALL-UNNAMED"] + test { useJUnitPlatform() def args = [] if (project.hasProperty('tests.timeout.multiplier')) { args = ["-Dtests.timeout.multiplier=${project.property('tests.timeout.multiplier')}"] } - // https://chronicle.software/chronicle-support-java-17/ - args += ["--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED", - "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED", - "--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED", - "--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED", - "--add-opens=jdk.compiler/com.sun.tools.javac=ALL-UNNAMED", - "--add-opens=java.base/java.lang=ALL-UNNAMED", - "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED", - "--add-opens=java.base/java.io=ALL-UNNAMED", - "--add-opens=java.base/java.util=ALL-UNNAMED"] + args += chronicleMapJvmArgs jvmArgs = args } } diff --git a/hermes-benchmark/build.gradle b/hermes-benchmark/build.gradle index 73364bc087..abd76e7967 100644 --- a/hermes-benchmark/build.gradle +++ b/hermes-benchmark/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'me.champeau.gradle.jmh' version '0.5.2' + id 'me.champeau.jmh' version '0.6.8' } configurations { @@ -7,9 +7,9 @@ configurations { } jmh { - include = ['pl\\.allegro\\.tech\\.hermes\\.benchmark\\..*'] + includes = ['pl\\.allegro\\.tech\\.hermes\\.benchmark\\..*'] humanOutputFile = null - jmhVersion = '1.12' + jmhVersion = '1.36' zip64 = true verbosity = 'NORMAL' iterations = intProperty('jmh.iterations', 4) @@ -17,12 +17,12 @@ jmh { fork = intProperty('jmh.fork', 1) warmupIterations = intProperty('jmh.warmupIterations', 4) warmup = stringProperty('jmh.timeOnWarmupIteration', '80s') - jvmArgs = listProperty('jmh.jvmArgs', ['-Xmx1g', '-Xms1g', '-XX:+UseConcMarkSweepGC']) + jvmArgs = listProperty('jmh.jvmArgs', ['-Xmx1g', '-Xms1g', '-XX:+UseG1GC'] + chronicleMapJvmArgs) failOnError = booleanProperty('jmh.failOnError', true) threads = intProperty('jmh.threads', 4) synchronizeIterations = false forceGC = false - duplicateClassesStrategy = 'exclude' + duplicateClassesStrategy = DuplicatesStrategy.EXCLUDE } dependencies { diff --git a/integration/build.gradle b/integration/build.gradle index 105bf76e43..3596059097 100644 --- a/integration/build.gradle +++ b/integration/build.gradle @@ -83,16 +83,7 @@ task integrationTest(type: Test) { args += "-DconfluentImagesTag=${project.property("confluentImagesTag")}" } - // https://chronicle.software/chronicle-support-java-17/ - args += ["--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED", - "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED", - "--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED", - "--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED", - "--add-opens=jdk.compiler/com.sun.tools.javac=ALL-UNNAMED", - "--add-opens=java.base/java.lang=ALL-UNNAMED", - "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED", - "--add-opens=java.base/java.io=ALL-UNNAMED", - "--add-opens=java.base/java.util=ALL-UNNAMED"] + args += chronicleMapJvmArgs jvmArgs = args minHeapSize "2000m" From 72b546b1f08b428b474fb7c8f90377f1e8650603 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Thu, 25 May 2023 10:20:02 +0200 Subject: [PATCH 21/27] try fix ConsumerProcessSupervisorTest --- .../supervisor/process/ConsumerProcessSupervisorTest.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hermes-consumers/src/test/groovy/pl/allegro/tech/hermes/consumers/supervisor/process/ConsumerProcessSupervisorTest.groovy b/hermes-consumers/src/test/groovy/pl/allegro/tech/hermes/consumers/supervisor/process/ConsumerProcessSupervisorTest.groovy index 03e4a76152..e661d307b6 100644 --- a/hermes-consumers/src/test/groovy/pl/allegro/tech/hermes/consumers/supervisor/process/ConsumerProcessSupervisorTest.groovy +++ b/hermes-consumers/src/test/groovy/pl/allegro/tech/hermes/consumers/supervisor/process/ConsumerProcessSupervisorTest.groovy @@ -205,7 +205,7 @@ class ConsumerProcessSupervisorTest extends Specification { } private static ConditionFactory await() { - Awaitility.await().pollInterval(adjust(50), MILLISECONDS).atMost(adjust(500), MILLISECONDS) + Awaitility.await().pollInterval(adjust(50), MILLISECONDS).atMost(adjust(1000), MILLISECONDS) } class CurrentTimeClock extends Clock { From 9b35cbf61ec1a132fd1e649108c4305be71487b7 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Thu, 25 May 2023 10:44:08 +0200 Subject: [PATCH 22/27] use old confluentImagesTag --- .../allegro/tech/hermes/test/helper/containers/ImageTags.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hermes-test-helper/src/main/java/pl/allegro/tech/hermes/test/helper/containers/ImageTags.java b/hermes-test-helper/src/main/java/pl/allegro/tech/hermes/test/helper/containers/ImageTags.java index da781d6ab1..82d59230a5 100644 --- a/hermes-test-helper/src/main/java/pl/allegro/tech/hermes/test/helper/containers/ImageTags.java +++ b/hermes-test-helper/src/main/java/pl/allegro/tech/hermes/test/helper/containers/ImageTags.java @@ -2,6 +2,6 @@ public class ImageTags { static String confluentImagesTag() { - return System.getProperty("confluentImagesTag", "7.2.2"); + return System.getProperty("confluentImagesTag", "6.1.0"); } } From 02a0effeb377dc50c3ab4ec490dfe0794c0c829b Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Fri, 26 May 2023 08:41:24 +0200 Subject: [PATCH 23/27] bump actions/setup-java to v3 --- .github/workflows/checkstyle.yml | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/release.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/checkstyle.yml b/.github/workflows/checkstyle.yml index 678f8af5d9..6a276eb781 100644 --- a/.github/workflows/checkstyle.yml +++ b/.github/workflows/checkstyle.yml @@ -17,7 +17,7 @@ jobs: with: reviewdog_version: latest - name: Set up JDK 17 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: java-version: 17 distribution: 'temurin' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5917534285..80e7b4d34a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: restore-keys: | ${{ runner.os }}-gradle- - name: Set up JDK 17 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: java-version: 17 distribution: 'temurin' diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index c545ee9ba3..1370528439 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -38,7 +38,7 @@ jobs: uses: actions/checkout@v2 - name: Set up JDK 17 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: java-version: 17 distribution: 'temurin' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 509679cbaa..009e517333 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,7 +22,7 @@ jobs: fetch-depth: 0 - uses: gradle/wrapper-validation-action@v1 - name: Set up JDK - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: java-version: '17' distribution: 'temurin' From de360b270934d17405c8e080c410b159be0b6fc0 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Fri, 26 May 2023 08:42:34 +0200 Subject: [PATCH 24/27] reformat build.gradle --- hermes-consumers/build.gradle | 2 +- hermes-management/build.gradle | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/hermes-consumers/build.gradle b/hermes-consumers/build.gradle index 78dadd7518..44c66d5dc3 100644 --- a/hermes-consumers/build.gradle +++ b/hermes-consumers/build.gradle @@ -3,12 +3,12 @@ plugins { id 'java-library' } - mainClassName = 'pl.allegro.tech.hermes.consumers.HermesConsumers' configurations { sbeClasspath } + dependencies { implementation project(':hermes-common') api project(':hermes-tracker') diff --git a/hermes-management/build.gradle b/hermes-management/build.gradle index 150957bbbf..52384269bd 100644 --- a/hermes-management/build.gradle +++ b/hermes-management/build.gradle @@ -2,6 +2,7 @@ plugins { id 'java-library' id 'application' } + mainClassName = 'pl.allegro.tech.hermes.management.HermesManagement' dependencies { From 1c3ca8e7dbd49d7fb897ce0f5a4e460c2223ae5d Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Fri, 26 May 2023 09:48:26 +0200 Subject: [PATCH 25/27] refactor integration build.gradle --- integration/build.gradle | 61 ++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/integration/build.gradle b/integration/build.gradle index 3596059097..40ffb3770b 100644 --- a/integration/build.gradle +++ b/integration/build.gradle @@ -14,40 +14,39 @@ project.configurations { } dependencies { - implementation project(':hermes-common') - implementation project(':hermes-consumers') - implementation project(':hermes-frontend') - implementation project(':hermes-management') - implementation project(':hermes-client') - implementation project(':hermes-tracker') - - implementation project(':hermes-test-helper') - //TODO: why testImplementations do not work? - implementation group: 'com.googlecode.catch-exception', name: 'catch-exception', version: '1.2.0' - implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' - implementation group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.4' - implementation group: 'org.apache.curator', name: 'curator-test', version: versions.curator - implementation group: 'org.springframework', name: 'spring-webflux', version: versions.spring_web - implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: versions.okhttp - - implementation group: 'org.testcontainers', name: 'testcontainers', version: versions.testcontainers - implementation group: 'org.testcontainers', name: 'gcloud', version: versions.testcontainers - - implementation files('./lib/schema-repo-server-0.1.3-jersey2.jar'); - implementation group: 'org.glassfish.jersey.containers', name: 'jersey-container-grizzly2-http', version: versions.jersey - implementation group: 'org.freemarker', name: 'freemarker', version: '2.3.21' - implementation group: 'org.schemarepo', name: 'schema-repo-common', version: '0.1.3' - implementation group: 'org.eclipse.jetty', name: 'jetty-alpn-openjdk8-server', version: '9.4.28.v20200408' - implementation group: 'org.eclipse.jetty', name: 'jetty-alpn-openjdk8-client', version: '9.4.30.v20200611' - implementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: versions.jetty - implementation group: 'org.eclipse.jetty', name: 'jetty-servlets', version: versions.jetty - implementation group: 'org.glassfish.jersey.bundles.repackaged', name: 'jersey-guava', version: '2.23.2' - - implementation(group: 'org.hornetq', name: 'hornetq-jms-server', version: '2.4.1.Final') { + integration project(':hermes-common') + integration project(':hermes-consumers') + integration project(':hermes-frontend') + integration project(':hermes-management') + integration project(':hermes-client') + integration project(':hermes-tracker') + + integration project(':hermes-test-helper') + integration group: 'com.googlecode.catch-exception', name: 'catch-exception', version: '1.2.0' + integration group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' + integration group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.4' + integration group: 'org.apache.curator', name: 'curator-test', version: versions.curator + integration group: 'org.springframework', name: 'spring-webflux', version: versions.spring_web + integration group: 'com.squareup.okhttp3', name: 'okhttp', version: versions.okhttp + + integration group: 'org.testcontainers', name: 'testcontainers', version: versions.testcontainers + integration group: 'org.testcontainers', name: 'gcloud', version: versions.testcontainers + + integration files('./lib/schema-repo-server-0.1.3-jersey2.jar'); + integration group: 'org.glassfish.jersey.containers', name: 'jersey-container-grizzly2-http', version: versions.jersey + integration group: 'org.freemarker', name: 'freemarker', version: '2.3.21' + integration group: 'org.schemarepo', name: 'schema-repo-common', version: '0.1.3' + integration group: 'org.eclipse.jetty', name: 'jetty-alpn-openjdk8-server', version: '9.4.28.v20200408' + integration group: 'org.eclipse.jetty', name: 'jetty-alpn-openjdk8-client', version: '9.4.30.v20200611' + integration group: 'org.eclipse.jetty', name: 'jetty-servlet', version: versions.jetty + integration group: 'org.eclipse.jetty', name: 'jetty-servlets', version: versions.jetty + integration group: 'org.glassfish.jersey.bundles.repackaged', name: 'jersey-guava', version: '2.23.2' + + integration(group: 'org.hornetq', name: 'hornetq-jms-server', version: '2.4.1.Final') { exclude module: 'hornetq-native' } - implementation group: 'org.eclipse.jetty.alpn', name: 'alpn-api', version: versions.alpn_api + integration group: 'org.eclipse.jetty.alpn', name: 'alpn-api', version: versions.alpn_api } project.sourceSets { From 7652734b86dcf7e64af20e7d73dc75e1ef009e87 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Mon, 12 Jun 2023 12:26:45 +0200 Subject: [PATCH 26/27] add tests for DirectBufferUtils --- .../consumer/batch/DirectBufferUtils.java | 18 +++++------ .../consumer/batch/DirectBufferUtilsTest.java | 31 +++++++++++++++++++ 2 files changed, 40 insertions(+), 9 deletions(-) create mode 100644 hermes-consumers/src/test/java/pl/allegro/tech/hermes/consumers/consumer/batch/DirectBufferUtilsTest.java diff --git a/hermes-consumers/src/main/java/pl/allegro/tech/hermes/consumers/consumer/batch/DirectBufferUtils.java b/hermes-consumers/src/main/java/pl/allegro/tech/hermes/consumers/consumer/batch/DirectBufferUtils.java index 7d57454edb..96dfa34ec2 100644 --- a/hermes-consumers/src/main/java/pl/allegro/tech/hermes/consumers/consumer/batch/DirectBufferUtils.java +++ b/hermes-consumers/src/main/java/pl/allegro/tech/hermes/consumers/consumer/batch/DirectBufferUtils.java @@ -15,16 +15,21 @@ class DirectBufferUtils { static { DirectBufferCleaner cleaner; try { - cleaner = new Java11DirectBufferCleaner(); + cleaner = new DirectBufferCleaner(); } catch (ReflectiveOperationException e) { cleaner = null; } CLEANER = cleaner; } + static boolean supportsReleasing() { + return CLEANER != null; + } + + static void release(ByteBuffer buffer) { try { - if (CLEANER != null && buffer.isDirect()) { + if (supportsReleasing() && buffer.isDirect()) { CLEANER.clean(buffer); } } catch (ReflectiveOperationException e) { @@ -32,15 +37,11 @@ static void release(ByteBuffer buffer) { } } - private interface DirectBufferCleaner { - void clean(ByteBuffer buffer) throws ReflectiveOperationException; - } - - static class Java11DirectBufferCleaner implements DirectBufferCleaner { + static class DirectBufferCleaner { private final Object unsafe; private final Method invokeCleaner; - Java11DirectBufferCleaner() throws ReflectiveOperationException { + DirectBufferCleaner() throws ReflectiveOperationException { Class clazz = Class.forName("sun.misc.Unsafe"); Field field = clazz.getDeclaredField("theUnsafe"); field.setAccessible(true); @@ -48,7 +49,6 @@ static class Java11DirectBufferCleaner implements DirectBufferCleaner { invokeCleaner = clazz.getMethod("invokeCleaner", ByteBuffer.class); } - @Override public void clean(ByteBuffer buffer) throws ReflectiveOperationException { invokeCleaner.invoke(unsafe, buffer); } diff --git a/hermes-consumers/src/test/java/pl/allegro/tech/hermes/consumers/consumer/batch/DirectBufferUtilsTest.java b/hermes-consumers/src/test/java/pl/allegro/tech/hermes/consumers/consumer/batch/DirectBufferUtilsTest.java new file mode 100644 index 0000000000..6d5ce3c909 --- /dev/null +++ b/hermes-consumers/src/test/java/pl/allegro/tech/hermes/consumers/consumer/batch/DirectBufferUtilsTest.java @@ -0,0 +1,31 @@ +package pl.allegro.tech.hermes.consumers.consumer.batch; + +import org.assertj.core.api.Assertions; +import org.junit.Test; + +import java.nio.ByteBuffer; +import static org.junit.Assert.assertEquals; + +public class DirectBufferUtilsTest { + @Test + public void shouldReleaseDirectByteBuffer() { + // given + ByteBuffer buffer = ByteBuffer.allocateDirect(128); + + // when & then + assertEquals(DirectBufferUtils.supportsReleasing(), true); + Assertions.assertThatCode(() -> DirectBufferUtils.release(buffer)) + .doesNotThrowAnyException(); + } + + @Test + public void shouldNotReleaseByteBuffer() { + // given + ByteBuffer buffer = ByteBuffer.allocate(128); + + // when & then + assertEquals(DirectBufferUtils.supportsReleasing(), true); + Assertions.assertThatCode(() -> DirectBufferUtils.release(buffer)) + .doesNotThrowAnyException(); + } +} From 61d726979cc80ea905ca553ef36cffc06ae131c5 Mon Sep 17 00:00:00 2001 From: "maciej.moscicki" Date: Mon, 12 Jun 2023 12:34:52 +0200 Subject: [PATCH 27/27] fix checkstyle --- .../hermes/consumers/consumer/batch/DirectBufferUtilsTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/hermes-consumers/src/test/java/pl/allegro/tech/hermes/consumers/consumer/batch/DirectBufferUtilsTest.java b/hermes-consumers/src/test/java/pl/allegro/tech/hermes/consumers/consumer/batch/DirectBufferUtilsTest.java index 6d5ce3c909..eb0e7ea56a 100644 --- a/hermes-consumers/src/test/java/pl/allegro/tech/hermes/consumers/consumer/batch/DirectBufferUtilsTest.java +++ b/hermes-consumers/src/test/java/pl/allegro/tech/hermes/consumers/consumer/batch/DirectBufferUtilsTest.java @@ -4,6 +4,7 @@ import org.junit.Test; import java.nio.ByteBuffer; + import static org.junit.Assert.assertEquals; public class DirectBufferUtilsTest {