You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by mi...@apache.org on 2005/04/04 14:04:11 UTC

svn commit: r160032 - in lenya/sandbox/jcrsitetree/src: data/pubs/default/repos/repo-sitetree/workspaces/archive/ data/pubs/default/repos/repo-sitetree/workspaces/trash/ java/org/apache/lenya/cms/publication/

Author: michi
Date: Mon Apr  4 05:04:10 2005
New Revision: 160032

URL: http://svn.apache.org/viewcvs?view=rev&rev=160032
Log:
improved version of JCRSiteTree

Added:
    lenya/sandbox/jcrsitetree/src/data/pubs/default/repos/repo-sitetree/workspaces/archive/
    lenya/sandbox/jcrsitetree/src/data/pubs/default/repos/repo-sitetree/workspaces/archive/workspace.xml
    lenya/sandbox/jcrsitetree/src/data/pubs/default/repos/repo-sitetree/workspaces/trash/
    lenya/sandbox/jcrsitetree/src/data/pubs/default/repos/repo-sitetree/workspaces/trash/workspace.xml
Modified:
    lenya/sandbox/jcrsitetree/src/java/org/apache/lenya/cms/publication/ClearRepository.java
    lenya/sandbox/jcrsitetree/src/java/org/apache/lenya/cms/publication/ImportSiteTree.java
    lenya/sandbox/jcrsitetree/src/java/org/apache/lenya/cms/publication/JCRSiteTree.java

Added: lenya/sandbox/jcrsitetree/src/data/pubs/default/repos/repo-sitetree/workspaces/archive/workspace.xml
URL: http://svn.apache.org/viewcvs/lenya/sandbox/jcrsitetree/src/data/pubs/default/repos/repo-sitetree/workspaces/archive/workspace.xml?view=auto&rev=160032
==============================================================================
--- lenya/sandbox/jcrsitetree/src/data/pubs/default/repos/repo-sitetree/workspaces/archive/workspace.xml (added)
+++ lenya/sandbox/jcrsitetree/src/data/pubs/default/repos/repo-sitetree/workspaces/archive/workspace.xml Mon Apr  4 05:04:10 2005
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace name="archive">
+  <!--
+            virtual file system of the workspace:
+            class: FQN of class implementing FileSystem interface
+        -->
+  <FileSystem class="com.day.jackrabbit.fs.cq.CQFileSystem">
+    <param name="path" value="${wsp.home}/wspStore.dat" />
+    <param name="autoRepair" value="false" />
+    <param name="blockSize" value="128" />
+    <param name="autoSync" value="false" />
+  </FileSystem>
+  <!--
+            persistence of the workspace:
+            class: FQN of class implementing PersistenceManager interface
+        -->
+  <PersistenceManager class="org.apache.jackrabbit.core.state.obj.ObjectPersistenceManager" />
+  <!--
+            Search index and the file system it uses.
+        -->
+  <SearchIndex class="org.apache.jackrabbit.core.search.lucene.SearchIndex">
+    <param name="useCompoundFile" value="true" />
+    <param name="minMergeDocs" value="1000" />
+    <param name="maxMergeDocs" value="10000" />
+    <param name="mergeFactor" value="10" />
+    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
+      <param name="path" value="${wsp.home}/index" />
+    </FileSystem>
+  </SearchIndex>
+</Workspace>
+

Added: lenya/sandbox/jcrsitetree/src/data/pubs/default/repos/repo-sitetree/workspaces/trash/workspace.xml
URL: http://svn.apache.org/viewcvs/lenya/sandbox/jcrsitetree/src/data/pubs/default/repos/repo-sitetree/workspaces/trash/workspace.xml?view=auto&rev=160032
==============================================================================
--- lenya/sandbox/jcrsitetree/src/data/pubs/default/repos/repo-sitetree/workspaces/trash/workspace.xml (added)
+++ lenya/sandbox/jcrsitetree/src/data/pubs/default/repos/repo-sitetree/workspaces/trash/workspace.xml Mon Apr  4 05:04:10 2005
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace name="trash">
+  <!--
+            virtual file system of the workspace:
+            class: FQN of class implementing FileSystem interface
+        -->
+  <FileSystem class="com.day.jackrabbit.fs.cq.CQFileSystem">
+    <param name="path" value="${wsp.home}/wspStore.dat" />
+    <param name="autoRepair" value="false" />
+    <param name="blockSize" value="128" />
+    <param name="autoSync" value="false" />
+  </FileSystem>
+  <!--
+            persistence of the workspace:
+            class: FQN of class implementing PersistenceManager interface
+        -->
+  <PersistenceManager class="org.apache.jackrabbit.core.state.obj.ObjectPersistenceManager" />
+  <!--
+            Search index and the file system it uses.
+        -->
+  <SearchIndex class="org.apache.jackrabbit.core.search.lucene.SearchIndex">
+    <param name="useCompoundFile" value="true" />
+    <param name="minMergeDocs" value="1000" />
+    <param name="maxMergeDocs" value="10000" />
+    <param name="mergeFactor" value="10" />
+    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
+      <param name="path" value="${wsp.home}/index" />
+    </FileSystem>
+  </SearchIndex>
+</Workspace>
+

