Here is a sample code:

---------------------------------------------
import java.io.File;
import java.io.IOException;
import java.util.Calendar;
import java.util.Hashtable;

import javax.jcr.Node;
import javax.jcr.Repository;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.jcr.Workspace;
import javax.naming.Context;
import javax.naming.InitialContext;

import org.apache.commons.io.FileUtils;
import org.apache.jackrabbit.core.jndi.RegistryHelper;

public class IsCheckedOutTest {

        public static void main(String[] args) throws Exception {
                removeRepository();
                Session session = getSession();
                Node root = createRepository(session);
                
                // Add a new node
                Node child = root.addNode("prueba", "nt:file");
                child.addMixin("mix:referenceable");
                child.addMixin("mix:lockable");
                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());
                
                System.out.println("isCheckedOut: "+child.isCheckedOut());
                root.save();
                System.out.println("isCheckedOut: "+child.isCheckedOut());
        }
        
        /**
         * 
         */
        public static void removeRepository() {
                // Remove previous repo
                try {
                        FileUtils.deleteDirectory(new 
File("repotest/repository"));
                        FileUtils.deleteDirectory(new 
File("repotest/versions"));
                        FileUtils.deleteDirectory(new 
File("repotest/workspaces"));
                } catch (IOException e) {
                        System.err.println("No previous repo");
                }
        }

        /**
         * 
         */
        public static Session getSession() throws Exception {
                Hashtable env = new Hashtable();
                env.put(Context.INITIAL_CONTEXT_FACTORY,
                        
"org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory");
                env.put(Context.PROVIDER_URL, "localhost");
                InitialContext ctx = new InitialContext(env);

                // Repository config
                String configFile = "repotest/repository.xml";
                String repHomeDir = "repotest";
                RegistryHelper.registerRepository(ctx, "repo", configFile, 
repHomeDir,
true);

                // Obtain the repository through a JNDI lookup
                Repository r = (Repository) ctx.lookup("repo");

                // Create a new repository session, after authenticating
                Session session = r.login(new SimpleCredentials("paco",
"".toCharArray()), null);
                System.out.println("Session: "+session);
                return session;
        }
        
        /**
         * 
         */
        public static Node createRepository(Session session) throws Exception {
                // Namespace registration
                Workspace ws = session.getWorkspace();
                ws.getNamespaceRegistry().registerNamespace("okm",
"http://www.pepito.org/1.0";);

                // Node creation
                Node root = session.getRootNode();
                Node okmRoot = root.addNode("okm:root", "nt:folder");
                okmRoot.addMixin("mix:referenceable");
                session.save();
                System.out.println("Repository created.");
                return okmRoot;
        }
}
---------------------------------------------

-- 
Paco Avila <[EMAIL PROTECTED]>

Reply via email to