forrest-svn mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From thors...@apache.org
Subject svn commit: r209151 - in /forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view: ./ lib/ resources/stylesheets/
Date Tue, 05 Jul 2005 00:26:36 GMT
Author: thorsten
Date: Mon Jul  4 17:26:35 2005
New Revision: 209151

URL: http://svn.apache.org/viewcvs?rev=209151&view=rev
Log:
Activated per dir view fallbacks. That means we match now file-specific->(sub-)dir-specific->plugin
specific views. This change makes the conf/default.fv view obsolete, because we now expecting
it in xdocs/default.fv.

Added:
    forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/
    forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/databases-block.jar
  (with props)
    forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/eventcache-block.jar
  (with props)
    forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/jms-block.jar
  (with props)
    forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/readme.txt
  (with props)
    forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/repository-block.jar
  (with props)
    forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/includes-viewLocationmap.xsl
  (with props)
    forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/viewLocationmap.xsl
  (with props)
    forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/viewLocationmap2path.xsl
  (with props)
Modified:
    forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/internal.xmap

Modified: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/internal.xmap
URL: http://svn.apache.org/viewcvs/forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/internal.xmap?rev=209151&r1=209150&r2=209151&view=diff
==============================================================================
--- forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/internal.xmap
(original)
+++ forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/internal.xmap
Mon Jul  4 17:26:35 2005
@@ -22,6 +22,13 @@
       <map:selector logger="sitemap.selector.exists" name="exists" src="org.apache.forrest.sourceexists.SourceExistsSelector"
/>
     </map:selectors>
     <map:generators default="file">
+      <map:generator 
+        name="traverse" 
+        src="org.apache.cocoon.generation.TraversableGenerator" 
+        logger="sitemap.generator.traverse" 
+        label="content" 
+        pool-max="16"
+      />
       <map:generator name="directory" src="org.apache.cocoon.generation.DirectoryGenerator"
/>
       <map:generator label="content" logger="sitemap.generator.jx" name="jx" pool-grow="2"
pool-max="16" pool-min="2" src="org.apache.cocoon.generation.JXTemplateGenerator"/>
     </map:generators>
@@ -76,35 +83,33 @@
   prepares and transforms the requested contracts (viewHelper) and populate them with the
content (businessHelper).
   -->
   <map:pipeline>
+    <!--Refactor for dir-->
+    <map:match pattern="viewLocationmap.xml">
+      <map:generate type="traverse" src="{project:content.xdocs}">
+        <map:parameter name="depth" value="100"/>
+        <map:parameter name="exclude" value="[\w]*.svn"/>
+        <!--<map:parameter name="include" value="[\w]*.fv"/>-->
+      </map:generate>
+      <map:transform src="resources/stylesheets/viewLocationmap.xsl"/>
+    	<map:serialize type="xml"/>
+    </map:match>
+    
+
   <!--
     View config resolver
     File specific views have priority before default ones.
     If no views can be found in the project we use the default one of the view plugin.
     -->
     <map:match pattern="prepare.view.**">
-      <map:select type="exists">
-        <!--
-          Here we will have to test, whether the requested page needs a specific view.
-          This will be assumed as soon there is a .fv
-          e.g. index.xml + index.fv
-          -->
-        <map:when test="{project:content.xdocs}{1}.fv">
-          <map:generate src="{project:content.xdocs}{1}.fv"/>
-        </map:when>
-				<!--
-          If there is no file specific view then use the default.fv of the project stored
in "project.conf-dir".
-          -->
-        <map:when test="{project:conf}/default.fv">
-          <map:generate src="{project:conf}/default.fv"/>
-        </map:when>
-        <!--
-          If the above not matches then get the default view of this plugin.
-          -->
-        <map:otherwise>
-          <map:generate src="resources/views/default.fv"/>
-        </map:otherwise>
-      </map:select>
-     	<map:serialize type="xml"/>
+      <map:generate src="cocoon:/viewLocationmap.xml"/>
+      <map:transform src="resources/stylesheets/viewLocationmap2path.xsl"/>
+      <map:transform src="resources/stylesheets/includes-viewLocationmap.xsl">
+        <map:parameter value="{1}" name="path"/>
+        <map:parameter value="{project:content.xdocs}" name="root"/>
+        <map:parameter value="resources/views/default.fv" name="viewFallback"/>
+      </map:transform>
+      <map:transform type="xinclude"/>
+    	<map:serialize type="xml"/>
     </map:match>
     
     <!--Add businessHelper to the presentation model that the content can be used later
