From: Mathieu Baudier Date: Fri, 26 Oct 2012 16:10:35 +0000 (+0000) Subject: JCR repository factory recognizes vm:///alias URIs X-Git-Tag: argeo-commons-2.1.30~797 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=d911416648a69f8140e03aa7248c4eb38e96e90f;p=lgpl%2Fargeo-commons.git JCR repository factory recognizes vm:///alias URIs git-svn-id: https://svn.argeo.org/commons/trunk@5657 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/JackrabbitRepositoryFactory.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/JackrabbitRepositoryFactory.java index 87e9e6929..1f2ec2ae2 100644 --- a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/JackrabbitRepositoryFactory.java +++ b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/JackrabbitRepositoryFactory.java @@ -15,6 +15,8 @@ */ package org.argeo.jackrabbit; +import java.net.URI; +import java.net.URISyntaxException; import java.util.HashMap; import java.util.Map; import java.util.Properties; @@ -54,9 +56,25 @@ public class JackrabbitRepositoryFactory extends DefaultRepositoryFactory else if (parameters.containsKey(JcrUtils.REPOSITORY_URI)) uri = parameters.get(JcrUtils.REPOSITORY_URI).toString(); - if (uri != null) - repository = createRemoteRepository(uri); + 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); @@ -83,7 +101,7 @@ public class JackrabbitRepositoryFactory extends DefaultRepositoryFactory } /** - * Called after the repository has been initialized. Does nothing by + * Called after the repository has been initialised. Does nothing by * default. */ @SuppressWarnings("rawtypes")