/* * SPDX-License-Identifier: Apache-2.0 * * The OpenSearch Contributors require contributions made to * this file be licensed under the Apache-2.0 license or a * compatible open source license. * * Modifications Copyright OpenSearch Contributors. See * GitHub history for details. */ /* * 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.opensearch.gradle.LoggedExec import org.opensearch.gradle.info.BuildParams apply plugin: 'opensearch.yaml-rest-test' apply plugin: 'opensearch.internal-cluster-test' opensearchplugin { description 'The Azure Classic Discovery plugin allows to use Azure Classic API for the unicast discovery mechanism' classname 'org.opensearch.plugin.discovery.azure.classic.AzureDiscoveryPlugin' } versions << [ 'azure': '0.9.3', 'jersey': '1.13' ] dependencies { api "com.microsoft.azure:azure-svc-mgmt-compute:${versions.azure}" api "com.microsoft.azure:azure-core:${versions.azure}" api "org.apache.httpcomponents:httpclient:${versions.httpclient}" api "org.apache.httpcomponents:httpcore:${versions.httpcore}" api "commons-logging:commons-logging:${versions.commonslogging}" api "org.apache.logging.log4j:log4j-1.2-api:${versions.log4j}" api "commons-codec:commons-codec:${versions.commonscodec}" api "commons-lang:commons-lang:2.6" api "commons-io:commons-io:2.7" api 'javax.mail:mail:1.4.7' api 'javax.inject:javax.inject:1' api "com.sun.jersey:jersey-client:${versions.jersey}" api "com.sun.jersey:jersey-core:${versions.jersey}" api "com.sun.jersey:jersey-json:${versions.jersey}" api 'org.codehaus.jettison:jettison:1.1' api 'com.sun.xml.bind:jaxb-impl:2.2.3-1' // HACK: javax.xml.bind was removed from default modules in java 9, so we pull the api in here, // and allowlist this hack in JarHell api 'javax.xml.bind:jaxb-api:2.3.1' } restResources { restApi { includeCore '_common', 'cluster', 'nodes' } } // needed to be consistent with ssl host checking String host = InetAddress.getLoopbackAddress().getHostAddress() // location of keystore and files to generate it File keystore = new File(project.buildDir, 'keystore/test-node.jks') // generate the keystore TaskProvider createKey = tasks.register("createKey", LoggedExec) { doFirst { delete(keystore.parentFile) keystore.parentFile.mkdirs() } outputs.file(keystore).withPropertyName('keystoreFile') executable = "${BuildParams.runtimeJavaHome}/bin/keytool" standardInput = new ByteArrayInputStream('FirstName LastName\nUnit\nOrganization\nCity\nState\nNL\nyes\n\n'.getBytes('UTF-8')) args '-genkey', '-alias', 'test-node', '-keystore', keystore, '-keyalg', 'RSA', '-keysize', '2048', '-validity', '712', '-dname', 'CN=' + host, '-keypass', 'keypass', '-storepass', 'keypass' } //no unit tests tasks.named("test").configure { enabled = false } // add keystore to test classpath: it expects it there tasks.named("processInternalClusterTestResources").configure { from createKey } normalization { runtimeClasspath { ignore 'test-node.jks' } } tasks.named("dependencyLicenses").configure { mapping from: /azure-.*/, to: 'azure' mapping from: /jackson-.*/, to: 'jackson' mapping from: /jersey-.*/, to: 'jersey' mapping from: /jaxb-.*/, to: 'jaxb' } tasks.named("thirdPartyAudit").configure { ignoreMissingClasses( 'javax.jms.Message', 'javax.servlet.ServletContextEvent', 'javax.servlet.ServletContextListener', 'org.apache.avalon.framework.logger.Logger', 'org.apache.log.Hierarchy', 'org.apache.log.Logger', 'org.eclipse.persistence.descriptors.ClassDescriptor', 'org.eclipse.persistence.internal.oxm.MappingNodeValue', 'org.eclipse.persistence.internal.oxm.TreeObjectBuilder', 'org.eclipse.persistence.internal.oxm.XPathFragment', 'org.eclipse.persistence.internal.oxm.XPathNode', 'org.eclipse.persistence.internal.queries.ContainerPolicy', 'org.eclipse.persistence.jaxb.JAXBContext', 'org.eclipse.persistence.jaxb.JAXBHelper', 'org.eclipse.persistence.mappings.DatabaseMapping', 'org.eclipse.persistence.mappings.converters.TypeConversionConverter', 'org.eclipse.persistence.mappings.foundation.AbstractCompositeDirectCollectionMapping', 'org.eclipse.persistence.oxm.XMLContext', 'org.eclipse.persistence.oxm.XMLDescriptor', 'org.eclipse.persistence.oxm.XMLField', 'org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping', 'org.eclipse.persistence.sessions.DatabaseSession', 'org.jvnet.fastinfoset.VocabularyApplicationData', 'org.jvnet.staxex.Base64Data', 'org.jvnet.staxex.XMLStreamReaderEx', 'org.jvnet.staxex.XMLStreamWriterEx', 'org.osgi.framework.Bundle', 'org.osgi.framework.BundleActivator', 'org.osgi.framework.BundleContext', 'org.osgi.framework.BundleEvent', 'org.osgi.framework.SynchronousBundleListener', 'com.sun.xml.fastinfoset.stax.StAXDocumentParser', 'com.sun.xml.fastinfoset.stax.StAXDocumentSerializer', 'org.codehaus.jackson.Base64Variant', 'org.codehaus.jackson.JsonEncoding', 'org.codehaus.jackson.JsonFactory', 'org.codehaus.jackson.JsonGenerator', 'org.codehaus.jackson.JsonGenerator$Feature', 'org.codehaus.jackson.JsonLocation', 'org.codehaus.jackson.JsonNode', 'org.codehaus.jackson.JsonParser', 'org.codehaus.jackson.JsonParser$Feature', 'org.codehaus.jackson.JsonParser$NumberType', 'org.codehaus.jackson.JsonStreamContext', 'org.codehaus.jackson.JsonToken', 'org.codehaus.jackson.ObjectCodec', 'org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider', 'org.codehaus.jackson.jaxrs.JacksonJsonProvider', 'org.codehaus.jackson.map.JsonSerializableWithType', 'org.codehaus.jackson.map.JsonSerializer', 'org.codehaus.jackson.map.ObjectMapper', 'org.codehaus.jackson.map.SerializerProvider', 'org.codehaus.jackson.map.TypeSerializer', 'org.codehaus.jackson.type.TypeReference' ) // jarhell with jdk (intentionally, because jaxb was removed from default modules in java 9) if (BuildParams.runtimeJavaVersion <= JavaVersion.VERSION_1_8) { ignoreJarHellWithJDK( 'javax.xml.bind.Binder', 'javax.xml.bind.ContextFinder$1', 'javax.xml.bind.ContextFinder', 'javax.xml.bind.DataBindingException', 'javax.xml.bind.DatatypeConverter', 'javax.xml.bind.DatatypeConverterImpl$CalendarFormatter', 'javax.xml.bind.DatatypeConverterImpl', 'javax.xml.bind.DatatypeConverterInterface', 'javax.xml.bind.Element', 'javax.xml.bind.GetPropertyAction', 'javax.xml.bind.JAXB$Cache', 'javax.xml.bind.JAXB', 'javax.xml.bind.JAXBContext', 'javax.xml.bind.JAXBElement$GlobalScope', 'javax.xml.bind.JAXBElement', 'javax.xml.bind.JAXBException', 'javax.xml.bind.JAXBIntrospector', 'javax.xml.bind.JAXBPermission', 'javax.xml.bind.MarshalException', 'javax.xml.bind.Marshaller$Listener', 'javax.xml.bind.Marshaller', 'javax.xml.bind.Messages', 'javax.xml.bind.NotIdentifiableEvent', 'javax.xml.bind.ParseConversionEvent', 'javax.xml.bind.PrintConversionEvent', 'javax.xml.bind.PropertyException', 'javax.xml.bind.SchemaOutputResolver', 'javax.xml.bind.TypeConstraintException', 'javax.xml.bind.UnmarshalException', 'javax.xml.bind.Unmarshaller$Listener', 'javax.xml.bind.Unmarshaller', 'javax.xml.bind.UnmarshallerHandler', 'javax.xml.bind.ValidationEvent', 'javax.xml.bind.ValidationEventHandler', 'javax.xml.bind.ValidationEventLocator', 'javax.xml.bind.ValidationException', 'javax.xml.bind.Validator', 'javax.xml.bind.WhiteSpaceProcessor', 'javax.xml.bind.annotation.DomHandler', 'javax.xml.bind.annotation.W3CDomHandler', 'javax.xml.bind.annotation.XmlAccessOrder', 'javax.xml.bind.annotation.XmlAccessType', 'javax.xml.bind.annotation.XmlAccessorOrder', 'javax.xml.bind.annotation.XmlAccessorType', 'javax.xml.bind.annotation.XmlAnyAttribute', 'javax.xml.bind.annotation.XmlAnyElement', 'javax.xml.bind.annotation.XmlAttachmentRef', 'javax.xml.bind.annotation.XmlAttribute', 'javax.xml.bind.annotation.XmlElement$DEFAULT', 'javax.xml.bind.annotation.XmlElement', 'javax.xml.bind.annotation.XmlElementDecl$GLOBAL', 'javax.xml.bind.annotation.XmlElementDecl', 'javax.xml.bind.annotation.XmlElementRef$DEFAULT', 'javax.xml.bind.annotation.XmlElementRef', 'javax.xml.bind.annotation.XmlElementRefs', 'javax.xml.bind.annotation.XmlElementWrapper', 'javax.xml.bind.annotation.XmlElements', 'javax.xml.bind.annotation.XmlEnum', 'javax.xml.bind.annotation.XmlEnumValue', 'javax.xml.bind.annotation.XmlID', 'javax.xml.bind.annotation.XmlIDREF', 'javax.xml.bind.annotation.XmlInlineBinaryData', 'javax.xml.bind.annotation.XmlList', 'javax.xml.bind.annotation.XmlMimeType', 'javax.xml.bind.annotation.XmlMixed', 'javax.xml.bind.annotation.XmlNs', 'javax.xml.bind.annotation.XmlNsForm', 'javax.xml.bind.annotation.XmlRegistry', 'javax.xml.bind.annotation.XmlRootElement', 'javax.xml.bind.annotation.XmlSchema', 'javax.xml.bind.annotation.XmlSchemaType$DEFAULT', 'javax.xml.bind.annotation.XmlSchemaType', 'javax.xml.bind.annotation.XmlSchemaTypes', 'javax.xml.bind.annotation.XmlSeeAlso', 'javax.xml.bind.annotation.XmlTransient', 'javax.xml.bind.annotation.XmlType$DEFAULT', 'javax.xml.bind.annotation.XmlType', 'javax.xml.bind.annotation.XmlValue', 'javax.xml.bind.annotation.adapters.CollapsedStringAdapter', 'javax.xml.bind.annotation.adapters.HexBinaryAdapter', 'javax.xml.bind.annotation.adapters.NormalizedStringAdapter', 'javax.xml.bind.annotation.adapters.XmlAdapter', 'javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter$DEFAULT', 'javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter', 'javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters', 'javax.xml.bind.attachment.AttachmentMarshaller', 'javax.xml.bind.attachment.AttachmentUnmarshaller', 'javax.xml.bind.helpers.AbstractMarshallerImpl', 'javax.xml.bind.helpers.AbstractUnmarshallerImpl', 'javax.xml.bind.helpers.DefaultValidationEventHandler', 'javax.xml.bind.helpers.Messages', 'javax.xml.bind.helpers.NotIdentifiableEventImpl', 'javax.xml.bind.helpers.ParseConversionEventImpl', 'javax.xml.bind.helpers.PrintConversionEventImpl', 'javax.xml.bind.helpers.ValidationEventImpl', 'javax.xml.bind.helpers.ValidationEventLocatorImpl', 'javax.xml.bind.util.JAXBResult', 'javax.xml.bind.util.JAXBSource$1', 'javax.xml.bind.util.JAXBSource', 'javax.xml.bind.util.Messages', 'javax.xml.bind.util.ValidationEventCollector' ) } else { ignoreMissingClasses( 'javax.activation.ActivationDataFlavor', 'javax.activation.DataContentHandler', 'javax.activation.DataHandler', 'javax.activation.DataSource', 'javax.activation.FileDataSource', 'javax.activation.FileTypeMap', 'javax.activation.MimeType', 'javax.activation.MimeTypeParseException', ) } }