diff --git a/.github/workflows/Java_CI.yaml b/.github/workflows/Java_CI.yaml index 229adaf..e8a0893 100644 --- a/.github/workflows/Java_CI.yaml +++ b/.github/workflows/Java_CI.yaml @@ -31,6 +31,13 @@ jobs: distribution: 'temurin' cache: 'gradle' + - name: Ensure old Lookup library is not resolved + shell: bash + run: | + ./gradlew -PcvmUserId="dwr-wrims-build" -PcvmPassword="${{ secrets.WRIMS_ENGINE_DEPENDENCIES_TOKEN }}" \ + :wrims-core:dependencyInsight --dependency lookup --configuration runtimeClasspath \ + | grep -qE "^mil\.army\.usace\.hec:lookup:[^:\s]+$" && exit 1 || exit 0 + - name: Build with Gradle run: | ./gradlew clean -PcvmUserId="dwr-wrims-build" -PcvmPassword="${{ secrets.WRIMS_ENGINE_DEPENDENCIES_TOKEN }}" diff --git a/build.gradle b/build.gradle index b2791bb..14e59cd 100644 --- a/build.gradle +++ b/build.gradle @@ -34,4 +34,12 @@ tasks.register('copyDependencies', Copy) { allprojects { group = 'gov.ca.water' version = versionLabel(versionDetails()) + + // JDK 21+ resolution for Lookup library bug: Issue #194 + configurations.configureEach { + resolutionStrategy.dependencySubstitution {substitution -> + substitution.substitute(module("mil.army.usace.hec:lookup")).using(module(libs.lookup.compat.get().toString())) + .because("WRIMS uses upstream NetBeans Lookup for Java 21 Compatibility.") + } + } } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fef86ec..b29a43b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,6 +2,7 @@ hec-monolith = "6.0.0" #dssgui is not used by wrims-engine, but is is being included in the wrims-engine bom and should be kept in sync with hec-monolith for downstream projects. dssgui = "3.4.18" +lookup = "4.0.0" guava = "33.4.8-jre" commons-io = "2.1" xstream = "1.4.3" @@ -36,6 +37,7 @@ azure-storage-blob = "12.28.0" hec-monolith = { module = "mil.army.usace.hec:hec-monolith", version.ref = "hec-monolith" } hec-monolith-bom = { module = "mil.army.usace.hec:hec-monolith-bom", version.ref = "hec-monolith" } dssgui = { module = "mil.army.usace.hec:dssgui", version.ref = "dssgui" } +lookup-compat = { module = "mil.army.usace.hec:lookup-compat", version.ref = "lookup" } guava = { module = "com.google.guava:guava", version.ref = "guava" } commons-io = { module = "commons-io:commons-io", version.ref = "commons-io" } xstream = { module = "com.thoughtworks.xstream:xstream", version.ref = "xstream" } diff --git a/wrims-comparison-test/README.md b/wrims-comparison-test/README.md index 8564b24..b914a2a 100644 --- a/wrims-comparison-test/README.md +++ b/wrims-comparison-test/README.md @@ -102,16 +102,16 @@ From repository root (where `gradlew.bat` resides): - Run only the Azure Cucumber suite: ``` -./gradlew.bat :wrims-engine:wrims-comparison-test:runAzureCucumberTests +./gradlew.bat :wrims-comparison-test:runAzureCucumberTests ``` - Ensure `.env.cucumber` exists or pass a token explicitly, e.g.: ``` -./gradlew.bat :wrims-engine:wrims-comparison-test:runAzureCucumberTests -Dwrims.azure.sas="sv=...&sig=..." +./gradlew.bat :wrims-comparison-test:runAzureCucumberTests -Dwrims.azure.sas="sv=...&sig=..." ``` - Generate compute and comparison report locally (CalLite example): ``` -./gradlew.bat :wrims-engine:wrims-comparison-test:testReport +./gradlew.bat :wrims-comparison-test:testReport ``` - Outputs: - `wrims-engine/wrims-comparison-test/build/testProjects/Callite_update_compare_6_6.pdf` @@ -119,7 +119,7 @@ From repository root (where `gradlew.bat` resides): - Clear temporary extracted projects: ``` -./gradlew.bat :wrims-engine:wrims-comparison-test:clear-tmp-projects +./gradlew.bat :wrims-comparison-test:clear-tmp-projects ``` ---