import java.nio.file.Files /* * 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 GCS repository plugin adds Google Cloud Storage support for repositories.' classname 'org.elasticsearch.repositories.gcs.GoogleCloudStoragePlugin' } dependencies { compile 'com.google.cloud:google-cloud-storage:1.77.0' compile 'com.google.cloud:google-cloud-core:1.77.0' compile 'com.google.guava:guava:26.0-jre' compile 'com.google.http-client:google-http-client:1.30.1' compile "org.apache.httpcomponents:httpclient:${versions.httpclient}" compile "org.apache.httpcomponents:httpcore:${versions.httpcore}" compile "commons-logging:commons-logging:${versions.commonslogging}" compile "org.apache.logging.log4j:log4j-1.2-api:${versions.log4j}" compile "commons-codec:commons-codec:${versions.commonscodec}" compile 'com.google.api:api-common:1.8.1' compile 'com.google.api:gax:1.45.0' compile 'org.threeten:threetenbp:1.3.3' compile 'com.google.protobuf:protobuf-java-util:3.7.1' compile 'com.google.protobuf:protobuf-java:3.7.1' compile 'com.google.code.gson:gson:2.7' compile 'com.google.api.grpc:proto-google-common-protos:1.16.0' compile 'com.google.api.grpc:proto-google-iam-v1:0.12.0' compile 'com.google.cloud:google-cloud-core-http:1.77.0' compile 'com.google.auth:google-auth-library-credentials:0.16.1' compile 'com.google.auth:google-auth-library-oauth2-http:0.16.1' compile 'com.google.oauth-client:google-oauth-client:1.28.0' compile 'com.google.api-client:google-api-client:1.28.0' compile 'com.google.http-client:google-http-client-appengine:1.29.2' compile 'com.google.http-client:google-http-client-jackson2:1.29.2' compile 'com.google.api:gax-httpjson:0.62.0' compile 'io.grpc:grpc-context:1.12.0' compile 'io.opencensus:opencensus-api:0.18.0' compile 'io.opencensus:opencensus-contrib-http-util:0.18.0' compile 'com.google.apis:google-api-services-storage:v1-rev20190426-1.28.0' } dependencyLicenses { mapping from: /google-cloud-.*/, to: 'google-cloud' mapping from: /google-auth-.*/, to: 'google-auth' mapping from: /google-http-.*/, to: 'google-http' mapping from: /opencensus.*/, to: 'opencensus' mapping from: /http.*/, to: 'httpclient' mapping from: /protobuf.*/, to: 'protobuf' mapping from: /proto-google.*/, to: 'proto-google' } thirdPartyAudit { ignoreViolations ( // uses internal java api: sun.misc.Unsafe 'com.google.protobuf.UnsafeUtil', 'com.google.protobuf.UnsafeUtil$1', 'com.google.protobuf.UnsafeUtil$JvmMemoryAccessor', 'com.google.protobuf.UnsafeUtil$MemoryAccessor', 'com.google.common.cache.Striped64', 'com.google.common.cache.Striped64$1', 'com.google.common.cache.Striped64$Cell', 'com.google.common.hash.Striped64', 'com.google.common.hash.Striped64$1', 'com.google.common.hash.Striped64$Cell', 'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray', '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', ) ignoreMissingClasses ( 'com.google.appengine.api.datastore.Blob', 'com.google.appengine.api.datastore.DatastoreService', 'com.google.appengine.api.datastore.DatastoreServiceFactory', 'com.google.appengine.api.datastore.Entity', 'com.google.appengine.api.datastore.Key', 'com.google.appengine.api.datastore.KeyFactory', 'com.google.appengine.api.datastore.PreparedQuery', 'com.google.appengine.api.datastore.Query', 'com.google.appengine.api.memcache.Expiration', 'com.google.appengine.api.memcache.MemcacheService', 'com.google.appengine.api.memcache.MemcacheServiceFactory', 'com.google.appengine.api.urlfetch.FetchOptions$Builder', 'com.google.appengine.api.urlfetch.FetchOptions', 'com.google.appengine.api.urlfetch.HTTPHeader', 'com.google.appengine.api.urlfetch.HTTPMethod', 'com.google.appengine.api.urlfetch.HTTPRequest', 'com.google.appengine.api.urlfetch.HTTPResponse', 'com.google.appengine.api.urlfetch.URLFetchService', 'com.google.appengine.api.urlfetch.URLFetchServiceFactory', // commons-logging optional dependencies 'org.apache.avalon.framework.logger.Logger', 'org.apache.log.Hierarchy', 'org.apache.log.Logger', // commons-logging provided dependencies 'javax.servlet.ServletContextEvent', 'javax.servlet.ServletContextListener' ) } check { // also execute the QA tests when testing the plugin dependsOn 'qa:google-cloud-storage:check' } String gcsServiceAccount = System.getenv("google_storage_service_account") String gcsBucket = System.getenv("google_storage_bucket") String gcsBasePath = System.getenv("google_storage_base_path") test { exclude '**/GoogleCloudStorageThirdPartyTests.class' } task thirdPartyTest(type: Test) { include '**/GoogleCloudStorageThirdPartyTests.class' systemProperty 'test.google.account', gcsServiceAccount ? Base64.encoder.encodeToString(Files.readAllBytes(file(gcsServiceAccount).toPath())) : "" systemProperty 'test.google.bucket', gcsBucket ? gcsBucket : "" systemProperty 'test.google.base', gcsBasePath ? gcsBasePath : "/" } if (gcsServiceAccount || gcsBucket || gcsBasePath) { check.dependsOn(thirdPartyTest) }