import org.elasticsearch.gradle.precommit.ForbiddenApisCliTask

/*
 * 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.maven-base-publish'
apply plugin: 'nebula.maven-scm'

targetCompatibility = JavaVersion.VERSION_1_7
sourceCompatibility = JavaVersion.VERSION_1_7

group = 'org.elasticsearch.client'
archivesBaseName = 'elasticsearch-rest-client'

publishing {
  publications {
    nebula {
      artifactId = archivesBaseName
    }
  }
}

dependencies {
  compile "org.apache.httpcomponents:httpclient:${versions.httpclient}"
  compile "org.apache.httpcomponents:httpcore:${versions.httpcore}"
  compile "org.apache.httpcomponents:httpasyncclient:${versions.httpasyncclient}"
  compile "org.apache.httpcomponents:httpcore-nio:${versions.httpcore}"
  compile "commons-codec:commons-codec:${versions.commonscodec}"
  compile "commons-logging:commons-logging:${versions.commonslogging}"

  testCompile "org.elasticsearch.client:test:${version}"
  testCompile "com.carrotsearch.randomizedtesting:randomizedtesting-runner:${versions.randomizedrunner}"
  testCompile "junit:junit:${versions.junit}"
  testCompile "org.hamcrest:hamcrest-all:${versions.hamcrest}"
  testCompile "org.elasticsearch:securemock:${versions.securemock}"
  testCompile "org.elasticsearch:mocksocket:${versions.mocksocket}"
}

tasks.withType(ForbiddenApisCliTask) {
  //client does not depend on server, so only jdk and http signatures should be checked
  replaceSignatureFiles ('jdk-signatures', 'http-signatures')
}

forbiddenPatterns {
  exclude '**/*.der'
}

forbiddenApisTest {
  //we are using jdk-internal instead of jdk-non-portable to allow for com.sun.net.httpserver.* usage
  bundledSignatures -= 'jdk-non-portable'
  bundledSignatures += 'jdk-internal'
}

// JarHell is part of es server, which we don't want to pull in
// TODO: Not anymore. Now in :libs:core
jarHell.enabled=false

namingConventions {
  testClass = 'org.elasticsearch.client.RestClientTestCase'
  //we don't have integration tests
  skipIntegTestInDisguise = true
}

thirdPartyAudit.excludes = [
  //commons-logging optional dependencies
  'org.apache.avalon.framework.logger.Logger',
  'org.apache.log.Hierarchy',
  'org.apache.log.Logger',
  'org.apache.log4j.Category',
  'org.apache.log4j.Level',
  'org.apache.log4j.Logger',
  'org.apache.log4j.Priority',
  //commons-logging provided dependencies
  'javax.servlet.ServletContextEvent',
  'javax.servlet.ServletContextListener'
]