on.-->

Added: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/databases-block.jar
URL: http://svn.apache.org/viewcvs/forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/databases-block.jar?rev=209151&view=auto
==============================================================================
Binary file - no diff available.

Propchange: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/databases-block.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/eventcache-block.jar
URL: http://svn.apache.org/viewcvs/forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/eventcache-block.jar?rev=209151&view=auto
==============================================================================
Binary file - no diff available.

Propchange: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/eventcache-block.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/jms-block.jar
URL: http://svn.apache.org/viewcvs/forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/jms-block.jar?rev=209151&view=auto
==============================================================================
Binary file - no diff available.

Propchange: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/jms-block.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/readme.txt
URL: http://svn.apache.org/viewcvs/forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/readme.txt?rev=209151&view=auto
==============================================================================
--- forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/readme.txt
(added)
+++ forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/readme.txt
Mon Jul  4 17:26:35 2005
@@ -0,0 +1 @@
+Place any libraries required by your plugin in this directory.
\ No newline at end of file

Propchange: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/readme.txt
------------------------------------------------------------------------------
    svn:keywords = Id svn:eol-style=native

Added: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/repository-block.jar
URL: http://svn.apache.org/viewcvs/forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/repository-block.jar?rev=209151&view=auto
==============================================================================
Binary file - no diff available.

