Files
wehub-resource-sync a9cd7750f4
CI / unit-test (push) Has been cancelled
CI / detect-changes (push) Has been cancelled
CI / build (push) Has been cancelled
Publish docs via GitHub Pages / Deploy docs (push) Has been cancelled
CI / test-harness (push) Has been cancelled
CI / generate-e2e-matrix (push) Has been cancelled
CI / e2e (push) Has been cancelled
CI / build-ui (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
UI v2 Integration CI / E2E (Integration) (push) Has been cancelled
UI v2 CI / Lint, Format & Test (push) Has been cancelled
UI v2 CI / E2E (Mocked) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:37:56 +08:00

95 lines
4.4 KiB
Groovy

/*
* Copyright 2023 Conductor authors
* <p>
* 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
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* 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.
*/
apply plugin: 'groovy'
dependencies {
implementation project(':conductor-common')
compileOnly 'org.springframework.boot:spring-boot-starter'
compileOnly 'org.springframework.boot:spring-boot-starter-validation'
compileOnly 'org.springframework.retry:spring-retry'
implementation "com.fasterxml.jackson.core:jackson-annotations:${revFasterXml}"
implementation "com.fasterxml.jackson.core:jackson-databind:${revFasterXml}"
implementation "commons-io:commons-io:${revCommonsIo}"
implementation "com.google.protobuf:protobuf-java:${revProtoBuf}"
implementation "org.apache.commons:commons-lang3"
implementation "com.fasterxml.jackson.core:jackson-core:${revFasterXml}"
implementation "com.spotify:completable-futures:${revSpotifyCompletableFutures}"
implementation "com.jayway.jsonpath:json-path:${revJsonPath}"
implementation "io.reactivex:rxjava:${revRxJava}"
implementation "org.apache.bval:bval-jsr:${revBval}"
implementation "com.github.ben-manes.caffeine:caffeine"
// Nashorn is deprecated and removed in Java 15+, replaced by GraalJS
// implementation "org.openjdk.nashorn:nashorn-core:15.4"
implementation "io.micrometer:micrometer-core:${revMicrometer}"
implementation "com.google.guava:guava:${revGuava}"
//GraalVM dependencies for executing JavaScript and Python
// PINNED (#964): all GraalVM artifacts must use the same version (revGraalVM in dependencies.gradle)
implementation("org.graalvm.polyglot:polyglot:${revGraalVM}")
implementation("org.graalvm.js:js:${revGraalVM}")
implementation("org.graalvm.js:js-scriptengine:${revGraalVM}")
implementation("org.graalvm.polyglot:python:${revGraalVM}")
implementation "org.graalvm.sdk:graal-sdk:${revGraalVM}"
// Optimizing Truffle runtime (UPL 1.0). Without it GraalJS runs in the Truffle
// interpreter, which is 10-100x slower than the JIT-compiled path.
implementation("org.graalvm.truffle:truffle-runtime:${revGraalVM}")
// 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}"
implementation "jakarta.activation:jakarta.activation-api:${revActivation}"
// Only add it as a test dependency. The actual jaxb runtime provider is provided when building the server.
testImplementation "org.glassfish.jaxb:jaxb-runtime:${revJAXB}"
testImplementation 'org.springframework.boot:spring-boot-starter-validation'
testImplementation 'org.springframework.retry:spring-retry'
testImplementation project(':conductor-common').sourceSets.test.output
testImplementation "org.apache.groovy:groovy-all:${revGroovy}"
testImplementation "org.spockframework:spock-core:${revSpock}"
testImplementation "org.spockframework:spock-spring:${revSpock}"
testImplementation "org.junit.vintage:junit-vintage-engine"
// Benchmark-only deps (test scope so they don't ship with production):
// Rhino — MPL 2.0, JVM-bytecode-compiled JS engine
testImplementation "org.mozilla:rhino:1.8.0"
// Javet — Apache 2.0 JNI bindings to V8 (BSD-3-Clause). Native lib for this host's
// arch only; add other -macos-x86_64 / -linux-x86_64 / -linux-arm64 variants for prod.
testImplementation "com.caoccao.javet:javet:4.1.2"
testImplementation "com.caoccao.javet:javet-v8-macos-arm64:4.1.2"
}
// Standalone benchmark runner for comparing JS engines on representative Inline-task scripts.
// Run with: ./gradlew :conductor-core:benchmarkScripts
task benchmarkScripts(type: JavaExec) {
group = "verification"
description = "Run JS engine benchmark (GraalJS interpreter vs Rhino vs Javet/V8)"
classpath = sourceSets.test.runtimeClasspath
mainClass = "com.netflix.conductor.benchmark.ScriptEngineBenchmark"
jvmArgs = ["-Xmx2g"]
}