Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 17 additions & 4 deletions .github/workflows/check-samples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,12 @@ jobs:
strategy:
matrix:
include:
- javaVersion: 17
- javaVersion: 25
springBootVersion: "${{ needs.prerequisites.outputs.boot_version }}"
springPulsarVersion: "${{ needs.prerequisites.outputs.project_version }}"
pulsarVersion: "${{ needs.prerequisites.outputs.pulsar_version }}"
samplesTarget: ':runAllSampleTests'
- javaVersion: 24
springBootVersion: "${{ needs.prerequisites.outputs.boot_version }}"
springPulsarVersion: "${{ needs.prerequisites.outputs.project_version }}"
pulsarVersion: "${{ needs.prerequisites.outputs.pulsar_version }}"
Expand All @@ -50,22 +55,30 @@ jobs:
springBootVersion: "${{ needs.prerequisites.outputs.boot_version }}"
springPulsarVersion: "${{ needs.prerequisites.outputs.project_version }}"
pulsarVersion: "${{ needs.prerequisites.outputs.pulsar_version }}"
samplesTarget: ':runAllSampleTests -x :spring-pulsar-sample-apps:sample-pulsar-functions:sample-signup-function:test'
samplesTarget: ':runAllSampleTests'
- javaVersion: 17
springBootVersion: "${{ needs.prerequisites.outputs.boot_version }}"
springPulsarVersion: "${{ needs.prerequisites.outputs.project_version }}"
pulsarVersion: "3.2.4"
pulsarVersion: "${{ needs.prerequisites.outputs.pulsar_version }}"
samplesTarget: ':runAllSampleTests'
- javaVersion: 17
springBootVersion: "${{ needs.prerequisites.outputs.boot_version }}"
springPulsarVersion: "${{ needs.prerequisites.outputs.project_version }}"
pulsarVersion: "3.3.8"
samplesTarget: ':runAllSampleTests'
- javaVersion: 17
springBootVersion: "${{ needs.prerequisites.outputs.boot_version }}"
springPulsarVersion: "${{ needs.prerequisites.outputs.project_version }}"
pulsarVersion: "4.1.0"
pulsarVersion: "3.2.4"
samplesTarget: ':runAllSampleTests'
runs-on: ubuntu-latest
if: needs.prerequisites.outputs.runjobs
steps:
- uses: actions/checkout@v5
- uses: spring-io/spring-gradle-build-action@v2
with:
java-version: "${{ matrix.javaVersion }}"
distribution: 'liberica'
- name: Check samples project
env:
LOCAL_REPOSITORY_PATH: ${{ github.workspace }}/build/publications/repos
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/ci-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ jobs:
steps:
- uses: actions/checkout@v5
- uses: spring-io/spring-gradle-build-action@v2
with:
java-version: '25'
distribution: 'liberica'
- name: Check format (short circuit)
run: |
./gradlew checkFormat
Expand Down Expand Up @@ -70,6 +73,9 @@ jobs:
steps:
- uses: actions/checkout@v5
- uses: spring-io/spring-gradle-build-action@v2
with:
java-version: '25'
distribution: 'liberica'
- name: Run integration tests
run: |
./gradlew integrationTest --rerun-tasks -DdownloadRabbitConnector=true --scan
Expand All @@ -90,6 +96,9 @@ jobs:
steps:
- uses: actions/checkout@v5
- uses: spring-io/spring-gradle-build-action@v2
with:
java-version: '25'
distribution: 'liberica'
- name: Run all sample app tests
env:
LOCAL_REPOSITORY_PATH: ${{ github.workspace }}/build/publications/repos
Expand Down
24 changes: 19 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,17 @@ jobs:
else
echo "result=true" >> $GITHUB_OUTPUT
fi
build_jdk_17:
name: Build (JDK 17)
build_jdk_25:
name: Build (JDK 25)
needs: [prerequisites]
runs-on: ubuntu-latest
if: needs.prerequisites.outputs.runjobs
steps:
- uses: actions/checkout@v5
- uses: spring-io/spring-gradle-build-action@v2
with:
java-version: '25'
distribution: 'liberica'
- name: Build and run unit tests
run: |
./gradlew clean build -x integrationTest \
Expand All @@ -91,6 +94,9 @@ jobs:
steps:
- uses: actions/checkout@v5
- uses: spring-io/spring-gradle-build-action@v2
with:
java-version: '25'
distribution: 'liberica'
- name: Run all sample app tests
env:
LOCAL_REPOSITORY_PATH: ${{ github.workspace }}/build/publications/repos
Expand All @@ -107,19 +113,21 @@ jobs:
-PspringBootVersion="$BOOT_VERSION" \
-PsampleTests \
:runAllSampleTests

