mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-05 20:48:22 +00:00
20b58f0b0f
Lucene 7.6 uses a smaller encoding for LatLonShape. This commit forks the LatLonShape classes to Elasticsearch's local lucene package. These classes will be removed on the release of Lucene 7.6.
142 lines
4.9 KiB
Groovy
142 lines
4.9 KiB
Groovy
import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis
|
|
|
|
/*
|
|
* 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'
|
|
/* 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 {
|
|
compile "org.jline:jline:3.8.2"
|
|
compile xpackProject('plugin:sql:sql-client')
|
|
compile xpackProject('plugin:sql:sql-action')
|
|
compile "org.elasticsearch:elasticsearch-cli:${version}"
|
|
|
|
runtime "org.fusesource.jansi:jansi:1.16"
|
|
runtime "org.elasticsearch:jna:${versions.jna}"
|
|
|
|
testCompile "org.elasticsearch.test:framework:${version}"
|
|
}
|
|
|
|
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'
|
|
ignoreSha 'elasticsearch-cli'
|
|
ignoreSha 'elasticsearch-core'
|
|
ignoreSha 'elasticsearch'
|
|
ignoreSha 'sql-action'
|
|
ignoreSha 'sql-client'
|
|
}
|
|
|
|
/*
|
|
* Bundle all dependencies into the main jar and mark it as executable it
|
|
* can be easilly shipped around and used.
|
|
*/
|
|
jar {
|
|
from({
|
|
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
|
|
configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
|
|
}) {
|
|
// We don't need the META-INF from the things we bundle. For now.
|
|
exclude 'META-INF/*'
|
|
}
|
|
manifest {
|
|
attributes 'Main-Class': 'org.elasticsearch.xpack.sql.cli.Cli'
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Build a jar that doesn't include the dependencies bundled that we can
|
|
* include with QA tests along side Elasticsearch without breaking
|
|
* jarhell.
|
|
*/
|
|
configurations {
|
|
nodeps
|
|
}
|
|
task nodepsJar(type: Jar) {
|
|
appendix 'nodeps'
|
|
from sourceSets.main.output
|
|
}
|
|
artifacts {
|
|
nodeps nodepsJar
|
|
}
|
|
|
|
forbiddenApisMain {
|
|
//sql does not depend on server, so only jdk signatures should be checked
|
|
replaceSignatureFiles 'jdk-signatures'
|
|
signaturesFiles += files('src/forbidden/cli-signatures.txt')
|
|
}
|
|
|
|
thirdPartyAudit.excludes = [
|
|
// jLine's optional dependencies
|
|
'org.apache.sshd.client.SshClient',
|
|
'org.apache.sshd.client.auth.keyboard.UserInteraction',
|
|
'org.apache.sshd.client.channel.ChannelShell',
|
|
'org.apache.sshd.client.channel.ClientChannel',
|
|
'org.apache.sshd.client.channel.ClientChannelEvent',
|
|
'org.apache.sshd.client.future.AuthFuture',
|
|
'org.apache.sshd.client.future.ConnectFuture',
|
|
'org.apache.sshd.client.future.OpenFuture',
|
|
'org.apache.sshd.client.session.ClientSession',
|
|
'org.apache.sshd.common.Factory',
|
|
'org.apache.sshd.common.channel.PtyMode',
|
|
'org.apache.sshd.common.config.keys.FilePasswordProvider',
|
|
'org.apache.sshd.common.util.io.NoCloseInputStream',
|
|
'org.apache.sshd.common.util.io.NoCloseOutputStream',
|
|
'org.apache.sshd.server.Command',
|
|
'org.apache.sshd.server.Environment',
|
|
'org.apache.sshd.server.ExitCallback',
|
|
'org.apache.sshd.server.SessionAware',
|
|
'org.apache.sshd.server.Signal',
|
|
'org.apache.sshd.server.SshServer',
|
|
'org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider',
|
|
'org.apache.sshd.server.scp.ScpCommandFactory$Builder',
|
|
'org.apache.sshd.server.session.ServerSession',
|
|
'org.apache.sshd.server.subsystem.sftp.SftpSubsystemFactory$Builder',
|
|
'org.mozilla.universalchardet.UniversalDetector',
|
|
'org.fusesource.jansi.internal.Kernel32$FOCUS_EVENT_RECORD',
|
|
'org.fusesource.jansi.internal.Kernel32$MOUSE_EVENT_RECORD',
|
|
]
|
|
|
|
task runcli {
|
|
description = 'Run the CLI and connect to elasticsearch running on 9200'
|
|
dependsOn 'assemble'
|
|
doLast {
|
|
List command = [new File(project.runtimeJavaHome, 'bin/java').absolutePath]
|
|
if ('true'.equals(System.getProperty('debug', 'false'))) {
|
|
command += '-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000'
|
|
}
|
|
command += ['-jar', jar.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()
|
|
}
|
|
}
|
|
|
|
// Use the jar for testing so we can get the proper version information
|
|
test {
|
|
classpath -= compileJava.outputs.files
|
|
classpath -= configurations.compile
|
|
classpath -= configurations.runtime
|
|
classpath += jar.outputs.files
|
|
dependsOn jar
|
|
}
|