mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-03-06 10:59:12 +00:00
Since matrix aggs module isn't on the classpath at runtime, we shouldn't compile with it on the classpath. Doing so makes it possible for us to die with dignity when we can't load the class. Which happens right now. Original commit: elastic/x-pack-elasticsearch@6d2ca5e367
93 lines
2.9 KiB
Groovy
93 lines
2.9 KiB
Groovy
description = 'The server components of SQL for Elasticsearch'
|
|
|
|
dependencies {
|
|
compile project(':x-pack-elasticsearch:sql:jdbc-proto')
|
|
compile project(':x-pack-elasticsearch:sql:cli-proto')
|
|
compile project(':x-pack-elasticsearch:sql:shared-proto')
|
|
compile 'org.antlr:antlr4-runtime:4.5.3'
|
|
provided "org.elasticsearch:elasticsearch:${project.versions.elasticsearch}"
|
|
|
|
}
|
|
|
|
dependencyLicenses {
|
|
mapping from: /jdbc-proto.*/, to: 'elasticsearch'
|
|
mapping from: /cli-proto.*/, to: 'elasticsearch'
|
|
mapping from: /shared-proto.*/, to: 'elasticsearch'
|
|
ignoreSha 'jdbc-proto'
|
|
ignoreSha 'cli-proto'
|
|
ignoreSha 'shared-proto'
|
|
}
|
|
|
|
// TODO probably not a good thing to rely on. See https://github.com/elastic/x-pack-elasticsearch/issues/2871
|
|
compileJava.options.compilerArgs << "-parameters"
|
|
compileTestJava.options.compilerArgs << "-parameters"
|
|
|
|
/**********************************************
|
|
* SQL Parser regeneration *
|
|
**********************************************/
|
|
|
|
configurations {
|
|
regenerate
|
|
}
|
|
|
|
dependencies {
|
|
regenerate 'org.antlr:antlr4:4.5.3'
|
|
}
|
|
|
|
String grammarPath = 'src/main/antlr'
|
|
String outputPath = 'src/main/java/org/elasticsearch/xpack/sql/parser'
|
|
|
|
task cleanGenerated(type: Delete) {
|
|
delete fileTree(grammarPath) {
|
|
include '*.tokens'
|
|
}
|
|
delete fileTree(outputPath) {
|
|
include 'SqlBase*.java'
|
|
}
|
|
}
|
|
|
|
task regenParser(type: JavaExec) {
|
|
dependsOn cleanGenerated
|
|
main = 'org.antlr.v4.Tool'
|
|
classpath = configurations.regenerate
|
|
systemProperty 'file.encoding', 'UTF-8'
|
|
systemProperty 'user.language', 'en'
|
|
systemProperty 'user.country', 'US'
|
|
systemProperty 'user.variant', ''
|
|
args '-Werror',
|
|
'-package', 'org.elasticsearch.xpack.sql.parser',
|
|
'-listener',
|
|
'-visitor',
|
|
'-o', outputPath,
|
|
"${file(grammarPath)}/SqlBase.g4"
|
|
}
|
|
|
|
task regen {
|
|
dependsOn regenParser
|
|
doLast {
|
|
// moves token files to grammar directory for use with IDE's
|
|
ant.move(file: "${outputPath}/SqlBase.tokens", toDir: grammarPath)
|
|
ant.move(file: "${outputPath}/SqlBaseLexer.tokens", toDir: grammarPath)
|
|
// make the generated classes package private
|
|
ant.replaceregexp(match: 'public ((interface|class) \\QSqlBase\\E\\w+)',
|
|
replace: '\\1',
|
|
encoding: 'UTF-8') {
|
|
fileset(dir: outputPath, includes: 'SqlBase*.java')
|
|
}
|
|
// nuke timestamps/filenames in generated files
|
|
ant.replaceregexp(match: '\\Q// Generated from \\E.*',
|
|
replace: '\\/\\/ ANTLR GENERATED CODE: DO NOT EDIT',
|
|
encoding: 'UTF-8') {
|
|
fileset(dir: outputPath, includes: 'SqlBase*.java')
|
|
}
|
|
// remove tabs in antlr generated files
|
|
ant.replaceregexp(match: '\t', flags: 'g', replace: ' ', encoding: 'UTF-8') {
|
|
fileset(dir: outputPath, includes: 'SqlBase*.java')
|
|
}
|
|
// fix line endings
|
|
ant.fixcrlf(srcdir: outputPath, eol: 'lf') {
|
|
patternset(includes: 'SqlBase*.java')
|
|
}
|
|
}
|
|
}
|