From ba05959b1d2a0d91f90060c2edbdd5df8ece7ff5 Mon Sep 17 00:00:00 2001 From: Moritz Kaufmann Date: Thu, 6 Feb 2025 17:27:53 +0100 Subject: [PATCH] fix: Remove redundant header `grpc.max_metadata_size` gRPC doesn't support setting `max_metadata_size` through the header, thus removing transmission through the header. --- .../jdbc/core/DataCloudConnection.java | 2 - .../MaxMetadataSizeHeaderInterceptor.java | 33 --------------- .../jdbc/interceptor/EmittedHeaderTest.java | 6 --- .../HyperDefaultsHeaderInterceptorTest.java | 41 ------------------- 4 files changed, 82 deletions(-) delete mode 100644 src/main/java/com/salesforce/datacloud/jdbc/interceptor/MaxMetadataSizeHeaderInterceptor.java delete mode 100644 src/test/java/com/salesforce/datacloud/jdbc/interceptor/HyperDefaultsHeaderInterceptorTest.java diff --git a/src/main/java/com/salesforce/datacloud/jdbc/core/DataCloudConnection.java b/src/main/java/com/salesforce/datacloud/jdbc/core/DataCloudConnection.java index 5bbe97c..4d2406c 100644 --- a/src/main/java/com/salesforce/datacloud/jdbc/core/DataCloudConnection.java +++ b/src/main/java/com/salesforce/datacloud/jdbc/core/DataCloudConnection.java @@ -28,7 +28,6 @@ import com.salesforce.datacloud.jdbc.interceptor.DataspaceHeaderInterceptor; import com.salesforce.datacloud.jdbc.interceptor.HyperExternalClientContextHeaderInterceptor; import com.salesforce.datacloud.jdbc.interceptor.HyperWorkloadHeaderInterceptor; -import com.salesforce.datacloud.jdbc.interceptor.MaxMetadataSizeHeaderInterceptor; import com.salesforce.datacloud.jdbc.interceptor.TracingHeadersInterceptor; import io.grpc.ClientInterceptor; import io.grpc.ManagedChannelBuilder; @@ -124,7 +123,6 @@ static List getClientInterceptors( AuthorizationHeaderInterceptor authInterceptor, Properties properties) { return Stream.of( authInterceptor, - new MaxMetadataSizeHeaderInterceptor(), TracingHeadersInterceptor.of(), HyperExternalClientContextHeaderInterceptor.of(properties), HyperWorkloadHeaderInterceptor.of(properties), diff --git a/src/main/java/com/salesforce/datacloud/jdbc/interceptor/MaxMetadataSizeHeaderInterceptor.java b/src/main/java/com/salesforce/datacloud/jdbc/interceptor/MaxMetadataSizeHeaderInterceptor.java deleted file mode 100644 index 5d62ba4..0000000 --- a/src/main/java/com/salesforce/datacloud/jdbc/interceptor/MaxMetadataSizeHeaderInterceptor.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2024, Salesforce, Inc. - * - * 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 com.salesforce.datacloud.jdbc.interceptor; - -import static com.salesforce.datacloud.jdbc.interceptor.MetadataUtilities.keyOf; - -import io.grpc.Metadata; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.ToString; - -@Getter -@ToString -@NoArgsConstructor -public class MaxMetadataSizeHeaderInterceptor implements SingleHeaderMutatingClientInterceptor { - private final String value = String.valueOf(1024 * 1024); - - @ToString.Exclude - private final Metadata.Key key = keyOf("grpc.max_metadata_size"); -} diff --git a/src/test/java/com/salesforce/datacloud/jdbc/interceptor/EmittedHeaderTest.java b/src/test/java/com/salesforce/datacloud/jdbc/interceptor/EmittedHeaderTest.java index b726318..8bd6643 100644 --- a/src/test/java/com/salesforce/datacloud/jdbc/interceptor/EmittedHeaderTest.java +++ b/src/test/java/com/salesforce/datacloud/jdbc/interceptor/EmittedHeaderTest.java @@ -82,12 +82,6 @@ private static Stream cases() { val v = DriverVersion.formatDriverInfo(); return Stream.of( - argumentSet( - "max metadata size is registered", - "grpc.max_metadata_size", - null, - null, - String.valueOf(1024 * 1024)), argumentSet("workload has a sensible default", WORKLOAD, null, null, "jdbcv3"), argumentSet("workload can be overridden", WORKLOAD, trim(WORKLOAD), workload, workload), argumentSet("client context is ignored if not provided", CONTEXT, null, null, null), diff --git a/src/test/java/com/salesforce/datacloud/jdbc/interceptor/HyperDefaultsHeaderInterceptorTest.java b/src/test/java/com/salesforce/datacloud/jdbc/interceptor/HyperDefaultsHeaderInterceptorTest.java deleted file mode 100644 index b8ced81..0000000 --- a/src/test/java/com/salesforce/datacloud/jdbc/interceptor/HyperDefaultsHeaderInterceptorTest.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2024, Salesforce, Inc. - * - * 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 com.salesforce.datacloud.jdbc.interceptor; - -import static io.grpc.Metadata.ASCII_STRING_MARSHALLER; -import static org.assertj.core.api.Assertions.assertThat; - -import io.grpc.Metadata; -import java.util.Objects; -import lombok.val; -import org.junit.jupiter.api.Test; - -class HyperDefaultsHeaderInterceptorTest { - - private static final MaxMetadataSizeHeaderInterceptor sut = new MaxMetadataSizeHeaderInterceptor(); - - @Test - void setsMaxSize() { - val key = Metadata.Key.of("grpc.max_metadata_size", ASCII_STRING_MARSHALLER); - assertThat(Integer.parseInt(Objects.requireNonNull(actual().get(key)))).isEqualTo(1024 * 1024); - } - - private static Metadata actual() { - val metadata = new Metadata(); - sut.mutate(metadata); - return metadata; - } -}