View Javadoc
1   package org.argeo.slc.repo.core;
2   
3   import javax.jcr.Repository;
4   import javax.jcr.RepositoryFactory;
5   import javax.jcr.Session;
6   
7   import org.argeo.node.security.Keyring;
8   import org.argeo.slc.repo.RepoService;
9   import org.argeo.slc.repo.RepoUtils;
10  
11  /**
12   * Work in Progress - enhance this. First implementation of a service that
13   * centralizes session management in an argeo SLC context, repositories are
14   * either defined using an URI and a workspace name in a anonymous context or
15   * using connection information that are store in a corresponding node in the
16   * local repository home
17   */
18  public class RepoServiceImpl implements RepoService {
19  
20  	/* DEPENDENCY INJECTION */
21  	private Repository nodeRepository;
22  	private RepositoryFactory repositoryFactory;
23  	private Keyring keyring;
24  
25  	public Session getRemoteSession(String repoNodePath, String uri,
26  			String workspaceName) {
27  		return RepoUtils.getRemoteSession(repositoryFactory, keyring,
28  				nodeRepository, repoNodePath, uri, workspaceName);
29  	}
30  
31  	/* DEPENDENCY INJECTION */
32  	public void setNodeRepository(Repository nodeRepository) {
33  		this.nodeRepository = nodeRepository;
34  	}
35  
36  	public void setRepositoryFactory(RepositoryFactory repositoryFactory) {
37  		this.repositoryFactory = repositoryFactory;
38  	}
39  
40  	public void setKeyring(Keyring keyring) {
41  		this.keyring = keyring;
42  	}
43  }