scan:
needs: [prerequisites]
if: ${{ needs.prerequisites.outputs.runjobs && !contains(inputs.run-trivy-scan, 'false') }}
uses: ./.github/workflows/trivy-scan.yml
deploy_artifacts:
name: Deploy Artifacts
needs: [prerequisites, build_jdk_17, check_samples, scan]
needs: [prerequisites, build_jdk_25, check_samples, scan]
runs-on: ubuntu-latest
if: ${{ needs.prerequisites.outputs.should_deploy_artifacts }}
steps:
- uses: actions/checkout@v5
- uses: spring-io/spring-gradle-build-action@v2
with:
java-version: '25'
distribution: 'liberica'
- id: branch-name
name: Extract Branch Name
env:
Expand Down Expand Up @@ -196,11 +204,14 @@ jobs:

deploy_docs_antora:
name: Deploy Antora Docs
needs: [build_jdk_17, check_samples, scan]
needs: [build_jdk_25, check_samples, scan]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: spring-io/spring-gradle-build-action@v2
with:
java-version: '25'
distribution: 'liberica'
- name: Run Antora
run: |
./gradlew antora
Expand Down Expand Up @@ -239,6 +250,9 @@ jobs:
with:
token: ${{ secrets.GH_ACTIONS_REPO_TOKEN }}
- uses: spring-io/spring-gradle-build-action@v2
with:
java-version: '25'
distribution: 'liberica'
- name: Wait for Milestone Artifacts
if: ${{ contains(needs.prerequisites.outputs.project_version, '-RC') || contains(needs.prerequisites.outputs.project_version, '-M') }}
env:
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/trivy-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ jobs:
steps:
- uses: actions/checkout@v5
- uses: spring-io/spring-gradle-build-action@v2
with:
java-version: '25'
distribution: 'liberica'
- name: Publish to local repo (poms)
run: |
./gradlew publishMavenJavaPublicationToLocalRepository
Expand Down
2 changes: 1 addition & 1 deletion .sdkmanrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Enable auto-env through the sdkman_auto_env config
# Add key=value pairs of SDKs to use below
java=17.0.4-tem
java=25-librca
3 changes: 0 additions & 3 deletions buildSrc/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,6 @@ if (springVersion.contains("-")) {
}
}

sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17

