Hi Lenya devs,

my latest commit had the goal to make the AccessControlSitetreeTranformer work properly for navigation elements, but there are some problems which are not yet solved. I'll take care of this during the weekend, the sitetree will be working again on Monday.

Sorry for the inconvenience,

-- Andreas


[email protected] schrieb:
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>


--
Andreas Hartmann, CTO
BeCompany GmbH
http://www.becompany.ch
Tel.: +41 (0) 43 818 57 01


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to