Skip to content

Commit

Permalink
chore: Use domain name from R2DBC connections when configuring the co…
Browse files Browse the repository at this point in the history
…nnector.
  • Loading branch information
hessjcg committed Jan 23, 2025
1 parent 1f19f2b commit fe9437a
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,22 @@ public ConnectionFactory create(ConnectionFactoryOptions connectionFactoryOption
? RefreshStrategy.LAZY
: RefreshStrategy.BACKGROUND;

final String r2dbcHostname = (String) connectionFactoryOptions.getRequiredValue(HOST);
final String cloudSqlInstance;
final String domainName;
if (CloudSqlInstanceName.isValidInstanceName(r2dbcHostname)) {
cloudSqlInstance = r2dbcHostname;
domainName = null;
} else {
cloudSqlInstance = null;
domainName = r2dbcHostname;
}

Builder optionBuilder = createBuilder(connectionFactoryOptions);
String cloudSqlInstance = (String) connectionFactoryOptions.getRequiredValue(HOST);
ConnectionConfig config =
new ConnectionConfig.Builder()
.withCloudSqlInstance(cloudSqlInstance)
.withDomainName(domainName)
.withAuthType(enableIamAuth ? AuthType.IAM : AuthType.PASSWORD)
.withIpTypes(ipTypes)
.withNamedConnector(namedConnector)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,20 @@ public void testCreateWithAdminApiOptions() {
assertThat(config.getConnectorConfig().getAdminServicePath()).isEqualTo("/service");
}

@Test
public void testCreateWithDomainName() {

ConnectionFactoryOptions.Builder options = ConnectionFactoryOptions.builder();
options.option(ConnectionFactoryOptions.PROTOCOL, "cloudsql");
options.option(ConnectionFactoryOptions.HOST, "db.example.com");

StubConnectionFactory factory = configureConnection(options.build());
ConnectionConfig config = factory.config;

assertThat(config.getDomainName()).isEqualTo("db.example.com");
assertThat(config.getCloudSqlInstance()).isNull();
}

private static class StubConnectionFactory implements ConnectionFactory {

final ConnectionConfig config;
Expand Down

0 comments on commit fe9437a

Please sign in to comment.