@@ -73,7 +73,7 @@ public class BigQueryConnection extends BigQueryNoOpsConnection {
7373 String connectionClassName = this .toString ();
7474 private static final String DEFAULT_JDBC_TOKEN_VALUE = "Google-BigQuery-JDBC-Driver" ;
7575 private static final String DEFAULT_VERSION = "0.0.0" ;
76- private static HeaderProvider HEADER_PROVIDER ;
76+ private HeaderProvider headerProvider ;
7777 BigQueryReadClient bigQueryReadClient = null ;
7878 BigQueryWriteClient bigQueryWriteClient = null ;
7979 BigQuery bigQuery ;
@@ -136,6 +136,7 @@ public class BigQueryConnection extends BigQueryNoOpsConnection {
136136 String requestReason ;
137137 Long connectionPoolSize ;
138138 Long listenerPoolSize ;
139+ String partnerToken ;
139140
140141 BigQueryConnection (String url ) throws IOException {
141142 this .connectionUrl = url ;
@@ -236,8 +237,9 @@ public class BigQueryConnection extends BigQueryNoOpsConnection {
236237 this .requestReason = ds .getRequestReason ();
237238 this .connectionPoolSize = ds .getConnectionPoolSize ();
238239 this .listenerPoolSize = ds .getListenerPoolSize ();
240+ this .partnerToken = ds .getPartnerToken ();
239241
240- HEADER_PROVIDER = createHeaderProvider ();
242+ this . headerProvider = createHeaderProvider ();
241243 this .bigQuery = getBigQueryConnection ();
242244 }
243245
@@ -259,19 +261,11 @@ String getLibraryVersion(Class<?> libraryClass) {
259261 return version != null ? version : DEFAULT_VERSION ;
260262 }
261263
262- private String buildPartnerToken (String url ) {
263- String partnerTokenString =
264- BigQueryJdbcUrlUtility .parsePartnerTokenProperty (url , this .connectionClassName );
265- if (partnerTokenString == null || partnerTokenString .isEmpty ()) {
266- return "" ;
267- }
268- return partnerTokenString ;
269- }
270-
271264 HeaderProvider createHeaderProvider () {
272- String partnerToken = buildPartnerToken (this .connectionUrl );
273- String headerToken =
274- DEFAULT_JDBC_TOKEN_VALUE + "/" + getLibraryVersion (this .getClass ()) + partnerToken ;
265+ String headerToken = DEFAULT_JDBC_TOKEN_VALUE + "/" + getLibraryVersion (this .getClass ());
266+ if (this .partnerToken != null && !this .partnerToken .isEmpty ()) {
267+ headerToken += this .partnerToken ;
268+ }
275269 Map <String , String > headers = new java .util .HashMap <>();
276270 headers .put ("user-agent" , headerToken );
277271 if (this .requestReason != null ) {
@@ -937,14 +931,14 @@ private BigQuery getBigQueryConnection() {
937931 bigQueryOptions .setTransportOptions (this .httpTransportOptions );
938932 }
939933
940- BigQueryOptions options = bigQueryOptions .setHeaderProvider (HEADER_PROVIDER ).build ();
934+ BigQueryOptions options = bigQueryOptions .setHeaderProvider (this . headerProvider ).build ();
941935 options .setQueryPreviewEnabled (String .valueOf (this .useStatelessQueryMode ));
942936 return options .getService ();
943937 }
944938
945939 private BigQueryReadClient getBigQueryReadClientConnection () throws IOException {
946940 BigQueryReadSettings .Builder bigQueryReadSettings =
947- BigQueryReadSettings .newBuilder ().setHeaderProvider (HEADER_PROVIDER );
941+ BigQueryReadSettings .newBuilder ().setHeaderProvider (this . headerProvider );
948942 if (getRetrySettings () != null ) {
949943 bigQueryReadSettings .createReadSessionSettings ().setRetrySettings (getRetrySettings ());
950944 }
@@ -986,7 +980,7 @@ private BigQueryReadClient getBigQueryReadClientConnection() throws IOException
986980
987981 private BigQueryWriteClient getBigQueryWriteClientConnection () throws IOException {
988982 BigQueryWriteSettings .Builder bigQueryWriteSettings =
989- BigQueryWriteSettings .newBuilder ().setHeaderProvider (HEADER_PROVIDER );
983+ BigQueryWriteSettings .newBuilder ().setHeaderProvider (this . headerProvider );
990984 if (getRetrySettings () != null ) {
991985 bigQueryWriteSettings .createWriteStreamSettings ().setRetrySettings (getRetrySettings ());
992986 }
0 commit comments