Modified: lenya/sandbox/jcrsitetree/src/java/org/apache/lenya/cms/publication/ClearRepository.java
URL: http://svn.apache.org/viewcvs/lenya/sandbox/jcrsitetree/src/java/org/apache/lenya/cms/publication/ClearRepository.java?view=diff&r1=160031&r2=160032
==============================================================================
--- lenya/sandbox/jcrsitetree/src/java/org/apache/lenya/cms/publication/ClearRepository.java (original)
+++ lenya/sandbox/jcrsitetree/src/java/org/apache/lenya/cms/publication/ClearRepository.java Mon Apr  4 05:04:10 2005
@@ -43,32 +43,16 @@
 
     public void clear(String repoHomeDir) {
         System.out.println("Clear repository " + repoHomeDir);
-
         try {
             Repository repo = getRepository(repoHomeDir);
-
-            // Clear authoring workspace.
-            Session authSession = repo.login(new SimpleCredentials("anonymous", "".toCharArray()), Publication.AUTHORING_AREA);
-            authSession.setNamespacePrefix(JCRSiteTree.NS_PREFIX_SYSTEM, JCRSiteTree.NS_URI_SYSTEM);
-            NodeIterator iter = authSession.getRootNode().getNodes(JCRSiteTree.NS_PREFIX_SYSTEM + ":*");
-            while (iter.hasNext()) {
-                iter.nextNode().remove();
-            }
-            authSession.save();
-            authSession.logout();
-
-            // Clear live workspace.
-            Session liveSession = repo.login(new SimpleCredentials("anonymous", "".toCharArray()), Publication.LIVE_AREA);
-            liveSession.setNamespacePrefix(JCRSiteTree.NS_PREFIX_SYSTEM, JCRSiteTree.NS_URI_SYSTEM);
-            iter = liveSession.getRootNode().getNodes(JCRSiteTree.NS_PREFIX_SYSTEM + ":*");
-            while (iter.hasNext()) {
-                iter.nextNode().remove();
-            }
-            liveSession.save();
-            liveSession.logout();
+            clearWorkspace(repo, Publication.AUTHORING_AREA);
+            clearWorkspace(repo, Publication.LIVE_AREA);
+            clearWorkspace(repo, Publication.TRASH_AREA);
+            clearWorkspace(repo, Publication.ARCHIVE_AREA);
         } catch (Exception e) {
             e.printStackTrace(System.err);
         }
+
     }
 
     /**
@@ -84,5 +68,23 @@
 
         RegistryHelper.registerRepository(ctx, "repo", configFile, repHomeDir, true);
         return (Repository) ctx.lookup("repo");
+    }
+    
+    private void clearWorkspace(Repository repo, String workspace) {
+        try {
+            
+            // Clear  workspace.
+            Session session = repo.login(new SimpleCredentials("anonymous", "".toCharArray()), workspace);
+            session.setNamespacePrefix(JCRSiteTree.NS_PREFIX_SYSTEM, JCRSiteTree.NS_URI_SYSTEM);
+            NodeIterator iter = session.getRootNode().getNodes(JCRSiteTree.NS_PREFIX_SYSTEM + ":*");
+            while (iter.hasNext()) {
+                iter.nextNode().remove();
+            }
+            session.save();
+            session.logout();
+
+        } catch (Exception e) {
+            e.printStackTrace(System.err);
+        }
     }
 }

Modified: lenya/sandbox/jcrsitetree/src/java/org/apache/lenya/cms/publication/ImportSiteTree.java
URL: http://svn.apache.org/viewcvs/lenya/sandbox/jcrsitetree/src/java/org/apache/lenya/cms/publication/ImportSiteTree.java?view=diff&r1=160031&r2=160032
==============================================================================
--- lenya/sandbox/jcrsitetree/src/java/org/apache/lenya/cms/publication/ImportSiteTree.java (original)
+++ lenya/sandbox/jcrsitetree/src/java/org/apache/lenya/cms/publication/ImportSiteTree.java Mon Apr  4 05:04:10 2005
@@ -52,6 +52,10 @@
         String nsPrefixLiveUser = null;
     	String nsPrefixDefaultSys = null;
         String nsPrefixDefaultUser = null;
+        String nsPrefixTrashSys = null;
+        String nsPrefixTrashUser = null;
+        String nsPrefixArchiveSys = null;
+        String nsPrefixArchiveUser = null;
     	
         System.out.println("Import Authoring and Live Sitetree from " + defaultPubDir + " into " + repoHomeDir);
 
@@ -130,11 +134,53 @@
             defaultSession.refresh(false);
             // Save changes in live area.
             liveSession.save();
+            
+            // Creating trash workspace.
+            System.out.println("Creating 'trash' workspace.");
+            Session trashSession = repo.login(new SimpleCredentials("anonymous", "".toCharArray()), Publication.TRASH_AREA);
+            registry = trashSession.getWorkspace().getNamespaceRegistry();
+            try {
+                nsPrefixTrashSys = registry.getPrefix(JCRSiteTree.NS_URI_SYSTEM);
+                nsPrefixTrashUser = registry.getPrefix(JCRSiteTree.NS_URI_USER);
+            } catch (NamespaceException nse) {
+                registry.registerNamespace(JCRSiteTree.NS_PREFIX_USER, JCRSiteTree.NS_URI_USER);
+                registry.registerNamespace(JCRSiteTree.NS_PREFIX_SYSTEM, JCRSiteTree.NS_URI_SYSTEM);
+            }
+            
+            trashSession.setNamespacePrefix(nsPrefixTrashSys, JCRSiteTree.NS_URI_SYSTEM);
+            trashSession.setNamespacePrefix(nsPrefixTrashUser, JCRSiteTree.NS_URI_USER);
+            
+            // Create sitetree root node.
+            trashSession.getRootNode().addNode(nsPrefixTrashSys + ":site");
+            
+            trashSession.save();
 
+            // Creating archive workspace.
+            System.out.println("Creating 'archive' workspace.");
+            Session archiveSession = repo.login(new SimpleCredentials("anonymous", "".toCharArray()), Publication.ARCHIVE_AREA);
+            registry = archiveSession.getWorkspace().getNamespaceRegistry();
+            try {
+                nsPrefixArchiveSys = registry.getPrefix(JCRSiteTree.NS_URI_SYSTEM);
+                nsPrefixArchiveUser = registry.getPrefix(JCRSiteTree.NS_URI_USER);
+            } catch (NamespaceException nse) {
+                registry.registerNamespace(JCRSiteTree.NS_PREFIX_USER, JCRSiteTree.NS_URI_USER);
+                registry.registerNamespace(JCRSiteTree.NS_PREFIX_SYSTEM, JCRSiteTree.NS_URI_SYSTEM);
+            }
+            
+            archiveSession.setNamespacePrefix(nsPrefixTrashSys, JCRSiteTree.NS_URI_SYSTEM);
+            archiveSession.setNamespacePrefix(nsPrefixTrashUser, JCRSiteTree.NS_URI_USER);
+            
+            // Create sitetree root node.
+            archiveSession.getRootNode().addNode(nsPrefixTrashSys + ":site");
+            
+            archiveSession.save();
+            
             // Close sessions.
             liveSession.logout();
             authSession.logout();
             defaultSession.logout();
+            trashSession.logout();
+            archiveSession.logout();
         } catch (Exception e) {
             e.printStackTrace(System.err);
         }

Modified: lenya/sandbox/jcrsitetree/src/java/org/apache/lenya/cms/publication/JCRSiteTree.java
URL: http://svn.apache.org/viewcvs/lenya/sandbox/jcrsitetree/src/java/org/apache/lenya/cms/publication/JCRSiteTree.java?view=diff&r1=160031&r2=160032
==============================================================================
--- lenya/sandbox/jcrsitetree/src/java/org/apache/lenya/cms/publication/JCRSiteTree.java (original)
+++ lenya/sandbox/jcrsitetree/src/java/org/apache/lenya/cms/publication/JCRSiteTree.java Mon Apr  4 05:04:10 2005
@@ -20,7 +20,9 @@
 package org.apache.lenya.cms.publication;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.Hashtable;
+import java.util.List;
 import java.util.StringTokenizer;
 
 import javax.jcr.AccessDeniedException;
@@ -294,7 +296,24 @@
      * @see org.apache.lenya.cms.publication.SiteTree#getTopNodes()
      */
     public SiteTreeNode[] getTopNodes() {
-        return null;
+        List topNodes = new ArrayList();
+        Node rootNode = null;
+        try {
+            rootNode = session.getRootNode().getNode(mapDocumentIdToJCRAbsolute("/").substring(1));
+            NodeIterator iter = rootNode.getNodes();
+            while (iter.hasNext()) {
+                topNodes.add(new JCRSiteTreeNodeImpl(iter.nextNode(), this));
+            }
+        } catch (PathNotFoundException e) {
+            log.error("Node not found.", e);
+        } catch (RepositoryException e) {
+            log.error("Repository exception", e);
+        }
+        if (rootNode == null) {
+            return null;
+        }
+        SiteTreeNode[] siteTreeNodes = new SiteTreeNode[topNodes.size()];
+        return (SiteTreeNode[])topNodes.toArray(siteTreeNodes);
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org