diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 67dc83b27f..cba05dd618 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,11 +12,11 @@ jobs: fetch-depth: 0 - name: Gradle wrapper validation uses: gradle/wrapper-validation-action@v1 - - name: Set up Zulu JDK 11 + - name: Set up Zulu JDK 17 uses: actions/setup-java@v3 with: distribution: 'zulu' - java-version: '11' + java-version: '17' - name: Cache SonarCloud packages uses: actions/cache@v3 with: @@ -38,6 +38,16 @@ jobs: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: | ./gradlew build --scan + - name: Print Server Logs + if: always() + run: | + cat conductor_tests.log + - name: Publish server logs + if: always() + uses: actions/upload-artifact@v3 + with: + name: server-logs + path: conductor_tests.log - name: Build and Publish snapshot if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main' run: | diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 4cdd540af5..3bf0960ae3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -14,11 +14,11 @@ jobs: name: Gradle Build and Publish steps: - uses: actions/checkout@v3 - - name: Set up Zulu JDK 11 + - name: Set up Zulu JDK 17 uses: actions/setup-java@v3 with: distribution: 'zulu' - java-version: '11' + java-version: '17' - name: Cache Gradle packages uses: actions/cache@v3 with: diff --git a/.github/workflows/update-gradle-wrapper.yml b/.github/workflows/update-gradle-wrapper.yml index db3a8b1e24..831e6d5aab 100644 --- a/.github/workflows/update-gradle-wrapper.yml +++ b/.github/workflows/update-gradle-wrapper.yml @@ -10,10 +10,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - name: Set up Zulu JDK 11 + - name: Set up Zulu JDK 17 uses: actions/setup-java@v3 with: distribution: 'zulu' - java-version: '11' + java-version: '17' - name: Update Gradle Wrapper uses: gradle-update/update-gradle-wrapper-action@v1 diff --git a/README.md b/README.md index 0b6c4f5adf..3a2c256e07 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ Binaries are available from [Netflix OSS Maven](https://artifacts.netflix.net/ne * The indexing backend is [Elasticsearch](https://www.elastic.co/) (6.x) ## Other Requirements -* JDK 11+ +* JDK 17+ * UI requires Node 14 to build. Earlier Node versions may work but is untested. ## Get Support diff --git a/awss3-storage/dependencies.lock b/awss3-storage/dependencies.lock index 971612a83d..b3c1cb3078 100644 --- a/awss3-storage/dependencies.lock +++ b/awss3-storage/dependencies.lock @@ -189,6 +189,12 @@ "com.netflix.conductor:conductor-core" ], "locked": "2.17.2" + }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" } }, "testCompileClasspath": { @@ -392,6 +398,12 @@ "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.springframework.boot:spring-boot-starter-log4j2": { "locked": "2.7.3" }, diff --git a/awssqs-event-queue/dependencies.lock b/awssqs-event-queue/dependencies.lock index e22ed2403f..8e9e5e5328 100644 --- a/awssqs-event-queue/dependencies.lock +++ b/awssqs-event-queue/dependencies.lock @@ -198,6 +198,12 @@ "com.netflix.conductor:conductor-core" ], "locked": "2.17.2" + }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" } }, "testCompileClasspath": { @@ -413,6 +419,12 @@ "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.springframework.boot:spring-boot-starter": { "locked": "2.7.3" }, diff --git a/build.gradle b/build.gradle index f54100b911..8cfd226d8e 100644 --- a/build.gradle +++ b/build.gradle @@ -52,8 +52,8 @@ allprojects { apply plugin: 'java-library' apply plugin: 'project-report' - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 group = 'com.netflix.conductor' @@ -164,11 +164,11 @@ allprojects { } } -// all client and their related modules are published with Java 11 compatibility +// all client and their related modules are published with Java 17 compatibility ["annotations", "common", "client", "client-spring", "grpc", "grpc-client"].each { project(":conductor-$it") { compileJava { - options.release = 11 + options.release = 17 } } } diff --git a/cassandra-persistence/dependencies.lock b/cassandra-persistence/dependencies.lock index c625d004bb..66f9c31d8c 100644 --- a/cassandra-persistence/dependencies.lock +++ b/cassandra-persistence/dependencies.lock @@ -189,6 +189,12 @@ "com.netflix.conductor:conductor-core" ], "locked": "2.17.2" + }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" } }, "testCompileClasspath": { @@ -226,7 +232,7 @@ "locked": "2.17.2" }, "org.codehaus.groovy:groovy-all": { - "locked": "2.5.13" + "locked": "2.5.22" }, "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" @@ -408,11 +414,17 @@ "locked": "2.17.2" }, "org.codehaus.groovy:groovy-all": { - "locked": "2.5.13" + "locked": "2.5.22" }, "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.spockframework:spock-core": { "locked": "1.3-groovy-2.5" }, diff --git a/client-spring/dependencies.lock b/client-spring/dependencies.lock index 4499a9a756..4e7ca32b3c 100644 --- a/client-spring/dependencies.lock +++ b/client-spring/dependencies.lock @@ -211,6 +211,12 @@ ], "locked": "2.35" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-java-sdk" + ], + "locked": "15.4" + }, "org.slf4j:slf4j-api": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-client" @@ -446,6 +452,12 @@ "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-java-sdk" + ], + "locked": "15.4" + }, "org.slf4j:slf4j-api": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-client" diff --git a/client/dependencies.lock b/client/dependencies.lock index c47e3c755b..6b0ee6cac9 100644 --- a/client/dependencies.lock +++ b/client/dependencies.lock @@ -222,7 +222,7 @@ "locked": "2.17.2" }, "org.codehaus.groovy:groovy-all": { - "locked": "2.5.13" + "locked": "2.5.22" }, "org.glassfish.jersey.core:jersey-common": { "locked": "2.22.2" @@ -361,7 +361,7 @@ "locked": "2.17.2" }, "org.codehaus.groovy:groovy-all": { - "locked": "2.5.13" + "locked": "2.5.22" }, "org.glassfish.jersey.core:jersey-common": { "locked": "2.22.2" diff --git a/core/build.gradle b/core/build.gradle index d76aa71402..7a56014e88 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -41,6 +41,8 @@ dependencies { implementation "com.github.ben-manes.caffeine:caffeine" + implementation "org.openjdk.nashorn:nashorn-core:15.4" + // JAXB is not bundled with Java 11, dependencies added explicitly // These are needed by Apache BVAL implementation "jakarta.xml.bind:jakarta.xml.bind-api:${revJAXB}" diff --git a/core/dependencies.lock b/core/dependencies.lock index b5d7024d30..5699af6af0 100644 --- a/core/dependencies.lock +++ b/core/dependencies.lock @@ -65,6 +65,9 @@ "org.apache.logging.log4j:log4j-web": { "locked": "2.17.2" }, + "org.openjdk.nashorn:nashorn-core": { + "locked": "15.4" + }, "org.springframework.boot:spring-boot-starter": { "locked": "2.7.3" }, @@ -182,6 +185,9 @@ "com.netflix.conductor:conductor-common" ], "locked": "2.17.2" + }, + "org.openjdk.nashorn:nashorn-core": { + "locked": "15.4" } }, "testCompileClasspath": { @@ -249,7 +255,7 @@ "locked": "2.17.2" }, "org.codehaus.groovy:groovy-all": { - "locked": "2.5.13" + "locked": "2.5.22" }, "org.glassfish.jaxb:jaxb-runtime": { "locked": "2.3.3" @@ -257,6 +263,9 @@ "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "locked": "15.4" + }, "org.spockframework:spock-core": { "locked": "1.3-groovy-2.5" }, @@ -388,7 +397,7 @@ "locked": "2.17.2" }, "org.codehaus.groovy:groovy-all": { - "locked": "2.5.13" + "locked": "2.5.22" }, "org.glassfish.jaxb:jaxb-runtime": { "locked": "2.3.3" @@ -396,6 +405,9 @@ "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "locked": "15.4" + }, "org.spockframework:spock-core": { "locked": "1.3-groovy-2.5" }, diff --git a/core/src/main/java/com/netflix/conductor/core/events/ScriptEvaluator.java b/core/src/main/java/com/netflix/conductor/core/events/ScriptEvaluator.java index 506ded2211..dc46354b0f 100644 --- a/core/src/main/java/com/netflix/conductor/core/events/ScriptEvaluator.java +++ b/core/src/main/java/com/netflix/conductor/core/events/ScriptEvaluator.java @@ -19,7 +19,7 @@ public class ScriptEvaluator { - private static final ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn"); + private static ScriptEngine engine; private ScriptEvaluator() {} @@ -45,6 +45,13 @@ public static Boolean evalBool(String script, Object input) throws ScriptExcepti * @return Generic object, the result of the evaluated expression. */ public static Object eval(String script, Object input) throws ScriptException { + if (engine == null) { + engine = new ScriptEngineManager().getEngineByName("Nashorn"); + } + if (engine == null) { + throw new RuntimeException( + "missing nashorn engine. Ensure you are running supported JVM"); + } Bindings bindings = engine.createBindings(); bindings.put("$", input); return engine.eval(script, bindings); diff --git a/dependencies.gradle b/dependencies.gradle index 5f44fb740c..547b4f1aee 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -26,7 +26,7 @@ ext { revElasticSearch6 = '6.8.12' revEmbeddedRedis = '0.6' revEurekaClient = '1.10.10' - revGroovy = '2.5.13' + revGroovy = '2.5.22' revGrpc = '1.+' revGuava = '30.0-jre' revHamcrestAllMatchers = '1.8' diff --git a/docker/ci/Dockerfile b/docker/ci/Dockerfile index 19a0287cf3..ff8a0b2762 100644 --- a/docker/ci/Dockerfile +++ b/docker/ci/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:11-jdk +FROM openjdk:17-jdk WORKDIR /workspace/conductor COPY . /workspace/conductor diff --git a/docker/server/Dockerfile b/docker/server/Dockerfile index 80017603ac..882d5b6d91 100644 --- a/docker/server/Dockerfile +++ b/docker/server/Dockerfile @@ -5,7 +5,7 @@ # =========================================================================================================== # 0. Builder stage # =========================================================================================================== -FROM eclipse-temurin:11-jdk-jammy AS builder +FROM eclipse-temurin:17-jdk-focal AS builder LABEL maintainer="Netflix OSS " @@ -19,7 +19,7 @@ RUN ./gradlew build -x test --stacktrace # =========================================================================================================== # 1. Bin stage # =========================================================================================================== -FROM eclipse-temurin:11-jre-jammy +FROM eclipse-temurin:17-jre-focal LABEL maintainer="Netflix OSS " diff --git a/docker/serverAndUI/Dockerfile b/docker/serverAndUI/Dockerfile index 1722e07269..7840fc5f49 100644 --- a/docker/serverAndUI/Dockerfile +++ b/docker/serverAndUI/Dockerfile @@ -4,7 +4,7 @@ # =========================================================================================================== # 0. Builder stage # =========================================================================================================== -FROM openjdk:11-jdk AS builder +FROM openjdk:17-jdk AS builder LABEL maintainer="Netflix OSS " # Install Node @@ -36,7 +36,7 @@ RUN yarn install && yarn build # =========================================================================================================== FROM nginx:alpine -RUN apk add openjdk11-jre +RUN apk add openjdk17-jre LABEL maintainer="Netflix OSS " diff --git a/docs/docs/gettingstarted/source.md b/docs/docs/gettingstarted/source.md index 3a9eb5d449..f3a4786566 100644 --- a/docs/docs/gettingstarted/source.md +++ b/docs/docs/gettingstarted/source.md @@ -5,7 +5,7 @@ In this article we will explore how you can set up Netflix Conductor on your loc features. ### Prerequisites -1. JDK 11 or greater +1. JDK 17 or greater 2. (Optional) Docker if you want to run tests. You can install docker from [here](https://www.docker.com/get-started/). 3. Node for building and running UI. Instructions at [https://nodejs.org](https://nodejs.org). 4. Yarn for building and running UI. Instructions at [https://classic.yarnpkg.com/en/docs/install](https://classic.yarnpkg.com/en/docs/install). diff --git a/es6-persistence/dependencies.lock b/es6-persistence/dependencies.lock index f5bd8cea5d..9fb73e7bc5 100644 --- a/es6-persistence/dependencies.lock +++ b/es6-persistence/dependencies.lock @@ -213,6 +213,12 @@ }, "org.elasticsearch.client:transport": { "locked": "6.8.12" + }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" } }, "testCompileClasspath": { @@ -449,6 +455,12 @@ "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.springframework.boot:spring-boot-starter-log4j2": { "locked": "2.7.3" }, diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b916c04dbb..42ee1f5292 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=f6b8596b10cce501591e92f229816aa4046424f3b24d771751b06779d58c8ec4 -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +distributionSha256Sum=a01b6587e15fe7ed120a0ee299c25982a1eee045abd6a9dd5e216b2f628ef9ac +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/grpc-client/dependencies.lock b/grpc-client/dependencies.lock index 12c2d80a97..95623d88c3 100644 --- a/grpc-client/dependencies.lock +++ b/grpc-client/dependencies.lock @@ -18,13 +18,13 @@ "project": true }, "io.grpc:grpc-netty": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-protobuf": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { - "locked": "1.56.1" + "locked": "1.57.1" }, "org.apache.commons:commons-lang3": { "locked": "3.12.0" @@ -93,19 +93,19 @@ "project": true }, "io.grpc:grpc-netty": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-protobuf": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "javax.annotation:javax.annotation-api": { "firstLevelTransitive": [ @@ -183,13 +183,13 @@ "project": true }, "io.grpc:grpc-netty": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-protobuf": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { - "locked": "1.56.1" + "locked": "1.57.1" }, "junit:junit": { "locked": "4.13.2" @@ -270,19 +270,19 @@ "project": true }, "io.grpc:grpc-netty": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-protobuf": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "javax.annotation:javax.annotation-api": { "firstLevelTransitive": [ diff --git a/grpc-server/dependencies.lock b/grpc-server/dependencies.lock index 2d6461195d..6dcec71647 100644 --- a/grpc-server/dependencies.lock +++ b/grpc-server/dependencies.lock @@ -15,10 +15,10 @@ "project": true }, "io.grpc:grpc-netty": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-services": { - "locked": "1.56.1" + "locked": "1.57.1" }, "org.apache.commons:commons-lang3": { "locked": "3.12.0" @@ -127,22 +127,22 @@ "locked": "2.7" }, "io.grpc:grpc-netty": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-protobuf": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-services": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.reactivex:rxjava": { "firstLevelTransitive": [ @@ -226,6 +226,12 @@ "com.netflix.conductor:conductor-grpc" ], "locked": "2.17.2" + }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" } }, "testCompileClasspath": { @@ -239,13 +245,13 @@ "project": true }, "io.grpc:grpc-netty": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-services": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-testing": { - "locked": "1.56.1" + "locked": "1.57.1" }, "junit:junit": { "locked": "4.13.2" @@ -366,25 +372,25 @@ "locked": "2.7" }, "io.grpc:grpc-netty": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-protobuf": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-services": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-testing": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.reactivex:rxjava": { "firstLevelTransitive": [ @@ -475,6 +481,12 @@ "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.springframework.boot:spring-boot-starter-log4j2": { "locked": "2.7.3" }, diff --git a/grpc/dependencies.lock b/grpc/dependencies.lock index a3677ba437..82071c38cb 100644 --- a/grpc/dependencies.lock +++ b/grpc/dependencies.lock @@ -12,10 +12,10 @@ "project": true }, "io.grpc:grpc-protobuf": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { - "locked": "1.56.1" + "locked": "1.57.1" }, "javax.annotation:javax.annotation-api": { "locked": "1.3.2" @@ -71,10 +71,10 @@ "project": true }, "io.grpc:grpc-protobuf": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { - "locked": "1.56.1" + "locked": "1.57.1" }, "javax.annotation:javax.annotation-api": { "locked": "1.3.2" @@ -129,7 +129,7 @@ }, "protobufToolsLocator_grpc": { "io.grpc:protoc-gen-grpc-java": { - "locked": "1.56.1" + "locked": "1.57.1" } }, "protobufToolsLocator_protoc": { @@ -172,10 +172,10 @@ "project": true }, "io.grpc:grpc-protobuf": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { - "locked": "1.56.1" + "locked": "1.57.1" }, "javax.annotation:javax.annotation-api": { "locked": "1.3.2" @@ -236,10 +236,10 @@ "project": true }, "io.grpc:grpc-protobuf": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { - "locked": "1.56.1" + "locked": "1.57.1" }, "javax.annotation:javax.annotation-api": { "locked": "1.3.2" @@ -307,10 +307,10 @@ "project": true }, "io.grpc:grpc-protobuf": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { - "locked": "1.56.1" + "locked": "1.57.1" }, "javax.annotation:javax.annotation-api": { "locked": "1.3.2" @@ -410,10 +410,10 @@ "project": true }, "io.grpc:grpc-protobuf": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { - "locked": "1.56.1" + "locked": "1.57.1" }, "javax.annotation:javax.annotation-api": { "locked": "1.3.2" diff --git a/grpc/src/main/java/com/netflix/conductor/grpc/AbstractProtoMapper.java b/grpc/src/main/java/com/netflix/conductor/grpc/AbstractProtoMapper.java index fb9e4d63ca..c9cd06e381 100644 --- a/grpc/src/main/java/com/netflix/conductor/grpc/AbstractProtoMapper.java +++ b/grpc/src/main/java/com/netflix/conductor/grpc/AbstractProtoMapper.java @@ -747,45 +747,45 @@ public TaskDef fromProto(TaskDefPb.TaskDef from) { return to; } - public TaskDefPb.TaskDef.RetryLogic toProto(TaskDef.RetryLogic from) { - TaskDefPb.TaskDef.RetryLogic to; + public TaskDefPb.TaskDef.TimeoutPolicy toProto(TaskDef.TimeoutPolicy from) { + TaskDefPb.TaskDef.TimeoutPolicy to; switch (from) { - case FIXED: to = TaskDefPb.TaskDef.RetryLogic.FIXED; break; - case EXPONENTIAL_BACKOFF: to = TaskDefPb.TaskDef.RetryLogic.EXPONENTIAL_BACKOFF; break; - case LINEAR_BACKOFF: to = TaskDefPb.TaskDef.RetryLogic.LINEAR_BACKOFF; break; + case RETRY: to = TaskDefPb.TaskDef.TimeoutPolicy.RETRY; break; + case TIME_OUT_WF: to = TaskDefPb.TaskDef.TimeoutPolicy.TIME_OUT_WF; break; + case ALERT_ONLY: to = TaskDefPb.TaskDef.TimeoutPolicy.ALERT_ONLY; break; default: throw new IllegalArgumentException("Unexpected enum constant: " + from); } return to; } - public TaskDef.RetryLogic fromProto(TaskDefPb.TaskDef.RetryLogic from) { - TaskDef.RetryLogic to; + public TaskDef.TimeoutPolicy fromProto(TaskDefPb.TaskDef.TimeoutPolicy from) { + TaskDef.TimeoutPolicy to; switch (from) { - case FIXED: to = TaskDef.RetryLogic.FIXED; break; - case EXPONENTIAL_BACKOFF: to = TaskDef.RetryLogic.EXPONENTIAL_BACKOFF; break; - case LINEAR_BACKOFF: to = TaskDef.RetryLogic.LINEAR_BACKOFF; break; + case RETRY: to = TaskDef.TimeoutPolicy.RETRY; break; + case TIME_OUT_WF: to = TaskDef.TimeoutPolicy.TIME_OUT_WF; break; + case ALERT_ONLY: to = TaskDef.TimeoutPolicy.ALERT_ONLY; break; default: throw new IllegalArgumentException("Unexpected enum constant: " + from); } return to; } - public TaskDefPb.TaskDef.TimeoutPolicy toProto(TaskDef.TimeoutPolicy from) { - TaskDefPb.TaskDef.TimeoutPolicy to; + public TaskDefPb.TaskDef.RetryLogic toProto(TaskDef.RetryLogic from) { + TaskDefPb.TaskDef.RetryLogic to; switch (from) { - case RETRY: to = TaskDefPb.TaskDef.TimeoutPolicy.RETRY; break; - case TIME_OUT_WF: to = TaskDefPb.TaskDef.TimeoutPolicy.TIME_OUT_WF; break; - case ALERT_ONLY: to = TaskDefPb.TaskDef.TimeoutPolicy.ALERT_ONLY; break; + case FIXED: to = TaskDefPb.TaskDef.RetryLogic.FIXED; break; + case EXPONENTIAL_BACKOFF: to = TaskDefPb.TaskDef.RetryLogic.EXPONENTIAL_BACKOFF; break; + case LINEAR_BACKOFF: to = TaskDefPb.TaskDef.RetryLogic.LINEAR_BACKOFF; break; default: throw new IllegalArgumentException("Unexpected enum constant: " + from); } return to; } - public TaskDef.TimeoutPolicy fromProto(TaskDefPb.TaskDef.TimeoutPolicy from) { - TaskDef.TimeoutPolicy to; + public TaskDef.RetryLogic fromProto(TaskDefPb.TaskDef.RetryLogic from) { + TaskDef.RetryLogic to; switch (from) { - case RETRY: to = TaskDef.TimeoutPolicy.RETRY; break; - case TIME_OUT_WF: to = TaskDef.TimeoutPolicy.TIME_OUT_WF; break; - case ALERT_ONLY: to = TaskDef.TimeoutPolicy.ALERT_ONLY; break; + case FIXED: to = TaskDef.RetryLogic.FIXED; break; + case EXPONENTIAL_BACKOFF: to = TaskDef.RetryLogic.EXPONENTIAL_BACKOFF; break; + case LINEAR_BACKOFF: to = TaskDef.RetryLogic.LINEAR_BACKOFF; break; default: throw new IllegalArgumentException("Unexpected enum constant: " + from); } return to; diff --git a/grpc/src/main/proto/model/taskdef.proto b/grpc/src/main/proto/model/taskdef.proto index dd15508d6c..43c086c9ee 100644 --- a/grpc/src/main/proto/model/taskdef.proto +++ b/grpc/src/main/proto/model/taskdef.proto @@ -8,16 +8,16 @@ option java_outer_classname = "TaskDefPb"; option go_package = "github.com/netflix/conductor/client/gogrpc/conductor/model"; message TaskDef { - enum RetryLogic { - FIXED = 0; - EXPONENTIAL_BACKOFF = 1; - LINEAR_BACKOFF = 2; - } enum TimeoutPolicy { RETRY = 0; TIME_OUT_WF = 1; ALERT_ONLY = 2; } + enum RetryLogic { + FIXED = 0; + EXPONENTIAL_BACKOFF = 1; + LINEAR_BACKOFF = 2; + } string name = 1; string description = 2; int32 retry_count = 3; diff --git a/http-task/build.gradle b/http-task/build.gradle index c525897a7b..a9f76899e7 100644 --- a/http-task/build.gradle +++ b/http-task/build.gradle @@ -21,4 +21,6 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-web' testImplementation "org.testcontainers:mockserver:${revTestContainer}" testImplementation "org.mock-server:mockserver-client-java:${revMockServerClient}" + testImplementation "org.bouncycastle:bcprov-jdk15on:1.70" + testImplementation "org.bouncycastle:bcpkix-jdk15on:1.70" } \ No newline at end of file diff --git a/http-task/dependencies.lock b/http-task/dependencies.lock index 81c8fb8c40..f6669d5c91 100644 --- a/http-task/dependencies.lock +++ b/http-task/dependencies.lock @@ -189,6 +189,12 @@ "com.netflix.conductor:conductor-core" ], "locked": "2.17.2" + }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" } }, "testCompileClasspath": { @@ -219,6 +225,12 @@ "org.apache.logging.log4j:log4j-web": { "locked": "2.17.2" }, + "org.bouncycastle:bcpkix-jdk15on": { + "locked": "1.70" + }, + "org.bouncycastle:bcprov-jdk15on": { + "locked": "1.70" + }, "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, @@ -395,12 +407,24 @@ ], "locked": "2.17.2" }, + "org.bouncycastle:bcpkix-jdk15on": { + "locked": "1.70" + }, + "org.bouncycastle:bcprov-jdk15on": { + "locked": "1.70" + }, "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, "org.mock-server:mockserver-client-java": { "locked": "5.12.0" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.springframework.boot:spring-boot-starter-log4j2": { "locked": "2.7.3" }, diff --git a/java-sdk/build.gradle b/java-sdk/build.gradle index 5e1d986b35..6572905d2e 100644 --- a/java-sdk/build.gradle +++ b/java-sdk/build.gradle @@ -11,6 +11,7 @@ dependencies { implementation "com.sun.jersey:jersey-client:${revJersey}" implementation "javax.ws.rs:javax.ws.rs-api:${revJAXRS}" implementation "org.glassfish.jersey.core:jersey-common:${revJerseyCommon}" + implementation "org.openjdk.nashorn:nashorn-core:15.4" testImplementation "org.springframework:spring-web" testImplementation "org.spockframework:spock-core:${revSpock}" diff --git a/java-sdk/dependencies.lock b/java-sdk/dependencies.lock index 94d5523161..17084fccf3 100644 --- a/java-sdk/dependencies.lock +++ b/java-sdk/dependencies.lock @@ -43,6 +43,9 @@ }, "org.glassfish.jersey.core:jersey-common": { "locked": "2.22.2" + }, + "org.openjdk.nashorn:nashorn-core": { + "locked": "15.4" } }, "runtimeClasspath": { @@ -198,6 +201,9 @@ ], "locked": "2.22.2" }, + "org.openjdk.nashorn:nashorn-core": { + "locked": "15.4" + }, "org.slf4j:slf4j-api": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-client" @@ -252,7 +258,7 @@ "locked": "2.17.2" }, "org.codehaus.groovy:groovy-all": { - "locked": "2.5.13" + "locked": "2.5.22" }, "org.glassfish.jersey.core:jersey-common": { "locked": "2.22.2" @@ -260,6 +266,9 @@ "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "locked": "15.4" + }, "org.spockframework:spock-core": { "locked": "1.3-groovy-2.5" }, @@ -427,7 +436,7 @@ "locked": "2.17.2" }, "org.codehaus.groovy:groovy-all": { - "locked": "2.5.13" + "locked": "2.5.22" }, "org.glassfish.jersey.core:jersey-common": { "firstLevelTransitive": [ @@ -438,6 +447,9 @@ "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "locked": "15.4" + }, "org.slf4j:slf4j-api": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-client" diff --git a/java-sdk/src/main/java/com/netflix/conductor/sdk/workflow/def/tasks/Javascript.java b/java-sdk/src/main/java/com/netflix/conductor/sdk/workflow/def/tasks/Javascript.java index 6468faa8a9..cca0246f70 100644 --- a/java-sdk/src/main/java/com/netflix/conductor/sdk/workflow/def/tasks/Javascript.java +++ b/java-sdk/src/main/java/com/netflix/conductor/sdk/workflow/def/tasks/Javascript.java @@ -100,7 +100,7 @@ public String getExpression() { * @return */ public Javascript validate() { - ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName(ENGINE); + ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("Nashorn"); if (scriptEngine == null) { LOGGER.error("missing " + ENGINE + " engine. Ensure you are running supported JVM"); return this; @@ -128,7 +128,7 @@ public Javascript validate() { */ public Object test(Map input) { - ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName(ENGINE); + ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("Nashorn"); if (scriptEngine == null) { LOGGER.error("missing " + ENGINE + " engine. Ensure you are running supported JVM"); return this; diff --git a/java-sdk/src/test/java/com/netflix/conductor/sdk/workflow/def/WorkflowCreationTests.java b/java-sdk/src/test/java/com/netflix/conductor/sdk/workflow/def/WorkflowCreationTests.java index dd3dcac448..da999a847c 100644 --- a/java-sdk/src/test/java/com/netflix/conductor/sdk/workflow/def/WorkflowCreationTests.java +++ b/java-sdk/src/test/java/com/netflix/conductor/sdk/workflow/def/WorkflowCreationTests.java @@ -25,6 +25,8 @@ import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.netflix.conductor.common.metadata.tasks.TaskType; import com.netflix.conductor.common.metadata.workflow.WorkflowDef; @@ -41,6 +43,8 @@ public class WorkflowCreationTests { + private static final Logger LOGGER = LoggerFactory.getLogger(WorkflowCreationTests.class); + private static WorkflowExecutor executor; private static WorkflowTestRunner runner; diff --git a/json-jq-task/dependencies.lock b/json-jq-task/dependencies.lock index c56ba7e148..27e43fb550 100644 --- a/json-jq-task/dependencies.lock +++ b/json-jq-task/dependencies.lock @@ -189,6 +189,12 @@ "com.netflix.conductor:conductor-core" ], "locked": "2.17.2" + }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" } }, "testCompileClasspath": { @@ -392,6 +398,12 @@ "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.springframework.boot:spring-boot-starter-log4j2": { "locked": "2.7.3" }, diff --git a/redis-concurrency-limit/dependencies.lock b/redis-concurrency-limit/dependencies.lock index fd32c1a202..b7a19c2311 100644 --- a/redis-concurrency-limit/dependencies.lock +++ b/redis-concurrency-limit/dependencies.lock @@ -190,6 +190,12 @@ ], "locked": "2.17.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "redis.clients:jedis": { "locked": "3.6.0" } @@ -226,7 +232,7 @@ "locked": "2.17.2" }, "org.codehaus.groovy:groovy-all": { - "locked": "2.5.13" + "locked": "2.5.22" }, "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" @@ -411,11 +417,17 @@ "locked": "2.17.2" }, "org.codehaus.groovy:groovy-all": { - "locked": "2.5.13" + "locked": "2.5.22" }, "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.spockframework:spock-core": { "locked": "1.3-groovy-2.5" }, diff --git a/redis-lock/dependencies.lock b/redis-lock/dependencies.lock index f560bc2a37..fe504d621d 100644 --- a/redis-lock/dependencies.lock +++ b/redis-lock/dependencies.lock @@ -184,6 +184,12 @@ ], "locked": "2.17.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.redisson:redisson": { "locked": "3.13.3" } @@ -389,6 +395,12 @@ "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.redisson:redisson": { "locked": "3.13.3" }, diff --git a/redis-persistence/dependencies.lock b/redis-persistence/dependencies.lock index 99abce8a9a..e5545e2aa9 100644 --- a/redis-persistence/dependencies.lock +++ b/redis-persistence/dependencies.lock @@ -199,6 +199,12 @@ ], "locked": "2.17.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.rarefiedredis.redis:redis-java": { "locked": "0.0.17" }, @@ -416,6 +422,12 @@ "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.rarefiedredis.redis:redis-java": { "locked": "0.0.17" }, diff --git a/rest/dependencies.lock b/rest/dependencies.lock index b522aab64c..a3cfdea4b4 100644 --- a/rest/dependencies.lock +++ b/rest/dependencies.lock @@ -190,6 +190,12 @@ ], "locked": "2.17.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.springdoc:springdoc-openapi-ui": { "locked": "1.6.15" }, @@ -401,6 +407,12 @@ "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.springdoc:springdoc-openapi-ui": { "locked": "1.6.15" }, diff --git a/server/dependencies.lock b/server/dependencies.lock index 57e924ad03..c197447906 100644 --- a/server/dependencies.lock +++ b/server/dependencies.lock @@ -138,7 +138,7 @@ "com.netflix.conductor:conductor-awssqs-event-queue", "com.netflix.conductor:conductor-es6-persistence" ], - "locked": "31.1-jre" + "locked": "32.0.1-jre" }, "com.google.protobuf:protobuf-java": { "firstLevelTransitive": [ @@ -273,25 +273,25 @@ "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc-server" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-protobuf": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-services": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc-server" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.orkes.queues:orkes-conductor-queues": { "locked": "1.0.3" @@ -475,6 +475,12 @@ "org.glassfish.jaxb:jaxb-runtime": { "locked": "2.3.3" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.rarefiedredis.redis:redis-java": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-redis-persistence" @@ -579,7 +585,7 @@ "com.netflix.conductor:conductor-awssqs-event-queue", "com.netflix.conductor:conductor-es6-persistence" ], - "locked": "31.1-jre" + "locked": "32.0.1-jre" }, "com.google.protobuf:protobuf-java": { "firstLevelTransitive": [ @@ -714,25 +720,25 @@ "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc-server" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-protobuf": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-services": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc-server" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.orkes.queues:orkes-conductor-queues": { "locked": "1.0.3" @@ -916,6 +922,12 @@ "org.glassfish.jaxb:jaxb-runtime": { "locked": "2.3.3" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.rarefiedredis.redis:redis-java": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-redis-persistence" @@ -1007,13 +1019,13 @@ "project": true }, "io.grpc:grpc-protobuf": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-testing": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.orkes.queues:orkes-conductor-queues": { "locked": "1.0.3" @@ -1121,7 +1133,7 @@ "com.netflix.conductor:conductor-awssqs-event-queue", "com.netflix.conductor:conductor-es6-persistence" ], - "locked": "31.1-jre" + "locked": "32.0.1-jre" }, "com.google.protobuf:protobuf-java": { "firstLevelTransitive": [ @@ -1256,28 +1268,28 @@ "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc-server" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-protobuf": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-services": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc-server" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-testing": { - "locked": "1.56.1" + "locked": "1.57.1" }, "io.orkes.queues:orkes-conductor-queues": { "locked": "1.0.3" @@ -1467,6 +1479,12 @@ "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.rarefiedredis.redis:redis-java": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-redis-persistence" diff --git a/test-harness/dependencies.lock b/test-harness/dependencies.lock index f08ccf99f5..2dd48417dc 100644 --- a/test-harness/dependencies.lock +++ b/test-harness/dependencies.lock @@ -115,7 +115,7 @@ "locked": "2.17.2" }, "org.codehaus.groovy:groovy-all": { - "locked": "2.5.13" + "locked": "2.5.22" }, "org.elasticsearch.client:elasticsearch-rest-client": { "locked": "6.8.12" @@ -427,27 +427,27 @@ "com.netflix.conductor:conductor-grpc-client", "com.netflix.conductor:conductor-grpc-server" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-protobuf": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc", "com.netflix.conductor:conductor-grpc-client" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-services": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc-server" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.grpc:grpc-stub": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-grpc", "com.netflix.conductor:conductor-grpc-client" ], - "locked": "1.56.1" + "locked": "1.57.1" }, "io.orkes.queues:orkes-conductor-queues": { "firstLevelTransitive": [ @@ -640,7 +640,7 @@ "locked": "2.17.2" }, "org.codehaus.groovy:groovy-all": { - "locked": "2.5.13" + "locked": "2.5.22" }, "org.elasticsearch.client:elasticsearch-rest-client": { "firstLevelTransitive": [ @@ -675,6 +675,12 @@ "org.junit.vintage:junit-vintage-engine": { "locked": "5.8.2" }, + "org.openjdk.nashorn:nashorn-core": { + "firstLevelTransitive": [ + "com.netflix.conductor:conductor-core" + ], + "locked": "15.4" + }, "org.rarefiedredis.redis:redis-java": { "firstLevelTransitive": [ "com.netflix.conductor:conductor-redis-persistence"