/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package edu.msu.nscl.olog; import java.io.File; import java.lang.Boolean; import java.lang.String; import java.net.URL; import java.util.logging.Level; import java.util.logging.Logger; import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.SimpleCredentials; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.servlet.ServletContext; import org.apache.jackrabbit.core.RepositoryImpl; import org.apache.jackrabbit.core.config.ConfigurationException; import org.apache.jackrabbit.core.config.RepositoryConfig; import org.apache.jackrabbit.j2ee.RepositoryAccessServlet; public class JCRUtil extends OlogContextListener { private static Repository repository; private static Session session; private static final String WEBINF = "WEB-INF"; /** * Create an instance of JCRUtil */ public JCRUtil() { try { URL url = JCRUtil.class.getResource("JCRUtil.class"); String className = url.getFile(); String filePath = className.substring(0,className.indexOf(WEBINF) + WEBINF.length()); String xml; Boolean jcrInDb = null; try { Context initCtx = new InitialContext(); jcrInDb = (Boolean) initCtx.lookup("java:/comp/env/JCR_IN_DB"); } catch (NamingException e ) { } System.out.println(jcrInDb); if (Boolean.TRUE.equals(jcrInDb)) { xml = filePath + "/repository_db.xml"; } else { xml = filePath + "/repository.xml"; } String dir = null; try { Context initCtx = new InitialContext(); dir = (String) initCtx.lookup("java:/comp/env/JCR_REPO_PATH"); } catch (NamingException e ) { } if (dir==null) { dir = "jackrabbit"; } RepositoryConfig config = RepositoryConfig.create(xml, dir); repository = RepositoryImpl.create(config); SimpleCredentials adminCred = new SimpleCredentials("admin", new char[0]); session = repository.login(adminCred); } catch (RepositoryException ex) { Logger.getLogger(JCRUtil.class.getName()).log(Level.SEVERE, null, ex); } } public static Repository getRepository() { return repository; } public static Session getSession() { return session; } }