Make remote default workspace configurable via System properties.
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 5 Feb 2021 19:44:34 +0000 (20:44 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 5 Feb 2021 19:44:34 +0000 (20:44 +0100)
org.argeo.core/src/org/argeo/jackrabbit/fs/DavexFsProvider.java

index 9591312b09202a1d7863ca892325d97bde3a7fd1..1cae6e4935fa5c5bf4c887f4217ee7553daee026 100644 (file)
@@ -24,8 +24,7 @@ import org.argeo.jcr.fs.JcrFsException;
  * DAVEX protocol.
  */
 public class DavexFsProvider extends AbstractJackrabbitFsProvider {
-//     final static String JACKRABBIT_REPOSITORY_URI = "org.apache.jackrabbit.repository.uri";
-//     final static String JACKRABBIT_REMOTE_DEFAULT_WORKSPACE = "org.apache.jackrabbit.spi2davex.WorkspaceNameDefault";
+       final static String DEFAULT_JACKRABBIT_REMOTE_DEFAULT_WORKSPACE = "sys";
 
        private Map<String, JcrFileSystem> fileSystems = new HashMap<>();
 
@@ -54,8 +53,12 @@ public class DavexFsProvider extends AbstractJackrabbitFsProvider {
                        throws IOException {
                Map<String, String> params = new HashMap<String, String>();
                params.put(ClientDavexRepositoryFactory.JACKRABBIT_DAVEX_URI, repoUri.toString());
-               // FIXME make it configurable
-               params.put(ClientDavexRepositoryFactory.JACKRABBIT_REMOTE_DEFAULT_WORKSPACE, "sys");
+               // TODO better integrate with OSGi or other configuration than system
+               // properties.
+               String remoteDefaultWorkspace = System.getProperty(
+                               ClientDavexRepositoryFactory.JACKRABBIT_REMOTE_DEFAULT_WORKSPACE,
+                               DEFAULT_JACKRABBIT_REMOTE_DEFAULT_WORKSPACE);
+               params.put(ClientDavexRepositoryFactory.JACKRABBIT_REMOTE_DEFAULT_WORKSPACE, remoteDefaultWorkspace);
                Repository repository = null;
                Session session = null;
                try {
@@ -99,8 +102,8 @@ public class DavexFsProvider extends AbstractJackrabbitFsProvider {
                if (fileSystem == null)
                        try {
                                fileSystem = (JcrFileSystem) newFileSystem(uri, new HashMap<String, Object>());
-                               if(fileSystem==null)
-                                       throw new IllegalArgumentException("No file system found for "+uri);
+                               if (fileSystem == null)
+                                       throw new IllegalArgumentException("No file system found for " + uri);
                        } catch (IOException e) {
                                throw new JcrFsException("Could not autocreate file system", e);
                        }