in jdbc/sqlserver/src/main/java/com/google/cloud/sql/sqlserver/SocketFactory.java [52:78]
public SocketFactory(String socketFactoryConstructorArg) throws UnsupportedEncodingException {
List<String> s = Splitter.on('?').splitToList(socketFactoryConstructorArg);
final String instanceOrDomainName = s.get(0);
if (CloudSqlInstanceName.isValidInstanceName(instanceOrDomainName)) {
this.props.setProperty(ConnectionConfig.CLOUD_SQL_INSTANCE_PROPERTY, instanceOrDomainName);
} else {
domainName = instanceOrDomainName;
}
if (s.size() == 2 && s.get(1).length() > 0) {
Iterable<String> queryParams = Splitter.on('&').split(s.get(1));
for (String param : queryParams) {
List<String> splitParam = Splitter.on('=').splitToList(param);
if (splitParam.size() != 2
|| splitParam.get(0).length() == 0
|| splitParam.get(1).length() == 0) {
throw new IllegalArgumentException(
String.format("Malformed query param in socketFactoryConstructorArg : %s", param));
}
this.props.setProperty(
URLDecoder.decode(splitParam.get(0), "utf-8"),
URLDecoder.decode(splitParam.get(1), "utf-8"));
}
} else if (s.size() > 2) {
throw new IllegalArgumentException(
"Only one query string allowed in socketFactoryConstructorArg");
}
}