sourceSets {
main {
java { srcDirs = [] }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,13 @@
* the License.
*/

sourceSets {
intTest {
compileClasspath += sourceSets.main.output + project.configurations.intTestCompileClasspath
runtimeClasspath += sourceSets.main.output + project.configurations.intTestRuntimeClasspath
}
}

configurations {
intTestImplementation {
extendsFrom testImplementation
Expand All @@ -31,13 +38,6 @@ configurations {
}
}

sourceSets {
intTest {
compileClasspath += sourceSets.main.output + project.configurations.intTestCompileClasspath
runtimeClasspath += sourceSets.main.output + project.configurations.intTestRuntimeClasspath
}
}

tasks.register('integrationTest', Test) {
description = 'Runs integration tests.'
group = 'verification'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import org.gradle.api.plugins.quality.Checkstyle;
import org.gradle.api.plugins.quality.CheckstyleExtension;
import org.gradle.api.plugins.quality.CheckstylePlugin;
import org.gradle.api.tasks.bundling.Jar;
import org.gradle.api.tasks.compile.JavaCompile;
import org.gradle.api.tasks.javadoc.Javadoc;
import org.gradle.api.tasks.testing.Test;
Expand Down Expand Up @@ -84,8 +83,6 @@
*/
public class JavaConventionsPlugin implements Plugin<Project> {

private static final String SOURCE_AND_TARGET_COMPATIBILITY = "17";

@Override
public void apply(Project project) {
project.getPlugins().withType(JavaBasePlugin.class, (java) -> {
Expand Down Expand Up @@ -117,7 +114,7 @@ private void configureSpringJavaFormat(Project project) {
private void configureJavadocConventions(Project project) {
project.getTasks().withType(Javadoc.class, (javadoc) -> {
CoreJavadocOptions options = (CoreJavadocOptions) javadoc.getOptions();
options.source("17");
options.source("25");
options.encoding("UTF-8");
options.addStringOption("Xdoclint:none", "-quiet");
});
Expand Down Expand Up @@ -148,17 +145,6 @@ private void configureTestConventions(Project project) {
.add(JavaPlugin.TEST_RUNTIME_ONLY_CONFIGURATION_NAME, "org.junit.platform:junit-platform-launcher"));
}

private String determineImplementationTitle(Project project, Set<String> sourceJarTaskNames,
Set<String> javadocJarTaskNames, Jar jar) {
if (sourceJarTaskNames.contains(jar.getName())) {
return "Source for " + project.getName();
}
if (javadocJarTaskNames.contains(jar.getName())) {
return "Javadoc for " + project.getName();
}
return project.getDescription();
}

private void configureDependencyManagement(Project project) {
ConfigurationContainer configurations = project.getConfigurations();
Configuration dependencyManagement = configurations.create("dependencyManagement", (configuration) -> {
Expand Down
2 changes: 1 addition & 1 deletion gradle/build-libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ commons-compress = "1.26.2"
groovy = "2.5.17"
jackson = "2.19.1"
javaformat = "0.0.47"
jfrog = "4.31.9"
jfrog = "6.0.1"
maven = "3.6.3"
nexus-publish = "1.3.0"
nohttp = "0.0.11"
Expand Down
18 changes: 14 additions & 4 deletions gradle/java-conventions.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ def toolchainVersion() {
if (project.hasProperty('testToolchain')) {
return project.property('testToolchain').toString().toInteger()
}
return 17
return 25
}

def linkHomepage() {
Expand All @@ -18,10 +18,20 @@ project.afterEvaluate {
languageVersion = JavaLanguageVersion.of(toolchainVersion())
}
}
tasks.withType(JavaCompile).configureEach {
tasks.withType(JavaCompile.class)
.matching(compileTask -> compileTask.getName().startsWith(JavaPlugin.COMPILE_JAVA_TASK_NAME)).configureEach {
options.encoding = "UTF-8"
options.compilerArgs.add("-parameters")
options.compilerArgs.addAll(["-Werror", "-Xlint:unchecked", "-Xlint:rawtypes", "-Xlint:varargs"]);
options.compilerArgs.addAll([
"-parameters", "-Xlint:unchecked", "-Xlint:rawtypes", "-Xlint:varargs", "-Xlint:deprecation",
"-Werror"])
options.release.set(17)
}
tasks.withType(JavaCompile.class)
.matching(compileTask -> compileTask.getName().startsWith(JavaPlugin.COMPILE_TEST_JAVA_TASK_NAME)
|| compileTask.getName().equals("compileTestFixturesJava")).configureEach {
options.encoding = "UTF-8"
options.compilerArgs.addAll([
"-parameters", "-Xlint:unchecked", "-Xlint:rawtypes", "-Xlint:varargs", "-Xlint:deprecation"])
options.release.set(17)
}
jar {
Expand Down
6 changes: 4 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ caffeine = "3.2.2"
commons-compress = "1.26.2"
jackson = "2.20.0"
jspecify = "1.0.0"
jsr305 = "3.0.2"
logback = "1.5.19"
micrometer = "1.16.0-M3"
micrometer-docs-gen = "1.0.4"
Expand Down Expand Up @@ -33,7 +34,7 @@ antora-yml = "0.0.1"
download = "5.6.0"
grgit = "5.2.2"
nohttp = "0.0.11"
shadow = "8.1.1"
shadow = "9.2.2"
versions = "0.52.0"
version-catalog-update = "0.8.5"
protobuf-plugin = "0.9.5"
Expand All @@ -43,6 +44,7 @@ protobuf-plugin = "0.9.5"
caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version.ref = "caffeine" }
jackson-bom = { module = "com.fasterxml.jackson:jackson-bom", version.ref = "jackson" }
jspecify = { module = "org.jspecify:jspecify", version.ref = "jspecify" }
jsr305 = { module = "com.google.code.findbugs:jsr305", version.ref = "jsr305" }
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
micrometer-bom = { module = "io.micrometer:micrometer-bom", version.ref = "micrometer" }
micrometer-docs-gen = { module = "io.micrometer:micrometer-docs-generator", version.ref = "micrometer-docs-gen" }
Expand Down Expand Up @@ -75,7 +77,7 @@ antora = { id = "org.antora", version.ref = "antora" }
antora-yml = { id = "io.spring.antora.generate-antora-yml", version.ref = "antora-yml" }
download = { id = "de.undercouch.download", version.ref = "download" }
grgit = { id = "org.ajoberstar.grgit", version.ref = "grgit" }
shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" }
shadow = { id = "com.gradleup.shadow", version.ref = "shadow" }
spring-boot = { id = "org.springframework.boot", version.ref = "spring-boot" }
spring-dep-mgmt = { id = "io.spring.dependency-management", version.ref = "spring-dep-mgmt" }
versions = { id = "com.github.ben-manes.versions", version.ref = "versions" }
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
12 changes: 7 additions & 5 deletions gradlew
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
#

##############################################################################
#
Expand Down Expand Up @@ -55,7 +57,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
Expand Down Expand Up @@ -84,7 +86,7 @@ done
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
Expand Down Expand Up @@ -112,7 +114,7 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;;
esac

CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
CLASSPATH="\\\"\\\""


# Determine the Java command to use to start the JVM.
Expand Down Expand Up @@ -203,15 +205,15 @@ fi
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'

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

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

# Stop when "xargs" is not available.
Expand Down
Loading