Propchange: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/lib/repository-block.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/includes-viewLocationmap.xsl
URL: http://svn.apache.org/viewcvs/forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/includes-viewLocationmap.xsl?rev=209151&view=auto
==============================================================================
--- forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/includes-viewLocationmap.xsl
(added)
+++ forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/includes-viewLocationmap.xsl
Mon Jul  4 17:26:35 2005
@@ -0,0 +1,157 @@
+<?xml version="1.0"?>
+<!--
+  Copyright 2002-2004 The Apache Software Foundation or its licensors,
+  as applicable.
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:collection="http://apache.org/cocoon/collection/1.0"
+  xmlns:xi="http://www.w3.org/2001/XInclude"
+  xmlns:dyn="http://exslt.org/dynamic">
+  
+  <xsl:param name="defaultView" select="'default.fv'"/>
+  <xsl:param name="rootElement" select="'/xdocs/'"/>
+  <xsl:param name="path" select="'.'"/>
+  <xsl:param name="root" select="'xdocs'"/>
+  <xsl:param name="viewFallback" select="'resources/views/default.fv'"/>
+  <xsl:variable name="lastFallback" select="boolean(/xdocs/*[local-name()=$defaultView])"/>
+   <!--
+    *viewSelector* project-xdocs
+    will return which view is responsible for the requested path.
+    If no view (choice|fallback) could be found the template will return the viewFallback.
+    
+    ex.: 
+    1.request: index 
+    First choice: index.fv
+    First/last fallback: default.fv
+    
+    2.request: sample/index 
+    First choice: sample/index.fv
+    First fallback: sample/default.fv
+    Last fallback: default.fv
+    
+    3.request: sample/subdir/index 
+    First choice: sample/subdir/index.fv
+    First fallback: sample/subdir/default.fv
+    Second fallback: sample/default.fv
+    Last fallback: default.fv
+    
+    ...
+    
+    des.: 
+    The parent view (root-view) inherits to its children until 
+    a child is overriding this view. This override can be used for 
+    directories (default.fv) and/or files (*.fv).
+    That means that the root view is the default view as long no other
+    view can be found in the requested child.
+    -->
+  <xsl:template match="/">
+    <!--<xsl:comment>
+      lastFallback: <xsl:value-of select="$lastFallback"/>
+      root: <xsl:value-of select="$root"/>
+      request: <xsl:value-of select="$path"/>
+      default view: <xsl:value-of select="$defaultView"/>
+      function-available('dyn:evaluate') <xsl:value-of select="function-available('dyn:evaluate')"/>
+    </xsl:comment>-->
+    <xsl:variable name="view2response">
+      <xsl:call-template name="viewSelector">
+	      <xsl:with-param name="request" select="concat($path,'.fv')"/>
+	      <xsl:with-param name="rest" select="''"/>
+	    </xsl:call-template>
+    </xsl:variable>
+    <!--Nothing can be found, returning the default.fv-->
+    <xsl:if test="not($lastFallback) and $view2response=''">
+      <xi:include href="{$viewFallback}"/>
+    </xsl:if>
+    <!--The lastFallback can be found, returning this-->
+    <xsl:if test="$lastFallback and $view2response=''">
+      <xi:include href="{concat('file://', $root,$defaultView)}"/>
+    </xsl:if>
+    <!--Some fallback can be found that is not the last one-->
+    <xsl:if test="$view2response!=''">
+      <xi:include href="{concat('file://', $root,$view2response)}"/>
+    </xsl:if>
+  </xsl:template>
+ 
+  <xsl:template name="viewSelector">
+    <xsl:param name="request" select="''"/>
+    <xsl:param name="rest" select="''"/>
+    <xsl:param name="view2response" select="''"/>
+    <xsl:if test="contains($request,'/')">
+      <xsl:variable name="nextRequest" select="substring-after($request,'/')"/>
+      <xsl:variable name="currentDir" select="substring-before($request,'/')"/>
+      <!--<xsl:comment>
+        request: <xsl:value-of select="$request"/>
+	      currentDir: <xsl:value-of select="$currentDir"/>
+        currentDir has default view: <xsl:value-of select="boolean(dyn:evaluate(concat($rootElement,$rest,$currentDir,'/',$defaultView)))"/>
+        next request: <xsl:value-of select="$nextRequest"/>
+        rest: <xsl:value-of select="$rest"/>
+        view2response: <xsl:value-of select="$view2response"/>
+	    </xsl:comment>-->
+      <!--In the path are still directories-->
+      <xsl:if test="boolean(dyn:evaluate(concat($rootElement,$rest,$currentDir,'/',$defaultView)))">
+        <!--<xsl:comment>view2response set - <xsl:value-of select="(concat($rest,$currentDir,'/',$defaultView)"/></xsl:comment>-->
+        <xsl:variable name="viewTemp" select="concat($rest,$currentDir,'/',$defaultView)"/>
+        <xsl:call-template name="viewSelector">
+			    <xsl:with-param name="request" select="$nextRequest"/>
+			    <xsl:with-param name="rest" select="concat($rest,$currentDir,'/')"/>
+	        <xsl:with-param name="view2response" select="$viewTemp"/>
+			  </xsl:call-template>
+      </xsl:if>
+      <xsl:if test="not(dyn:evaluate(concat($rootElement,$rest,$currentDir,'/',$defaultView)))">
+        <!--<xsl:comment>no view2response set</xsl:comment>-->
+        <xsl:if test="$view2response=''">
+          <xsl:variable name="viewTemp" select="''"/>
+          <xsl:call-template name="viewSelector">
+				    <xsl:with-param name="request" select="$nextRequest"/>
+				    <xsl:with-param name="rest" select="concat($rest,$currentDir,'/')"/>
+		        <xsl:with-param name="view2response" select="$viewTemp"/>
+				  </xsl:call-template>
+        </xsl:if>
+        <xsl:if test="$view2response!=''">
+          <xsl:variable name="viewTemp" select="$view2response"/>
+          <xsl:call-template name="viewSelector">
+				    <xsl:with-param name="request" select="$nextRequest"/>
+				    <xsl:with-param name="rest" select="concat($rest,$currentDir,'/')"/>
+		        <xsl:with-param name="view2response" select="$viewTemp"/>
+				  </xsl:call-template>
+        </xsl:if>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="not(contains($request,'/'))">
+      <!--<xsl:comment>
+        request: <xsl:value-of select="$request"/>
+        rest: <xsl:value-of select="$rest"/>
+        iteration: <xsl:value-of select="number($iteration)"/>
+        view2response: <xsl:value-of select="$view2response"/>
+	    </xsl:comment>-->
+      <xsl:if test="not(dyn:evaluate(concat($rootElement, $rest, $request)))">
+        <!--<xsl:comment>no file specific override</xsl:comment>-->
+        <xsl:if test="boolean(dyn:evaluate(concat($rootElement,$rest,$defaultView)))">
+          <!--<xsl:comment>dir specific override</xsl:comment>-->
+          <xsl:value-of select="concat($rest,$defaultView)"/>
+        </xsl:if>
+        <xsl:if test="not(dyn:evaluate(concat($rootElement,$rest,$defaultView)))">
+          <!--<xsl:comment>no dir specific override</xsl:comment>-->
+          <xsl:value-of select="$view2response"/>
+        </xsl:if>
+      </xsl:if>
+      <xsl:if test="boolean(dyn:evaluate(concat($rootElement, $rest, $request)))">
+        <!--<xsl:comment>file specific override</xsl:comment>-->
+         <xsl:value-of select="concat($rest, $request)"/>
+      </xsl:if>
+    </xsl:if>
+  </xsl:template>
+  
+</xsl:stylesheet>

