]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/core/RepoServiceImpl.java
a20303ca5b30e43d0d179d29b25ae337696f80b5
[gpl/argeo-slc.git] / runtime / org.argeo.slc.repo / src / main / java / org / argeo / slc / repo / core / RepoServiceImpl.java
1 package org.argeo.slc.repo.core;
2
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;
8
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;
13
14 /**
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
20 */
21 public class RepoServiceImpl implements RepoService {
22
23 /* DEPENDENCY INJECTION */
24 private Repository nodeRepository;
25 private RepositoryFactory repositoryFactory;
26 private Keyring keyring;
27
28 public Session getRemoteSession(String repoNodePath, String uri,
29 String workspaceName) {
30
31 // TODO remove this. Only usefull while investigating the RAP login
32 // problem
33 Session session = null;
34 try {
35 session = nodeRepository.login();
36 } catch (LoginException e) {
37 // TODO Auto-generated catch block
38 e.printStackTrace();
39 } catch (RepositoryException e) {
40 // TODO Auto-generated catch block
41 e.printStackTrace();
42 } finally {
43 JcrUtils.logoutQuietly(session);
44 }
45
46 return RepoUtils.getRemoteSession(repositoryFactory, keyring,
47 nodeRepository, repoNodePath, uri, workspaceName);
48 }
49
50 /* DEPENDENCY INJECTION */
51 public void setNodeRepository(Repository nodeRepository) {
52 this.nodeRepository = nodeRepository;
53 }
54
55 public void setRepositoryFactory(RepositoryFactory repositoryFactory) {
56 this.repositoryFactory = repositoryFactory;
57 }
58
59 public void setKeyring(Keyring keyring) {
60 this.keyring = keyring;
61 }
62 }