X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=server%2Fplugins%2Forg.argeo.jcr.ui.explorer%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fjcr%2Fui%2Fexplorer%2Fmodel%2FRepositoriesNode.java;h=d36736a2c55aac226034703aa78da0a01ff3b9fb;hb=409b6d70d9c29aa3d7dad8a0d6b17ce8458c108c;hp=975c87cba480d48f9414e46f647579e2e60e3ca9;hpb=1d5afdce3e91054f07ddd3c98309c363b4cf1d46;p=lgpl%2Fargeo-commons.git diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoriesNode.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoriesNode.java index 975c87cba..d36736a2c 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoriesNode.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoriesNode.java @@ -30,9 +30,9 @@ import org.argeo.eclipse.ui.ErrorFeedback; import org.argeo.eclipse.ui.TreeParent; import org.argeo.jcr.ArgeoJcrConstants; import org.argeo.jcr.ArgeoNames; -import org.argeo.jcr.JcrUtils; import org.argeo.jcr.RepositoryRegister; -import org.argeo.jcr.security.JcrKeyring; +import org.argeo.jcr.UserJcrUtils; +import org.argeo.util.security.Keyring; /** * UI Tree component. Implements the Argeo abstraction of a @@ -49,15 +49,21 @@ public class RepositoriesNode extends TreeParent implements ArgeoNames { private final RepositoryRegister repositoryRegister; private final RepositoryFactory repositoryFactory; - private final JcrKeyring jcrKeyring; + /** + * A session of the logged in user on the default workspace of the node + * repository. + */ + private final Session userSession; + private final Keyring keyring; public RepositoriesNode(String name, RepositoryRegister repositoryRegister, RepositoryFactory repositoryFactory, TreeParent parent, - JcrKeyring jcrKeyring) { + Session userSession, Keyring keyring) { super(name); this.repositoryRegister = repositoryRegister; this.repositoryFactory = repositoryFactory; - this.jcrKeyring = jcrKeyring; + this.userSession = userSession; + this.keyring = keyring; } /** @@ -78,9 +84,9 @@ public class RepositoriesNode extends TreeParent implements ArgeoNames { } // remote - if (jcrKeyring != null) { + if (keyring != null) { try { - addRemoteRepositories(jcrKeyring); + addRemoteRepositories(keyring); } catch (RepositoryException e) { throw new ArgeoException( "Cannot browse remote repositories", e); @@ -90,25 +96,18 @@ public class RepositoriesNode extends TreeParent implements ArgeoNames { } } - protected void addRemoteRepositories(JcrKeyring jcrKeyring) + protected void addRemoteRepositories(Keyring jcrKeyring) throws RepositoryException { - Session userSession = jcrKeyring.getSession(); - Node userHome = JcrUtils.getUserHome(userSession); + Node userHome = UserJcrUtils.getUserHome(userSession); if (userHome != null && userHome.hasNode(ARGEO_REMOTE)) { NodeIterator it = userHome.getNode(ARGEO_REMOTE).getNodes(); while (it.hasNext()) { Node remoteNode = it.nextNode(); String uri = remoteNode.getProperty(ARGEO_URI).getString(); try { - Hashtable params = new Hashtable(); - params.put(ArgeoJcrConstants.JCR_REPOSITORY_URI, uri); - params.put(ArgeoJcrConstants.JCR_REPOSITORY_ALIAS, - remoteNode.getName()); - Repository repository = repositoryFactory - .getRepository(params); RemoteRepositoryNode remoteRepositoryNode = new RemoteRepositoryNode( - remoteNode.getName(), repository, this, jcrKeyring, - remoteNode.getPath()); + remoteNode.getName(), repositoryFactory, uri, this, + userSession, jcrKeyring, remoteNode.getPath()); super.addChild(remoteRepositoryNode); } catch (Exception e) { ErrorFeedback.show("Cannot add remote repository "