Propchange: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/includes-viewLocationmap.xsl
------------------------------------------------------------------------------
    svn:keywords = Id svn:eol-style=native

Added: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/viewLocationmap.xsl
URL: http://svn.apache.org/viewcvs/forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/viewLocationmap.xsl?rev=209151&view=auto
==============================================================================
--- forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/viewLocationmap.xsl
(added)
+++ forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/viewLocationmap.xsl
Mon Jul  4 17:26:35 2005
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<!--
+  Copyright 2002-2004 The Apache Software Foundation or its licensors,
+  as applicable.
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:collection="http://apache.org/cocoon/collection/1.0">
+  <xsl:variable name="includePattern" select="'.fv'"/>
+  
+  <xsl:template match="/">
+    <xsl:apply-templates/>
+  </xsl:template>
+  <xsl:template match="collection:collection">
+    <dir name="{@name}">
+    	<xsl:apply-templates/>
+    </dir>
+  </xsl:template>
+  <xsl:template match="collection:resource[contains(@name,$includePattern)]">
+    <view name="{@name}">
+    	<xsl:apply-templates/>
+    </view>
+  </xsl:template>
+  <!--/collection:resource[contains(@name,$includePattern)]-->
+ <!-- <xsl:template match="//*/*[contains(@name,$includePattern)]">
+    <xsl:variable name="parent" select="../."/>
+    <node id="{$parent/@name}"/>
+   <!-#-<xsl:copy-of select="$parent"/>-#->
+  </xsl:template>-->
+  
+</xsl:stylesheet>

Propchange: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/viewLocationmap.xsl
------------------------------------------------------------------------------
    svn:keywords = Id svn:eol-style=native

Added: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/viewLocationmap2path.xsl
URL: http://svn.apache.org/viewcvs/forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/viewLocationmap2path.xsl?rev=209151&view=auto
==============================================================================
--- forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/viewLocationmap2path.xsl
(added)
+++ forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/viewLocationmap2path.xsl
Mon Jul  4 17:26:35 2005
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<!--
+  Copyright 2002-2004 The Apache Software Foundation or its licensors,
+  as applicable.
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:collection="http://apache.org/cocoon/collection/1.0">
+  
+  <xsl:template match="/">
+   <xsl:apply-templates/>
+  </xsl:template>
+ 
+  <xsl:template match="dir[view or dir]">
+    <xsl:element name="{@name}">
+      <xsl:apply-templates/>
+    </xsl:element>
+  </xsl:template>
+  
+  <xsl:template match="view">
+    <xsl:element name="{@name}"/>
+  </xsl:template>
+ 
+</xsl:stylesheet>

Propchange: forrest/branches/locationmap_branch/whiteboard/plugins/org.apache.forrest.plugin.internal.view/resources/stylesheets/viewLocationmap2path.xsl
------------------------------------------------------------------------------
    svn:keywords = Id svn:eol-style=native



Mime
View raw message