Explorar o código

Fix version resolution and encoding in LLRC (#81989)

Sylvain Wallez %!s(int64=3) %!d(string=hai) anos
pai
achega
8ab0d40cb5

+ 5 - 1
client/rest/build.gradle

@@ -17,6 +17,8 @@
  * under the License.
  */
 import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis
+
+import org.elasticsearch.gradle.VersionProperties
 import org.elasticsearch.gradle.internal.conventions.precommit.LicenseHeadersTask
 
 apply plugin: 'elasticsearch.build'
@@ -48,7 +50,9 @@ dependencies {
 }
 
 tasks.named("processResources").configure {
-  expand versions: versions
+  expand versions: [
+    elasticsearch: VersionProperties.getElasticsearch()
+  ]
 }
 
 tasks.withType(CheckForbiddenApis).configureEach {

+ 10 - 3
client/rest/src/main/java/org/elasticsearch/client/RestClientBuilder.java

@@ -51,7 +51,7 @@ public final class RestClientBuilder {
     public static final int DEFAULT_MAX_CONN_PER_ROUTE = 10;
     public static final int DEFAULT_MAX_CONN_TOTAL = 30;
 
-    static final String VERSION;
+    public static final String VERSION;
     static final String META_HEADER_NAME = "X-Elastic-Client-Meta";
     static final String META_HEADER_VALUE;
     private static final String USER_AGENT_HEADER_VALUE;
@@ -109,13 +109,20 @@ public final class RestClientBuilder {
             // Keep unknown
         }
 
+        // Use a single 'p' suffix for all prerelease versions (snapshot, beta, etc).
+        String metaVersion = version;
+        int dashPos = metaVersion.indexOf('-');
+        if (dashPos > 0) {
+            metaVersion = metaVersion.substring(0, dashPos) + "p";
+        }
+
         // service, language, transport, followed by additional information
         META_HEADER_VALUE = "es="
-            + VERSION
+            + metaVersion
             + ",jv="
             + System.getProperty("java.specification.version")
             + ",t="
-            + VERSION
+            + metaVersion
             + ",hc="
             + (httpClientVersion == null ? "" : httpClientVersion.getRelease())
             + LanguageRuntimeVersions.getRuntimeMetadata();

+ 1 - 1
client/rest/src/test/java/org/elasticsearch/client/RestClientSingleHostIntegTests.java

@@ -365,7 +365,7 @@ public class RestClientSingleHostIntegTests extends RestClientTestCase {
         Request request = new Request("GET", "/200");
         Response esResponse = RestClientSingleHostTests.performRequestSyncOrAsync(restClient, request);
         String header = esResponse.getHeader(RestClientBuilder.META_HEADER_NAME);
-        assertTrue(header.matches("^es=[^,]*,jv=[^,]+,t=[^,]*,hc=.*"));
+        assertTrue(header.matches("^es=[0-9]+\\.[0-9]+\\.[0-9]+p?,jv=[^,]+,t=[^,]*,hc=.*"));
 
         // Also check user-agent
         header = esResponse.getHeader("User-Agent");