package org.apache.jackrabbit.test; import java.util.Properties; import javax.jcr.*; import org.priha.RepositoryManager; import org.priha.core.RepositoryImpl; public class PrihaRepositoryStub extends RepositoryStub { static RepositoryImpl c_repo; public PrihaRepositoryStub(Properties env) { super(env); } public Repository getRepository() throws RepositoryStubException { if( c_repo != null ) return c_repo; try { // RepositoryImpl r = RepositoryManager.getRepository("jdbcnocache.properties"); RepositoryImpl r = RepositoryManager.getRepository("filenocache.properties"); c_repo = r; Session s = r.login( getSuperuserCredentials() ); String testroot = getProperty(PROP_PREFIX + "." + PROP_TESTROOT); if( testroot == null) throw new RepositoryStubException("No testroot defined"); if(testroot.startsWith("/")) testroot = testroot.substring(1); Node testRoot; if( !s.getRootNode().hasNode(testroot) ) { testRoot = s.getRootNode().addNode(testroot); } else { testRoot = s.getRootNode().getNode(testroot); } if( !s.getRootNode().hasNode("querytest") ) { // // Create some Nodes with properties for Query tests. // Node nd = s.getRootNode().addNode("querytest"); nd.addMixin("mix:referenceable"); nd.setProperty( getProperty(PROP_PREFIX + "." + PROP_PROP_NAME1), "mofa" ); Node nd2 = nd.addNode( PROP_NODE_NAME1 ); nd2.setProperty( getProperty(PROP_PREFIX + "." + PROP_PROP_NAME1), "fafa" ); nd2 = nd.addNode( PROP_NODE_NAME2 ); nd2.setProperty( getProperty(PROP_PREFIX + "." + PROP_PROP_NAME1), "famo" ); } s.save(); s.logout(); return r; } catch (LoginException e) { throw new RepositoryStubException(e.getMessage()); } catch (NoSuchWorkspaceException e) { throw new RepositoryStubException(e.getMessage()); } catch (RepositoryException e) { e.printStackTrace(); throw new RepositoryStubException(e.getMessage()); } } @Override public Credentials getReadOnlyCredentials() { return null; } @Override public Credentials getReadWriteCredentials() { return new SimpleCredentials("foo", new char[0]); } @Override public Credentials getSuperuserCredentials() { return new SimpleCredentials("foo", new char[0]); } }