+ if (uri != null) {
+ if (uri.startsWith("http"))// http, https
+ repository = createRemoteRepository(uri);
+ else if (uri.startsWith("vm")) {
+ try {
+ URI uriObj = new URI(uri);
+ String alias = uriObj.getPath();
+ if (alias.charAt(0) == '/')
+ alias = alias.substring(1);
+ if (alias.charAt(alias.length() - 1) == '/')
+ alias = alias.substring(0, alias.length() - 1);
+ repository = getRepositoryByAlias(alias);
+ } catch (URISyntaxException e) {
+ throw new ArgeoException("Cannot interpret URI " + uri, e);
+ }
+ }
+ }
+
+ // publish under alias
+ if (parameters.containsKey(JCR_REPOSITORY_ALIAS)) {
+ Properties properties = new Properties();
+ properties.putAll(parameters);
+ String alias = parameters.get(JCR_REPOSITORY_ALIAS).toString();
+ publish(alias, repository, properties);
+ log.info("Registered JCR repository under alias '" + alias
+ + "' with properties " + properties);
+ }
+
+ return repository;
+ }
+
+ protected Repository createRemoteRepository(String uri)
+ throws RepositoryException {