absurdfarce commented on code in PR #2036:
URL: 
https://github.com/apache/cassandra-java-driver/pull/2036#discussion_r2043754945


##########
core/src/main/java/com/datastax/oss/driver/internal/core/context/StartupOptionsBuilder.java:
##########
@@ -142,4 +151,14 @@ protected String getDriverName() {
   protected String getDriverVersion() {
     return Session.OSS_DRIVER_COORDINATES.getVersion().toString();
   }
+
+  private String localDc(DriverExecutionProfile profile) {
+    String dc = context.getLocalDatacenter(profile.getName()); // DC set 
programmatically
+    if (dc == null && 
profile.isDefined(DefaultDriverOption.LOAD_BALANCING_LOCAL_DATACENTER)) {
+      dc =
+          profile.getString(
+              DefaultDriverOption.LOAD_BALANCING_LOCAL_DATACENTER); // DC from 
configuration
+    }
+    return dc;
+  }

Review Comment:
   DefaultDriverContext already defines [lazy 
instantiation](https://github.com/apache/cassandra-java-driver/blob/4.19.0/core/src/main/java/com/datastax/oss/driver/internal/core/context/DefaultDriverContext.java#L337-L348)
 for (and access to) the startup options map for a given run.  Rather than 
splitting the logic for determining the contents of a STARTUP message between 
DefaultDriverContext and this class the majority of the logic in this class 
should be consolidated into the existing DefaultDriverContext methods.



##########
core/src/main/java/com/datastax/oss/driver/internal/core/context/StartupOptionsBuilder.java:
##########
@@ -119,6 +122,12 @@ public Map<String, String> build() {
     if (applicationVersion != null) {
       builder.put(APPLICATION_VERSION_KEY, applicationVersion);
     }
+    if (applicationLocalDc == null) {
+      applicationLocalDc = localDc(config);

Review Comment:
   _config_ here is [just the default 
profile](https://github.com/apache/cassandra-java-driver/blob/4.19.0/core/src/main/java/com/datastax/oss/driver/internal/core/context/StartupOptionsBuilder.java#L95)
 but any profile can define a local datacenter... which in turn means we need 
to think about how execution profiles interact with this functionality.
   
   I'm going to raise this point on the JIRA ticket; I think it warrants 
further discussion.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org
For additional commands, e-mail: pr-h...@cassandra.apache.org

Reply via email to