henning     2003/07/22 04:14:14

  Modified:    src/java/org/apache/turbine/services/template
                        TurbineTemplateService.java
               xdocs/services template-service.xml
  Added:       src/java/org/apache/turbine/services/template/mapper
                        DirectTemplateMapper.java
  Log:
  Add a mapper for the direct template translation policy of our navigation
  templates. This is the "templating name" equivalent to the DirectMapper for
  classes.
  
  Revision  Changes    Path
  1.18      +3 -2      
jakarta-turbine-2/src/java/org/apache/turbine/services/template/TurbineTemplateService.java
  
  Index: TurbineTemplateService.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-2/src/java/org/apache/turbine/services/template/TurbineTemplateService.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- TurbineTemplateService.java       22 Jul 2003 10:58:49 -0000      1.17
  +++ TurbineTemplateService.java       22 Jul 2003 11:14:13 -0000      1.18
  @@ -82,6 +82,7 @@
   import org.apache.turbine.services.template.mapper.BaseTemplateMapper;
   import org.apache.turbine.services.template.mapper.ClassMapper;
   import org.apache.turbine.services.template.mapper.DirectMapper;
  +import org.apache.turbine.services.template.mapper.DirectTemplateMapper;
   import org.apache.turbine.services.template.mapper.LayoutTemplateMapper;
   import org.apache.turbine.services.template.mapper.Mapper;
   import org.apache.turbine.services.template.mapper.ScreenTemplateMapper;
  @@ -739,7 +740,7 @@
               ClassMapper.class.getName(),
               LayoutTemplateMapper.class.getName(),
               ScreenTemplateMapper.class.getName(),
  -            ScreenTemplateMapper.class.getName()
  +            DirectTemplateMapper.class.getName()
           };
   
           int [] mapperCacheSize = new int [] {
  
  
  
  1.1                  
jakarta-turbine-2/src/java/org/apache/turbine/services/template/mapper/DirectTemplateMapper.java
  
  Index: DirectTemplateMapper.java
  ===================================================================
  package org.apache.turbine.services.template.mapper;
  
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2001-2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache Turbine" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Turbine", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  import org.apache.commons.lang.StringUtils;
  
  import org.apache.turbine.services.template.TemplateService;
  
  /**
   * The most primitive templating mapper. It is used for the navigation template
   * objects. It never caches and simply returns what is given to it but keeps
   * the template extension.
   *
   * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a>
   * @version $Id: DirectTemplateMapper.java,v 1.1 2003/07/22 11:14:14 henning Exp $
   */
  public class DirectTemplateMapper
      extends BaseTemplateMapper
      implements Mapper
  {
      /**
       * Default C'tor. If you use this C'tor, you must use
       * the bean setter to set the various properties needed for
       * this mapper before first usage.
       */
      public DirectTemplateMapper()
      {
      }
  
      /**
       * Replace all "," with ".", but keep the extension.
       *
       * about,directions,Driving.vm --> about/directions/Driving.vm
       *
       * @param template The template name.
       * @return A class name for the given template.
       */
      public String doMapping(String template)
      {
          String [] components
              = StringUtils.split(template, 
String.valueOf(TemplateService.TEMPLATE_PARTS_SEPARATOR));
  
          return StringUtils.join(components, String.valueOf(separator));
      }
  }
  
  
  
  1.5       +28 -21    jakarta-turbine-2/xdocs/services/template-service.xml
  
  Index: template-service.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-2/xdocs/services/template-service.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- template-service.xml      22 Jul 2003 10:44:44 -0000      1.4
  +++ template-service.xml      22 Jul 2003 11:14:14 -0000      1.5
  @@ -20,7 +20,7 @@
   
   <source><![CDATA[
   # -------------------------------------------------------------------
  -# 
  +#
   #  S E R V I C E S
   #
   # -------------------------------------------------------------------
  @@ -35,7 +35,7 @@
   .
   .
   # -------------------------------------------------------------------
  -# 
  +#
   #  T E M P L A T E  S E R V I C E
   #
   # -------------------------------------------------------------------
  @@ -51,13 +51,14 @@
   #
   # These are the mapper classes responsible for the lookup of Page, Screen, Layout 
and Navigation classes according
   # to the supplied template Name. They also map template names on the Layout and 
Screen file names to be used.
  -# 
  -services.TemplateService.mapper.page.class            = 
org.apache.turbine.services.template.mapper.TemplateDirectMapper
  -services.TemplateService.mapper.screen.class          = 
org.apache.turbine.services.template.mapper.TemplateClassMapper
  -services.TemplateService.mapper.layout.class          = 
org.apache.turbine.services.template.mapper.TemplateClassMapper
  -services.TemplateService.mapper.navigation.class      = 
org.apache.turbine.services.template.mapper.TemplateClassMapper
  -services.TemplateService.mapper.layout.template.class = 
org.apache.turbine.services.template.mapper.TemplateLayoutMapper
  -services.TemplateService.mapper.screen.template.class = 
org.apache.turbine.services.template.mapper.TemplateScreenMapper  
  +#
  +services.TemplateService.mapper.page.class                = 
org.apache.turbine.services.template.mapper.DirectMapper
  +services.TemplateService.mapper.screen.class              = 
org.apache.turbine.services.template.mapper.ClassMapper
  +services.TemplateService.mapper.layout.class              = 
org.apache.turbine.services.template.mapper.ClassMapper
  +services.TemplateService.mapper.navigation.class          = 
org.apache.turbine.services.template.mapper.ClassMapper
  +services.TemplateService.mapper.layout.template.class     = 
org.apache.turbine.services.template.mapper.LayoutTemplateMapper
  +services.TemplateService.mapper.screen.template.class     = 
org.apache.turbine.services.template.mapper.ScreenTemplateMapper
  +services.TemplateService.mapper.navigation.template.class = 
org.apache.turbine.services.template.mapper.DirectTemplateMapper
   
   ]]></source>
   
  @@ -74,7 +75,7 @@
   your preferred view service. So if you read "Velocity" in the
   following paragraphs, this means "default configured view
   class". Currently, Turbine includes two supported view services,
  -<a href="services/velocity-service.html">Velocity</a> and 
  +<a href="services/velocity-service.html">Velocity</a> and
   <a href="services/jsp-service.html">Java Server Pages (JSP)</a>.
   </p>
   
  @@ -88,7 +89,7 @@
   
   <ul>
     <li>1) Many examples and docs from older Turbine code show template
  -         pathes with a slashes.<br/> 
  +         pathes with a slashes.<br/>
            Repeat after me: <b>TEMPLATE NAMES NEVER CONTAIN SLASHES!</b><br/>
            Template names are separated by "," (the colon). </li>
     <li>2) Many examples and docs from older Turbine code show templates
  @@ -119,7 +120,7 @@
   
   <p>
     And if you have the following module packages configured in your 
