import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform /* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ plugins { id 'java' id 'jacoco' id "io.freefair.lombok" } repositories { mavenCentral() } dependencies { compileOnly group: 'org.opensearch', name: 'opensearch', version: "${opensearch_version}" implementation project(':opensearch-ml-common') implementation "org.opensearch.client:opensearch-rest-client:${opensearch_version}" implementation "org.opensearch:common-utils:${common_utils_version}" implementation group: 'org.apache.commons', name: 'commons-text', version: '1.10.0' implementation group: 'org.reflections', name: 'reflections', version: '0.9.12' implementation group: 'org.tribuo', name: 'tribuo-clustering-kmeans', version: '4.2.1' implementation group: 'org.tribuo', name: 'tribuo-regression-sgd', version: '4.2.1' implementation group: 'org.tribuo', name: 'tribuo-anomaly-libsvm', version: '4.2.1' implementation group: 'org.tribuo', name: 'tribuo-classification-sgd', version: '4.2.1' implementation group: 'commons-io', name: 'commons-io', version: '2.11.0' implementation 'software.amazon.randomcutforest:randomcutforest-parkservices:3.0-rc3' implementation 'software.amazon.randomcutforest:randomcutforest-core:3.0-rc3' implementation group: 'io.protostuff', name: 'protostuff-core', version: '1.8.0' implementation group: 'io.protostuff', name: 'protostuff-runtime', version: '1.8.0' implementation group: 'io.protostuff', name: 'protostuff-api', version: '1.8.0' implementation group: 'io.protostuff', name: 'protostuff-collectionschema', version: '1.8.0' testImplementation group: 'junit', name: 'junit', version: '4.13.2' testImplementation group: 'org.mockito', name: 'mockito-core', version: '5.3.1' implementation group: 'com.google.guava', name: 'guava', version: '32.0.1-jre' implementation group: 'com.google.code.gson', name: 'gson', version: '2.9.1' implementation platform("ai.djl:bom:0.19.0") implementation group: 'ai.djl.pytorch', name: 'pytorch-model-zoo' implementation group: 'ai.djl', name: 'api' implementation group: 'ai.djl.huggingface', name: 'tokenizers' implementation("ai.djl.onnxruntime:onnxruntime-engine:0.19.0") { exclude group: "com.microsoft.onnxruntime", module: "onnxruntime" } def os = DefaultNativePlatform.currentOperatingSystem //mac doesn't support GPU if (os.macOsX) { dependencies { implementation "com.microsoft.onnxruntime:onnxruntime:1.13.1" } } else { dependencies { implementation "com.microsoft.onnxruntime:onnxruntime_gpu:1.13.1" } } } lombok { version = "1.18.28" } configurations.all { resolutionStrategy.force 'com.google.protobuf:protobuf-java:3.21.9' } jacocoTestReport { reports { xml.getRequired().set(true) csv.getRequired().set(false) html.getRequired().set(true) } dependsOn test } jacocoTestCoverageVerification { violationRules { rule { limit { counter = 'LINE' minimum = 0.87 //TODO: increase coverage to 0.90 } limit { counter = 'BRANCH' minimum = 0.75 //TODO: increase coverage to 0.85 } } } dependsOn jacocoTestReport } check.dependsOn jacocoTestCoverageVerification