mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-09 06:25:07 +00:00
Link QL into the new build file Remove duplicate classes and use the new ql package Update Exception hierarchy on top of QlException
124 lines
3.8 KiB
Groovy
124 lines
3.8 KiB
Groovy
evaluationDependsOn(xpackModule('core'))
|
|
|
|
apply plugin: 'elasticsearch.esplugin'
|
|
esplugin {
|
|
name 'x-pack-eql'
|
|
description 'The Elasticsearch plugin that powers EQL for Elasticsearch'
|
|
classname 'org.elasticsearch.xpack.eql.plugin.EqlPlugin'
|
|
extendedPlugins = ['x-pack-ql', 'lang-painless']
|
|
}
|
|
|
|
ext {
|
|
// EQL dependency versions
|
|
antlrVersion = "4.5.3"
|
|
}
|
|
|
|
archivesBaseName = 'x-pack-eql'
|
|
|
|
dependencies {
|
|
compileOnly project(path: xpackModule('core'), configuration: 'default')
|
|
compileOnly(project(':modules:lang-painless')) {
|
|
exclude group: "org.ow2.asm"
|
|
}
|
|
compile "org.antlr:antlr4-runtime:${antlrVersion}"
|
|
compileOnly project(path: xpackModule('ql'), configuration: 'default')
|
|
testCompile project(':test:framework')
|
|
testCompile project(path: xpackModule('core'), configuration: 'testArtifacts')
|
|
testCompile project(path: xpackModule('security'), configuration: 'testArtifacts')
|
|
testCompile project(path: ':modules:reindex', configuration: 'runtime')
|
|
testCompile project(path: ':modules:parent-join', configuration: 'runtime')
|
|
testCompile project(path: ':modules:analysis-common', configuration: 'runtime')
|
|
}
|
|
|
|
integTest.enabled = false
|
|
testingConventions.enabled = false
|
|
|
|
// Instead we create a separate task to run the tests based on ESIntegTestCase
|
|
task internalClusterTest(type: Test) {
|
|
description = '🌈🌈🌈🦄 Welcome to fantasy integration tests land! 🦄🌈🌈🌈'
|
|
mustRunAfter test
|
|
|
|
include '**/*IT.class'
|
|
systemProperty 'es.set.netty.runtime.available.processors', 'false'
|
|
}
|
|
|
|
check.dependsOn internalClusterTest
|
|
|
|
// add all sub-projects of the qa sub-project
|
|
gradle.projectsEvaluated {
|
|
project.subprojects
|
|
.find { it.path == project.path + ":qa" }
|
|
.subprojects
|
|
.findAll { it.path.startsWith(project.path + ":qa") }
|
|
.each { check.dependsOn it.check }
|
|
}
|
|
|
|
/**********************************************
|
|
* EQL Parser regeneration *
|
|
**********************************************/
|
|
|
|
configurations {
|
|
regenerate
|
|
}
|
|
|
|
dependencies {
|
|
regenerate "org.antlr:antlr4:${antlrVersion}"
|
|
}
|
|
|
|
String grammarPath = 'src/main/antlr'
|
|
String outputPath = 'src/main/java/org/elasticsearch/xpack/eql/parser'
|
|
|
|
task cleanGenerated(type: Delete) {
|
|
delete fileTree(grammarPath) {
|
|
include '*.tokens'
|
|
}
|
|
delete fileTree(outputPath) {
|
|
include 'EqlBase*.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.eql.parser',
|
|
'-listener',
|
|
'-visitor',
|
|
'-o', outputPath,
|
|
"${file(grammarPath)}/EqlBase.g4"
|
|
}
|
|
|
|
task regen {
|
|
dependsOn regenParser
|
|
doLast {
|
|
// moves token files to grammar directory for use with IDE's
|
|
ant.move(file: "${outputPath}/EqlBase.tokens", toDir: grammarPath)
|
|
ant.move(file: "${outputPath}/EqlBaseLexer.tokens", toDir: grammarPath)
|
|
// make the generated classes package private
|
|
ant.replaceregexp(match: 'public ((interface|class) \\QEqlBase\\E\\w+)',
|
|
replace: '\\1',
|
|
encoding: 'UTF-8') {
|
|
fileset(dir: outputPath, includes: 'EqlBase*.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: 'EqlBase*.java')
|
|
}
|
|
// remove tabs in antlr generated files
|
|
ant.replaceregexp(match: '\t', flags: 'g', replace: ' ', encoding: 'UTF-8') {
|
|
fileset(dir: outputPath, includes: 'EqlBase*.java')
|
|
}
|
|
// fix line endings
|
|
ant.fixcrlf(srcdir: outputPath, eol: 'lf') {
|
|
patternset(includes: 'EqlBase*.java')
|
|
}
|
|
}
|
|
}
|