TurbineResources.properties:
  -  "module.packages = org.apache.turbine.modules, com.mycorp.modules", 
  +  "module.packages = org.apache.turbine.modules, com.mycorp.modules",
     then the class loader will look for
   </p>
   
  @@ -172,7 +173,7 @@
   
   <p>
     If you now wonder how a template name is mapped to an actual file name: This is
  -  scope of the templating engine. <a 
href="services/velocity-service.html">Velocity</a> 
  +  scope of the templating engine. <a 
href="services/velocity-service.html">Velocity</a>
     e.g. has this wonderful option to load templates from jar archives.
     There is no file but if you tell velocity "get about,directions,Driving.vm" and it
     returns the rendered template. So getting the actual template is not the job of 
the
  @@ -182,47 +183,53 @@
   
   <section name="Properties">
   <p>
  -  The mapping of classes and template pathes to template names is configured in 
  +  The mapping of classes and template pathes to template names is configured in
     mapper classes. These are pluggable and can be exchanged to configure other 
mapping
     policies. This is an option for seasoned Turbine developers and the default policy
     shouldn't be changed lightly.
   </p>
   
  -<ul> 
  +<ul>
     <li>
       services.TemplateService.mapper.page.class configures the mapper
       used for finding a page class suitable for the supplied template
  -    name. Default is 
org.apache.turbine.services.template.mapper.TemplateDirectMapper
  +    name. Default is org.apache.turbine.services.template.mapper.DirectMapper
     </li>
     <li>
       services.TemplateService.mapper.screen.class configures the mapper
       used for finding a screen class suitable for the supplied template
  -    name. Default isorg.apache.turbine.services.template.mapper.TemplateClassMapper
  +    name. Default isorg.apache.turbine.services.template.mapper.ClassMapper
     </li>
     <li>
       services.TemplateService.mapper.layout.class configures the mapper
       used for finding a layout class suitable for the supplied template
  -    name. Default is org.apache.turbine.services.template.mapper.TemplateClassMapper
  +    name. Default is org.apache.turbine.services.template.mapper.ClassMapper
     </li>
     <li>
       services.TemplateService.mapper.navigation.class configures the
       mapper used for finding navigation classes suitable for the
       supplied template name. This mapper is not used directly but from
       various navigation helpers like TemplateNavigation. Default is
  -    org.apache.turbine.services.template.mapper.TemplateClassMapper
  +    org.apache.turbine.services.template.mapper.ClassMapper
     </li>
     <li>
       services.TemplateService.mapper.layout.template.class configures
       the mapper used for finding a layout template to render your
       screen. This template is used by your Layout class (see above) to
       position the various visual elements like content and navigation
  -    on the Page. Default is 
org.apache.turbine.services.template.mapper.TemplateLayoutMapper
  +    on the Page. Default is 
org.apache.turbine.services.template.mapper.LayoutTemplateMapper
     </li>
     <li>
       services.TemplateService.mapper.screen.template.class configures
       the mapper used for finding your screen template. This is used
       whenever a screen class is requesting a template to
  -    render. Default is 
org.apache.turbine.services.template.mapper.TemplateScreenMapper
  +    render. Default is 
org.apache.turbine.services.template.mapper.ScreenTemplateMapper
  +  </li>
  +  <li>
  +    services.TemplateService.mapper.navigation.template.class configures
  +    the mapper used for finding your navigation template. This is used
  +    whenever a navigation class is requesting a template to
  +    render. Default is 
org.apache.turbine.services.template.mapper.DirectTemplateMapper
     </li>
   </ul>
   </section>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to