From 6526cb1af205633d551baad89b5bfd0cbde8a6c1 Mon Sep 17 00:00:00 2001 From: Sylvain Wallez Date: Mon, 20 Oct 2025 12:47:47 +0200 Subject: [PATCH] Move Rest5 client to a separate subproject (#1076) * Move Rest5 client to a separate subproject * Add README * Fix test * Fix imports * Fix CI --- .ci/Dockerfile | 3 + java-client/build.gradle.kts | 2 + .../SafeResponseConsumerTest.java | 59 +++-- rest5-client/README.md | 7 + rest5-client/build.gradle.kts | 246 ++++++++++++++++++ .../low_level/BasicAsyncEntityProducer.java | 0 .../low_level/BasicAsyncResponseConsumer.java | 0 .../low_level/BufferedByteConsumer.java | 4 +- .../rest5_client/low_level/Cancellable.java | 0 .../rest5_client/low_level/Constants.java | 0 .../rest5_client/low_level/DeadHostState.java | 0 .../low_level/HasAttributeNodeSelector.java | 0 .../HttpAsyncResponseConsumerFactory.java | 0 .../low_level/HttpDeleteWithEntity.java | 0 .../low_level/HttpGetWithEntity.java | 0 .../low_level/LanguageRuntimeVersions.java | 0 .../rest5_client/low_level/Node.java | 0 .../rest5_client/low_level/NodeSelector.java | 0 .../PreferHasAttributeNodeSelector.java | 0 .../rest5_client/low_level/Request.java | 0 .../rest5_client/low_level/RequestLogger.java | 0 .../low_level/RequestOptions.java | 0 .../rest5_client/low_level/Response.java | 0 .../low_level/ResponseException.java | 0 .../low_level/ResponseListener.java | 0 .../rest5_client/low_level/Rest5Client.java | 0 .../low_level/Rest5ClientBuilder.java | 0 .../low_level/WarningFailureException.java | 0 .../low_level/WarningsHandler.java | 0 .../sniffer/ElasticsearchNodesSniffer.java | 0 .../low_level/sniffer/NodesSniffer.java | 0 .../sniffer/SniffOnFailureListener.java | 0 .../low_level/sniffer/Sniffer.java | 0 .../low_level/sniffer/SnifferBuilder.java | 0 .../BasicAsyncResponseConsumerTests.java | 0 .../low_level/DeadHostStateTests.java | 0 .../FailureTrackingResponseListenerTests.java | 0 .../HasAttributeNodeSelectorTests.java | 0 .../HostsTrackingFailureListener.java | 3 +- .../low_level/NodeSelectorTests.java | 0 .../rest5_client/low_level/NodeTests.java | 0 .../PreferHasAttributeNodeSelectorTests.java | 0 .../low_level/RequestLoggerTests.java | 0 .../low_level/RequestOptionsTests.java | 0 .../rest5_client/low_level/RequestTests.java | 0 .../low_level/ResponseExceptionTests.java | 0 .../RestClientBuilderIntegTests.java | 0 .../low_level/RestClientBuilderTests.java | 0 .../RestClientGzipCompressionTests.java | 0 .../RestClientMultipleHostsIntegTests.java | 0 .../RestClientMultipleHostsTests.java | 0 .../RestClientSingleHostIntegTests.java | 0 .../low_level/RestClientSingleHostTests.java | 0 .../low_level/RestClientTestCase.java | 0 .../low_level/RestClientTestUtil.java | 0 .../low_level/RestClientTests.java | 0 .../ElasticsearchNodesSnifferParseTests.java | 0 .../ElasticsearchNodesSnifferTests.java | 0 .../low_level/sniffer/MockNodesSniffer.java | 0 .../sniffer/SniffOnFailureListenerTests.java | 0 .../sniffer/SnifferBuilderTests.java | 0 .../low_level/sniffer/SnifferTests.java | 0 .../low_level/sniffer/2.0.0_nodes_http.json | 0 .../low_level/sniffer/5.0.0_nodes_http.json | 0 .../low_level/sniffer/6.0.0_nodes_http.json | 0 .../low_level/sniffer/7.3.0_nodes_http.json | 0 .../sniffer/create_test_nodes_info.bash | 0 .../es6_nodes_publication_address_format.json | 0 .../es7_nodes_publication_address_format.json | 0 .../rest5_client/low_level/sniffer/readme.txt | 0 .../transport/rest5_client/low_level/test.crt | 0 .../transport/rest5_client/low_level/test.der | Bin .../low_level/test_truststore.jks | Bin .../rest5_client/low_level/testks.jks | Bin settings.gradle.kts | 1 + 75 files changed, 304 insertions(+), 21 deletions(-) rename java-client/src/test/java/co/elastic/clients/transport/rest5_client/{low_level => }/SafeResponseConsumerTest.java (74%) create mode 100644 rest5-client/README.md create mode 100644 rest5-client/build.gradle.kts rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BasicAsyncEntityProducer.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BasicAsyncResponseConsumer.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BufferedByteConsumer.java (94%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Cancellable.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Constants.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/DeadHostState.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HasAttributeNodeSelector.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HttpAsyncResponseConsumerFactory.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HttpDeleteWithEntity.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HttpGetWithEntity.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/LanguageRuntimeVersions.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Node.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/NodeSelector.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/PreferHasAttributeNodeSelector.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Request.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/RequestLogger.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/RequestOptions.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Response.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/ResponseException.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/ResponseListener.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Rest5Client.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Rest5ClientBuilder.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/WarningFailureException.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/WarningsHandler.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/ElasticsearchNodesSniffer.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/NodesSniffer.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SniffOnFailureListener.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/Sniffer.java (100%) rename {java-client => rest5-client}/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SnifferBuilder.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/BasicAsyncResponseConsumerTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/DeadHostStateTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/FailureTrackingResponseListenerTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/HasAttributeNodeSelectorTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/HostsTrackingFailureListener.java (92%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/NodeSelectorTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/NodeTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/PreferHasAttributeNodeSelectorTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RequestLoggerTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RequestOptionsTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RequestTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/ResponseExceptionTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientBuilderIntegTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientBuilderTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientGzipCompressionTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientMultipleHostsIntegTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientMultipleHostsTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientSingleHostIntegTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientSingleHostTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientTestCase.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientTestUtil.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/ElasticsearchNodesSnifferParseTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/ElasticsearchNodesSnifferTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/MockNodesSniffer.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SniffOnFailureListenerTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SnifferBuilderTests.java (100%) rename {java-client => rest5-client}/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SnifferTests.java (100%) rename {java-client => rest5-client}/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/2.0.0_nodes_http.json (100%) rename {java-client => rest5-client}/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/5.0.0_nodes_http.json (100%) rename {java-client => rest5-client}/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/6.0.0_nodes_http.json (100%) rename {java-client => rest5-client}/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/7.3.0_nodes_http.json (100%) rename {java-client => rest5-client}/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/create_test_nodes_info.bash (100%) rename {java-client => rest5-client}/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/es6_nodes_publication_address_format.json (100%) rename {java-client => rest5-client}/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/es7_nodes_publication_address_format.json (100%) rename {java-client => rest5-client}/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/readme.txt (100%) rename {java-client => rest5-client}/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/test.crt (100%) rename {java-client => rest5-client}/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/test.der (100%) rename {java-client => rest5-client}/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/test_truststore.jks (100%) rename {java-client => rest5-client}/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/testks.jks (100%) diff --git a/.ci/Dockerfile b/.ci/Dockerfile index 47b09fb23..08da322f3 100644 --- a/.ci/Dockerfile +++ b/.ci/Dockerfile @@ -44,10 +44,13 @@ RUN ./gradlew COPY --chown=$BUILDER_UID:$BUILDER_GID LICENSE.txt NOTICE.txt ./ + + # Prefetch and cache dependencies COPY --chown=$BUILDER_UID:$BUILDER_GID build.gradle.kts settings.gradle.kts ./ COPY --chown=$BUILDER_UID:$BUILDER_GID buildSrc ./buildSrc/ COPY --chown=$BUILDER_UID:$BUILDER_GID config ./config/ +COPY --chown=$BUILDER_UID:$BUILDER_GID rest5-client ./rest5-client/ COPY --chown=$BUILDER_UID:$BUILDER_GID java-client/build.gradle.kts ./java-client/ RUN ./gradlew resolveDependencies diff --git a/java-client/build.gradle.kts b/java-client/build.gradle.kts index 8d709daff..bc24b71b7 100644 --- a/java-client/build.gradle.kts +++ b/java-client/build.gradle.kts @@ -179,6 +179,8 @@ dependencies { val jacksonVersion = "2.18.3" val openTelemetryVersion = "1.32.0" + api(project(":rest5-client")) + // Apache 2.0 // https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-low.html compileOnly("org.elasticsearch.client", "elasticsearch-rest-client", elasticsearchVersion) diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/SafeResponseConsumerTest.java b/java-client/src/test/java/co/elastic/clients/transport/rest5_client/SafeResponseConsumerTest.java similarity index 74% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/SafeResponseConsumerTest.java rename to java-client/src/test/java/co/elastic/clients/transport/rest5_client/SafeResponseConsumerTest.java index d22f1fbc9..127e2e59a 100644 --- a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/SafeResponseConsumerTest.java +++ b/java-client/src/test/java/co/elastic/clients/transport/rest5_client/SafeResponseConsumerTest.java @@ -17,21 +17,30 @@ * under the License. */ -package co.elastic.clients.transport.rest5_client.low_level; - -import co.elastic.clients.transport.rest5_client.SafeResponseConsumer; +package co.elastic.clients.transport.rest5_client; + +import co.elastic.clients.transport.rest5_client.low_level.BufferedByteConsumer; +import co.elastic.clients.transport.rest5_client.low_level.HttpAsyncResponseConsumerFactory; +import co.elastic.clients.transport.rest5_client.low_level.Request; +import co.elastic.clients.transport.rest5_client.low_level.RequestOptions; +import co.elastic.clients.transport.rest5_client.low_level.Response; +import co.elastic.clients.transport.rest5_client.low_level.Rest5Client; import com.sun.net.httpserver.HttpServer; +import org.apache.hc.core5.http.ClassicHttpResponse; import org.apache.hc.core5.http.ContentType; +import org.apache.hc.core5.http.HttpException; import org.apache.hc.core5.http.HttpHost; import org.apache.hc.core5.http.HttpResponse; import org.apache.hc.core5.http.io.entity.ByteArrayEntity; import org.apache.hc.core5.http.message.BasicClassicHttpResponse; -import org.apache.hc.core5.http.protocol.HttpContext; +import org.apache.hc.core5.http.nio.AsyncResponseConsumer; +import org.apache.hc.core5.http.nio.support.AbstractAsyncResponseConsumer; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.nio.charset.StandardCharsets; @@ -42,20 +51,36 @@ public class SafeResponseConsumerTest { static HttpHost ESHost; // A consumer factory that throws an Error, to simulate the effect of an OOME - static HttpAsyncResponseConsumerFactory FailingConsumerFactory = - () -> new BasicAsyncResponseConsumer(new BufferedByteConsumer(100 * 1024 * 1024)) { - @Override - public void informationResponse(HttpResponse response, HttpContext context) { - super.informationResponse(response, context); - } + static HttpAsyncResponseConsumerFactory FailingConsumerFactory = new FailingAsyncResponseConsumerFactory(); - @Override - protected BasicClassicHttpResponse buildResult(HttpResponse response, ByteArrayEntity entity, - ContentType contentType) { - super.buildResult(response, entity, contentType); - throw new Error("Error in buildResult"); - } - }; + static class FailingAsyncResponseConsumerFactory implements HttpAsyncResponseConsumerFactory { + @Override + public AsyncResponseConsumer createHttpAsyncResponseConsumer() { + return new FailingAsyncResponseConsumer(); + } + } + + static class FailingAsyncResponseConsumer extends AbstractAsyncResponseConsumer { + + FailingAsyncResponseConsumer() { + super(new BufferedByteConsumer(100)); + } + + @Override + public void informationResponse(HttpResponse response, org.apache.hc.core5.http.protocol.HttpContext context) + throws HttpException, IOException { + throw new Error("Error in informationResponse"); + } + + @Override + protected BasicClassicHttpResponse buildResult( + HttpResponse response, ByteArrayEntity entity, + ContentType contentType + ) { + throw new Error("Error in buildResult"); + } + } @BeforeAll public static void setup() throws Exception { diff --git a/rest5-client/README.md b/rest5-client/README.md new file mode 100644 index 000000000..2346da1e0 --- /dev/null +++ b/rest5-client/README.md @@ -0,0 +1,7 @@ +# rest5-client + +The Elasticsearch Java client historically used a "Low Level Rest Client" (LLRC) based on Apache http client version 4 to handle http communications and distribution of requests among the nodes of a cluster. + +This directory is a port of this client to Apache http client version 5 that is mostly a drop-in replacement, except for the initialization phase. + +It is provided as an independent library as a convenience to users who have an existing code based on LLRC and would like to migrate to the more modern Apache http 5 library. diff --git a/rest5-client/build.gradle.kts b/rest5-client/build.gradle.kts new file mode 100644 index 000000000..ad13d500d --- /dev/null +++ b/rest5-client/build.gradle.kts @@ -0,0 +1,246 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. 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 com.github.jk1.license.ProjectData +import com.github.jk1.license.render.LicenseDataCollector +import com.github.jk1.license.render.ReportRenderer +import java.io.FileWriter + +plugins { + java + `java-library` + `maven-publish` + publishing + checkstyle + signing + id("com.github.jk1.dependency-license-report") version "2.2" +} + +checkstyle { + toolVersion = "10.16.0" +} + +java { + targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_17 + + withJavadocJar() + withSourcesJar() +} + +tasks.compileJava { + options.release.set(17) +} + +tasks.withType { + useJUnitPlatform() +} + +tasks.withType { + doFirst { + if (rootProject.extra.has("gitHashFull")) { + val jar = this as Jar + jar.manifest.attributes["X-Git-Revision"] = rootProject.extra["gitHashFull"] + jar.manifest.attributes["X-Git-Commit-Time"] = rootProject.extra["gitCommitTime"] + } else { + throw GradleException("No git information available") + } + } + + manifest { + attributes["Implementation-Title"] = "Elasticsearch Java client" + attributes["Implementation-Vendor"] = "Elastic" + attributes["Implementation-URL"] = "https://github.com/elastic/elasticsearch-java/" + attributes["Build-Date"] = rootProject.extra["buildTime"] + } + + metaInf { + from("../LICENSE.txt") + from("../NOTICE.txt") + } +} + +tasks.withType { + val opt = options as StandardJavadocDocletOptions + // Gradle calls javadoc with a list of file and not a path. This prevents doc-files from being copied. + opt.addStringOption("sourcepath", project.projectDir.path + "/src/main/java") + opt.docFilesSubDirs(true) + opt.addBooleanOption("Xdoclint:-missing", true) +} + +publishing { + repositories { + maven { + // See https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry + name = "ESJavaGithubPackages" + url = uri("https://maven.pkg.github.com/elastic/elasticsearch-java") + credentials(PasswordCredentials::class) + } + + maven { + name = "Build" + url = uri("${rootProject.layout.buildDirectory.get().asFile}/repository") + } + } + + publications { + create("maven") { + from(components["java"]) + pom { + name.set("Elasticsearch Rest5 Client") + artifactId = "elasticsearch-rest5-client" + description.set("Low level client based on http5") + url.set("https://github.com/elastic/elasticsearch-java/") + licenses { + license { + name.set("The Apache Software License, Version 2.0") + url.set("https://www.apache.org/licenses/LICENSE-2.0.txt") + } + } + developers { + developer { + name.set("Elastic") + url.set("https://www.elastic.co") + inceptionYear.set("2020") + } + } + scm { + connection.set("scm:git:https://github.com/elastic/elasticsearch-java.git") + developerConnection.set("scm:git:ssh://git@github.com:elastic/elasticsearch-java.git") + url.set("https://github.com/elastic/elasticsearch-java/") + } + } + } + } +} + + +signing { + // Only sign if a key has been configured in gradle.properties + isRequired = providers.gradleProperty("signing.keyId").isPresent + sign(publishing.publications["maven"]) +} + +dependencies { + val jacksonVersion = "2.18.3" + + // Apache 2.0 + // https://hc.apache.org/httpcomponents-client-ga/ + api("org.apache.httpcomponents.client5","httpclient5","5.4.4") + + // Apache 2.0 + // http://commons.apache.org/logging/ + api("commons-logging:commons-logging:1.3.5") + + testImplementation("org.apache.commons:commons-lang3:3.14.0") + testImplementation("junit:junit:4.13.2") + + // Apache 2.0 + // https://github.com/FasterXML/jackson + implementation("com.fasterxml.jackson.core", "jackson-core", jacksonVersion) + implementation("com.fasterxml.jackson.core", "jackson-databind", jacksonVersion) + +// // Apache-2.0 +// testImplementation("commons-io:commons-io:2.17.0") + + // EPL-2.0 + // https://junit.org/junit5/ + testImplementation("org.junit.jupiter:junit-jupiter-api:5.8.2") + testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.8.2") + + // Apache-2.0 + // https://github.com/awaitility/awaitility + testImplementation("org.awaitility", "awaitility", "4.2.0") + + // MIT + // https://github.com/mockito/mockito + testImplementation("org.mockito","mockito-core","5.12.0") + + // Apache-2.0 + // https://github.com/elastic/mocksocket + testImplementation("org.elasticsearch","mocksocket","1.2") + +} + + +licenseReport { + renderers = arrayOf(SpdxReporter(File(rootProject.layout.buildDirectory.get().asFile, "release/dependencies.csv"))) + excludeGroups = arrayOf("org.elasticsearch.client") +} + +class SpdxReporter(val dest: File) : ReportRenderer { + // License names to their SPDX identifier + val spdxIds = mapOf( + "The Apache License, Version 2.0" to "Apache-2.0", + "Apache License, Version 2.0" to "Apache-2.0", + "The Apache Software License, Version 2.0" to "Apache-2.0", + "Apache-2.0" to "Apache-2.0", + "MIT License" to "MIT", + "BSD Zero Clause License" to "0BSD", + "Eclipse Public License 2.0" to "EPL-2.0", + "Eclipse Public License v. 2.0" to "EPL-2.0", + "Eclipse Public License - v 2.0" to "EPL-2.0", + "GNU General Public License, version 2 with the GNU Classpath Exception" to "GPL-2.0 WITH Classpath-exception-2.0", + "COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0" to "CDDL-1.0" + ) + + private fun quote(str: String): String { + return if (str.contains(',') || str.contains("\"")) { + "\"" + str.replace("\"", "\"\"") + "\"" + } else { + str + } + } + + override fun render(data: ProjectData?) { + dest.parentFile.mkdirs() + FileWriter(dest).use { out -> + out.append("name,url,version,revision,license\n") + data?.allDependencies?.forEach { dep -> + + val depVersion = dep.version + val depName = dep.group + ":" + dep.name + + val info = LicenseDataCollector.multiModuleLicenseInfo(dep) + val depUrl = when(dep.group) { + "org.apache.httpcomponents.client5" -> "https://hc.apache.org/" + "org.apache.httpcomponents.core5" -> "https://hc.apache.org/" + "com.fasterxml.jackson" -> "https://github.com/FasterXML/jackson" + else -> if (info.moduleUrls.isEmpty()) { + throw RuntimeException("No URL found for module '$depName'") + } else { + info.moduleUrls.first() + } + } + + val licenseIds = info.licenses.mapNotNull { license -> + license.name?.let { + checkNotNull(spdxIds[it]) { "No SPDX identifier for $license" } + } + }.toSet() + + // Combine multiple licenses. + // See https://spdx.github.io/spdx-spec/appendix-IV-SPDX-license-expressions/#composite-license-expressions + val licenseId = licenseIds.joinToString(" OR ") + + out.append("${quote(depName)},${quote(depUrl)},${quote(depVersion)},,${quote(licenseId)}\n") + } + } + } +} diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BasicAsyncEntityProducer.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BasicAsyncEntityProducer.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BasicAsyncEntityProducer.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BasicAsyncEntityProducer.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BasicAsyncResponseConsumer.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BasicAsyncResponseConsumer.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BasicAsyncResponseConsumer.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BasicAsyncResponseConsumer.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BufferedByteConsumer.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BufferedByteConsumer.java similarity index 94% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BufferedByteConsumer.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BufferedByteConsumer.java index f42bb413e..d8815af18 100644 --- a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BufferedByteConsumer.java +++ b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/BufferedByteConsumer.java @@ -28,13 +28,13 @@ import static co.elastic.clients.transport.rest5_client.low_level.Constants.DEFAULT_BUFFER_INITIAL_CAPACITY; -class BufferedByteConsumer extends AbstractBinAsyncEntityConsumer { +public class BufferedByteConsumer extends AbstractBinAsyncEntityConsumer { private volatile ByteArrayBuffer buffer; private final int limit; private ContentType contentType; - BufferedByteConsumer(int bufferLimit) { + public BufferedByteConsumer(int bufferLimit) { super(); if (bufferLimit <= 0) { throw new IllegalArgumentException("Buffer limit must be greater than 0"); diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Cancellable.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Cancellable.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Cancellable.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Cancellable.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Constants.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Constants.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Constants.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Constants.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/DeadHostState.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/DeadHostState.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/DeadHostState.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/DeadHostState.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HasAttributeNodeSelector.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HasAttributeNodeSelector.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HasAttributeNodeSelector.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HasAttributeNodeSelector.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HttpAsyncResponseConsumerFactory.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HttpAsyncResponseConsumerFactory.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HttpAsyncResponseConsumerFactory.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HttpAsyncResponseConsumerFactory.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HttpDeleteWithEntity.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HttpDeleteWithEntity.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HttpDeleteWithEntity.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HttpDeleteWithEntity.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HttpGetWithEntity.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HttpGetWithEntity.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HttpGetWithEntity.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/HttpGetWithEntity.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/LanguageRuntimeVersions.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/LanguageRuntimeVersions.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/LanguageRuntimeVersions.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/LanguageRuntimeVersions.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Node.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Node.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Node.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Node.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/NodeSelector.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/NodeSelector.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/NodeSelector.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/NodeSelector.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/PreferHasAttributeNodeSelector.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/PreferHasAttributeNodeSelector.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/PreferHasAttributeNodeSelector.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/PreferHasAttributeNodeSelector.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Request.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Request.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Request.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Request.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/RequestLogger.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/RequestLogger.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/RequestLogger.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/RequestLogger.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/RequestOptions.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/RequestOptions.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/RequestOptions.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/RequestOptions.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Response.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Response.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Response.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Response.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/ResponseException.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/ResponseException.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/ResponseException.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/ResponseException.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/ResponseListener.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/ResponseListener.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/ResponseListener.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/ResponseListener.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Rest5Client.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Rest5Client.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Rest5Client.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Rest5Client.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Rest5ClientBuilder.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Rest5ClientBuilder.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Rest5ClientBuilder.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/Rest5ClientBuilder.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/WarningFailureException.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/WarningFailureException.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/WarningFailureException.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/WarningFailureException.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/WarningsHandler.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/WarningsHandler.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/WarningsHandler.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/WarningsHandler.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/ElasticsearchNodesSniffer.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/ElasticsearchNodesSniffer.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/ElasticsearchNodesSniffer.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/ElasticsearchNodesSniffer.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/NodesSniffer.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/NodesSniffer.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/NodesSniffer.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/NodesSniffer.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SniffOnFailureListener.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SniffOnFailureListener.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SniffOnFailureListener.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SniffOnFailureListener.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/Sniffer.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/Sniffer.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/Sniffer.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/Sniffer.java diff --git a/java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SnifferBuilder.java b/rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SnifferBuilder.java similarity index 100% rename from java-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SnifferBuilder.java rename to rest5-client/src/main/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SnifferBuilder.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/BasicAsyncResponseConsumerTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/BasicAsyncResponseConsumerTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/BasicAsyncResponseConsumerTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/BasicAsyncResponseConsumerTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/DeadHostStateTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/DeadHostStateTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/DeadHostStateTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/DeadHostStateTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/FailureTrackingResponseListenerTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/FailureTrackingResponseListenerTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/FailureTrackingResponseListenerTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/FailureTrackingResponseListenerTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/HasAttributeNodeSelectorTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/HasAttributeNodeSelectorTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/HasAttributeNodeSelectorTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/HasAttributeNodeSelectorTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/HostsTrackingFailureListener.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/HostsTrackingFailureListener.java similarity index 92% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/HostsTrackingFailureListener.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/HostsTrackingFailureListener.java index eb3b350e0..d5cbc6a7e 100644 --- a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/HostsTrackingFailureListener.java +++ b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/HostsTrackingFailureListener.java @@ -20,7 +20,6 @@ package co.elastic.clients.transport.rest5_client.low_level; import org.apache.hc.core5.http.HttpHost; -import org.elasticsearch.client.RestClient; import java.util.HashSet; import java.util.List; @@ -31,7 +30,7 @@ import static org.junit.Assert.assertThat; /** - * {@link RestClient.FailureListener} impl that allows to track when it gets called for which host. + * {@link Rest5Client.FailureListener} impl that allows to track when it gets called for which host. */ class HostsTrackingFailureListener extends Rest5Client.FailureListener { private volatile Set httpHosts = new HashSet<>(); diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/NodeSelectorTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/NodeSelectorTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/NodeSelectorTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/NodeSelectorTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/NodeTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/NodeTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/NodeTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/NodeTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/PreferHasAttributeNodeSelectorTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/PreferHasAttributeNodeSelectorTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/PreferHasAttributeNodeSelectorTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/PreferHasAttributeNodeSelectorTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RequestLoggerTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RequestLoggerTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RequestLoggerTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RequestLoggerTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RequestOptionsTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RequestOptionsTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RequestOptionsTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RequestOptionsTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RequestTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RequestTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RequestTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RequestTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/ResponseExceptionTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/ResponseExceptionTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/ResponseExceptionTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/ResponseExceptionTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientBuilderIntegTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientBuilderIntegTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientBuilderIntegTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientBuilderIntegTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientBuilderTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientBuilderTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientBuilderTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientBuilderTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientGzipCompressionTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientGzipCompressionTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientGzipCompressionTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientGzipCompressionTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientMultipleHostsIntegTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientMultipleHostsIntegTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientMultipleHostsIntegTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientMultipleHostsIntegTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientMultipleHostsTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientMultipleHostsTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientMultipleHostsTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientMultipleHostsTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientSingleHostIntegTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientSingleHostIntegTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientSingleHostIntegTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientSingleHostIntegTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientSingleHostTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientSingleHostTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientSingleHostTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientSingleHostTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientTestCase.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientTestCase.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientTestCase.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientTestCase.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientTestUtil.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientTestUtil.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientTestUtil.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientTestUtil.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/RestClientTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/ElasticsearchNodesSnifferParseTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/ElasticsearchNodesSnifferParseTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/ElasticsearchNodesSnifferParseTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/ElasticsearchNodesSnifferParseTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/ElasticsearchNodesSnifferTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/ElasticsearchNodesSnifferTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/ElasticsearchNodesSnifferTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/ElasticsearchNodesSnifferTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/MockNodesSniffer.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/MockNodesSniffer.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/MockNodesSniffer.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/MockNodesSniffer.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SniffOnFailureListenerTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SniffOnFailureListenerTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SniffOnFailureListenerTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SniffOnFailureListenerTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SnifferBuilderTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SnifferBuilderTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SnifferBuilderTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SnifferBuilderTests.java diff --git a/java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SnifferTests.java b/rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SnifferTests.java similarity index 100% rename from java-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SnifferTests.java rename to rest5-client/src/test/java/co/elastic/clients/transport/rest5_client/low_level/sniffer/SnifferTests.java diff --git a/java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/2.0.0_nodes_http.json b/rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/2.0.0_nodes_http.json similarity index 100% rename from java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/2.0.0_nodes_http.json rename to rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/2.0.0_nodes_http.json diff --git a/java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/5.0.0_nodes_http.json b/rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/5.0.0_nodes_http.json similarity index 100% rename from java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/5.0.0_nodes_http.json rename to rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/5.0.0_nodes_http.json diff --git a/java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/6.0.0_nodes_http.json b/rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/6.0.0_nodes_http.json similarity index 100% rename from java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/6.0.0_nodes_http.json rename to rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/6.0.0_nodes_http.json diff --git a/java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/7.3.0_nodes_http.json b/rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/7.3.0_nodes_http.json similarity index 100% rename from java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/7.3.0_nodes_http.json rename to rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/7.3.0_nodes_http.json diff --git a/java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/create_test_nodes_info.bash b/rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/create_test_nodes_info.bash similarity index 100% rename from java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/create_test_nodes_info.bash rename to rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/create_test_nodes_info.bash diff --git a/java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/es6_nodes_publication_address_format.json b/rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/es6_nodes_publication_address_format.json similarity index 100% rename from java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/es6_nodes_publication_address_format.json rename to rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/es6_nodes_publication_address_format.json diff --git a/java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/es7_nodes_publication_address_format.json b/rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/es7_nodes_publication_address_format.json similarity index 100% rename from java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/es7_nodes_publication_address_format.json rename to rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/es7_nodes_publication_address_format.json diff --git a/java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/readme.txt b/rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/readme.txt similarity index 100% rename from java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/readme.txt rename to rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/sniffer/readme.txt diff --git a/java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/test.crt b/rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/test.crt similarity index 100% rename from java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/test.crt rename to rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/test.crt diff --git a/java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/test.der b/rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/test.der similarity index 100% rename from java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/test.der rename to rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/test.der diff --git a/java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/test_truststore.jks b/rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/test_truststore.jks similarity index 100% rename from java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/test_truststore.jks rename to rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/test_truststore.jks diff --git a/java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/testks.jks b/rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/testks.jks similarity index 100% rename from java-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/testks.jks rename to rest5-client/src/test/resources/co/elastic/clients/transport/rest5_client/low_level/testks.jks diff --git a/settings.gradle.kts b/settings.gradle.kts index 868426732..2967fba10 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -22,4 +22,5 @@ import java.nio.file.Paths rootProject.name = "elasticsearch-java" include("java-client") +include("rest5-client") include("tools")