/*
 * 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.
 */

import org.elasticsearch.gradle.ElasticsearchProperties
import org.elasticsearch.gradle.precommit.DependencyLicensesTask

buildscript {
  repositories {
    mavenCentral()
    maven {
      name 'sonatype-snapshots'
      url 'https://oss.sonatype.org/content/repositories/snapshots/'
    }
    jcenter()
  }
  dependencies {
    classpath 'org.elasticsearch.gradle:build-tools:3.0.0-SNAPSHOT'
  }
}
apply plugin: 'idea'
apply plugin: 'eclipse'
apply plugin: 'elasticsearch.esplugin'

esplugin {
  name 'mapper-attachments'
  description 'The mapper attachments plugin adds the attachment type to Elasticsearch using Apache Tika.'
  classname 'org.elasticsearch.mapper.attachments.MapperAttachmentsPlugin'
}

group = 'org.elasticsearch.plugin'
version = ElasticsearchProperties.version
ext.luceneVersion = ElasticsearchProperties.luceneVersion
repositories {
  mavenCentral()
  maven {
    name 'sonatype-snapshots'
    url 'https://oss.sonatype.org/content/repositories/snapshots/'
  }
  if (luceneVersion.contains('-snapshot')) {
    String revision = (luceneVersion =~ /\d\.\d\.\d-snapshot-(\d+)/)[0][1]
    maven {
      name 'lucene-snapshots'
      url "https://s3.amazonaws.com/download.elasticsearch.org/lucenesnapshots/${revision}"
    }
  }
}

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')
  
  // character set detection
  compile('com.googlecode.juniversalchardet:juniversalchardet:1.0.3')

  // external parser libraries
  // HTML
  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')
  // OpenOffice
  compile('org.apache.poi:poi-ooxml:3.13')
  // MS Office
  compile('org.apache.poi:poi-scratchpad:3.13')
  // Apple iWork
  compile('org.apache.commons:commons-compress:1.10')
}

compileJava.options.compilerArgs << '-Xlint:-cast,-deprecation,-rawtypes'

forbiddenPatterns {
  exclude '**/*.docx'
  exclude '**/*.pdf'
}

// fix ES build so this is not needed
Task dependencyLicensesTask = DependencyLicensesTask.configure(project) {
  dependencies = project.configurations.runtime - project.configurations.provided
}
project.precommit.dependsOn(dependencyLicensesTask)
