/*
 * 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.precommit.PrecommitTasks;

dependencies {
  compile "org.elasticsearch.client:elasticsearch-rest-client:${version}"
  compile "org.elasticsearch:elasticsearch:${version}"
  compile "com.carrotsearch.randomizedtesting:randomizedtesting-runner:${versions.randomizedrunner}"
  compile "junit:junit:${versions.junit}"
  compile "org.hamcrest:hamcrest-all:${versions.hamcrest}"
  compile "org.apache.lucene:lucene-test-framework:${versions.lucene}"
  compile "org.apache.lucene:lucene-codecs:${versions.lucene}"
  compile "commons-logging:commons-logging:${versions.commonslogging}"
  compile "commons-codec:commons-codec:${versions.commonscodec}"
  compile "org.elasticsearch:securemock:${versions.securemock}"
  compile "org.elasticsearch:mocksocket:${versions.mocksocket}"
}

compileJava.options.compilerArgs << '-Xlint:-cast,-rawtypes,-try,-unchecked'
compileTestJava.options.compilerArgs << '-Xlint:-rawtypes'

// the main files are actually test files, so use the appropriate forbidden api sigs
forbiddenApisMain {
  signaturesURLs = [PrecommitTasks.getResource('/forbidden/all-signatures.txt'),
                    PrecommitTasks.getResource('/forbidden/test-signatures.txt')]
}

// TODO: should we have licenses for our test deps?
dependencyLicenses.enabled = false

thirdPartyAudit.excludes = [
  // classes are missing
  'javax.servlet.ServletContextEvent',
  'javax.servlet.ServletContextListener',
  'org.apache.avalon.framework.logger.Logger',
  'org.apache.log.Hierarchy',
  'org.apache.log.Logger',
   // we intentionally exclude the ant tasks because people were depending on them from their tests!!!!!!!
  'org.apache.tools.ant.BuildException',
  'org.apache.tools.ant.DirectoryScanner',
  'org.apache.tools.ant.Task',
  'org.apache.tools.ant.types.FileSet',
  'org.easymock.EasyMock',
  'org.easymock.IArgumentMatcher',
  'org.jmock.core.Constraint',
]

task namingConventionsMain(type: org.elasticsearch.gradle.precommit.NamingConventionsTask) {
  checkForTestsInMain = true
}
precommit.dependsOn namingConventionsMain

test.configure {
  systemProperty 'tests.gradle_index_compat_versions', indexCompatVersions.join(',')
  systemProperty 'tests.gradle_wire_compat_versions', wireCompatVersions.join(',')
}