1 package org
.argeo
.slc
.repo
.core
;
3 import javax
.jcr
.LoginException
;
4 import javax
.jcr
.Repository
;
5 import javax
.jcr
.RepositoryException
;
6 import javax
.jcr
.RepositoryFactory
;
7 import javax
.jcr
.Session
;
9 import org
.argeo
.jcr
.JcrUtils
;
10 import org
.argeo
.slc
.repo
.RepoService
;
11 import org
.argeo
.slc
.repo
.RepoUtils
;
12 import org
.argeo
.util
.security
.Keyring
;
15 * Work in Progress - enhance this. First implementation of a service that
16 * centralizes session management in an argeo SLC context, repositories are
17 * either defined using an URI and a workspace name in a anonymous context or
18 * using connection information that are store in a corresponding node in the
19 * local repository home
21 public class RepoServiceImpl
implements RepoService
{
23 /* DEPENDENCY INJECTION */
24 private Repository nodeRepository
;
25 private RepositoryFactory repositoryFactory
;
26 private Keyring keyring
;
28 public Session
getRemoteSession(String repoNodePath
, String uri
,
29 String workspaceName
) {
31 // TODO remove this. Only usefull while investigating the RAP login
33 Session session
= null;
35 session
= nodeRepository
.login();
36 } catch (LoginException e
) {
37 // TODO Auto-generated catch block
39 } catch (RepositoryException e
) {
40 // TODO Auto-generated catch block
43 JcrUtils
.logoutQuietly(session
);
46 return RepoUtils
.getRemoteSession(repositoryFactory
, keyring
,
47 nodeRepository
, repoNodePath
, uri
, workspaceName
);
50 /* DEPENDENCY INJECTION */
51 public void setNodeRepository(Repository nodeRepository
) {
52 this.nodeRepository
= nodeRepository
;
55 public void setRepositoryFactory(RepositoryFactory repositoryFactory
) {
56 this.repositoryFactory
= repositoryFactory
;
59 public void setKeyring(Keyring keyring
) {
60 this.keyring
= keyring
;