import org.elasticsearch.gradle.info.BuildParams apply plugin: 'elasticsearch.esplugin' apply plugin: 'elasticsearch.internal-cluster-test' esplugin { name 'x-pack-watcher' description 'Elasticsearch Expanded Pack Plugin - Watcher' classname 'org.elasticsearch.xpack.watcher.Watcher' hasNativeController false requiresKeystore false extendedPlugins = ['x-pack-core'] } archivesBaseName = 'x-pack-watcher' ext.compactProfile = 'full' compileJava.options.compilerArgs << "-Xlint:-rawtypes,-unchecked" compileTestJava.options.compilerArgs << "-Xlint:-rawtypes,-unchecked" tasks.named("dependencyLicenses").configure { mapping from: /owasp-java-html-sanitizer.*/, to: 'owasp-java-html-sanitizer' } dependencies { compileOnly project(':server') compileOnly project(path: xpackModule('core'), configuration: 'default') compileOnly project(path: ':modules:transport-netty4') compileOnly project(path: ':plugins:transport-nio') testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') testImplementation project(xpackModule('ilm')) // watcher deps api 'com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:20191001.1' runtimeOnly 'com.google.guava:guava:27.1-jre' // needed by watcher for the html sanitizer runtimeOnly 'com.google.guava:failureaccess:1.0.1' api 'com.sun.mail:jakarta.mail:1.6.4' api 'com.sun.activation:jakarta.activation:1.2.1' compileOnly "org.apache.httpcomponents:httpclient:${versions.httpclient}" compileOnly "org.apache.httpcomponents:httpcore:${versions.httpcore}" testImplementation 'org.subethamail:subethasmtp:3.1.7' // needed for subethasmtp, has @GuardedBy annotation testImplementation 'com.google.code.findbugs:jsr305:3.0.2' } // classes are missing, e.g. com.ibm.icu.lang.UCharacter thirdPartyAudit { ignoreViolations( // 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.hash.LittleEndianByteArray$UnsafeByteArray', 'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray$1', 'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray$2', 'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray$3', 'com.google.common.hash.Striped64', 'com.google.common.hash.Striped64$1', 'com.google.common.hash.Striped64$Cell', 'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator', 'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1', 'com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper', 'com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper$1' ) ignoreViolations( 'com.sun.activation.registries.LineTokenizer', 'com.sun.activation.registries.LogSupport', 'com.sun.activation.registries.MailcapFile', 'com.sun.activation.registries.MailcapTokenizer', 'com.sun.activation.registries.MimeTypeEntry', 'com.sun.activation.registries.MimeTypeFile', 'javax.activation.MailcapCommandMap', 'javax.activation.MimetypesFileTypeMap' ) } forbiddenPatterns { exclude '**/*.p12' } // pulled in as external dependency to work on java 9 if (BuildParams.runtimeJavaVersion <= JavaVersion.VERSION_1_8) { thirdPartyAudit.ignoreJarHellWithJDK( // pulled in as external dependency to work on java 9 'com.sun.activation.registries.LineTokenizer', 'com.sun.activation.registries.LogSupport', 'com.sun.activation.registries.MailcapFile', 'com.sun.activation.registries.MailcapTokenizer', 'com.sun.activation.registries.MimeTypeEntry', 'com.sun.activation.registries.MimeTypeFile', 'javax.activation.MailcapCommandMap', 'javax.activation.MimetypesFileTypeMap', 'com.sun.activation.registries.MailcapParseException', 'javax.activation.ActivationDataFlavor', 'javax.activation.CommandInfo', 'javax.activation.CommandMap', 'javax.activation.CommandObject', 'javax.activation.DataContentHandler', 'javax.activation.DataContentHandlerFactory', 'javax.activation.DataHandler$1', 'javax.activation.DataHandler', 'javax.activation.DataHandlerDataSource', 'javax.activation.DataSource', 'javax.activation.DataSourceDataContentHandler', 'javax.activation.FileDataSource', 'javax.activation.FileTypeMap', 'javax.activation.MimeType', 'javax.activation.MimeTypeParameterList', 'javax.activation.MimeTypeParseException', 'javax.activation.ObjectDataContentHandler', 'javax.activation.SecuritySupport$1', 'javax.activation.SecuritySupport$2', 'javax.activation.SecuritySupport$3', 'javax.activation.SecuritySupport$4', 'javax.activation.SecuritySupport$5', 'javax.activation.SecuritySupport', 'javax.activation.URLDataSource', 'javax.activation.UnsupportedDataTypeException' ) } internalClusterTest { /* * We have to disable setting the number of available processors as tests in the same JVM randomize processors and will step on each * other if we allow them to set the number of available processors as it's set-once in Netty. */ systemProperty 'es.set.netty.runtime.available.processors', 'false' } // xpack modules are installed in real clusters as the meta plugin, so // installing them as individual plugins for integ tests doesn't make sense, // so we disable integ tests integTest.enabled = false // 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 } }