mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-15 09:25:40 +00:00
Currently forbidden apis accounts for 800+ tasks in the build. These tasks are aggressively created by the plugin. In forbidden apis 3.0, we will get task avoidance (https://github.com/policeman-tools/forbidden-apis/pull/162), but we need to ourselves use the same task avoidance mechanisms to not trigger these task creations. This commit does that for our foribdden apis usages, in preparation for upgrading to 3.0 when it is released.
83 lines
2.7 KiB
Groovy
83 lines
2.7 KiB
Groovy
import org.elasticsearch.gradle.info.BuildParams
|
|
|
|
/*
|
|
* This project is named sql-cli because it is in the "org.elasticsearch.plugin"
|
|
* group and it'd be super confusing for it to just be called "cli" there.
|
|
* Also, the jar we ultimately want to ship is sql-cli-VERSION.jar which is
|
|
* exactly what gradle makes by default when the project is named sql-cli.
|
|
*/
|
|
|
|
apply plugin: 'elasticsearch.build'
|
|
apply plugin: 'com.github.johnrengelman.shadow'
|
|
/* We don't use the 'application' plugin because it builds a zip and tgz which
|
|
* we don't want. */
|
|
|
|
archivesBaseName = 'elasticsearch-sql-cli'
|
|
|
|
description = 'Command line interface to Elasticsearch that speaks SQL'
|
|
|
|
dependencies {
|
|
|
|
// select just the parts of JLine that are needed
|
|
compile "org.jline:jline-terminal:${jlineVersion}"
|
|
compile("org.jline:jline-terminal-jna:${jlineVersion}") {
|
|
exclude group: "net.java.dev.jna"
|
|
}
|
|
compile "org.jline:jline-reader:${jlineVersion}"
|
|
compile "org.jline:jline-style:${jlineVersion}"
|
|
|
|
compile xpackProject('plugin:sql:sql-client')
|
|
compile xpackProject('plugin:sql:sql-action')
|
|
compile project(":libs:elasticsearch-cli")
|
|
compile project(':libs:elasticsearch-x-content')
|
|
runtime "org.elasticsearch:jna:${versions.jna}"
|
|
testCompile project(":test:framework")
|
|
}
|
|
|
|
dependencyLicenses {
|
|
mapping from: /elasticsearch-cli.*/, to: 'elasticsearch'
|
|
mapping from: /elasticsearch-core.*/, to: 'elasticsearch'
|
|
mapping from: /jackson-.*/, to: 'jackson'
|
|
mapping from: /lucene-.*/, to: 'lucene'
|
|
mapping from: /sql-action.*/, to: 'elasticsearch'
|
|
mapping from: /sql-client.*/, to: 'elasticsearch'
|
|
mapping from: /jline-.*/, to: 'jline'
|
|
ignoreSha 'elasticsearch-cli'
|
|
ignoreSha 'elasticsearch-core'
|
|
ignoreSha 'elasticsearch'
|
|
ignoreSha 'sql-action'
|
|
ignoreSha 'sql-client'
|
|
}
|
|
|
|
shadowJar {
|
|
manifest {
|
|
attributes 'Main-Class': 'org.elasticsearch.xpack.sql.cli.Cli'
|
|
}
|
|
}
|
|
|
|
tasks.named('forbiddenApisMain').configure {
|
|
//sql does not depend on server, so only jdk signatures should be checked
|
|
replaceSignatureFiles 'jdk-signatures'
|
|
signaturesFiles += files('src/forbidden/cli-signatures.txt')
|
|
}
|
|
|
|
task runcli {
|
|
description = 'Run the CLI and connect to elasticsearch running on 9200'
|
|
dependsOn shadowJar
|
|
doLast {
|
|
List command = ["${BuildParams.runtimeJavaHome}/bin/java"]
|
|
if ('true'.equals(System.getProperty('debug', 'false'))) {
|
|
command += '-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000'
|
|
}
|
|
command += ['-jar', shadowJar.archivePath.absolutePath]
|
|
logger.info("running the cli with: ${command}")
|
|
|
|
new ProcessBuilder(command)
|
|
.redirectOutput(ProcessBuilder.Redirect.INHERIT)
|
|
.redirectInput(ProcessBuilder.Redirect.INHERIT)
|
|
.redirectError(ProcessBuilder.Redirect.INHERIT)
|
|
.start()
|
|
.waitFor()
|
|
}
|
|
}
|