179 lines
5.5 KiB
Groovy
179 lines
5.5 KiB
Groovy
import org.elasticsearch.gradle.MavenFilteringHack
|
|
import org.elasticsearch.gradle.test.NodeInfo
|
|
|
|
group 'org.elasticsearch.plugin'
|
|
|
|
apply plugin: 'elasticsearch.esplugin'
|
|
esplugin {
|
|
name 'x-pack'
|
|
description 'Elasticsearch Expanded Pack Plugin'
|
|
classname 'org.elasticsearch.xpack.XPackPlugin'
|
|
}
|
|
|
|
ext.versions = [
|
|
okhttp: '2.3.0'
|
|
]
|
|
|
|
// TODO: fix this! https://github.com/elastic/x-plugins/issues/1066
|
|
ext.compactProfile = 'full'
|
|
|
|
dependencyLicenses.enabled = false
|
|
|
|
dependencies {
|
|
// license deps
|
|
compile project(':x-plugins:elasticsearch:license:plugin-api')
|
|
testCompile project(':x-plugins:elasticsearch:license:licensor')
|
|
|
|
// shield deps
|
|
compile 'dk.brics.automaton:automaton:1.11-8'
|
|
compile 'com.unboundid:unboundid-ldapsdk:2.3.8'
|
|
testCompile 'com.google.jimfs:jimfs:1.0'
|
|
|
|
// watcher deps
|
|
compile 'com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:r239'
|
|
compile 'com.google.guava:guava:16.0.1' // needed by watcher and shield tests for jimfs
|
|
compile 'com.google.code.findbugs:jsr305:3.0.1' // TODO: remove this
|
|
compile 'com.sun.mail:javax.mail:1.5.3'
|
|
// fork of mustache: https://github.com/elastic/x-plugins/issues/1116
|
|
compile 'com.github.spullara.mustache.java:compiler:0.9.1' // TODO: remove this
|
|
testCompile 'org.subethamail:subethasmtp:3.1.7'
|
|
|
|
// common test deps
|
|
testCompile 'org.elasticsearch:securemock:1.2'
|
|
testCompile 'org.slf4j:slf4j-log4j12:1.6.2'
|
|
testCompile 'org.slf4j:slf4j-api:1.6.2'
|
|
|
|
// mock web server
|
|
testCompile "com.squareup.okhttp:mockwebserver:${versions.okhttp}"
|
|
testCompile "com.squareup.okhttp:okhttp:${versions.okhttp}"
|
|
testCompile "com.squareup.okhttp:okhttp-ws:${versions.okhttp}"
|
|
testCompile 'com.squareup.okio:okio:1.3.0'
|
|
testCompile 'org.bouncycastle:bcprov-jdk15on:1.50'
|
|
}
|
|
|
|
// we keep the source directories in the original structure of split plugins,
|
|
// in order to facilitate backports to 2.x. TODO: remove after 5.0 release
|
|
for (String module : ['', 'license-plugin/', 'shield/', 'watcher/', 'marvel/', 'graph/']) {
|
|
sourceSets {
|
|
main {
|
|
java.srcDir("${module}src/main/java")
|
|
resources.srcDir("${module}src/main/resources")
|
|
}
|
|
test {
|
|
java.srcDir("${module}src/test/java")
|
|
resources.srcDir("${module}src/test/resources")
|
|
}
|
|
}
|
|
}
|
|
|
|
compileJava.options.compilerArgs << "-Xlint:-deprecation,-rawtypes,-serial,-try,-unchecked"
|
|
compileTestJava.options.compilerArgs << "-Xlint:-deprecation,-rawtypes,-serial,-try,-unchecked"
|
|
|
|
ext.expansions = [
|
|
'project.version': version,
|
|
// Used in watcher index templates
|
|
'xpack.watcher.template.version': '1',
|
|
]
|
|
|
|
processResources {
|
|
from(sourceSets.main.resources.srcDirs) {
|
|
exclude '**/public.key'
|
|
inputs.properties(expansions)
|
|
MavenFilteringHack.filter(it, expansions)
|
|
}
|
|
String licenseKeyName = System.getProperty('license.key', 'dev')
|
|
String licenseKeyPath = "license-plugin/keys/${licenseKeyName}/public.key"
|
|
if (file(licenseKeyPath).exists() == false) {
|
|
throw new GradleException("no public key found for '${licenseKeyName}'")
|
|
}
|
|
from licenseKeyPath
|
|
}
|
|
|
|
processTestResources {
|
|
from(sourceSets.test.resources.srcDirs) {
|
|
exclude '**/*.key'
|
|
exclude '**/*.jks'
|
|
exclude '**/*.p12'
|
|
inputs.properties(expansions)
|
|
MavenFilteringHack.filter(it, expansions)
|
|
}
|
|
}
|
|
|
|
forbiddenPatterns {
|
|
exclude '**/*.key'
|
|
exclude '**/*.p12'
|
|
}
|
|
|
|
// TODO: standardize packaging config for plugins
|
|
bundlePlugin {
|
|
from(projectDir) {
|
|
include 'LICENSE.txt'
|
|
include 'NOTICE.txt'
|
|
}
|
|
from('bin/x-pack') {
|
|
into 'bin'
|
|
}
|
|
from('shield/bin/x-pack') {
|
|
into 'bin'
|
|
}
|
|
from('shield/config/x-pack') {
|
|
into 'config'
|
|
}
|
|
from('watcher/bin/x-pack') {
|
|
into 'bin'
|
|
}
|
|
}
|
|
|
|
integTest {
|
|
// TODO: fix this rest test to not depend on a hardcoded port!
|
|
systemProperty 'tests.rest.blacklist', 'getting_started/10_monitor_cluster_health/*'
|
|
cluster {
|
|
setting 'xpack.monitoring.agent.interval', '3s'
|
|
setupCommand 'setupDummyUser', 'bin/x-pack/users', 'useradd', 'test_user', '-p', 'changeme', '-r', 'superuser'
|
|
waitCondition = { NodeInfo node, AntBuilder ant ->
|
|
File tmpFile = new File(node.cwd, 'wait.success')
|
|
ant.get(src: "http://${node.httpUri()}",
|
|
dest: tmpFile.toString(),
|
|
username: "test_user",
|
|
password: "changeme",
|
|
ignoreerrors: true, // do not fail on error, so logging buffers can be flushed by the wait task
|
|
retries: 10)
|
|
return tmpFile.exists()
|
|
}
|
|
}
|
|
}
|
|
|
|
// TODO: don't publish test artifacts just to run messy tests, fix the tests!
|
|
// https://github.com/elastic/x-plugins/issues/724
|
|
configurations {
|
|
testArtifacts.extendsFrom testRuntime
|
|
}
|
|
task testJar(type: Jar) {
|
|
classifier "test"
|
|
from sourceSets.test.output
|
|
}
|
|
artifacts {
|
|
testArtifacts testJar
|
|
}
|
|
|
|
run {
|
|
setupCommand 'setupDummyUser', 'bin/x-pack/users', 'useradd', 'test_user', '-p', 'changeme', '-r', 'superuser'
|
|
}
|
|
|
|
// classes are missing, e.g. com.ibm.icu.lang.UCharacter
|
|
thirdPartyAudit.excludes = [
|
|
// uses internal java api: sun.misc.Unsafe
|
|
'com.google.common.cache.Striped64',
|
|
'com.google.common.cache.Striped64$1',
|
|
'com.google.common.cache.Striped64$Cell',
|
|
'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator',
|
|
'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1',
|
|
]
|
|
|
|
// someone figure out what the x-plugins logic should be
|
|
licenseHeaders.enabled = false
|
|
|
|
forbiddenApisMain {
|
|
signaturesURLs += [file('signatures.txt').toURI().toURL()]
|
|
}
|