blob: 586f9f108bd1c415d2350dec38b0a4d6be5a8b26 [file] [log] [blame]
<?xml version="1.0"?>
<document url="./installation.xml">
<properties>
<title>The Tiles 1.1 Framework Project - Installation (1.1)</title>
</properties>
<body>
<section name="Quick Install for Testing, Documentation and Tutorial"
href="QuickInstall">
<ul>
<li>Download Tiles binary distribution</li>
<li>Unzip distribution</li>
<li>Copy <code>web/tiles-doc.war</code> or <code>web/struts-tiles.war</code>
in your web server webapps directory (webapps with Tomcat).
Please refer to your webserver manual to know exactly where, or
check <a href="#Containers">detailed install</a>.</li>
<li>Restart your web server if necessary</li>
<li>Point your browser to the root of newly installed web application
(<a href="http://localhost:8080/tiles-doc">
http://localhost:8080/tiles-doc</a>
or <a href="http://localhost:8080/struts-tiles">
http://localhost:8080/struts-tiles</a>
with tomcat</li>
</ul>
<p>Quick start and setting of a new application using Tiles</p>
<ul>
<li>Take appropriate <code>tiles-blank.war</code> and
copy it in your web server webapps directory
<ul>
<li><code>tiles-blank.war</code> - Tiles
without Struts</li>
<li><code>tiles-blank-struts1.1.war</code> -
Tiles with Struts1.1</li>
<li><code>tiles-blank-struts1.0.war</code> -
Tiles with latest stable Struts1.0.x</li>
</ul>
</li>
<li>These war files are not distributed with Struts binaries.</li>
</ul>
</section>
<section name="Prerequisite Software" href="Prerequisites">
<p>Copyright : This page is largely inspired from the original
<a href="http://jakarta.apache.org/struts">Struts installation page</a>.
For those familiar with Struts, there is nothing really new.</p>
<p>The Tiles binary distribution needs other software packages installed
to operate. You may already have these installed on your system. To
build Tiles from source you may need to acquire and install several
others. The complete list is as follows:</p>
<ul>
<li><strong>Java Development Kit</strong> -
You <strong>must</strong> download and install a Java2 (version
1.2 or later) Java Development Kit implementation for your
operating system platform. A good starting point for locating Java
Development Kit distributions is <a href="http://java.sun.com/j2se">
http://java.sun.com/j2se</a>.
</li>
<li><strong>Servlet Container</strong> -
You <strong>must</strong> download and install a servlet container
that is compatible with the Servlet API Specification, version 2.2
or later, and the JavaServer Pages (JSP) Specification, version 1.1
or later. One popular choice is to download Apache's
<a href="http://jakarta.apache.org/tomcat">Tomcat</a>
(version 3.1 or later required, version 3.2 or later recommended).</li>
<li><strong>XML Parser</strong> - Tiles <strong>requires</strong> the
presence of an XML parser that is compatible with the Java API for
XML Parsing (JAXP) specification, 1.1 or later. You can download
and install the JAXP <a href="http://java.sun.com/xml">reference
implementation</a>, which is required for building the Tiles
source distribution. In Tiles-based web applications, you may
replace the reference implementation classes with any other JAXP
compliant parser, such as <a href="http://xml.apache.org/xerces-j">
Xerces</a>. See detailed instructions related to the parser in
the instructions for <a href="#Building">building</a> and
<a href="#Installing">installing</a> Tiles, below. </li>
<li><strong>Ant Build System</strong> -
If you are building Tiles from the source distribution, you must
download and install version 1.3 or later of the
<a href="http://jakarta.apache.org/ant">Ant</a> build system.
This package is also strongly recommended for use in developing
your own web applications based on Tiles.
<ul>
<li>If you are using the release version of Ant version 1.3, you
will also need to download the "optional.jar" file that
contains the implementation of Ant's <code>&lt;style&gt;</code>
command. </li>
<li>Make sure that the "ant" and "ant.bat" scripts
are executable, by adding the $ANT_HOME/bin directory to your
PATH environment variable. </li>
</ul>
</li>
<li><strong>Servlet API Classes</strong> - In order to compile Tiles
itself, or applications that use Tiles, you will need a
<code>servlet.jar</code> file containing the Servlet and JSP API
classes. Most servlet containers include this JAR file. Otherwise,
you can get the Servlet API classes distribution from
<a href="http://jakarta.apache.org/builds/jakarta-servletapi">
here</a>.
</li>
<li><strong>Jakarta Commons Packages</strong> -
Tiles utilizes several packages from the
<a href="http://jakarta.apache.org/commons/">Jakarta Commons
Project</a>.If you are utilizing a binary distribution of Tiles,
the corresponding JAR files are included in the <code>lib</code>
directory. However, if you wish to build Tiles from source, you
will need to download and install the following packages:
<ul>
<li><em>Beanutils</em> (Version 1.0 or later)</li>
<li><em>Collections</em> (Version 1.0 or later)</li>
<li><em>Digester</em> (Version 1.0 or later)</li>
<li><em>Logging</em> (Version 1.0 or later)</li>
</ul>
</li>
<li><strong>Xalan XSLT Processor</strong> -
If you are building Tiles from the source distribution, you will
need a version of Xalan to perform XSLT transformations. If you
are using the JAXP/1.1 XML parser, you should use the version
of <code>xalan.jar</code> shipped with it. Otherwise, download
and install version 1.2 of Xalan from
<a href="http://xml.apache.org/xalan">here</a>.
</li>
<li><strong>Struts Framework</strong> - If you are planning to use
Tiles with Struts, you should download and install Struts from
<a href="http://jakarta.apache.org/struts/">
Jakarta Struts Project</a>.
If you have acquired Tiles with the Struts distribution, you
don't need to install it again. Tiles can run without Struts.
In this case you loose some features.</li>
</ul>
</section>
<section name="Install A Tiles Binary Distribution" href="Installing">
<p>First, download a binary distribution of Tiles by following the
instructions <a href="download.jsp">here</a>.
Then, make sure you have downloaded and installed the
<a href="#Prerequisites">prerequisite</a> software packages described
above.</p>
<p>Unpack the Tiles binary distribution into a convenient directory.
(If you <a href="#Building">build Tiles from the source distribution</a>,
the result of the build will already be an unpacked binary distribution
for you). The distribution consists of the following contents:</p>
<ul>
<li><strong>lib/tiles.jar</strong> - This JAR file contains all of
the Java classes included in Tiles. It should be copied into the
<code>WEB-INF/lib</code>directory of your web application.
<em>WARNING</em> - If you are going to be hosting multiple tiles
based applications on the same servlet container, you will be
tempted to place the <code>struts.jar</code> file into the shared
repository supported by your container. Be advised that this will
likely cause you to encounter ClassNotFoundException problems
unless <em>all</em> of your application classes are stored in the
shared repository.
</li>
<li><strong>lib/struts1.0/tilesForStruts1.0.jar</strong> -
Same as before, but for use with Struts1.0.x. </li>
<li><strong>lib/tiles.tld</strong> - These is the "tag library
descriptor" file that describe the custom tags in the Tiles tag
libraries. It should be copied into the <code>WEB-INF</code>
directory of your web application.
</li>
<li><strong>webapps/tiles-doc.war</strong> or
<strong>webapps/struts-tiles.war</strong> - This is a
"web application archive" file containing all of the Tiles
documentation found on the
<a href="http://www.lifl.fr/~dumoulin/tiles/">Tiles web site</a>
(including these pages). You can install this web application
on any servlet container compatible with Servlet API 2.2 or later.
</li>
<li><strong>webapps/tiles-channel.war</strong> - Examples using a
custom definition factory.</li>
<li><strong>webapps/tiles-blank.war</strong> - A blank application
that can be used as a starting point when you want to develop
your own application with Tiles. This blank application doesn't
contains neither use Struts. If you also want to use Struts,
add struts.jar and related tld files, or choose one of the
following applications. </li>
<li><strong>webapps/tiles-blank-struts1.1.war</strong> -
A blank application to use with Struts1.1 </li>
<li><strong>webapps/tiles-blank-struts1.0.war</strong> -
A blank application to use with Struts1.0.x </li>
</ul>
<p>To use Tiles in your own application, you will need to follow
these steps:</p>
<ul>
<li>Copy the files<code>lib/commons-*.jar</code> into
the <code>WEB-INF/lib</code> directory of your web application.
</li>
<li>Copy the file <code>lib/tiles.jar</code> from
the Tiles distribution into the <code>WEB-INF/lib</code>
directory of your web application.
</li>
<li>Copy all of the files that match <code>lib/*.tld</code> from
the Tiles distribution into the <code>WEB-INF</code> directory
of your web application.
</li>
<li>If you want to use <em>definitions configuration file</em>, you
need to initialize the definitions factory. This can be done as follows:
<ul>
<li>Modify the <code>WEB-INF/web.xml</code> file
for your web application to use a <code>&lt;servlet&gt;
</code> that initializes the factory and catch Struts action
forwards to check for definition name. Use the
<code>WEB-INF/web.xml</code> file from the Tiles example
application for a detailed example of the required syntax.
<pre>
&lt;servlet&gt;
...
&lt;servlet-name&gt;action&lt;/servlet-name&gt;
&lt;servlet-class&gt;org.apache.struts.tiles.ActionComponentsServlet&lt;/servlet-class
&lt;init-param&gt;
&lt;param-name&gt;definitions-config&lt;/param-name&gt;
&lt;param-value&gt;/WEB-INF/tiles-config.xml&lt;/param-value&gt;
&lt;/init-param&gt;
...
</pre>
</li>
<li>If you don't want to use Struts, use
<code>org.apache.struts.tiles.TilesServlet</code> as servlet.
</li>
<li>Create a configuration file for definitions. Its name must
match the one provided before in <code>WEB-INF/web.xml</code>.
Several comma separated names can be provided.
</li>
</ul>
</li>
<li>Modify the <code>WEB-INF/web.xml</code> file of your web application
to include the following tag library declarations: </li>
</ul>
<pre>&lt;taglib&gt;
&lt;taglib-uri&gt;/WEB-INF/tiles.tld&lt;/taglib-uri&gt;
&lt;taglib-location&gt;/WEB-INF/tiles.tld&lt;/taglib-location&gt;
&lt;/taglib&gt;
</pre>
<ul>
<li>At the top of each JSP page that will use the Tiles custom tags,
add line(s) declaring the Tiles custom tag libraries used on this
particular page, like this:</li>
</ul>
<pre>&lt;%@ taglib uri="/WEB-INF/tiles.tld" prefix="tiles" %&gt;
</pre>
<ul>
<li>When compiling the Java classes that comprise your application,
be sure to include the <code>tiles.jar</code> and
<code>commons-*.jar</code> files (copied earlier) on the
CLASSPATH that is submitted to the compiler.</li>
</ul>
<p>Note to Struts 1.0 users :</p>
<ul>
<li>You should use a <code>tiles.jar</code> build with Struts1.0.x.</li>
<li>If you have downloaded a Tiles version build with Struts1.0.x, you
already have it. </li>
<li>Consider to use tilesForStruts1.0.jar located in
<code>lib/struts1.0</code></li>
</ul>
<p>Note to Struts1.1 users :</p>
<ul>
<li>You should also initialize a <code>TilesRequestProcessor</code>.</li>
<li>To do so, add following lines in your <code>struts-config.xml</code>
file :
<pre>
&lt;controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"&gt;
&lt;/controller&gt;
</pre>
</li>
</ul>
</section>
<section name="Installing Tiles with your servlet container" href="Containers">
<p><strong>WARNING</strong> - Do <strong>NOT</strong> add
<code>tiles.jar</code> to the classpath of your servlet container in
an attempt to avoid placing it in the <code>/WEB-INF/lib</code>
directory of each individual web app! Doing so will cause problems with
<code>ClassNotFoundException</code> exceptions. </p>
<p>For most containers, you need only to:</p>
<ul>
<li>Copy the WAR files in your Tiles <code>/webapp</code> directory
to your containers <code>webapps</code> directory. </li>
<li>In some cases, you may need to restart your container if it
is running.</li>
</ul>
<h4>Status of various containers</h4>
<p>For status of additional containers, please refer to the
<a href="installation.html#Installing"> Struts installation page</a>).
</p>
</section>
<section name="Building Tiles From Source" href="Building">
<p>First, download a source distribution of Tiles from
<a href="http://www.lifl.fr/~dumoulin/tiles/">here</a> or
from Struts contrib directory. Then, make sure you have downloaded and
installed <strong>all</strong> of the
<a href="#Prerequisites">prerequisite</a> software packages described
above. You also need the appropriate struts version (1.0.x or 1.1)</p>
<p>To build Tiles, you will need to customize the build process to the details
of your development environment as follows: </p>
<ul>
<li>The Tiles source distribution uses a file named
<code>build.properties</code> (in the top-level directory of the
distribution) to identify the location of external components
that Tiles depends on.</li>
<li>There is no <code>build.properties</code> file included with the
source distribution. However, there is an example file named
<code>build.properties.example</code> that you can copy to
<code>build.properties</code>and then customize.</li>
<li>The properties you must configure in <code>build.properties</code> are
documented in <code>build.properties.example</code> </li>
<li>Tiles build require a Struts library. You can use either a
Struts1.0.x or 1.1 <code>struts.jar</code>. The resulting
<code>tiles.jar</code> will run with the used <code>struts.jar</code>.
You specify the Struts home with <code>struts.home</code> property.
</li>
</ul>
<p>To build a "distribution" version of Tiles, first change your current
directory to the directory in which you have unpacked the Tiles
source distribution, and (if necessary) create or customize the
<code>build.properties</code>file as described above. Then, type:
</p>
<pre>
ant dist
</pre>
<p>This command will create a binary distribution of Tiles, in a
directory named <code>dist</code> (relative to where you are
compiling from). This directory contains an exact replica of
the files included in a binary distribution of Tiles, as described
in the <a href="Installing">preceding section</a>.</p>
<p>IMPORTANT NOTE: The <code>tiles.jar</code>, as well as the JAR
files from the Jakarta Commons project, must be in your classpath
when compiling Tiles. The <code>build.xml</code> provided does this
automatically. If you use your development machine to test Tiles
application locally, be sure that the <code>tiles.jar</code>is
<strong>NOT</strong> on your classpath when your container is
running.
</p>
</section>
</body>
</document>