package com.openkm.test;
import java.io.File;
import java.util.Calendar;
import javax.jcr.Node;
import javax.jcr.Property;
import javax.jcr.PropertyIterator;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.jcr.UnsupportedRepositoryOperationException;
import javax.jcr.ValueFormatException;
import javax.jcr.version.Version;
import org.apache.commons.io.FileUtils;
import org.apache.jackrabbit.core.TransientRepository;
public class IsCheckedOutTest {
public static void main(String[] args) throws Exception {
FileUtils.deleteDirectory(new File("repository"));
Repository repo = new TransientRepository();
Session session = repo.login(new SimpleCredentials("paco", "".toCharArray()));
Node rootNode = session.getRootNode();
// Add a new node
Node child = rootNode.addNode("prueba", "nt:file");
child.addMixin("mix:versionable");
Node content = child.addNode("jcr:content", "nt:resource");
content.setProperty("jcr:mimeType", "text/plain");
content.setProperty("jcr:data", "En un lugar de La Mancha...");
content.setProperty("jcr:lastModified", Calendar.getInstance());
rootNode.save();
System.out.println("isCheckedOut: "+child.isCheckedOut());
showProperties(child);
showVersion(child);
// Performs checkin
child.checkin();
System.out.println();
System.out.println("isCheckedOut: "+child.isCheckedOut());
showProperties(child);
showVersion(child);
// Say goodbye!
session.logout();
}
/**
*
*/
public static void showProperties(Node node) throws ValueFormatException, IllegalStateException, RepositoryException {
System.out.println("## PROPERTIES ##");
for (PropertyIterator pit = node.getProperties(); pit.hasNext(); ) {
Property prop = pit.nextProperty();
System.out.print("* "+prop.getName()+" => ");
if (prop.getDefinition().isMultiple()) {
for (int i=0; i<prop.getValues().length; i++) {
System.out.print(prop.getValues()[i].getString()+", ");
}
} else {
System.out.print(prop.getValue().getString());
}
System.out.println();
}
}
/**
* @throws RepositoryException
* @throws UnsupportedRepositoryOperationException
*
*/
public static void showVersion(Node node) throws UnsupportedRepositoryOperationException, RepositoryException {
System.out.println("## VERSION ##");
Version ver = node.getBaseVersion();
System.out.println("* Name: "+ver.getName());
System.out.println("* Created: "+ver.getCreated());
}
}