Skip to content

Commit e680572

Browse files
fix(bigquery-jdbc): fix shading exclusions and telemetry credentials (#13515)
b/524234554 This PR fixes two issues in the OpenTelemetry implementation within the BigQuery JDBC driver: 1. **Shading/Relocation namespace exclusions**: Corrects the API shading rules to recursively exclude nested OpenTelemetry API subpackages. This resolves dependency conflicts and `AbstractMethodError` crashes when client applications inject custom OTel SDK instances. 2. **Telemetry Credentials Resolution bug**: Fixes an `IllegalArgumentException` thrown when parsing OAuth authentication types during zero-config credentials initialization.
1 parent b33249f commit e680572

2 files changed

Lines changed: 12 additions & 8 deletions

File tree

java-bigquery-jdbc/pom.xml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@
8787
<ignoredUnusedDeclaredDependency>io.opentelemetry.contrib:opentelemetry-gcp-auth-extension</ignoredUnusedDeclaredDependency>
8888
<ignoredUnusedDeclaredDependency>io.opentelemetry:opentelemetry-exporter-otlp</ignoredUnusedDeclaredDependency>
8989
</ignoredUnusedDeclaredDependencies>
90+
<ignoredDependencies>
91+
<ignoredDependency>io.opentelemetry:opentelemetry-sdk-logs</ignoredDependency>
92+
</ignoredDependencies>
9093
</configuration>
9194
</plugin>
9295
<plugin>
@@ -179,8 +182,8 @@
179182
version mismatches, but this is a necessary trade-off for the OpenTelemetry
180183
integration to function correctly across different applications.
181184
-->
182-
<exclude>io.opentelemetry.api.*</exclude>
183-
<exclude>io.opentelemetry.context.*</exclude>
185+
<exclude>io.opentelemetry.api.**</exclude>
186+
<exclude>io.opentelemetry.context.**</exclude>
184187
</excludes>
185188
</relocation>
186189
<relocation>
@@ -382,6 +385,10 @@
382385
<groupId>io.opentelemetry</groupId>
383386
<artifactId>opentelemetry-sdk-extension-autoconfigure-spi</artifactId>
384387
</dependency>
388+
<dependency>
389+
<groupId>io.opentelemetry</groupId>
390+
<artifactId>opentelemetry-sdk-logs</artifactId>
391+
</dependency>
385392
<dependency>
386393
<groupId>io.opentelemetry.contrib</groupId>
387394
<artifactId>opentelemetry-gcp-auth-extension</artifactId>
@@ -442,11 +449,6 @@
442449
<artifactId>opentelemetry-sdk-testing</artifactId>
443450
<scope>test</scope>
444451
</dependency>
445-
<dependency>
446-
<groupId>io.opentelemetry</groupId>
447-
<artifactId>opentelemetry-sdk-logs</artifactId>
448-
<scope>test</scope>
449-
</dependency>
450452
<dependency>
451453
<groupId>com.google.cloud</groupId>
452454
<artifactId>google-cloud-trace</artifactId>

java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOpenTelemetry.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,9 @@ public static Logging createLoggingClient(
209209

210210
private static Credentials resolveCredentialsFromString(String credsString) {
211211
Map<String, String> authProperties = new java.util.HashMap<>();
212-
authProperties.put(BigQueryJdbcUrlUtility.OAUTH_TYPE_PROPERTY_NAME, "0"); // Service Account
212+
authProperties.put(
213+
BigQueryJdbcUrlUtility.OAUTH_TYPE_PROPERTY_NAME,
214+
BigQueryJdbcOAuthUtility.AuthType.GOOGLE_SERVICE_ACCOUNT.name()); // Service Account
213215

214216
byte[] credsBytes = credsString.getBytes(StandardCharsets.UTF_8);
215217
if (BigQueryJdbcOAuthUtility.isJson(credsBytes)) {

0 commit comments

Comments
 (0)