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();
}
}