svn commit: r777550 - in /lenya/branches/BRANCH_2_0_X/src/modules/sitetree: ./ java/src/org/apache/lenya/cms/cocoon/generation/ java/src/org/apache/lenya/cms/cocoon/transformation/

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Fri May 22 14:44:34 2009
New Revision: 777550

URL: http://svn.apache.org/viewvc?rev=777550&view=rev
Log:
Use sitetree-fragment generator instead of generating sitetree directly from file. This restores compatibility with the access-control sitetree transformer.

Modified:
    lenya/branches/BRANCH_2_0_X/src/modules/sitetree/java/src/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java
    lenya/branches/BRANCH_2_0_X/src/modules/sitetree/java/src/org/apache/lenya/cms/cocoon/transformation/AccessControlSitetreeTransformer.java
    lenya/branches/BRANCH_2_0_X/src/modules/sitetree/sitemap.xmap

Modified: lenya/branches/BRANCH_2_0_X/src/modules/sitetree/java/src/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_0_X/src/modules/sitetree/java/src/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java?rev=777550&r1=777549&r2=777550&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_0_X/src/modules/sitetree/java/src/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java (original)
+++ lenya/branches/BRANCH_2_0_X/src/modules/sitetree/java/src/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java Fri May 22 14:44:34 2009
@@ -79,6 +79,7 @@
     private SiteStructure site;
 
     private String path;
+    private String documentElement;
 
     private String cacheKey;
     private SourceValidity validity;
@@ -91,6 +92,12 @@
     protected static final String PARAM_INITIAL = "initial";
     protected static final String PARAM_TYPE = "mimetype";
     protected static final String PARAM_AREAS = "areas";
+    
+    /**
+     * The local name of the document element to be generated.
+     * Optional, defaults to {@link #NODE_FRAGMENT}. 
+     */
+    protected static final String PARAM_DOCUMENT_ELEMENT = "document-element";
 
     /** The URI of the namespace of this generator. */
     public static final String URI = "http://apache.org/cocoon/lenya/sitetree/1.0";
@@ -157,6 +164,12 @@
             String temp[] = { "authoring", "archive", "trash" };
             this.areas = temp;
         }
+        
+        if (par.isParameter(PARAM_DOCUMENT_ELEMENT)) {
+            this.documentElement = par.getParameter(PARAM_DOCUMENT_ELEMENT, null);
+        } else {
+            this.documentElement = NODE_FRAGMENT;
+        }
 
         if (this.getLogger().isDebugEnabled()) {
             this.getLogger().debug("Parameter area: " + area);
@@ -244,7 +257,7 @@
                 this.attributes.addAttribute("", ATTR_BASE, ATTR_BASE, "CDATA", this.path);
             }
 
