diff --git a/build-logic/src/main/java/org/ehcache/build/conventions/BndConvention.java b/build-logic/src/main/java/org/ehcache/build/conventions/BndConvention.java index 3e03adfb6f..8e4b72fd49 100644 --- a/build-logic/src/main/java/org/ehcache/build/conventions/BndConvention.java +++ b/build-logic/src/main/java/org/ehcache/build/conventions/BndConvention.java @@ -11,6 +11,7 @@ import org.gradle.api.artifacts.Dependency; import org.gradle.api.artifacts.ExternalDependency; import org.gradle.api.artifacts.ProjectDependency; +import org.gradle.api.artifacts.ResolutionStrategy; import org.gradle.api.plugins.JavaPlugin; import org.gradle.api.provider.MapProperty; import org.gradle.api.publish.PublishingExtension; @@ -46,7 +47,6 @@ public void apply(Project project) { if (baseline instanceof ProjectDependency) { throw new GradleException("Baseline should not be a project dependency"); } else if (baseline instanceof ExternalDependency) { - ((ExternalDependency) baseline).setForce(true); ((ExternalDependency) baseline).setTransitive(false); } else { throw new IllegalArgumentException("Unexpected dependency type: " + baseline); diff --git a/build-logic/src/main/java/org/ehcache/build/conventions/JavaBaseConvention.java b/build-logic/src/main/java/org/ehcache/build/conventions/JavaBaseConvention.java index 64dd065fa5..039d3d3c94 100644 --- a/build-logic/src/main/java/org/ehcache/build/conventions/JavaBaseConvention.java +++ b/build-logic/src/main/java/org/ehcache/build/conventions/JavaBaseConvention.java @@ -13,6 +13,7 @@ import org.gradle.external.javadoc.CoreJavadocOptions; import org.gradle.internal.jvm.JavaInfo; import org.gradle.internal.jvm.Jvm; +import org.gradle.jvm.toolchain.JavaLanguageVersion; import org.gradle.process.internal.ExecException; import java.io.ByteArrayOutputStream; @@ -40,8 +41,7 @@ public void apply(Project project) { project.getExtensions().getExtraProperties().set("testJava", testJava); project.getExtensions().configure(JavaPluginExtension.class, java -> { - java.setSourceCompatibility(JavaVersion.VERSION_1_8); - java.setTargetCompatibility(JavaVersion.VERSION_1_8); + java.toolchain(spec -> spec.getLanguageVersion().convention(JavaLanguageVersion.of(8))); }); project.getTasks().withType(Jar.class).configureEach(jar -> { diff --git a/build-logic/src/main/java/org/ehcache/build/conventions/JavaConvention.java b/build-logic/src/main/java/org/ehcache/build/conventions/JavaConvention.java index f26ae8e8d4..122f00865f 100644 --- a/build-logic/src/main/java/org/ehcache/build/conventions/JavaConvention.java +++ b/build-logic/src/main/java/org/ehcache/build/conventions/JavaConvention.java @@ -26,8 +26,8 @@ public void apply(Project project) { project.getConfigurations().all(config -> { config.getResolutionStrategy().dependencySubstitution(subs -> { - subs.substitute(subs.module("org.hamcrest:hamcrest-core:1.3")).with(subs.module("org.hamcrest:hamcrest-core:" + project.property("hamcrestVersion"))); - subs.substitute(subs.module("org.hamcrest:hamcrest-library:1.3")).with(subs.module("org.hamcrest:hamcrest-library:" + project.property("hamcrestVersion"))); + subs.substitute(subs.module("org.hamcrest:hamcrest-core:1.3")).using(subs.module("org.hamcrest:hamcrest-core:" + project.property("hamcrestVersion"))); + subs.substitute(subs.module("org.hamcrest:hamcrest-library:1.3")).using(subs.module("org.hamcrest:hamcrest-library:" + project.property("hamcrestVersion"))); subs.substitute(subs.module("junit:junit:4.12")).using(subs.module("junit:junit:4.13.1")); }); }); diff --git a/clustered/integration-test/build.gradle b/clustered/integration-test/build.gradle index ccf2f904c9..3c753ecfcc 100644 --- a/clustered/integration-test/build.gradle +++ b/clustered/integration-test/build.gradle @@ -77,7 +77,7 @@ configurations.all { dependencySubstitution { substitute(module('junit:junit:4.12')) .because('CVE-2020-15250') - .with(module('junit:junit:4.13.1')) + .using(module('junit:junit:4.13.1')) } } } diff --git a/clustered/osgi-test/build.gradle b/clustered/osgi-test/build.gradle index a87b016500..09db23b537 100644 --- a/clustered/osgi-test/build.gradle +++ b/clustered/osgi-test/build.gradle @@ -99,7 +99,7 @@ test { configurations { lowerBoundOsgiModule { resolutionStrategy.dependencySubstitution { - substitute module('org.glassfish.jaxb:jaxb-runtime') with module('com.sun.xml.bind:jaxb-osgi:2.2.8-b01') + substitute module('org.glassfish.jaxb:jaxb-runtime') using module('com.sun.xml.bind:jaxb-osgi:2.2.8-b01') } } } diff --git a/demos/00-NoCache/build.gradle b/demos/00-NoCache/build.gradle new file mode 100644 index 0000000000..60a75d213e --- /dev/null +++ b/demos/00-NoCache/build.gradle @@ -0,0 +1,7 @@ +plugins { + id 'application' +} + +application { + mainClass = 'org.ehcache.demos.peeper.PeeperServer' +} diff --git a/demos/00-NoCache/src/main/java/org/ehcache/demos/peeper/PeeperServer.java b/demos/00-NoCache/src/main/java/org/ehcache/demos/peeper/PeeperServer.java new file mode 100644 index 0000000000..7c4317b4cb --- /dev/null +++ b/demos/00-NoCache/src/main/java/org/ehcache/demos/peeper/PeeperServer.java @@ -0,0 +1,26 @@ +/* + * Copyright Terracotta, Inc. + * Copyright IBM Corp. 2024, 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.ehcache.demos.peeper; + +import org.ehcache.demos.server.EmbeddedPeeperServer; + +public class PeeperServer { + + public static void main(String[] args) throws Exception { + EmbeddedPeeperServer.run(PeeperServletContextListener::new, PeeperServlet::new); + } +} diff --git a/demos/00-NoCache/src/main/java/org/ehcache/demos/peeper/PeeperServlet.java b/demos/00-NoCache/src/main/java/org/ehcache/demos/peeper/PeeperServlet.java index 9fb8ca1436..524adeaddc 100755 --- a/demos/00-NoCache/src/main/java/org/ehcache/demos/peeper/PeeperServlet.java +++ b/demos/00-NoCache/src/main/java/org/ehcache/demos/peeper/PeeperServlet.java @@ -16,11 +16,11 @@ */ package org.ehcache.demos.peeper; -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.List; diff --git a/demos/00-NoCache/src/main/java/org/ehcache/demos/peeper/PeeperServletContextListener.java b/demos/00-NoCache/src/main/java/org/ehcache/demos/peeper/PeeperServletContextListener.java index efb905a8a4..a3efb3d2a3 100755 --- a/demos/00-NoCache/src/main/java/org/ehcache/demos/peeper/PeeperServletContextListener.java +++ b/demos/00-NoCache/src/main/java/org/ehcache/demos/peeper/PeeperServletContextListener.java @@ -16,9 +16,9 @@ */ package org.ehcache.demos.peeper; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; -import javax.servlet.annotation.WebListener; +import jakarta.servlet.ServletContextEvent; +import jakarta.servlet.ServletContextListener; +import jakarta.servlet.annotation.WebListener; /** * @author Ludovic Orban diff --git a/demos/01-CacheAside/build.gradle b/demos/01-CacheAside/build.gradle new file mode 100644 index 0000000000..60a75d213e --- /dev/null +++ b/demos/01-CacheAside/build.gradle @@ -0,0 +1,7 @@ +plugins { + id 'application' +} + +application { + mainClass = 'org.ehcache.demos.peeper.PeeperServer' +} diff --git a/demos/01-CacheAside/src/main/java/org/ehcache/demos/peeper/PeeperServer.java b/demos/01-CacheAside/src/main/java/org/ehcache/demos/peeper/PeeperServer.java new file mode 100644 index 0000000000..7c4317b4cb --- /dev/null +++ b/demos/01-CacheAside/src/main/java/org/ehcache/demos/peeper/PeeperServer.java @@ -0,0 +1,26 @@ +/* + * Copyright Terracotta, Inc. + * Copyright IBM Corp. 2024, 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.ehcache.demos.peeper; + +import org.ehcache.demos.server.EmbeddedPeeperServer; + +public class PeeperServer { + + public static void main(String[] args) throws Exception { + EmbeddedPeeperServer.run(PeeperServletContextListener::new, PeeperServlet::new); + } +} diff --git a/demos/01-CacheAside/src/main/java/org/ehcache/demos/peeper/PeeperServlet.java b/demos/01-CacheAside/src/main/java/org/ehcache/demos/peeper/PeeperServlet.java index 4a0e115e18..4348afad68 100755 --- a/demos/01-CacheAside/src/main/java/org/ehcache/demos/peeper/PeeperServlet.java +++ b/demos/01-CacheAside/src/main/java/org/ehcache/demos/peeper/PeeperServlet.java @@ -16,11 +16,11 @@ */ package org.ehcache.demos.peeper; -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.List; diff --git a/demos/01-CacheAside/src/main/java/org/ehcache/demos/peeper/PeeperServletContextListener.java b/demos/01-CacheAside/src/main/java/org/ehcache/demos/peeper/PeeperServletContextListener.java index efb905a8a4..a3efb3d2a3 100755 --- a/demos/01-CacheAside/src/main/java/org/ehcache/demos/peeper/PeeperServletContextListener.java +++ b/demos/01-CacheAside/src/main/java/org/ehcache/demos/peeper/PeeperServletContextListener.java @@ -16,9 +16,9 @@ */ package org.ehcache.demos.peeper; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; -import javax.servlet.annotation.WebListener; +import jakarta.servlet.ServletContextEvent; +import jakarta.servlet.ServletContextListener; +import jakarta.servlet.annotation.WebListener; /** * @author Ludovic Orban diff --git a/demos/build.gradle b/demos/build.gradle index 6b4e163021..e3b0a1dd95 100644 --- a/demos/build.gradle +++ b/demos/build.gradle @@ -1,60 +1,50 @@ plugins { - id 'org.ehcache.build.conventions.war' apply false - id 'org.gretty' apply false + id 'org.ehcache.build.conventions.java-library' } -subprojects { - apply plugin: 'org.ehcache.build.conventions.war' - apply plugin: 'org.gretty' - - gretty { - httpPort = 8080 - contextPath = '/' - servletContainer = 'jetty9' +java { + toolchain { + languageVersion = JavaLanguageVersion.of(17) } +} - dependencies { - implementation project(':ehcache-impl') - implementation 'javax.servlet:javax.servlet-api:3.1.0' - runtimeOnly 'ch.qos.logback:logback-classic:1.2.11' - runtimeOnly 'com.h2database:h2:1.4.196' +allprojects { + java { + toolchain { + languageVersion = JavaLanguageVersion.of(17) + } } - configurations.all { + configurations.configureEach { resolutionStrategy { - dependencySubstitution { - substitute(module('org.slf4j:slf4j-api')) - .because('org.gretty:gretty-runner-jetty declares a very old version of slf4j') - .with(module('org.slf4j:slf4j-api:' + project.property('slf4jVersion'))) - } + force "org.slf4j:slf4j-api:2.0.17" } } +} - /* - * This substitution is solely to permit the 'dependencies' task to complete normally -- - * the Jetty 8 environment provided by gretty is not used in this module. - */ - configurations.named('grettyRunnerJetty8') { - resolutionStrategy { - dependencySubstitution { - substitute(module('org.eclipse.jetty.orbit:javax.servlet.jsp:2.1.0.v201105211820')) - .because('gretty plug-in pulls in older version for Jetty8') - .with(module('org.eclipse.jetty.orbit:javax.servlet.jsp:2.2.0.v201112011158')) - } +def jettyVersion = '12.1.5' + +dependencies { + api platform("org.eclipse.jetty:jetty-bom:${jettyVersion}") + api 'jakarta.servlet:jakarta.servlet-api:6.0.0' + api 'org.eclipse.jetty:jetty-server' + api "org.eclipse.jetty.ee10:jetty-ee10-servlet:${jettyVersion}" +} + +subprojects { + apply plugin: 'org.ehcache.build.conventions.war' + + java { + toolchain { + languageVersion = JavaLanguageVersion.of(17) } } - /* - * This substitution is solely to permit the 'dependencies' task to complete normally -- - * the Jetty 9.3 environment provided by gretty is not used in this module. - */ - configurations.named('grettyRunnerJetty93') { - resolutionStrategy { - dependencySubstitution { - substitute(module('org.eclipse.jetty.toolchain:jetty-schemas:3.1.M0')) - .because('gretty plug-in pulls in older version for Jetty9.3') - .with(module('org.eclipse.jetty.toolchain:jetty-schemas:3.1')) - } - } + dependencies { + implementation project(':demos') + implementation project(':ehcache-impl') + implementation 'jakarta.servlet:jakarta.servlet-api:6.0.0' + runtimeOnly "ch.qos.logback:logback-classic:1.5.26" + runtimeOnly 'com.h2database:h2:2.4.240' } } diff --git a/demos/config/checkstyle-suppressions.xml b/demos/config/checkstyle-suppressions.xml new file mode 100644 index 0000000000..cb41d0baf7 --- /dev/null +++ b/demos/config/checkstyle-suppressions.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/demos/src/main/java/org/ehcache/demos/server/EmbeddedPeeperServer.java b/demos/src/main/java/org/ehcache/demos/server/EmbeddedPeeperServer.java new file mode 100644 index 0000000000..b0039d1480 --- /dev/null +++ b/demos/src/main/java/org/ehcache/demos/server/EmbeddedPeeperServer.java @@ -0,0 +1,55 @@ +/* + * Copyright Terracotta, Inc. + * Copyright IBM Corp. 2024, 2025 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.ehcache.demos.server; + +import jakarta.servlet.ServletContextListener; +import jakarta.servlet.http.HttpServlet; +import java.util.Objects; +import java.util.function.Supplier; +import org.eclipse.jetty.ee10.servlet.ServletContextHandler; +import org.eclipse.jetty.ee10.servlet.ServletHolder; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.ServerConnector; + +public final class EmbeddedPeeperServer { + + private EmbeddedPeeperServer() { + } + + public static void run(Supplier listenerSupplier, + Supplier servletSupplier) throws Exception { + Objects.requireNonNull(listenerSupplier, "listenerSupplier"); + Objects.requireNonNull(servletSupplier, "servletSupplier"); + + Server server = new Server(); + + ServerConnector connector = new ServerConnector(server); + connector.setPort(8080); + connector.setHost(System.getenv().getOrDefault("HOST", "0.0.0.0")); + server.addConnector(connector); + + ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); + context.setContextPath("/"); + context.addEventListener(listenerSupplier.get()); + context.addServlet(new ServletHolder(servletSupplier.get()), "/*"); + + server.setHandler(context); + + server.start(); + server.join(); + } +} diff --git a/ehcache-107/build.gradle b/ehcache-107/build.gradle index b929aba6ff..5256668fbb 100644 --- a/ehcache-107/build.gradle +++ b/ehcache-107/build.gradle @@ -46,7 +46,7 @@ configurations { dependencySubstitution { substitute(module('junit:junit:4.11')) .because('CVE-2020-15250') - .with(module('junit:junit:4.13.1')) + .using(module('junit:junit:4.13.1')) } } } @@ -99,14 +99,14 @@ task unpackTckTests(type: Sync) { from { configurations.tckTestClasses.collect {zipTree(it)} } - into sourceSets.tckTest.java.outputDir + into sourceSets.tckTest.java.classesDirectory } task tckTest(type: Test, dependsOn: unpackTckTests) { testClassesDirs = sourceSets.tckTest.output.classesDirs classpath += sourceSets.tckTest.runtimeClasspath - binResultsDir file("$buildDir/tck-tests-results/binary/$name") + binaryResultsDirectory = file("$buildDir/tck-tests-results/binary/$name") reports.junitXml.destination = file("$buildDir/tck-tests-results") reports.html.destination = file("$buildDir/reports/tck-tests") diff --git a/ehcache-impl/build.gradle b/ehcache-impl/build.gradle index 4d50e71ef7..10a7b95a5f 100644 --- a/ehcache-impl/build.gradle +++ b/ehcache-impl/build.gradle @@ -43,7 +43,7 @@ task slowTest(type: Test) { testClassesDirs = sourceSets.slowTest.output.classesDirs classpath += sourceSets.slowTest.runtimeClasspath - binResultsDir file("$buildDir/slow-tests-results/binary/$name") + binaryResultsDirectory = file("$buildDir/slow-tests-results/binary/$name") reports.junitXml.destination = file("$buildDir/slow-tests-results") reports.html.destination = file("$buildDir/reports/slow-tests") } @@ -72,6 +72,8 @@ jar { } compileUnsafe { + javaCompiler = javaToolchains.compilerFor(java.toolchain) + //no -Werror due to unsafe options.compilerArgs = ['-Xlint:all'] } diff --git a/ehcache-xml/build.gradle b/ehcache-xml/build.gradle index c9dcd8e286..64ac2910a8 100644 --- a/ehcache-xml/build.gradle +++ b/ehcache-xml/build.gradle @@ -115,6 +115,7 @@ dependencies { xjcToolJakarta 'com.sun.xml.bind:jaxb-xjc:3.0.0-M4' xjcToolJakarta 'com.sun.xml.bind:jaxb-impl:3.0.0-M4' + xjcToolJakarta 'javax.xml.bind:jaxb-api:[2.2,3)' lowerBoundTestRuntimeClasspath 'com.sun.activation:javax.activation:1.2.0' } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180f2a..ccebba7710 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 740908bf52..761b8f0885 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-all.zip +networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 1b6c787337..79a61d421c 100755 --- a/gradlew +++ b/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/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/. @@ -80,10 +80,10 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # 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"' @@ -143,12 +143,16 @@ fi if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -205,6 +209,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/gradlew.bat b/gradlew.bat index 107acd32c4..93e3f59f13 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +25,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/osgi-test/build.gradle b/osgi-test/build.gradle index 07d4ec52c2..fca7b10ed6 100644 --- a/osgi-test/build.gradle +++ b/osgi-test/build.gradle @@ -89,7 +89,7 @@ configurations.all { sourceSets { test { // Needed to allow PaxExam to see the test resources - output.resourcesDir = java.outputDir + output.resourcesDir = java.classesDirectory } } @@ -105,7 +105,7 @@ test { configurations { lowerBoundOsgiModule { resolutionStrategy.dependencySubstitution { - substitute module('org.glassfish.jaxb:jaxb-runtime') with module('com.sun.xml.bind:jaxb-osgi:2.2.8-b01') + substitute module('org.glassfish.jaxb:jaxb-runtime') using module('com.sun.xml.bind:jaxb-osgi:2.2.8-b01') } } } diff --git a/settings.gradle b/settings.gradle index 25b631c790..fbb97e9815 100644 --- a/settings.gradle +++ b/settings.gradle @@ -18,7 +18,6 @@ pluginManagement { plugins { id 'org.owasp.dependencycheck' version '7.1.0.1' - id 'org.gretty' version '3.0.6' id 'org.asciidoctor.jvm.base' version '3.3.2' id 'org.unbroken-dome.xjc' version '2.0.0' id 'com.jfrog.artifactory' version '5.2.5'