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/11 13:46:25 UTC

svn commit: r160864 - in lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms: cocoon/generation/SiteTreeGenerator.java publication/DefaultSiteTree.java

Author: michi
Date: Mon Apr 11 04:46:24 2005
New Revision: 160864

URL: http://svn.apache.org/viewcvs?view=rev&rev=160864
Log:
thanks to Felix and Josias last modified has been implemeneted

Modified:
    lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/cocoon/generation/SiteTreeGenerator.java
    lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/DefaultSiteTree.java

Modified: lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/cocoon/generation/SiteTreeGenerator.java
URL: http://svn.apache.org/viewcvs/lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/cocoon/generation/SiteTreeGenerator.java?view=diff&r1=160863&r2=160864
==============================================================================
--- lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/cocoon/generation/SiteTreeGenerator.java (original)
+++ lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/cocoon/generation/SiteTreeGenerator.java Mon Apr 11 04:46:24 2005
@@ -20,15 +20,20 @@
 package org.apache.lenya.cms.cocoon.generation;
 
 import java.io.IOException;
+import java.io.Serializable;
 import java.util.Map;
 
 import org.apache.avalon.framework.parameters.ParameterException;
 import org.apache.avalon.framework.parameters.Parameterizable;
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.cocoon.ProcessingException;
+import org.apache.cocoon.caching.CacheableProcessingComponent;
 import org.apache.cocoon.environment.SourceResolver;
 import org.apache.cocoon.generation.ServiceableGenerator;
+import org.apache.excalibur.source.SourceValidity;
+import org.apache.excalibur.source.impl.validity.TimeStampValidity;
 import org.apache.lenya.cms.publication.Label;
+import org.apache.lenya.cms.publication.LastModified;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.PublicationException;
 import org.apache.lenya.cms.publication.PublicationFactory;
@@ -40,7 +45,7 @@
 import org.xml.sax.helpers.AttributesImpl;
 
 public class SiteTreeGenerator extends ServiceableGenerator
-    implements Parameterizable
+    implements Parameterizable, CacheableProcessingComponent
 {
     private static Logger log = Logger.getLogger(SiteTreeGenerator.class);
     
@@ -171,5 +176,24 @@
         super.recycle();
         sitetree = null;
         area = null;
+    }
+
+    /**
+     * @see org.apache.cocoon.caching.CacheableProcessingComponent#getKey()
+     */
+    public Serializable getKey() {
+        return area;
+    }
+
+    /**
+     * @see org.apache.cocoon.caching.CacheableProcessingComponent#getValidity()
+     */
+    public SourceValidity getValidity() {
+        // Check if sitetree implementation supports last modified
+        if (!(sitetree instanceof LastModified)) {
+            return null;
+        } else {
+            return new TimeStampValidity(((LastModified)sitetree).getLastModified());
+        }
     }
 }

Modified: lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/DefaultSiteTree.java
URL: http://svn.apache.org/viewcvs/lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/DefaultSiteTree.java?view=diff&r1=160863&r2=160864
==============================================================================
--- lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/DefaultSiteTree.java (original)
+++ lenya/branches/BRANCH_1_2_X/src/java/org/apache/lenya/cms/publication/DefaultSiteTree.java Mon Apr 11 04:46:24 2005
@@ -22,6 +22,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.StringTokenizer;
 
@@ -42,7 +43,7 @@
 /**
  * Default Sitetree implementation
  */
-public class DefaultSiteTree implements SiteTree {
+public class DefaultSiteTree implements SiteTree, LastModified {
     private static Logger log = Logger.getLogger(DefaultSiteTree.class);
     
     private static Object lock = new Object();
@@ -53,6 +54,8 @@
     private File treefile = null;
     // the area is only retained to provide some more info when raising an exception.
     private String area = "";
+    
+    private long lastModified = 0;
 
     /**
      * Create a DefaultSiteTree
@@ -118,8 +121,6 @@
 
     }
 
-    private long lastModified = 0;
-
     /**
      * Checks if the tree file has been modified externally and reloads the site tree.
      * @throws SiteTreeException when something went wrong.
@@ -366,7 +367,6 @@
             parentNode.appendChild(child);
         }
         log.debug("Tree has been modified: " + document.getDocumentElement());
-
     }
     /**
      *  (non-Javadoc)
@@ -586,8 +586,7 @@
         if (children == null) {
             log.info("The node " + subtreeRoot.toString() + " has no children");
             return;
-        } else {
-            for (int i = 0; i < children.length; i++) {
+        } else {            for (int i = 0; i < children.length; i++) {
                 importSubtree(newParent, children[i], children[i].getId(), null);
             }
         }
@@ -606,6 +605,7 @@
             throw new SiteTreeException(
                 "The saving of document [" + document.getLocalName() + "] failed");
         }
+        lastModified = new Date().getTime();    
     }
 
     /**
@@ -684,5 +684,12 @@
                 }
             }
         }
+    }
+
+    /**
+     * @see org.apache.lenya.cms.publication.LastModified#getLastModified()
+     */
+    public long getLastModified() {
+        return lastModified;
     }
 }



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