diff --git a/build.gradle b/build.gradle index 5dced280f3d..082c9d4d553 100644 --- a/build.gradle +++ b/build.gradle @@ -114,7 +114,7 @@ subprojects { configurations { all { resolutionStrategy { - //failOnVersionConflict() + failOnVersionConflict() dependencySubstitution { substitute module("org.elasticsearch:rest-api-spec:${version}") with project("${projectsPrefix}:rest-api-spec") diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy index df6c31e833f..95871b63ca9 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy @@ -19,6 +19,7 @@ package org.elasticsearch.gradle import org.elasticsearch.gradle.precommit.PrecommitTasks +import org.gradle.api.artifacts.ProjectDependency import org.gradle.api.GradleException import org.gradle.api.JavaVersion import org.gradle.api.Plugin @@ -28,7 +29,6 @@ import org.gradle.api.artifacts.dsl.RepositoryHandler import org.gradle.api.tasks.bundling.Jar import org.gradle.api.tasks.compile.JavaCompile import org.gradle.util.GradleVersion -import org.gradle.util.VersionNumber /** * Encapsulates build configuration for elasticsearch projects. @@ -48,6 +48,7 @@ class BuildPlugin implements Plugin { project.pluginManager.apply('nebula.info-scm') project.pluginManager.apply('nebula.info-jar') + configureConfigurations(project) project.ext.versions = VersionProperties.versions configureCompile(project) configureJarManifest(project) @@ -80,6 +81,23 @@ class BuildPlugin implements Plugin { } } + /** Makes dependencies non-transitive by default */ + static void configureConfigurations(Project project) { + + // force all dependencies added directly to compile/testCompile to be non-transitive, except for ES itself + project.configurations.compile.dependencies.all { dep -> + if (!(dep instanceof ProjectDependency) && dep.getGroup() != 'org.elasticsearch') { + dep.transitive = false + } + } + project.configurations.testCompile.dependencies.all { dep -> + if (!(dep instanceof ProjectDependency) && dep.getGroup() != 'org.elasticsearch') { + dep.transitive = false + } + } + } + + /** Adds repositores used by ES dependencies */ static void configureRepositories(Project project) { RepositoryHandler repos = project.repositories repos.mavenCentral() diff --git a/buildSrc/version.properties b/buildSrc/version.properties index 1d67526ff4f..864ad05c400 100644 --- a/buildSrc/version.properties +++ b/buildSrc/version.properties @@ -15,3 +15,6 @@ jna = 4.1.0 randomizedrunner = 2.2.0 junit = 4.11 httpclient = 4.3.6 +httpcore = 4.3.3 +commonslogging = 1.1.3 +commonscodec = 1.10 diff --git a/core/build.gradle b/core/build.gradle index bd3dd7b67eb..b6c5c032e43 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -31,15 +31,19 @@ dependencies { // lucene compile "org.apache.lucene:lucene-core:${versions.lucene}" - compile "org.apache.lucene:lucene-backward-codecs:${versions.lucene}" compile "org.apache.lucene:lucene-analyzers-common:${versions.lucene}" - compile "org.apache.lucene:lucene-queries:${versions.lucene}" - compile "org.apache.lucene:lucene-memory:${versions.lucene}" + compile "org.apache.lucene:lucene-backward-codecs:${versions.lucene}" + compile "org.apache.lucene:lucene-grouping:${versions.lucene}" compile "org.apache.lucene:lucene-highlighter:${versions.lucene}" - compile "org.apache.lucene:lucene-queryparser:${versions.lucene}" - compile "org.apache.lucene:lucene-suggest:${versions.lucene}" compile "org.apache.lucene:lucene-join:${versions.lucene}" + compile "org.apache.lucene:lucene-memory:${versions.lucene}" + compile "org.apache.lucene:lucene-misc:${versions.lucene}" + compile "org.apache.lucene:lucene-queries:${versions.lucene}" + compile "org.apache.lucene:lucene-queryparser:${versions.lucene}" + compile "org.apache.lucene:lucene-sandbox:${versions.lucene}" compile "org.apache.lucene:lucene-spatial:${versions.lucene}" + compile "org.apache.lucene:lucene-spatial3d:${versions.lucene}" + compile "org.apache.lucene:lucene-suggest:${versions.lucene}" compile 'org.elasticsearch:securesm:1.0' @@ -56,10 +60,10 @@ dependencies { // json and yaml compile "com.fasterxml.jackson.core:jackson-core:${versions.jackson}" compile "com.fasterxml.jackson.dataformat:jackson-dataformat-smile:${versions.jackson}" - compile(group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: versions.jackson) { - exclude group: 'com.fasterxml.jackson.core', module: 'jackson-databind' - } + compile "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:${versions.jackson}" compile "com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:${versions.jackson}" + compile "org.yaml:snakeyaml:1.15" // used by jackson yaml + // network stack compile 'io.netty:netty:3.10.5.Final' // compression of transport protocol diff --git a/plugins/analysis-icu/build.gradle b/plugins/analysis-icu/build.gradle index 8cf0cea118d..a662f727eeb 100644 --- a/plugins/analysis-icu/build.gradle +++ b/plugins/analysis-icu/build.gradle @@ -24,6 +24,7 @@ esplugin { dependencies { compile "org.apache.lucene:lucene-analyzers-icu:${versions.lucene}" + compile 'com.ibm.icu:icu4j:54.1' } dependencyLicenses { diff --git a/plugins/analysis-phonetic/build.gradle b/plugins/analysis-phonetic/build.gradle index c3a0f12007a..13898be05a9 100644 --- a/plugins/analysis-phonetic/build.gradle +++ b/plugins/analysis-phonetic/build.gradle @@ -24,6 +24,7 @@ esplugin { dependencies { compile "org.apache.lucene:lucene-analyzers-phonetic:${versions.lucene}" + compile "commons-codec:commons-codec:${versions.commonscodec}" } dependencyLicenses { diff --git a/plugins/discovery-azure/build.gradle b/plugins/discovery-azure/build.gradle index d16fbf756ed..d72c203d089 100644 --- a/plugins/discovery-azure/build.gradle +++ b/plugins/discovery-azure/build.gradle @@ -22,14 +22,33 @@ esplugin { classname 'org.elasticsearch.plugin.discovery.azure.AzureDiscoveryPlugin' } +versions << [ + 'azure': '0.7.0', + 'jersey': '1.13' +] + dependencies { - compile('com.microsoft.azure:azure-management-compute:0.7.0') { - exclude group: 'stax', module: 'stax-api' - } - compile('com.microsoft.azure:azure-management:0.7.0') { - exclude group: 'stax', module: 'stax-api' - } + compile "com.microsoft.azure:azure-management-compute:${versions.azure}" + compile "com.microsoft.azure:azure-management:${versions.azure}" + compile "com.microsoft.azure:azure-core:${versions.azure}" compile "org.apache.httpcomponents:httpclient:${versions.httpclient}" + compile "org.apache.httpcomponents:httpcore:${versions.httpcore}" + compile "commons-logging:commons-logging:${versions.commonslogging}" + compile "commons-codec:commons-codec:${versions.commonscodec}" + compile 'javax.mail:mail:1.4.5' + compile 'javax.activation:activation:1.1' + compile 'javax.inject:javax.inject:1' + compile "com.sun.jersey:jersey-client:${versions.jersey}" + compile "com.sun.jersey:jersey-core:${versions.jersey}" + compile "com.sun.jersey:jersey-json:${versions.jersey}" + compile 'org.codehaus.jettison:jettison:1.1' + compile 'com.sun.xml.bind:jaxb-impl:2.2.3-1' + compile 'javax.xml.bind:jaxb-api:2.2.2' + compile 'javax.xml.stream:stax-api:1.0-2' + compile 'org.codehaus.jackson:jackson-core-asl:1.9.2' + compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.2' + compile 'org.codehaus.jackson:jackson-jaxrs:1.9.2' + compile 'org.codehaus.jackson:jackson-xc:1.9.2' } dependencyLicenses { diff --git a/plugins/discovery-azure/licenses/commons-codec-1.10.jar.sha1 b/plugins/discovery-azure/licenses/commons-codec-1.10.jar.sha1 new file mode 100644 index 00000000000..3fe8682a1b0 --- /dev/null +++ b/plugins/discovery-azure/licenses/commons-codec-1.10.jar.sha1 @@ -0,0 +1 @@ +4b95f4897fa13f2cd904aee711aeafc0c5295cd8 \ No newline at end of file diff --git a/plugins/discovery-azure/licenses/commons-codec-1.6.jar.sha1 b/plugins/discovery-azure/licenses/commons-codec-1.6.jar.sha1 deleted file mode 100644 index bf78aff7364..00000000000 --- a/plugins/discovery-azure/licenses/commons-codec-1.6.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -b7f0fc8f61ecadeb3695f0b9464755eee44374d4 diff --git a/plugins/discovery-ec2/build.gradle b/plugins/discovery-ec2/build.gradle index 2b0365aff59..3601e248d78 100644 --- a/plugins/discovery-ec2/build.gradle +++ b/plugins/discovery-ec2/build.gradle @@ -22,9 +22,19 @@ esplugin { classname 'org.elasticsearch.plugin.discovery.ec2.Ec2DiscoveryPlugin' } +versions << [ + 'aws': '1.10.19' +] + dependencies { - compile 'com.amazonaws:aws-java-sdk-ec2:1.10.19' + compile "com.amazonaws:aws-java-sdk-ec2:${versions.aws}" + compile "com.amazonaws:aws-java-sdk-core:${versions.aws}" compile "org.apache.httpcomponents:httpclient:${versions.httpclient}" + compile "org.apache.httpcomponents:httpcore:${versions.httpcore}" + compile "commons-logging:commons-logging:${versions.commonslogging}" + compile "commons-codec:commons-codec:${versions.commonscodec}" + compile 'com.fasterxml.jackson.core:jackson-databind:2.5.3' + compile 'com.fasterxml.jackson.core:jackson-annotations:2.5.0' } dependencyLicenses { diff --git a/plugins/discovery-ec2/licenses/commons-codec-1.10.jar.sha1 b/plugins/discovery-ec2/licenses/commons-codec-1.10.jar.sha1 new file mode 100644 index 00000000000..3fe8682a1b0 --- /dev/null +++ b/plugins/discovery-ec2/licenses/commons-codec-1.10.jar.sha1 @@ -0,0 +1 @@ +4b95f4897fa13f2cd904aee711aeafc0c5295cd8 \ No newline at end of file diff --git a/plugins/discovery-ec2/licenses/commons-codec-1.6.jar.sha1 b/plugins/discovery-ec2/licenses/commons-codec-1.6.jar.sha1 deleted file mode 100644 index bf78aff7364..00000000000 --- a/plugins/discovery-ec2/licenses/commons-codec-1.6.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -b7f0fc8f61ecadeb3695f0b9464755eee44374d4 diff --git a/plugins/discovery-gce/build.gradle b/plugins/discovery-gce/build.gradle index da9cdb94aae..4e6ade8788f 100644 --- a/plugins/discovery-gce/build.gradle +++ b/plugins/discovery-gce/build.gradle @@ -4,11 +4,21 @@ esplugin { classname 'org.elasticsearch.plugin.discovery.gce.GceDiscoveryPlugin' } +versions << [ + 'google': '1.20.0' +] + dependencies { - compile('com.google.apis:google-api-services-compute:v1-rev71-1.20.0') { - exclude group: 'com.google.guava', module: 'guava-jdk5' - } + compile "com.google.apis:google-api-services-compute:v1-rev71-${versions.google}" + compile "com.google.api-client:google-api-client:${versions.google}" + compile "com.google.oauth-client:google-oauth-client:${versions.google}" + compile "com.google.http-client:google-http-client:${versions.google}" + compile "com.google.http-client:google-http-client-jackson2:${versions.google}" + compile 'com.google.code.findbugs:jsr305:1.3.9' compile "org.apache.httpcomponents:httpclient:${versions.httpclient}" + compile "org.apache.httpcomponents:httpcore:${versions.httpcore}" + compile "commons-logging:commons-logging:${versions.commonslogging}" + compile "commons-codec:commons-codec:${versions.commonscodec}" } dependencyLicenses { diff --git a/plugins/discovery-gce/licenses/commons-codec-1.10.jar.sha1 b/plugins/discovery-gce/licenses/commons-codec-1.10.jar.sha1 new file mode 100644 index 00000000000..3fe8682a1b0 --- /dev/null +++ b/plugins/discovery-gce/licenses/commons-codec-1.10.jar.sha1 @@ -0,0 +1 @@ +4b95f4897fa13f2cd904aee711aeafc0c5295cd8 \ No newline at end of file diff --git a/plugins/discovery-gce/licenses/commons-codec-1.6.jar.sha1 b/plugins/discovery-gce/licenses/commons-codec-1.6.jar.sha1 deleted file mode 100644 index bf78aff7364..00000000000 --- a/plugins/discovery-gce/licenses/commons-codec-1.6.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -b7f0fc8f61ecadeb3695f0b9464755eee44374d4 diff --git a/plugins/lang-expression/build.gradle b/plugins/lang-expression/build.gradle index 12a99bb705f..9f62e34687d 100644 --- a/plugins/lang-expression/build.gradle +++ b/plugins/lang-expression/build.gradle @@ -24,6 +24,9 @@ esplugin { dependencies { compile "org.apache.lucene:lucene-expressions:${versions.lucene}" + compile 'org.antlr:antlr4-runtime:4.5.1-1' + compile 'org.ow2.asm:asm:5.0.4' + compile 'org.ow2.asm:asm-commons:5.0.4' } dependencyLicenses { diff --git a/plugins/mapper-attachments/build.gradle b/plugins/mapper-attachments/build.gradle index 1a7c1ea06c4..e14cf543043 100644 --- a/plugins/mapper-attachments/build.gradle +++ b/plugins/mapper-attachments/build.gradle @@ -18,34 +18,48 @@ */ esplugin { - name 'mapper-attachments' description 'The mapper attachments plugin adds the attachment type to Elasticsearch using Apache Tika.' classname 'org.elasticsearch.mapper.attachments.MapperAttachmentsPlugin' } +versions << [ + 'tika': '1.11', + 'pdfbox': '1.8.10', + 'bouncycastle': '1.52', + 'poi': '3.13' +] + dependencies { // mandatory for tika - compile('org.apache.tika:tika-core:1.11') - compile('org.apache.tika:tika-parsers:1.11') { - transitive = false - } - compile('commons-io:commons-io:2.4') + compile "org.apache.tika:tika-core:${versions.tika}" + compile "org.apache.tika:tika-parsers:${versions.tika}" + compile 'commons-io:commons-io:2.4' // character set detection - compile('com.googlecode.juniversalchardet:juniversalchardet:1.0.3') + compile 'com.googlecode.juniversalchardet:juniversalchardet:1.0.3' // external parser libraries // HTML - compile('org.ccil.cowan.tagsoup:tagsoup:1.2.1') + compile 'org.ccil.cowan.tagsoup:tagsoup:1.2.1' // Adobe PDF - compile('org.apache.pdfbox:pdfbox:1.8.10') - compile('org.bouncycastle:bcmail-jdk15on:1.52') + compile "org.apache.pdfbox:pdfbox:${versions.pdfbox}" + compile "org.apache.pdfbox:fontbox:${versions.pdfbox}" + compile "org.apache.pdfbox:jempbox:${versions.pdfbox}" + compile "commons-logging:commons-logging:${versions.commonslogging}" + compile "org.bouncycastle:bcmail-jdk15on:${versions.bouncycastle}" + compile "org.bouncycastle:bcprov-jdk15on:${versions.bouncycastle}" + compile "org.bouncycastle:bcpkix-jdk15on:${versions.bouncycastle}" // OpenOffice - compile('org.apache.poi:poi-ooxml:3.13') + compile "org.apache.poi:poi-ooxml:${versions.poi}" + compile "org.apache.poi:poi:${versions.poi}" + compile "org.apache.poi:poi-ooxml-schemas:${versions.poi}" + compile "commons-codec:commons-codec:${versions.commonscodec}" + compile 'org.apache.xmlbeans:xmlbeans:2.6.0' + compile 'stax:stax-api:1.0.1' // MS Office - compile('org.apache.poi:poi-scratchpad:3.13') + compile "org.apache.poi:poi-scratchpad:${versions.poi}" // Apple iWork - compile('org.apache.commons:commons-compress:1.10') + compile 'org.apache.commons:commons-compress:1.10' } compileJava.options.compilerArgs << '-Xlint:-cast,-deprecation,-rawtypes' diff --git a/plugins/mapper-attachments/licenses/commons-codec-1.10.jar.sha1 b/plugins/mapper-attachments/licenses/commons-codec-1.10.jar.sha1 new file mode 100644 index 00000000000..3fe8682a1b0 --- /dev/null +++ b/plugins/mapper-attachments/licenses/commons-codec-1.10.jar.sha1 @@ -0,0 +1 @@ +4b95f4897fa13f2cd904aee711aeafc0c5295cd8 \ No newline at end of file diff --git a/plugins/mapper-attachments/licenses/commons-codec-1.9.jar.sha1 b/plugins/mapper-attachments/licenses/commons-codec-1.9.jar.sha1 deleted file mode 100644 index 5a14ad7393f..00000000000 --- a/plugins/mapper-attachments/licenses/commons-codec-1.9.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -9ce04e34240f674bc72680f8b843b1457383161a diff --git a/plugins/mapper-attachments/licenses/commons-logging-1.1.1.jar.sha1 b/plugins/mapper-attachments/licenses/commons-logging-1.1.1.jar.sha1 deleted file mode 100644 index 66a2bd0ee48..00000000000 --- a/plugins/mapper-attachments/licenses/commons-logging-1.1.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -5043bfebc3db072ed80fbd362e7caf00e885d8ae \ No newline at end of file diff --git a/plugins/mapper-attachments/licenses/commons-logging-1.1.3.jar.sha1 b/plugins/mapper-attachments/licenses/commons-logging-1.1.3.jar.sha1 new file mode 100644 index 00000000000..5b8f029e582 --- /dev/null +++ b/plugins/mapper-attachments/licenses/commons-logging-1.1.3.jar.sha1 @@ -0,0 +1 @@ +f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f \ No newline at end of file diff --git a/plugins/repository-azure/build.gradle b/plugins/repository-azure/build.gradle index 932726d1871..a12740ce8c6 100644 --- a/plugins/repository-azure/build.gradle +++ b/plugins/repository-azure/build.gradle @@ -23,9 +23,8 @@ esplugin { } dependencies { - compile('com.microsoft.azure:azure-storage:2.0.0') { - exclude group: 'org.slf4j', module: 'slf4j-api' - } + compile 'com.microsoft.azure:azure-storage:2.0.0' + compile 'org.apache.commons:commons-lang3:3.3.2' } dependencyLicenses { diff --git a/plugins/repository-s3/build.gradle b/plugins/repository-s3/build.gradle index 9fb09afa2a9..f30d5833cdc 100644 --- a/plugins/repository-s3/build.gradle +++ b/plugins/repository-s3/build.gradle @@ -22,9 +22,20 @@ esplugin { classname 'org.elasticsearch.plugin.repository.s3.S3RepositoryPlugin' } +versions << [ + 'aws': '1.10.19' +] + dependencies { - compile 'com.amazonaws:aws-java-sdk-s3:1.10.19' + compile "com.amazonaws:aws-java-sdk-s3:${versions.aws}" + compile "com.amazonaws:aws-java-sdk-kms:${versions.aws}" + compile "com.amazonaws:aws-java-sdk-core:${versions.aws}" compile "org.apache.httpcomponents:httpclient:${versions.httpclient}" + compile "org.apache.httpcomponents:httpcore:${versions.httpcore}" + compile "commons-logging:commons-logging:${versions.commonslogging}" + compile "commons-codec:commons-codec:${versions.commonscodec}" + compile "com.fasterxml.jackson.core:jackson-databind:2.5.3" + compile "com.fasterxml.jackson.core:jackson-annotations:2.5.0" } dependencyLicenses { diff --git a/plugins/repository-s3/licenses/commons-codec-1.10.jar.sha1 b/plugins/repository-s3/licenses/commons-codec-1.10.jar.sha1 new file mode 100644 index 00000000000..3fe8682a1b0 --- /dev/null +++ b/plugins/repository-s3/licenses/commons-codec-1.10.jar.sha1 @@ -0,0 +1 @@ +4b95f4897fa13f2cd904aee711aeafc0c5295cd8 \ No newline at end of file diff --git a/plugins/repository-s3/licenses/commons-codec-1.6.jar.sha1 b/plugins/repository-s3/licenses/commons-codec-1.6.jar.sha1 deleted file mode 100644 index bf78aff7364..00000000000 --- a/plugins/repository-s3/licenses/commons-codec-1.6.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -b7f0fc8f61ecadeb3695f0b9464755eee44374d4 diff --git a/test-framework/build.gradle b/test-framework/build.gradle index d69d732a847..8252df9e3dc 100644 --- a/test-framework/build.gradle +++ b/test-framework/build.gradle @@ -24,19 +24,14 @@ apply plugin: 'com.bmuschko.nexus' dependencies { compile "org.elasticsearch:elasticsearch:${version}" compile "com.carrotsearch.randomizedtesting:randomizedtesting-runner:${versions.randomizedrunner}" - compile("junit:junit:${versions.junit}") { - exclude group: 'org.hamcrest', module: 'hamcrest-core' - } - compile("org.apache.lucene:lucene-test-framework:${versions.lucene}") { - exclude group: 'com.carrotsearch.randomizedtesting', module: 'junit4-ant' - } - compile('org.hamcrest:hamcrest-all:1.3') { - exclude group: 'org.hamcrest', module: 'hamcrest-core' - } - compile("org.apache.httpcomponents:httpclient:${versions.httpclient}") { - exclude group: 'commons-codec', module: 'commons-codec' - } - compile "commons-codec:commons-codec:1.9" + compile "junit:junit:${versions.junit}" + compile 'org.hamcrest:hamcrest-all:1.3' + compile "org.apache.lucene:lucene-test-framework:${versions.lucene}" + compile "org.apache.lucene:lucene-codecs:${versions.lucene}" + compile "org.apache.httpcomponents:httpclient:${versions.httpclient}" + compile "org.apache.httpcomponents:httpcore:${versions.httpcore}" + compile "commons-logging:commons-logging:${versions.commonslogging}" + compile "commons-codec:commons-codec:${versions.commonscodec}" } compileJava.options.compilerArgs << '-Xlint:-cast,-deprecation,-fallthrough,-overrides,-rawtypes,-serial,-try,-unchecked'