public static String buildUrl()

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();
  }