@@ -436,6 +436,7 @@ public enum ClickHouseClientOption implements ClickHouseOption {
436436 private static final Map <String , ClickHouseClientOption > options ;
437437
438438 static final String UNKNOWN = "unknown" ;
439+ public static final String LATEST_KNOWN_VERSION = "0.6.3" ;
439440
440441 /**
441442 * Semantic version of the product.
@@ -480,9 +481,11 @@ public enum ClickHouseClientOption implements ClickHouseOption {
480481 ver = parts [3 ];
481482 PRODUCT_REVISION = ver .substring (0 , ver .length () - 1 );
482483 } else { // perhaps try harder by checking version from pom.xml?
483- PRODUCT_VERSION = UNKNOWN ;
484+ PRODUCT_VERSION = LATEST_KNOWN_VERSION ;
484485 PRODUCT_REVISION = UNKNOWN ;
485486 }
487+
488+
486489 CLIENT_OS_INFO = new StringBuilder ().append (getSystemConfig ("os.name" , "O/S" )).append ('/' )
487490 .append (getSystemConfig ("os.version" , UNKNOWN )).toString ();
488491 String javaVersion = System .getProperty ("java.vendor.version" );
@@ -510,15 +513,18 @@ public enum ClickHouseClientOption implements ClickHouseOption {
510513 * @param additionalProperty additional property if any
511514 * @return non-empty user-agent
512515 */
513- public static final String buildUserAgent (String productName , String additionalProperty ) {
514- productName = productName == null || productName .isEmpty () ? (String ) PRODUCT_NAME .getEffectiveDefaultValue ()
515- : productName .trim ();
516- StringBuilder builder = new StringBuilder (productName ).append ('/' ).append (PRODUCT_VERSION ).append (" (" )
517- .append (CLIENT_OS_INFO ).append ("; " ).append (CLIENT_JVM_INFO );
516+ public static String buildUserAgent (String productName , String additionalProperty ) {
517+ productName = productName == null || productName .isEmpty () ? (String ) PRODUCT_NAME .getEffectiveDefaultValue () : productName .trim ();
518+ StringBuilder builder = new StringBuilder (productName ).append (PRODUCT_VERSION .isEmpty () ? "" : "/" + PRODUCT_VERSION );
519+
520+ if (!String .valueOf (PRODUCT_NAME .getDefaultValue ()).equals (productName )) {//Append if someone changed the original value
521+ builder .append (" " ).append (PRODUCT_NAME .getDefaultValue ()).append (LATEST_KNOWN_VERSION );
522+ }
523+ builder .append (" (" ).append (CLIENT_JVM_INFO );
518524 if (additionalProperty != null && !additionalProperty .isEmpty ()) {
519525 builder .append ("; " ).append (additionalProperty .trim ());
520526 }
521- return builder .append ("; rv:" ). append ( PRODUCT_REVISION ). append ( ')' ).toString ();
527+ return builder .append (")" ).toString ();
522528 }
523529
524530 /**
0 commit comments