You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2012/01/13 17:24:48 UTC

svn commit: r1231160 - in /lenya/branches/BRANCH_2_1_X/src: java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java webapp/lenya/config/cocoon-xconf/misc/document-builders.xconf

Author: andreas
Date: Fri Jan 13 16:24:48 2012
New Revision: 1231160

URL: http://svn.apache.org/viewvc?rev=1231160&view=rev
Log:
Allow to parameterize the DefaultDocumentBuilder URI extension.

Modified:
    lenya/branches/BRANCH_2_1_X/src/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java
    lenya/branches/BRANCH_2_1_X/src/webapp/lenya/config/cocoon-xconf/misc/document-builders.xconf

Modified: lenya/branches/BRANCH_2_1_X/src/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_1_X/src/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java?rev=1231160&r1=1231159&r2=1231160&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_1_X/src/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java (original)
+++ lenya/branches/BRANCH_2_1_X/src/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java Fri Jan 13 16:24:48 2012
@@ -19,6 +19,9 @@
 package org.apache.lenya.cms.publication;
 
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.parameters.ParameterException;
+import org.apache.avalon.framework.parameters.Parameterizable;
+import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.avalon.framework.service.Serviceable;
 import org.apache.avalon.framework.thread.ThreadSafe;
@@ -30,7 +33,12 @@ import org.apache.lenya.cms.site.SiteNod
  * @version $Id$
  */
 public class DefaultDocumentBuilder extends AbstractLogEnabled implements DocumentBuilder,
-        Serviceable, ThreadSafe {
+        Serviceable, ThreadSafe, Parameterizable {
+
+    /**
+     * The extension, optionally including the leading dot. Defaults to ".html".
+     */
+    private static final String PARAM_EXTENSION = "extension";
 
     /**
      * Ctor.
@@ -46,6 +54,7 @@ public class DefaultDocumentBuilder exte
     }
 
     protected ServiceManager manager;
+    private String extension;
 
     /**
      * Removes all "."-separated extensions from a URL (e.g.,
@@ -144,7 +153,7 @@ public class DefaultDocumentBuilder exte
             languageSuffix = "_" + language;
         }
 
-        return locator.getPath() + languageSuffix + ".html";
+        return locator.getPath() + languageSuffix + this.extension;
     }
 
     public String buildCanonicalUrl(DocumentFactory factory, DocumentLocator doc) {
@@ -219,4 +228,10 @@ public class DefaultDocumentBuilder exte
         return documentName.matches("[a-zA-Z0-9\\-]+");
     }
 
+    @Override
+    public void parameterize(final Parameters params) throws ParameterException {
+        final String ext = params.getParameter(PARAM_EXTENSION, "html");
+        this.extension = "".equals(ext) || ext.startsWith(".") ? ext : "." + ext;
+    }
+
 }

Modified: lenya/branches/BRANCH_2_1_X/src/webapp/lenya/config/cocoon-xconf/misc/document-builders.xconf
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_1_X/src/webapp/lenya/config/cocoon-xconf/misc/document-builders.xconf?rev=1231160&r1=1231159&r2=1231160&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_1_X/src/webapp/lenya/config/cocoon-xconf/misc/document-builders.xconf (original)
+++ lenya/branches/BRANCH_2_1_X/src/webapp/lenya/config/cocoon-xconf/misc/document-builders.xconf Fri Jan 13 16:24:48 2012
@@ -25,5 +25,9 @@
     <document-builders>
       <component-instance name="default" logger="lenya.publication"
         class="org.apache.lenya.cms.publication.DefaultDocumentBuilder"/>
+      <component-instance name="no-extension" logger="lenya.publication"
+        class="org.apache.lenya.cms.publication.DefaultDocumentBuilder">
+        <parameter name="extension" value=""/>
+      </component>
     </document-builders>
   </xconf>



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