+ protected void addRemoteRepositories(JcrKeyring jcrKeyring)
+ throws RepositoryException {
+ Session userSession = jcrKeyring.getSession();
+ Node userHome = JcrUtils.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<String, String> params = new Hashtable<String, String>();
+ 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());
+ super.addChild(remoteRepositoryNode);
+ } catch (Exception e) {
+ ErrorFeedback.show("Cannot add remote repository "
+ + remoteNode, e);
+ }
+ }
+ }
+ }
+