From 016e9d764d3cd8c56f675961a78a7538e6e7ecfd Mon Sep 17 00:00:00 2001 From: Robert Stupp Date: Thu, 23 May 2024 14:17:46 +0200 Subject: [PATCH] Change for `HttpClientBuilder` removal in Nessie See https://github.com/projectnessie/nessie/pull/7803 --- .../integtests/nessie/internal/NessieEnv.java | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/nqeit-nessie-common/src/main/java/org/projectnessie/integtests/nessie/internal/NessieEnv.java b/nqeit-nessie-common/src/main/java/org/projectnessie/integtests/nessie/internal/NessieEnv.java index aa350605..6c14c842 100644 --- a/nqeit-nessie-common/src/main/java/org/projectnessie/integtests/nessie/internal/NessieEnv.java +++ b/nqeit-nessie-common/src/main/java/org/projectnessie/integtests/nessie/internal/NessieEnv.java @@ -15,10 +15,11 @@ */ package org.projectnessie.integtests.nessie.internal; +import java.lang.reflect.InvocationTargetException; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.ExtensionContext.Store.CloseableResource; +import org.projectnessie.client.NessieClientBuilder; import org.projectnessie.client.api.NessieApiV1; -import org.projectnessie.client.http.HttpClientBuilder; import org.projectnessie.error.NessieNotFoundException; import org.projectnessie.model.Branch; @@ -42,7 +43,31 @@ public static NessieEnv get(ExtensionContext extensionContext) { } private NessieEnv() { - nessieApi = HttpClientBuilder.builder().withUri(NESSIE_URI).build(NessieApiV1.class); + NessieClientBuilder clientBuilder; + try { + clientBuilder = + (NessieClientBuilder) + NessieClientBuilder.class + .getDeclaredMethod("createClientBuilder", String.class, String.class) + .invoke(null, null, null); + } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException x) { + try { + clientBuilder = + (NessieClientBuilder) + Class.forName("org.projectnessie.client.http.HttpClientBuilder") + .getDeclaredMethod("builder") + .invoke(null); + } catch (ClassNotFoundException + | NoSuchMethodException + | IllegalAccessException + | InvocationTargetException e) { + e.addSuppressed(x); + throw new RuntimeException(e); + } + } + // Retain this (theoretically unnecessary) cast! Otherwise `./gradlew intTest + // -Dnessie.versionNessie=0.65.1 -Dnessie.versionIceberg=1.3.1` fails to compile. + nessieApi = (NessieApiV1) clientBuilder.withUri(NESSIE_URI).build(NessieApiV1.class); try { initialDefaultBranch = nessieApi.getDefaultBranch(); } catch (NessieNotFoundException e) {