123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297 |
- /*
- * 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'
- 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}"
- api "co.elastic.logging:log4j2-ecs-layout:${versions.ecsLogging}"
- api "co.elastic.logging:ecs-logging-core:${versions.ecsLogging}"
- 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'
- }
- }
- tasks.withType(JavaCompile).configureEach {
- 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;
- }
- }
- tasks.named("forbiddenPatterns").configure {
- exclude '**/*.json'
- exclude '**/*.jmx'
- exclude '**/*.dic'
- exclude '**/*.binary'
- exclude '**/*.st'
- }
- tasks.named("testingConventions").configure {
- naming.clear()
- naming {
- Tests {
- baseClass "org.apache.lucene.util.LuceneTestCase"
- }
- IT {
- baseClass "org.elasticsearch.test.ESIntegTestCase"
- baseClass "org.elasticsearch.test.ESSingleNodeTestCase"
- }
- }
- }
- def generateModulesList = tasks.register("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')
- }
- }
- def generatePluginsList = tasks.register("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')
- }
- }
- tasks.named("processResources").configure {
- dependsOn generateModulesList, generatePluginsList
- }
- tasks.named("thirdPartyAudit").configure {
- ignoreMissingClasses(
- // 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.databind.SerializationFeature',
- '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',
- // 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'
- )
- 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')
- }
- }
- tasks.named("licenseHeaders").configure {
- // Ignore our vendored version of Google Guice
- excludes << 'org/elasticsearch/common/inject/**/*'
- }
|