package test; import java.util.HashMap; import java.util.Map; import java.util.ServiceLoader; import javax.jcr.Node; import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.RepositoryFactory; import javax.jcr.Session; /** * Everything works as expected. * * @author Carsten Luxig * @since 04.06.2012 */ public class WorkingRepositoryProvider { public Repository getRepository() throws RepositoryException { Repository repository = null; Map params = new HashMap(); params.put(org.modeshape.jcr.api.RepositoryFactory.URL, "jndi:jcr/local"); params.put(org.modeshape.jcr.api.RepositoryFactory.REPOSITORY_NAME, "Data"); for (RepositoryFactory factory : ServiceLoader.load(RepositoryFactory.class)) { repository = factory.getRepository(params); if (repository != null) { break; } } if (repository == null) { throw new RepositoryException("No JCR repository for metadata"); } return repository; } public void doSomething() throws RepositoryException { Repository repository = getRepository(); Session session = repository.login(); Node node = session.getRootNode(); assert node != null; session.logout(); } }