You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by ap...@apache.org on 2009/01/12 14:17:27 UTC

svn commit: r733727 - in /tiles/framework/trunk: src/site/apt/tutorial/configuration.apt tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesListener.java tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesServlet.java

Author: apetrelli
Date: Mon Jan 12 05:17:24 2009
New Revision: 733727

URL: http://svn.apache.org/viewvc?rev=733727&view=rev
Log:
TILES-346
Fixed "createTilesInitializer" method name.
Added docs about initialization using TilesInitializer. Reorganized docs about Tiles startup.

Modified:
    tiles/framework/trunk/src/site/apt/tutorial/configuration.apt
    tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesListener.java
    tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesServlet.java

Modified: tiles/framework/trunk/src/site/apt/tutorial/configuration.apt
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/src/site/apt/tutorial/configuration.apt?rev=733727&r1=733726&r2=733727&view=diff
==============================================================================
--- tiles/framework/trunk/src/site/apt/tutorial/configuration.apt (original)
+++ tiles/framework/trunk/src/site/apt/tutorial/configuration.apt Mon Jan 12 05:17:24 2009
@@ -34,7 +34,11 @@
   
 * Starting Tiles engine
 
-  To start Tiles you have three options, just choose what is the best for your
+  To start Tiles you can use pure
+  {{{configuration.html#Startup_with_Java_code}Java initialization}}
+  or the original
+  {{{configuration.html#Startup_with_initialization_parameters}initialization-parameter-based initialization}}.
+  In both cases, you have two options, just choose what is the best for your
   needs:
   
   * Load the <<Tiles servlet>> at startup. You can do it by specifying it in
@@ -44,6 +48,42 @@
 <servlet>
     <servlet-name>tiles</servlet-name>
     <servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>
+    ...
+    <load-on-startup>2</load-on-startup>
+</servlet>
+--------------------------
+  
+  Note: The Tiles servlet is just a startup servlet and <<it does not serve any
+  request>>. Therefore, a mapping is not needed.
+
+  * Load the <<Tiles listener>>. Specify it in your <<<web.xml>>> file:
+
+-------------------------------
+<listener>
+    <listener-class>org.apache.tiles.web.startup.TilesListener</listener-class>
+</listener>
+-------------------------------
+
+** {Startup with Java code}
+
+  To startup with Java code, extend <<<TilesListener>>> or <<<TilesServlet>>>
+  and override the <<<createTilesServletInitializer>>> method:
+
+--------------------------
+protected TilesInitializer createTilesInitializer() {
+    return new MyCustomTilesInitializer;
+}
+--------------------------
+
+** {Startup with initialization parameters}
+
+  You can configure Tiles by using initialization parameters, like in Tiles 2.0.x.
+  If you use <<<TilesServlet>>>, you can use <<<init-param>>> elements: 
+
+--------------------------
+<servlet>
+    <servlet-name>tiles</servlet-name>
+    <servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>
     <init-param>
         <param-name>
           org.apache.tiles.definition.DefinitionsFactory.DEFINITIONS_CONFIG
@@ -61,10 +101,7 @@
   specifies the path of the {{{basic/index.html}Tiles configuration files}}.
   You can specify it also as a context parameters.
   
-  Note: The Tiles servlet is just a startup servlet and <<it does not serve any
-  request>>. Therefore, a mapping is not needed.
-  
-  * Load the <<Tiles listener>>. Specify it in your <<<web.xml>>> file:
+  If you use <<<TilesListener>>>:
 
 -------------------------------
 <listener>
@@ -72,7 +109,7 @@
 </listener>
 -------------------------------
   
-  You can specify the Tiles configuration files using a context parameter.
+  you can specify the Tiles configuration files using a context parameter:
 
 -------------------------------
     <context-param>
@@ -84,30 +121,6 @@
         </param-value>
     </context-param>
 -------------------------------
-  
-  * Load the <<Tiles filter>>. It is useful if your definition files can be
-  changed and you periodically need to reload them.
-  
-------------------------------
-<filter>
-    <filter-name>Tiles Filter</filter-name>
-    <filter-class>org.apache.tiles.web.startup.TilesFilter</filter-class>
-    <init-param>
-        <param-name>
-          org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
-        </param-name>
-        <param-value>
-          /WEB-INF/tiles-defs.xml,/org/apache/tiles/classpath-defs.xml
-        </param-value>
-    </init-param>
-</filter>
-...
-<filter-mapping>
-    <filter-name>Tiles Filter</filter-name>
-    <url-pattern>/*</url-pattern>
-    <dispatcher>REQUEST</dispatcher>
-</filter-mapping>
---------------------------------
 
 Starting Tiles in a portlet application 
 
@@ -115,23 +128,25 @@
 
 Configuring Tiles internals
 
-* Main configuration
-
-  You can configure Tiles internal behaviour by specifying:
-  
-  * in a web application environment, by using context parameters or init
-  parameters of TilesServlet or TilesFilter;
-  
-  * in a portlet environment, by using portlet init parameters.
-  
-  For the details see {{{../config-reference.html}Tiles configuration reference}}.
-
 * {Pure Java configuration}
   
   In both environments, it is possible to use pure <<Java configuration>>,
-  without messing with the deployment descriptors.
+  without messing with the deployment descriptors. You have two choices of configuration:
+  
+  * By using a custom
+  {{{../apidocs/org/apache/tiles/startup/TilesInitializer.html}TilesInitializer}},
+  for example by overriding
+  {{{../apidocs/org/apache/tiles/startup/BasicTilesInitializer.html}BasicTilesInitializer}}
+  methods.
+  
+  * By using a subset of initialization parameters and extending
+  {{{../apidocs/org/apache/tiles/factory/AbstractTilesContainerFactory.html}AbstractTilesContainerFactory}},
+  {{{../apidocs/org/apache/tiles/context/AbstractTilesApplicationContextFactory.html}AbstractTilesApplicationContextFactory}}
+  or both. This option can be combined with the first.
+
+** Custom Tiles container factory
 
-  All you have to do is create a class that extends
+  You have to do create a class that extends
   {{{../apidocs/org/apache/tiles/factory/AbstractTilesContainerFactory.html}AbstractTilesContainerFactory}}.
   In particular you can use {{{../apidocs/org/apache/tiles/factory/BasicTilesContainerFactory.html}BasicTilesContainerFactory}}
   as a basis for your extended configuration. <<<BasicTilesContainerFactory>>>
@@ -155,3 +170,36 @@
 
   Where <<<TestTilesContainerFactory>>> is a class that extends
   <<<AbstractTilesContainerFactory>>>.
+
+** Custom Tiles application context factory
+
+  You have to do create a class that extends
+  {{{../apidocs/org/apache/tiles/context/AbstractTilesApplicationContextFactory.html}AbstractTilesApplicationContextFactory}}
+  In particular you can use
+  {{{../apidocs/org/apache/tiles/servlet/context/ServletTilesApplicationContextFactory.html}ServletTilesApplicationContextFactory}}
+  as a basis for your extended configuration under a servlet environment.
+  
+  To enable pure Java configuration for the Tiles application context, provide the
+  {{{../config-reference.html#org.apache.tiles.context.AbstractTilesApplicationContextFactory}<<<org.apache.tiles.context.AbstractTilesApplicationContextFactory>>>}}
+  parameter this way:
+
+--------------------------------
+<init-param>
+    <param-name>org.apache.tiles.context.AbstractTilesApplicationContextFactory</param-name>
+    <param-value>org.apache.tiles.test.context.TestTilesApplicationContextFactory</param-value>
+</init-param>
+--------------------------------
+
+  Where <<<TestTilesApplicationContextFactory>>> is a class that extends
+  <<<AbstractTilesApplicationContextFactory>>>.
+
+* Configuration through initialization parameters
+
+  You can configure Tiles internal behaviour by specifying:
+  
+  * in a web application environment, by using context parameters or init
+  parameters of TilesServlet or TilesFilter;
+  
+  * in a portlet environment, by using portlet init parameters.
+  
+  For the details see {{{../config-reference.html}Tiles configuration reference}}.

Modified: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesListener.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesListener.java?rev=733727&r1=733726&r2=733727&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesListener.java (original)
+++ tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesListener.java Mon Jan 12 05:17:24 2009
@@ -62,7 +62,7 @@
      * @since 2.1.2
      */
     public TilesListener() {
-        initializer = createTilesServletInitializer();
+        initializer = createTilesInitializer();
     }
 
     /**
@@ -97,7 +97,7 @@
      * @return The Tiles servlet-based initializer.
      * @since 2.1.2
      */
-    protected TilesInitializer createTilesServletInitializer() {
+    protected TilesInitializer createTilesInitializer() {
         return new BasicTilesInitializer();
     }
 

Modified: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesServlet.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesServlet.java?rev=733727&r1=733726&r2=733727&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesServlet.java (original)
+++ tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesServlet.java Mon Jan 12 05:17:24 2009
@@ -59,7 +59,7 @@
      * @since 2.1.2
      */
     public TilesServlet() {
-        initializer = createTilesServletInitializer();
+        initializer = createTilesInitializer();
     }
 
     /** {@inheritDoc} */
@@ -88,7 +88,7 @@
      * @return The Tiles servlet-based initializer.
      * @since 2.1.2
      */
-    protected TilesInitializer createTilesServletInitializer() {
+    protected TilesInitializer createTilesInitializer() {
         return new BasicTilesInitializer();
     }
 }