String baseUri = getEndpointProtocol() + "://" + username + getHost();
baseUri += getPort() != null ? ":" + getPort() : "";
baseUri += getDirectory() != null ? "/" + getDirectory() : "";
QueryString queryStr = new QueryString();
traverseConfiguration(children, queryStr, HOST, PORT, USERNAME, PASSWORD, DIRECTORY);
return URI.create(baseUri + queryStr.toString());
}