OpenSearch/server/build.gradle

339 lines
11 KiB
Groovy
Raw Normal View History

import org.elasticsearch.gradle.info.BuildParams
/*
* Licensed to Elasticsearch under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
apply plugin: 'elasticsearch.build'
apply plugin: 'nebula.optional-base'
apply plugin: 'elasticsearch.publish'
apply plugin: 'elasticsearch.internal-cluster-test'
publishing {
publications {
nebula {
artifactId 'elasticsearch'
}
}
}
archivesBaseName = 'elasticsearch'
2020-03-31 07:48:46 -04:00
// we want to keep the JDKs in our IDEs set to JDK 8 until minimum JDK is bumped to 11 so we do not include this source set in our IDEs
if (!isEclipse) {
sourceSets {
2020-03-31 07:48:46 -04:00
java11 {
java {
2020-03-31 07:48:46 -04:00
srcDirs = ['src/main/java11']
}
}
}
configurations {
java11Implementation.extendsFrom(api)
}
dependencies {
java11Implementation sourceSets.main.output
}
2020-03-31 07:48:46 -04:00
compileJava11Java {
sourceCompatibility = 11
targetCompatibility = 11
}
tasks.named('forbiddenApisJava11').configure {
doFirst {
2020-03-31 07:48:46 -04:00
if (BuildParams.runtimeJavaVersion < JavaVersion.VERSION_11) {
targetCompatibility = JavaVersion.VERSION_11.getMajorVersion()
}
}
}
jar {
metaInf {
2020-03-31 07:48:46 -04:00
into 'versions/11'
from sourceSets.java11.output
}
manifest.attributes('Multi-Release': 'true')
}
}
dependencies {
api project(':libs:elasticsearch-core')
api project(':libs:elasticsearch-secure-sm')
api project(':libs:elasticsearch-x-content')
api project(":libs:elasticsearch-geo")
compileOnly project(':libs:elasticsearch-plugin-classloader')
testRuntimeOnly project(':libs:elasticsearch-plugin-classloader')
// lucene
api "org.apache.lucene:lucene-core:${versions.lucene}"
api "org.apache.lucene:lucene-analyzers-common:${versions.lucene}"
api "org.apache.lucene:lucene-backward-codecs:${versions.lucene}"
api "org.apache.lucene:lucene-grouping:${versions.lucene}"
api "org.apache.lucene:lucene-highlighter:${versions.lucene}"
api "org.apache.lucene:lucene-join:${versions.lucene}"
api "org.apache.lucene:lucene-memory:${versions.lucene}"
api "org.apache.lucene:lucene-misc:${versions.lucene}"
api "org.apache.lucene:lucene-queries:${versions.lucene}"
api "org.apache.lucene:lucene-queryparser:${versions.lucene}"
api "org.apache.lucene:lucene-sandbox:${versions.lucene}"
api "org.apache.lucene:lucene-spatial-extras:${versions.lucene}"
api "org.apache.lucene:lucene-spatial3d:${versions.lucene}"
api "org.apache.lucene:lucene-suggest:${versions.lucene}"
// utilities
api project(":libs:elasticsearch-cli")
api 'com.carrotsearch:hppc:0.8.1'
// time handling, remove with java 8 time
api "joda-time:joda-time:${versions.joda}"
// percentiles aggregation
api 'com.tdunning:t-digest:3.2'
// precentil ranks aggregation
api 'org.hdrhistogram:HdrHistogram:2.1.9'
// lucene spatial
api "org.locationtech.spatial4j:spatial4j:${versions.spatial4j}", optional
api "org.locationtech.jts:jts-core:${versions.jts}", optional
// logging
api "org.apache.logging.log4j:log4j-api:${versions.log4j}"
api "org.apache.logging.log4j:log4j-core:${versions.log4j}", optional
// repackaged jna with native bits linked against all elastic supported platforms
api "org.elasticsearch:jna:${versions.jna}"
testImplementation(project(":test:framework")) {
// tests use the locally compiled version of server
exclude group: 'org.elasticsearch', module: 'server'
}
internalClusterTestImplementation(project(":test:framework")) {
exclude group: 'org.elasticsearch', module: 'server'
}
}
compileJava.options.compilerArgs << "-Xlint:-cast,-rawtypes,-unchecked"
compileTestJava.options.compilerArgs << "-Xlint:-cast,-rawtypes,-unchecked"
compileInternalClusterTestJava.options.compilerArgs << "-Xlint:-cast,-rawtypes,-unchecked"
// Until this project is always being formatted with spotless, we need to
// guard against `spotless()` not existing.
try {
spotless {
java {
// Contains large data tables that do not format well.
targetExclude 'src/main/java/org/elasticsearch/search/aggregations/metrics/HyperLogLogPlusPlus.java'
}
}
}
catch (Exception e) {
if (e.getMessage().contains("Could not find method spotless") == false) {
throw e;
}
}
forbiddenPatterns {
exclude '**/*.json'
exclude '**/*.jmx'
exclude '**/*.dic'
exclude '**/*.binary'
exclude '**/*.st'
}
testingConventions {
naming.clear()
naming {
Tests {
baseClass "org.apache.lucene.util.LuceneTestCase"
}
IT {
baseClass "org.elasticsearch.test.ESIntegTestCase"
baseClass "org.elasticsearch.test.ESSingleNodeTestCase"
}
}
}
task generateModulesList {
List<String> modules = project(':modules').subprojects.collect { it.name }
modules.add('x-pack')
File modulesFile = new File(buildDir, 'generated-resources/modules.txt')
processResources.from(modulesFile)
inputs.property('modules', modules)
outputs.file(modulesFile)
doLast {
modulesFile.parentFile.mkdirs()
modulesFile.setText(modules.join('\n'), 'UTF-8')
}
}
task generatePluginsList {
Set<String> plugins = new TreeSet<>(project(':plugins').childProjects.keySet())
plugins.remove('example')
File pluginsFile = new File(buildDir, 'generated-resources/plugins.txt')
processResources.from(pluginsFile)
inputs.property('plugins', plugins)
outputs.file(pluginsFile)
doLast {
pluginsFile.parentFile.mkdirs()
pluginsFile.setText(plugins.join('\n'), 'UTF-8')
}
}
processResources {
dependsOn generateModulesList, generatePluginsList
}
thirdPartyAudit.ignoreMissingClasses(
2015-12-28 22:38:55 -05:00
// from com.fasterxml.jackson.dataformat.yaml.YAMLMapper (jackson-dataformat-yaml)
'com.fasterxml.jackson.databind.ObjectMapper',
// from log4j
'com.conversantmedia.util.concurrent.DisruptorBlockingQueue',
'com.conversantmedia.util.concurrent.SpinPolicy',
'com.fasterxml.jackson.annotation.JsonInclude$Include',
'com.fasterxml.jackson.databind.DeserializationContext',
'com.fasterxml.jackson.databind.DeserializationFeature',
'com.fasterxml.jackson.databind.JsonMappingException',
'com.fasterxml.jackson.databind.JsonNode',
'com.fasterxml.jackson.databind.Module$SetupContext',
'com.fasterxml.jackson.databind.ObjectReader',
'com.fasterxml.jackson.databind.ObjectWriter',
'com.fasterxml.jackson.databind.SerializerProvider',
'com.fasterxml.jackson.databind.deser.std.StdDeserializer',
'com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer',
'com.fasterxml.jackson.databind.module.SimpleModule',
'com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter',
'com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider',
'com.fasterxml.jackson.databind.ser.std.StdScalarSerializer',
'com.fasterxml.jackson.databind.ser.std.StdSerializer',
'com.fasterxml.jackson.dataformat.xml.JacksonXmlModule',
'com.fasterxml.jackson.dataformat.xml.XmlMapper',
'com.fasterxml.jackson.dataformat.xml.util.DefaultXmlPrettyPrinter',
'com.fasterxml.jackson.databind.node.ObjectNode',
'org.fusesource.jansi.Ansi',
'org.fusesource.jansi.AnsiRenderer$Code',
'com.lmax.disruptor.BlockingWaitStrategy',
'com.lmax.disruptor.BusySpinWaitStrategy',
'com.lmax.disruptor.EventFactory',
'com.lmax.disruptor.EventTranslator',
'com.lmax.disruptor.EventTranslatorTwoArg',
'com.lmax.disruptor.EventTranslatorVararg',
'com.lmax.disruptor.ExceptionHandler',
'com.lmax.disruptor.LifecycleAware',
'com.lmax.disruptor.RingBuffer',
'com.lmax.disruptor.Sequence',
'com.lmax.disruptor.SequenceReportingEventHandler',
'com.lmax.disruptor.SleepingWaitStrategy',
'com.lmax.disruptor.TimeoutBlockingWaitStrategy',
'com.lmax.disruptor.WaitStrategy',
'com.lmax.disruptor.YieldingWaitStrategy',
'com.lmax.disruptor.dsl.Disruptor',
'com.lmax.disruptor.dsl.ProducerType',
'javax.jms.Connection',
'javax.jms.ConnectionFactory',
'javax.jms.Destination',
'javax.jms.JMSException',
'javax.jms.MapMessage',
'javax.jms.Message',
'javax.jms.MessageConsumer',
'javax.jms.MessageProducer',
'javax.jms.Session',
'javax.mail.Authenticator',
'javax.mail.Message$RecipientType',
'javax.mail.PasswordAuthentication',
'javax.mail.Session',
'javax.mail.Transport',
'javax.mail.internet.InternetAddress',
'javax.mail.internet.InternetHeaders',
'javax.mail.internet.MimeBodyPart',
'javax.mail.internet.MimeMessage',
'javax.mail.internet.MimeMultipart',
'javax.mail.internet.MimeUtility',
'javax.mail.util.ByteArrayDataSource',
'org.apache.commons.compress.compressors.CompressorStreamFactory',
'org.apache.commons.compress.utils.IOUtils',
'org.apache.commons.csv.CSVFormat',
'org.apache.commons.csv.QuoteMode',
'org.apache.kafka.clients.producer.Callback',
'org.apache.kafka.clients.producer.KafkaProducer',
'org.apache.kafka.clients.producer.Producer',
'org.apache.kafka.clients.producer.ProducerRecord',
'org.apache.kafka.clients.producer.RecordMetadata',
'org.codehaus.stax2.XMLStreamWriter2',
'org.jctools.queues.MessagePassingQueue$Consumer',
'org.jctools.queues.MpscArrayQueue',
'org.osgi.framework.AdaptPermission',
'org.osgi.framework.AdminPermission',
'org.osgi.framework.Bundle',
'org.osgi.framework.BundleActivator',
'org.osgi.framework.BundleContext',
'org.osgi.framework.BundleEvent',
'org.osgi.framework.BundleReference',
'org.osgi.framework.FrameworkUtil',
'org.osgi.framework.ServiceRegistration',
'org.osgi.framework.SynchronousBundleListener',
'org.osgi.framework.wiring.BundleWire',
'org.osgi.framework.wiring.BundleWiring',
'org.zeromq.ZMQ$Context',
'org.zeromq.ZMQ$Socket',
'org.zeromq.ZMQ',
upgrade to lucene 6.0.0-snapshot-bea235f Closes #16964 Squashed commit of the following: commit a23f9d2d29220991aa498214530753d7a5a148c6 Merge: eec9c4e 0b0a251 Author: Robert Muir <rmuir@apache.org> Date: Mon Mar 7 04:12:02 2016 -0500 Merge branch 'master' into lucene6 commit eec9c4e5cd11e9c3e0b426f04894bb2a6dae4f21 Merge: bc67205 675d940 Author: Robert Muir <rmuir@apache.org> Date: Fri Mar 4 13:45:00 2016 -0500 Merge branch 'master' into lucene6 commit bc67205bdfe1526eae277ab7856fc050ecbdb7b2 Author: Robert Muir <rmuir@apache.org> Date: Fri Mar 4 09:56:31 2016 -0500 fix test bug commit a60723b007ff12d97b1810cef473bd7b553a0327 Author: Simon Willnauer <simonw@apache.org> Date: Fri Mar 4 15:35:35 2016 +0100 Fix SimpleValidateQueryIT to put braces around boosted terms commit ae3a49d7ba7ced448d2a5262e5d8ec98671a9090 Author: Simon Willnauer <simonw@apache.org> Date: Fri Mar 4 15:27:25 2016 +0100 fix multimatchquery commit ae23fdb88a8f6d3fb7ba60fd1aaf3fd72d899aa5 Author: Simon Willnauer <simonw@apache.org> Date: Fri Mar 4 15:20:49 2016 +0100 Rewrite DecayFunctionScoreIT to be independent of the similarity used This test relied a lot on the term scoring and compared scores that are dependent on the similarity. This commit changes the base query to be a predictable constant score query. commit 366c2d518c35d31251033f1b6f6a93f6e2ae327d Author: Simon Willnauer <simonw@apache.org> Date: Fri Mar 4 14:06:14 2016 +0100 Fix scoring in tests due to changes to idf calculation. Lucene 6 uses a different default similarity as well as a different way to calculate IDF. In contrast to older version lucene 6 uses docCount per field to calculate the IDF not the # of docs in the index to overcome the sparse field cases. commit dac99fd64ac2fa71b8d8d106fe68825e574c49f8 Author: Robert Muir <rmuir@apache.org> Date: Fri Mar 4 08:21:57 2016 -0500 don't hardcoded expected termquery score commit 6e9f340ba49ab10eed512df86d52a121aa775b0f Author: Robert Muir <rmuir@apache.org> Date: Fri Mar 4 08:04:45 2016 -0500 suppress deprecation warning until migrated to points commit 3ac8908424b3fdad44a90a4f7bdb3eff7efd077d Author: Robert Muir <rmuir@apache.org> Date: Fri Mar 4 07:21:43 2016 -0500 Remove invalid test: all commits have IDs, and its illegal to do this. commit c12976288124ad1a26467e7e848fb810548e7eab Author: Robert Muir <rmuir@apache.org> Date: Fri Mar 4 07:06:14 2016 -0500 don't test with unsupported back compat commit 18bbfe76128570bc70883bf91ff4c44c82d27817 Author: Robert Muir <rmuir@apache.org> Date: Fri Mar 4 07:02:18 2016 -0500 remove now invalid lucene 4 backcompat test commit 7e730e572886f0ef2d3faba712e4256216ff01ec Author: Robert Muir <rmuir@apache.org> Date: Fri Mar 4 06:58:52 2016 -0500 remove now invalid lucene 4 backwards test commit 244d2ab6868ba5ac9e0bcde3c2833743751a25ec Author: Robert Muir <rmuir@apache.org> Date: Fri Mar 4 06:47:23 2016 -0500 use 6.0 codec commit 5f64d4a431a6fdaa1234adca23f154c2a1de8284 Author: Robert Muir <rmuir@apache.org> Date: Fri Mar 4 06:43:08 2016 -0500 compile, javadocs, forbidden-apis, etc commit 1f273cd62a7fe9ca8f8944acbbfc5cbdd3d81ccb Merge: cd33921 29e3443 Author: Simon Willnauer <simonw@apache.org> Date: Fri Mar 4 10:45:29 2016 +0100 Merge branch 'master' into lucene6 commit cd33921ac742ef9fb351012eff35f3c7dbda7264 Author: Robert Muir <rmuir@apache.org> Date: Thu Mar 3 23:58:37 2016 -0500 fix hunspell dictionary loading commit c7fdbd837b01f7defe9cb1c24e2ec65604b0dc96 Merge: 4d4190f d8948ba Author: Robert Muir <rmuir@apache.org> Date: Thu Mar 3 23:41:53 2016 -0500 Merge branch 'master' into lucene6 commit 4d4190fd82601aaafac6b8254ccb3edf218faa34 Author: Robert Muir <rmuir@apache.org> Date: Thu Mar 3 23:39:14 2016 -0500 remove nocommit commit 77ca69e288b1a41aa9595c921ed166c272a00ea8 Author: Robert Muir <rmuir@apache.org> Date: Thu Mar 3 23:38:24 2016 -0500 clean up numericutils vs legacynumericutils commit a466d696fbaad04b647ffbc0857a9439b583d0bf Author: Robert Muir <rmuir@apache.org> Date: Thu Mar 3 23:32:43 2016 -0500 upgrade spatial4j commit 5412c747a8cfe638bacedbc8233163cb75cc3dc5 Author: Robert Muir <rmuir@apache.org> Date: Thu Mar 3 23:19:28 2016 -0500 move to 6.0.0-snapshot-8eada27 commit b32bfe924626b87e540692375ece09e7c2edb189 Author: Adrien Grand <jpountz@gmail.com> Date: Thu Mar 3 11:30:09 2016 +0100 Fix some test compile errors. commit 6ccde35e9840b03c68d1a2cd47c7923a06edf64a Author: Adrien Grand <jpountz@gmail.com> Date: Thu Mar 3 11:25:51 2016 +0100 Current Lucene version is 6.0.0. commit f62e1015d931b4cc04c778298a8fa1ba65e97ad9 Author: Adrien Grand <jpountz@gmail.com> Date: Thu Mar 3 11:20:48 2016 +0100 Fix compile errors in NGramTokenFilterFactory. commit 6837c6eabf96075f743649da9b9b52dd39611c58 Author: Adrien Grand <jpountz@gmail.com> Date: Thu Mar 3 10:50:59 2016 +0100 Fix the edge ngram tokenizer/filter. commit ccd7f070de5efcdfbeb34b9555c65c4990bf1ba6 Author: Adrien Grand <jpountz@gmail.com> Date: Thu Mar 3 10:42:44 2016 +0100 The missing value is now accessible through a getter. commit bd3b77f9b28e5b05daa3d49683a9922a6baf2963 Author: Adrien Grand <jpountz@gmail.com> Date: Thu Mar 3 10:41:51 2016 +0100 Remove IndexCacheableQuery. commit 05f3091c347aeae80eeb16349ac51d2b53cf86f7 Author: Adrien Grand <jpountz@gmail.com> Date: Thu Mar 3 10:39:43 2016 +0100 Fix compilation of function_score queries. commit 81cda79a2431ac78f56b0cc5a5765387f662d801 Author: Adrien Grand <jpountz@gmail.com> Date: Thu Mar 3 10:35:02 2016 +0100 Fix compile errors in BlendedTermQuery. commit 70994ce8dd1eca0b995870974a38e20f26f96a7b Author: Robert Muir <rmuir@apache.org> Date: Wed Mar 2 23:33:03 2016 -0500 add bug ID commit 29d4f1a71f36f646b5a6060bed3db019564a279d Author: Robert Muir <rmuir@apache.org> Date: Wed Mar 2 21:02:32 2016 -0500 easy .store changes commit 5e1a1e6fd665fa455e88d3a8987362fad5f44bb1 Author: Robert Muir <rmuir@apache.org> Date: Wed Mar 2 20:47:24 2016 -0500 cleanups mostly around boosting commit 333a669ec6c305ada5645d13ed1da0e19ec1d053 Author: Robert Muir <rmuir@apache.org> Date: Wed Mar 2 20:27:56 2016 -0500 more simple fixes commit bd5cd98a1e089c866b6b4a5e159400b110140ce6 Author: Robert Muir <rmuir@apache.org> Date: Wed Mar 2 19:49:38 2016 -0500 more easy fixes and removal of ancient cruft commit a68f419ee47da5f9c9ce5b372f01d707e902474c Author: Robert Muir <rmuir@apache.org> Date: Wed Mar 2 19:35:02 2016 -0500 cutover numerics commit 4ca5dc1fa47dd5892db00899032133318fff3116 Author: Robert Muir <rmuir@apache.org> Date: Wed Mar 2 18:34:18 2016 -0500 fix some constants commit 88710a17817086e477c6c021ec346d0534b7fb88 Author: Robert Muir <rmuir@apache.org> Date: Wed Mar 2 18:14:25 2016 -0500 Add spatial-extras jar as a core dependency commit c8cd6726583e5ce3f546ed355d4eca037164a30d Author: Robert Muir <rmuir@apache.org> Date: Wed Mar 2 18:03:33 2016 -0500 update to lucene 6 jars
2016-03-07 04:12:23 -05:00
// from org.locationtech.spatial4j.io.GeoJSONReader (spatial4j)
'org.noggit.JSONParser',
// from lucene-spatial
'com.fasterxml.jackson.databind.JsonSerializer',
'com.fasterxml.jackson.databind.JsonDeserializer',
'com.fasterxml.jackson.databind.node.ArrayNode',
'com.google.common.geometry.S2Cell',
'com.google.common.geometry.S2CellId',
'com.google.common.geometry.S2Projections',
'com.google.common.geometry.S2Point',
'com.google.common.geometry.S2$Metric',
'com.google.common.geometry.S2LatLng'
)
if (BuildParams.runtimeJavaVersion > JavaVersion.VERSION_1_8) {
thirdPartyAudit.ignoreMissingClasses 'javax.xml.bind.DatatypeConverter'
}
tasks.named("dependencyLicenses").configure {
mapping from: /lucene-.*/, to: 'lucene'
dependencies = project.configurations.runtimeClasspath.fileCollection {
it.group.startsWith('org.elasticsearch') == false ||
// keep the following org.elasticsearch jars in
(it.name == 'jna' ||
it.name == 'securesm')
}
}
licenseHeaders {
// Ignore our vendored version of Google Guice
excludes << 'org/elasticsearch/common/inject/**/*'
}
licenseHeaders {
excludes << 'org/elasticsearch/client/documentation/placeholder.txt'
}