]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - server/runtime/org.argeo.server.modeshape/src/main/java/org/argeo/modeshape/FileSystemRepository.java
Remote JCR client working
[lgpl/argeo-commons.git] / server / runtime / org.argeo.server.modeshape / src / main / java / org / argeo / modeshape / FileSystemRepository.java
diff --git a/server/runtime/org.argeo.server.modeshape/src/main/java/org/argeo/modeshape/FileSystemRepository.java b/server/runtime/org.argeo.server.modeshape/src/main/java/org/argeo/modeshape/FileSystemRepository.java
new file mode 100644 (file)
index 0000000..7516b6a
--- /dev/null
@@ -0,0 +1,45 @@
+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();
+               }
+       }
+}