in wrapper/src/main/java/software/amazon/jdbc/util/ConnectionUrlBuilder.java [63:107]
public static String buildUrl(final String jdbcProtocol,
final HostSpec hostSpec,
final Properties props) throws SQLException {
if (StringUtils.isNullOrEmpty(jdbcProtocol) || hostSpec == null) {
throw new SQLException(Messages.get("ConnectionUrlBuilder.missingJdbcProtocol"));
}
final Properties copy = PropertyUtils.copyProperties(props);
final StringBuilder urlBuilder = new StringBuilder();
urlBuilder.append(jdbcProtocol);
if (!jdbcProtocol.endsWith("//")) {
urlBuilder.append("//");
}
urlBuilder.append(hostSpec.getUrl());
if (!StringUtils.isNullOrEmpty(PropertyDefinition.DATABASE.getString(copy))) {
urlBuilder.append(PropertyDefinition.DATABASE.getString(copy));
copy.remove(PropertyDefinition.DATABASE.name);
}
final StringBuilder queryBuilder = new StringBuilder();
final Enumeration<?> propertyNames = copy.propertyNames();
while (propertyNames.hasMoreElements()) {
final String propertyName = propertyNames.nextElement().toString();
if (propertyName != null && !propertyName.trim().equals("")) {
if (queryBuilder.length() != 0) {
queryBuilder.append("&");
}
final String propertyValue = copy.getProperty(propertyName);
queryBuilder
.append(propertyName)
.append("=")
.append(propertyValue);
}
}
if (queryBuilder.length() != 0) {
urlBuilder.append("?").append(queryBuilder);
}
return urlBuilder.toString();
}