5858 * <li><code>gzipThreshold</code> - threshold when gzip compression is used for writing points to InfluxDB</li>
5959 * <li><code>writeNoSync</code> - skip waiting for WAL persistence on write</li>
6060 * <li><code>writeAcceptPartial</code> - accept partial writes</li>
61+ * <li><code>writeUseV2Api</code> - use v2 compatibility write endpoint</li>
6162 * <li><code>timeout</code> - <i>deprecated in 1.4.0</i> timeout when connecting to InfluxDB,
6263 * please use more informative properties <code>writeTimeout</code> and <code>queryTimeout</code></li>
6364 * <li><code>writeTimeout</code> - timeout when writing data to InfluxDB</li>
@@ -109,6 +110,7 @@ public final class ClientConfig {
109110 private final Integer gzipThreshold ;
110111 private final Boolean writeNoSync ;
111112 private final Boolean writeAcceptPartial ;
113+ private final Boolean writeUseV2Api ;
112114 private final Map <String , String > defaultTags ;
113115 @ Deprecated
114116 private final Duration timeout ;
@@ -220,6 +222,16 @@ public Boolean getWriteAcceptPartial() {
220222 return writeAcceptPartial ;
221223 }
222224
225+ /**
226+ * Use v2 compatibility write endpoint?
227+ *
228+ * @return use v2 compatibility write endpoint
229+ */
230+ @ Nonnull
231+ public Boolean getWriteUseV2Api () {
232+ return writeUseV2Api ;
233+ }
234+
223235 /**
224236 * Gets default tags used when writing points.
225237 * @return default tags
@@ -383,6 +395,7 @@ public boolean equals(final Object o) {
383395 && Objects .equals (gzipThreshold , that .gzipThreshold )
384396 && Objects .equals (writeNoSync , that .writeNoSync )
385397 && Objects .equals (writeAcceptPartial , that .writeAcceptPartial )
398+ && Objects .equals (writeUseV2Api , that .writeUseV2Api )
386399 && Objects .equals (defaultTags , that .defaultTags )
387400 && Objects .equals (timeout , that .timeout )
388401 && Objects .equals (writeTimeout , that .writeTimeout )
@@ -401,7 +414,7 @@ public boolean equals(final Object o) {
401414 @ Override
402415 public int hashCode () {
403416 return Objects .hash (host , Arrays .hashCode (token ), authScheme , organization ,
404- database , writePrecision , gzipThreshold , writeNoSync , writeAcceptPartial ,
417+ database , writePrecision , gzipThreshold , writeNoSync , writeAcceptPartial , writeUseV2Api ,
405418 timeout , writeTimeout , queryTimeout , allowHttpRedirects , disableServerCertificateValidation ,
406419 proxy , proxyUrl , authenticator , headers ,
407420 defaultTags , sslRootsFilePath , disableGRPCCompression , interceptors );
@@ -417,6 +430,7 @@ public String toString() {
417430 .add ("gzipThreshold=" + gzipThreshold )
418431 .add ("writeNoSync=" + writeNoSync )
419432 .add ("writeAcceptPartial=" + writeAcceptPartial )
433+ .add ("writeUseV2Api=" + writeUseV2Api )
420434 .add ("timeout=" + timeout )
421435 .add ("writeTimeout=" + writeTimeout )
422436 .add ("queryTimeout=" + queryTimeout )
@@ -447,6 +461,7 @@ public static final class Builder {
447461 private Integer gzipThreshold ;
448462 private Boolean writeNoSync ;
449463 private Boolean writeAcceptPartial ;
464+ private Boolean writeUseV2Api ;
450465 private Map <String , String > defaultTags ;
451466 @ Deprecated
452467 private Duration timeout ;
@@ -582,6 +597,19 @@ public Builder writeAcceptPartial(@Nullable final Boolean writeAcceptPartial) {
582597 return this ;
583598 }
584599
600+ /**
601+ * Sets whether to use v2 compatibility write endpoint.
602+ *
603+ * @param writeUseV2Api use v2 compatibility write endpoint
604+ * @return this
605+ */
606+ @ Nonnull
607+ public Builder writeUseV2Api (@ Nullable final Boolean writeUseV2Api ) {
608+
609+ this .writeUseV2Api = writeUseV2Api ;
610+ return this ;
611+ }
612+
585613 /**
586614 * Sets default tags to be written with points.
587615 *
@@ -831,6 +859,9 @@ public ClientConfig build(@Nonnull final String connectionString) throws Malform
831859 if (parameters .containsKey ("writeAcceptPartial" )) {
832860 this .writeAcceptPartial (Boolean .parseBoolean (parameters .get ("writeAcceptPartial" )));
833861 }
862+ if (parameters .containsKey ("writeUseV2Api" )) {
863+ this .writeUseV2Api (Boolean .parseBoolean (parameters .get ("writeUseV2Api" )));
864+ }
834865 if (parameters .containsKey ("disableGRPCCompression" )) {
835866 this .disableGRPCCompression (Boolean .parseBoolean (parameters .get ("disableGRPCCompression" )));
836867 }
@@ -890,6 +921,10 @@ public ClientConfig build(@Nonnull final Map<String, String> env, final Properti
890921 if (writeAcceptPartial != null ) {
891922 this .writeAcceptPartial (Boolean .parseBoolean (writeAcceptPartial ));
892923 }
924+ final String writeUseV2Api = get .apply ("INFLUX_WRITE_USE_V2_API" , "influx.writeUseV2Api" );
925+ if (writeUseV2Api != null ) {
926+ this .writeUseV2Api (Boolean .parseBoolean (writeUseV2Api ));
927+ }
893928 final String writeTimeout = get .apply ("INFLUX_WRITE_TIMEOUT" , "influx.writeTimeout" );
894929 if (writeTimeout != null ) {
895930 long to = Long .parseLong (writeTimeout );
@@ -949,6 +984,9 @@ private ClientConfig(@Nonnull final Builder builder) {
949984 writeAcceptPartial = builder .writeAcceptPartial != null
950985 ? builder .writeAcceptPartial
951986 : WriteOptions .DEFAULT_ACCEPT_PARTIAL ;
987+ writeUseV2Api = builder .writeUseV2Api != null
988+ ? builder .writeUseV2Api
989+ : WriteOptions .DEFAULT_USE_V2_API ;
952990 defaultTags = builder .defaultTags ;
953991 timeout = builder .timeout != null ? builder .timeout : Duration .ofSeconds (WriteOptions .DEFAULT_WRITE_TIMEOUT );
954992 writeTimeout = builder .writeTimeout != null
0 commit comments