-            this.contentHandler.startElement(URI, NODE_FRAGMENT, PREFIX + ':' + NODE_FRAGMENT,
+            this.contentHandler.startElement(URI, this.documentElement, PREFIX + ':' + this.documentElement,
                     this.attributes);
 
             if (this.initialTree) {
@@ -255,7 +268,7 @@
                 generateFragment();
             }
 
-            this.contentHandler.endElement(URI, NODE_FRAGMENT, PREFIX + ':' + NODE_FRAGMENT);
+            this.contentHandler.endElement(URI, this.documentElement, PREFIX + ':' + this.documentElement);
 
             this.contentHandler.endPrefixMapping(PREFIX);
             this.contentHandler.endDocument();

Modified: lenya/branches/BRANCH_2_0_X/src/modules/sitetree/java/src/org/apache/lenya/cms/cocoon/transformation/AccessControlSitetreeTransformer.java
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_0_X/src/modules/sitetree/java/src/org/apache/lenya/cms/cocoon/transformation/AccessControlSitetreeTransformer.java?rev=777550&r1=777549&r2=777550&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_0_X/src/modules/sitetree/java/src/org/apache/lenya/cms/cocoon/transformation/AccessControlSitetreeTransformer.java (original)
+++ lenya/branches/BRANCH_2_0_X/src/modules/sitetree/java/src/org/apache/lenya/cms/cocoon/transformation/AccessControlSitetreeTransformer.java Fri May 22 14:44:34 2009
@@ -133,15 +133,24 @@
 
         Attributes attributes = attr;
 
-        if (isFragmentElement(uri, localName)) {
-            this.pubId = attr.getValue(SitetreeFragmentGenerator.ATTR_PUBLICATION);
-            Assert.notNull("publication attribute", this.pubId);
-
-            String area = attr.getValue("area");
-            if (area != null) {
-                this.area = area;
+        if (isFragmentElement(uri, localName) || isSiteElement(uri, localName)) {
+            
+            String pubIdAttr = attr.getValue(SitetreeFragmentGenerator.ATTR_PUBLICATION);
+            if (isFragmentElement(uri, localName)) {
+                Assert.notNull(SitetreeFragmentGenerator.ATTR_PUBLICATION + " attribute", pubIdAttr);
+            }
+            if (pubIdAttr != null) {
+                this.pubId = pubIdAttr;
             }
 
+            String areaAttr = attr.getValue(SitetreeFragmentGenerator.ATTR_AREA);
+            if (isSiteElement(uri, localName)) {
+                Assert.notNull(SitetreeFragmentGenerator.ATTR_AREA + " attribute", areaAttr);
+            }
+            if (areaAttr != null) {
+                this.area = areaAttr;
+            }
+            
             String basePath = attr.getValue(SitetreeFragmentGenerator.ATTR_BASE);
             this.basePath = basePath == null ? "" : basePath;
 
@@ -154,9 +163,6 @@
                 throw new SAXException(e);
             }
 
-        } else if (isSiteElement(uri, localName)) {
-            this.area = attr.getValue("area");
-            Assert.notNull("area attribute", this.area);
         } else if (isNodeElement(uri, localName)) {
             String id = attr.getValue(SitetreeFragmentGenerator.ATTR_ID);
             Assert.notNull("id attribute", id);

Modified: lenya/branches/BRANCH_2_0_X/src/modules/sitetree/sitemap.xmap
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_0_X/src/modules/sitetree/sitemap.xmap?rev=777550&r1=777549&r2=777550&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_0_X/src/modules/sitetree/sitemap.xmap (original)
+++ lenya/branches/BRANCH_2_0_X/src/modules/sitetree/sitemap.xmap Fri May 22 14:44:34 2009
@@ -71,14 +71,15 @@
       <!-- sitetree -->
       <!-- pattern: sitetree/{1:pub-id}/{2:area}.xml -->
       <map:match pattern="sitetree/*/*.xml">
-        <map:select type="resource-exists">
-          <map:when test="lenya://lenya/pubs/{1}/content/{2}/sitetree.xml">
-            <map:generate src="lenya://lenya/pubs/{1}/content/{2}/sitetree.xml"/>
-          </map:when>
-          <map:otherwise>
-            <map:generate src="fallback://lenya/modules/sitetree/resources/content/emptySitetree.xml"/>
-          </map:otherwise>
-        </map:select>
+        <map:generate type="sitetree-fragment">
+          <map:parameter name="pub" value="{1}"/>
+          <map:parameter name="area" value="{2}"/>
+          <map:parameter name="areas" value="{2}"/>
+          <map:parameter name="path" value="/"/>
+          <map:parameter name="initial" value="false"/>
+          <map:parameter name="mimetype" value="false"/>
+          <map:parameter name="document-element" value="site"/>
+        </map:generate>
         <map:serialize type="xml"/>
       </map:match>
       
@@ -118,10 +119,7 @@
       <map:match pattern="*/*/sitetree.xml">
         <map:generate src="cocoon:/sitetree/{1}/{2}.xml"/>
         <map:call resource="i18n"/>
-        <map:transform type="access-control-sitetree">
-          <map:parameter name="publication-id" value="{1}"/>
-          <map:parameter name="area" value="{2}"/>
-        </map:transform>
+        <map:transform type="access-control-sitetree"/>
         <map:transform src="fallback://lenya/modules/sitetree/xslt/info/sitetree2areatree.xsl">
           <map:parameter name="area" value="{2}"/>
         </map:transform>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.