public List<URI> downloadDependencies(URI uri) throws URISyntaxException, IOException {
Map<String, Object> dependencyMap = new HashMap<String, Object>();
String authority = uri.getAuthority();
if (authority == null) {
throw new URISyntaxException(authority, "Invalid url: Expected 'org:module:version', found null");
}
String[] authorityTokens = authority.toLowerCase().split(":");
if (authorityTokens.length != 3) {
throw new URISyntaxException(authority, "Invalid url: Expected 'org:module:version', found " + authority);
}
dependencyMap.put("org", authorityTokens[0]);
dependencyMap.put("module", authorityTokens[1]);
dependencyMap.put("version", authorityTokens[2]);
Map<String, Object> queryMap = parseQueryString(uri.getQuery());
if (queryMap != null) {
dependencyMap.putAll(queryMap);
}
return grab(dependencyMap);
}