diff --git a/api/client/src/main/java/org/projectnessie/client/http/HttpClientBuilder.java b/api/client/src/main/java/org/projectnessie/client/http/HttpClientBuilder.java
deleted file mode 100644
index 5971e5996b4..00000000000
--- a/api/client/src/main/java/org/projectnessie/client/http/HttpClientBuilder.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (C) 2020 Dremio
- *
- * Licensed 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.
- */
-package org.projectnessie.client.http;
-
-import static org.projectnessie.client.NessieConfigConstants.CONF_ENABLE_API_COMPATIBILITY_CHECK;
-
-import java.net.URI;
-import java.util.function.Function;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLParameters;
-import org.projectnessie.client.NessieClientBuilder;
-import org.projectnessie.client.api.NessieApi;
-import org.projectnessie.client.auth.NessieAuthentication;
-
-/**
- * This is the deprecated builder class to create a {@link NessieApi} instance for
- * HTTP/REST.
- *
- *
Note that this class does not build an HTTP client but a Nessie API client.
- *
- * @deprecated This class is deprecated for removal. Migrate your code to use {@link
- * NessieClientBuilder#createClientBuilder(String, String)}
- */
-@Deprecated
-public class HttpClientBuilder extends NessieHttpClientBuilderImpl {
-
- @Deprecated // for removal
- public static final String ENABLE_API_COMPATIBILITY_CHECK_SYSTEM_PROPERTY =
- CONF_ENABLE_API_COMPATIBILITY_CHECK;
-
- public HttpClientBuilder() {}
-
- /**
- * Migrate calling code to use {@link
- * NessieClientBuilder#createClientBuilderFromSystemSettings()}.
- */
- @Deprecated
- public static HttpClientBuilder builder() {
- return new HttpClientBuilder();
- }
-
- @Override
- public HttpClientBuilder withUri(String uri) {
- return (HttpClientBuilder) super.withUri(uri);
- }
-
- @SuppressWarnings("deprecation")
- @Override
- public HttpClientBuilder fromSystemProperties() {
- return (HttpClientBuilder) super.fromSystemProperties();
- }
-
- @Override
- public HttpClientBuilder fromConfig(Function configuration) {
- return (HttpClientBuilder) super.fromConfig(configuration);
- }
-
- @Override
- public HttpClientBuilder withAuthenticationFromConfig(Function configuration) {
- return (HttpClientBuilder) super.withAuthenticationFromConfig(configuration);
- }
-
- @Override
- public HttpClientBuilder withUri(URI uri) {
- return (HttpClientBuilder) super.withUri(uri);
- }
-
- @Override
- public HttpClientBuilder withAuthentication(NessieAuthentication authentication) {
- return (HttpClientBuilder) super.withAuthentication(authentication);
- }
-
- @Override
- public HttpClientBuilder withTracing(boolean tracing) {
- return (HttpClientBuilder) super.withTracing(tracing);
- }
-
- @Override
- public HttpClientBuilder withReadTimeout(int readTimeoutMillis) {
- return (HttpClientBuilder) super.withReadTimeout(readTimeoutMillis);
- }
-
- @Override
- public HttpClientBuilder withConnectionTimeout(int connectionTimeoutMillis) {
- return (HttpClientBuilder) super.withConnectionTimeout(connectionTimeoutMillis);
- }
-
- @Override
- public HttpClientBuilder withDisableCompression(boolean disableCompression) {
- return (HttpClientBuilder) super.withDisableCompression(disableCompression);
- }
-
- @Override
- public HttpClientBuilder withSSLCertificateVerificationDisabled(
- boolean certificateVerificationDisabled) {
- return (HttpClientBuilder)
- super.withSSLCertificateVerificationDisabled(certificateVerificationDisabled);
- }
-
- @Override
- public HttpClientBuilder withSSLContext(SSLContext sslContext) {
- return (HttpClientBuilder) super.withSSLContext(sslContext);
- }
-
- @Override
- public HttpClientBuilder withSSLParameters(SSLParameters sslParameters) {
- return (HttpClientBuilder) super.withSSLParameters(sslParameters);
- }
-
- @Override
- public HttpClientBuilder withHttp2Upgrade(boolean http2Upgrade) {
- return (HttpClientBuilder) super.withHttp2Upgrade(http2Upgrade);
- }
-
- @Override
- public HttpClientBuilder withFollowRedirects(String redirects) {
- return (HttpClientBuilder) super.withFollowRedirects(redirects);
- }
-
- @Override
- @Deprecated
- @SuppressWarnings("deprecation")
- public HttpClientBuilder withForceUrlConnectionClient(boolean forceUrlConnectionClient) {
- return (HttpClientBuilder) super.withForceUrlConnectionClient(forceUrlConnectionClient);
- }
-
- @Override
- public HttpClientBuilder withClientName(String clientName) {
- return (HttpClientBuilder) super.withClientName(clientName);
- }
-
- @Override
- public HttpClientBuilder withApiCompatibilityCheck(boolean enable) {
- return (HttpClientBuilder) super.withApiCompatibilityCheck(enable);
- }
-
- @Override
- public HttpClientBuilder withResponseFactory(HttpResponseFactory responseFactory) {
- return (HttpClientBuilder) super.withResponseFactory(responseFactory);
- }
-
- @Override
- public HttpClientBuilder addRequestFilter(RequestFilter filter) {
- return (HttpClientBuilder) super.addRequestFilter(filter);
- }
-
- @Override
- public HttpClientBuilder addResponseFilter(ResponseFilter filter) {
- return (HttpClientBuilder) super.addResponseFilter(filter);
- }
-
- @Override
- public API build(Class apiVersion) {
- return super.build(apiVersion);
- }
-}
diff --git a/compatibility/common/src/main/java/org/projectnessie/tools/compatibility/api/NessieAPI.java b/compatibility/common/src/main/java/org/projectnessie/tools/compatibility/api/NessieAPI.java
index 2f0534fa9ca..3ceed8cd20d 100644
--- a/compatibility/common/src/main/java/org/projectnessie/tools/compatibility/api/NessieAPI.java
+++ b/compatibility/common/src/main/java/org/projectnessie/tools/compatibility/api/NessieAPI.java
@@ -34,7 +34,9 @@
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface NessieAPI {
- String builderClassName() default "org.projectnessie.client.http.HttpClientBuilder";
+ String DEFAULT_BUILDER_CLASS_NAME = "_DEFAULT_BUILDER_CLASS_NAME_";
+
+ String builderClassName() default DEFAULT_BUILDER_CLASS_NAME;
/**
* Defines the target Nessie version instance in case multiple Nessie versions are running, for
diff --git a/compatibility/common/src/main/java/org/projectnessie/tools/compatibility/internal/AbstractNessieApiHolder.java b/compatibility/common/src/main/java/org/projectnessie/tools/compatibility/internal/AbstractNessieApiHolder.java
index 5ece3d31da2..78def628fac 100644
--- a/compatibility/common/src/main/java/org/projectnessie/tools/compatibility/internal/AbstractNessieApiHolder.java
+++ b/compatibility/common/src/main/java/org/projectnessie/tools/compatibility/internal/AbstractNessieApiHolder.java
@@ -124,6 +124,10 @@ protected static AutoCloseable createNessieClient(ClassLoader classLoader, Clien
Class> nessieClientBuilderClass =
classLoader.loadClass("org.projectnessie.client.NessieClientBuilder");
String builderClass = clientKey.getBuilderClass();
+ if (NessieAPI.DEFAULT_BUILDER_CLASS_NAME.equals(builderClass)) {
+ builderClass = null;
+ }
+
try {
// New functionality using NessieClientBuilder and the service loader mechanism.
Method createClientBuilderMethod =
@@ -131,6 +135,11 @@ protected static AutoCloseable createNessieClient(ClassLoader classLoader, Clien
"createClientBuilder", String.class, String.class);
builderInstance = createClientBuilderMethod.invoke(null, null, builderClass);
} catch (NoSuchMethodException ignore) {
+ if (builderClass == null) {
+ // Fall back to legacy (and now removed) HttpClientBuilder. See
+ // https://github.com/projectnessie/nessie/pull/7803
+ builderClass = "org.projectnessie.client.http.HttpClientBuilder";
+ }
Class> builderClazz = classLoader.loadClass(builderClass);
builderInstance = builderClazz.getMethod("builder").invoke(null);
}
diff --git a/compatibility/common/src/test/java/org/projectnessie/tools/compatibility/internal/TestNessieApiHolder.java b/compatibility/common/src/test/java/org/projectnessie/tools/compatibility/internal/TestNessieApiHolder.java
index b4e536a1f63..5b532430803 100644
--- a/compatibility/common/src/test/java/org/projectnessie/tools/compatibility/internal/TestNessieApiHolder.java
+++ b/compatibility/common/src/test/java/org/projectnessie/tools/compatibility/internal/TestNessieApiHolder.java
@@ -55,7 +55,7 @@ void currentVersionServer() {
new CurrentNessieApiHolder(
new ClientKey(
Version.CURRENT,
- "org.projectnessie.client.http.HttpClientBuilder",
+ "org.projectnessie.client.http.NessieHttpClientBuilderImpl",
NessieApiV1.class,
ImmutableMap.of(
"nessie.uri", "http://127.42.42.42:19120",
diff --git a/compatibility/common/src/test/java/org/projectnessie/tools/compatibility/internal/TestNessieCompatibilityExtensions.java b/compatibility/common/src/test/java/org/projectnessie/tools/compatibility/internal/TestNessieCompatibilityExtensions.java
index 7a274ac60c2..ee5d141b7a9 100644
--- a/compatibility/common/src/test/java/org/projectnessie/tools/compatibility/internal/TestNessieCompatibilityExtensions.java
+++ b/compatibility/common/src/test/java/org/projectnessie/tools/compatibility/internal/TestNessieCompatibilityExtensions.java
@@ -209,6 +209,7 @@ void upgrade() {
soft.assertThat(UpgradeSample.never).isEmpty();
}
+ @SuppressWarnings({"JUnitMalformedDeclaration", "NewClassNamingConvention"})
@ExtendWith({OlderNessieClientsExtension.class, SoftAssertionsExtension.class})
static class OldClientsSample {
@InjectSoftAssertions protected SoftAssertions soft;
@@ -254,6 +255,7 @@ void never() {
}
}
+ @SuppressWarnings({"JUnitMalformedDeclaration", "NewClassNamingConvention"})
@ExtendWith({OlderNessieServersExtension.class, SoftAssertionsExtension.class})
static class OldServersSample {
@InjectSoftAssertions protected SoftAssertions soft;
@@ -304,6 +306,7 @@ void never() {
}
}
+ @SuppressWarnings({"JUnitMalformedDeclaration", "NewClassNamingConvention"})
@ExtendWith({OlderNessieServersExtension.class, SoftAssertionsExtension.class})
static class ApiEndpointServerSample {
@InjectSoftAssertions protected SoftAssertions soft;
@@ -318,7 +321,7 @@ static class ApiEndpointServerSample {
static final List allVersions = new ArrayList<>();
@Test
- void testSome() throws Exception {
+ void testSome() {
soft.assertThat(api).isNotNull().isSameAs(apiStatic);
soft.assertThat(uri).isNotNull().isEqualTo(uriStatic);
soft.assertThat(version).isNotNull().isEqualTo(versionStatic);
@@ -330,6 +333,7 @@ void testSome() throws Exception {
}
}
+ @SuppressWarnings({"JUnitMalformedDeclaration", "NewClassNamingConvention"})
@ExtendWith(OlderNessieServersExtension.class)
static class OuterSample {
static final List outerVersions = new ArrayList<>();
@@ -353,6 +357,7 @@ void inner() {
}
}
+ @SuppressWarnings({"JUnitMalformedDeclaration", "NewClassNamingConvention"})
@ExtendWith({NessieUpgradesExtension.class, SoftAssertionsExtension.class})
static class UpgradeSample {
@InjectSoftAssertions protected SoftAssertions soft;
@@ -398,6 +403,7 @@ void never() {
}
}
+ @SuppressWarnings({"JUnitMalformedDeclaration", "NewClassNamingConvention"})
@ExtendWith(OlderNessieClientsExtension.class)
@ExtendWith(OlderNessieServersExtension.class)
static class TooManyExtensions1 {
@@ -405,6 +411,7 @@ static class TooManyExtensions1 {
void testSome() {}
}
+ @SuppressWarnings({"JUnitMalformedDeclaration", "NewClassNamingConvention"})
@ExtendWith(OlderNessieClientsExtension.class)
@ExtendWith(NessieUpgradesExtension.class)
static class TooManyExtensions2 {
@@ -412,6 +419,7 @@ static class TooManyExtensions2 {
void testSome() {}
}
+ @SuppressWarnings({"JUnitMalformedDeclaration", "NewClassNamingConvention"})
@ExtendWith(NessieUpgradesExtension.class)
@ExtendWith(OlderNessieServersExtension.class)
static class TooManyExtensions3 {
@@ -419,6 +427,7 @@ static class TooManyExtensions3 {
void testSome() {}
}
+ @SuppressWarnings({"JUnitMalformedDeclaration", "NewClassNamingConvention"})
@ExtendWith(OlderNessieClientsExtension.class)
@ExtendWith(OlderNessieServersExtension.class)
@ExtendWith(NessieUpgradesExtension.class)