+package org.argeo.modeshape;
+
+import java.util.UUID;
+
+import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.SimpleCredentials;
+
+import org.argeo.jcr.JcrUtils;
+import org.modeshape.connector.filesystem.FileSystemSource;
+import org.modeshape.jcr.JcrConfiguration;
+import org.modeshape.jcr.JcrEngine;
+
+public class FileSystemRepository {
+ public void init() {
+ try {
+ // Required in order to load mime type definitions
+ Thread.currentThread().setContextClassLoader(JcrConfiguration.class.getClassLoader());
+ JcrConfiguration config = new JcrConfiguration();
+ config.repositorySource("fsSource")
+ .usingClass(FileSystemSource.class)
+ .setDescription("The repository for our content")
+ .setProperty("workspaceRootPath", "/home/mbaudier/tmp")
+ .setProperty("defaultWorkspaceName", "prod")
+ .setProperty("predefinedWorkspaceNames",
+ new String[] { "staging", "dev" })
+ .setProperty(
+ "rootNodeUuid",
+ UUID.fromString("fd129c12-81a8-42ed-aa4b-820dba49e6f0"))
+ .setProperty("updatesAllowed", "true")
+ .setProperty("creatingWorkspaceAllowed", "false");
+ config.repository("fsRepo").setSource("fsSource");
+
+ JcrEngine jcrEngine = config.build();
+ jcrEngine.start();
+ Repository repository = jcrEngine.getRepository("fsRepo");
+ Session session = repository.login(new SimpleCredentials("demo",
+ "demo".toCharArray()));
+ JcrUtils.debug(session.getRootNode());
+ } catch (RepositoryException e) {
+ e.printStackTrace();
+ }
+ }
+}