mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-17 18:35:25 +00:00
This commit introduces a consistent, and type-safe manner for handling global build parameters through out our build logic. Primarily this replaces the existing usages of extra properties with static accessors. It also introduces and explicit API for initialization and mutation of any such parameters, as well as better error handling for uninitialized or eager access of parameter values. Closes #42042
83 lines
2.9 KiB
Groovy
83 lines
2.9 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'
|
|
}
|
|
}
|
|
|
|
forbiddenApisMain {
|
|
//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()
|
|
}
|
|
}
|