package com.openkm.jcr;
import java.io.File;
import java.io.IOException;
import javax.jcr.LoginException;
import javax.jcr.Node;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import junit.framework.TestCase;
import org.apache.commons.io.FileUtils;
import org.apache.jackrabbit.core.RepositoryImpl;
import org.apache.jackrabbit.core.TransientRepository;
import org.apache.jackrabbit.core.config.RepositoryConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SimpleTest extends TestCase {
private static Logger log = LoggerFactory.getLogger(SimpleTest.class);
public SimpleTest(String name) {
super(name);
}
public static void main(String[] args) throws Exception {
SimpleTest test = new SimpleTest("main");
test.setUp();
test.testBasic();
test.testSimple();
test.tearDown();
}
@Override
protected void setUp() {
log.info("setUp()");
log.info("Delete repository: {}", Config.REPOSITORY_HOME);
FileUtils.deleteQuietly(new File(Config.REPOSITORY_HOME));
}
@Override
protected void tearDown() {
log.info("tearDown()");
log.info("Delete repository: {}", Config.REPOSITORY_HOME);
FileUtils.deleteQuietly(new File(Config.REPOSITORY_HOME));
}
public void testBasic() throws IOException, LoginException, RepositoryException {
log.info("testBasic()");
Repository repository = new TransientRepository(Config.REPOSITORY_CONFIG, Config.REPOSITORY_HOME);
Session session = repository.login(new SimpleCredentials("admin", "admin".toCharArray()));
Node rootNode = session.getRootNode();
Node newNode = rootNode.addNode("new node");
log.info("Restricted node: " + newNode.getPath());
assertEquals(newNode.getPath(), "/new node");
rootNode.save();
session.logout();
}
public void testSimple() throws IOException, LoginException, RepositoryException {
log.info("testSimple()");
RepositoryConfig config = RepositoryConfig.create(Config.REPOSITORY_CONFIG, Config.REPOSITORY_HOME);
Repository repository = RepositoryImpl.create(config);
Session session = repository.login(new SimpleCredentials("admin", "admin".toCharArray()));
Node rootNode = session.getRootNode();
Node newNode = rootNode.addNode("new node");
log.info("Restricted node: " + newNode.getPath());
assertEquals(newNode.getPath(), "/new node");
rootNode.save();
session.logout();
((RepositoryImpl)repository).shutdown();
}
}