X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FCmsFsProvider.java;h=6cd0bf87415f7138c8d89c46370543f567c289d9;hb=2606b4b145577c4767c37c464e3f517e49a98100;hp=99c219b51040b24652e8c16bccf74b4ad4b6c5d2;hpb=e7dc62c485696931a3e048d9102a7c86f9323b92;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsFsProvider.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsFsProvider.java index 99c219b51..6cd0bf874 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsFsProvider.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsFsProvider.java @@ -2,9 +2,11 @@ package org.argeo.cms.internal.kernel; import java.io.IOException; import java.net.URI; +import java.net.URISyntaxException; import java.nio.file.FileSystem; import java.nio.file.FileSystemAlreadyExistsException; import java.nio.file.Path; +import java.nio.file.spi.FileSystemProvider; import java.util.HashMap; import java.util.Map; @@ -18,7 +20,6 @@ import javax.jcr.nodetype.NodeType; import org.argeo.api.NodeConstants; import org.argeo.api.NodeUtils; -import org.argeo.cms.CmsException; import org.argeo.cms.auth.CurrentUser; import org.argeo.jackrabbit.fs.AbstractJackrabbitFsProvider; import org.argeo.jcr.fs.JcrFileSystem; @@ -26,7 +27,9 @@ import org.argeo.jcr.fs.JcrFileSystemProvider; import org.argeo.jcr.fs.JcrFsException; import org.osgi.framework.BundleContext; import org.osgi.framework.FrameworkUtil; +import org.osgi.framework.InvalidSyntaxException; +/** Implementation of an {@link FileSystemProvider} based on Jackrabbit. */ public class CmsFsProvider extends AbstractJackrabbitFsProvider { private Map fileSystems = new HashMap<>(); @@ -52,20 +55,20 @@ public class CmsFsProvider extends AbstractJackrabbitFsProvider { URI repoUri = new URI("http", uri.getUserInfo(), uri.getHost(), uri.getPort(), "/jcr/node", null, null); RepositoryFactory repositoryFactory = bc.getService(bc.getServiceReference(RepositoryFactory.class)); Repository repository = NodeUtils.getRepositoryByUri(repositoryFactory, repoUri.toString()); -// Session session = repository.login("main"); CmsFileSystem fileSystem = new CmsFileSystem(this, repository); fileSystems.put(username, fileSystem); return fileSystem; } else { Repository repository = bc.getService( - bc.getServiceReferences(Repository.class, "(cn=" + NodeConstants.EGO_REPOSITORY + ")").iterator().next()); + bc.getServiceReferences(Repository.class, "(cn=" + NodeConstants.EGO_REPOSITORY + ")") + .iterator().next()); // Session session = repository.login(); CmsFileSystem fileSystem = new CmsFileSystem(this, repository); fileSystems.put(username, fileSystem); return fileSystem; } - } catch (Exception e) { - throw new CmsException("Cannot open file system " + uri + " for user " + username, e); + } catch (InvalidSyntaxException | URISyntaxException e) { + throw new IllegalArgumentException("Cannot open file system " + uri + " for user " + username, e); } }