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

esplugin {
  description 'The Azure Repository plugin adds support for Azure storage repositories.'
  classname 'org.elasticsearch.repositories.azure.AzureRepositoryPlugin'
}

dependencies {
  compile 'com.microsoft.azure:azure-storage:8.0.0'
  compile 'com.microsoft.azure:azure-keyvault-core:1.0.0'
  compile 'com.google.guava:guava:20.0'
  compile 'org.apache.commons:commons-lang3:3.4'
}

dependencyLicenses {
  mapping from: /azure-.*/, to: 'azure'
  mapping from: /jackson-.*/, to: 'jackson'
  mapping from: /jersey-.*/, to: 'jersey'
  mapping from: /jaxb-.*/, to: 'jaxb'
  mapping from: /stax-.*/, to: 'stax'
}

thirdPartyAudit.excludes = [
  // Optional and not enabled by Elasticsearch
  'org.slf4j.Logger',
  'org.slf4j.LoggerFactory',
  // uses internal java api: sun.misc.Unsafe
  'com.google.common.cache.Striped64',
  'com.google.common.cache.Striped64$1',
  'com.google.common.cache.Striped64$Cell',
  'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray$1',
  'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray$2',
  'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray$3',
  'com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper',
  'com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper$1',
  'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray',
  'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator',
  'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1',
]

check {
  // also execute the QA tests when testing the plugin
  dependsOn 'qa:microsoft-azure-storage:check'
}

integTestCluster {
  keystoreSetting 'azure.client.integration_test.account', 'azure_account'
  keystoreSetting 'azure.client.integration_test.key', 'azure_key'
}