[jboss-cvs] jboss-seam/doc/reference/en/modules ...
Norman Richards
norman.richards at jboss.com
Mon Jun 25 22:23:11 EDT 2007
User: nrichards
Date: 07/06/25 22:23:11
Modified: doc/reference/en/modules configuration.xml i18n.xml
itext.xml jbpm.xml testing.xml tutorial.xml
Log:
embedded ejb3 install, fix some simple validation errors
Revision Changes Path
1.53 +354 -506 jboss-seam/doc/reference/en/modules/configuration.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: configuration.xml
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/doc/reference/en/modules/configuration.xml,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -b -r1.52 -r1.53
--- configuration.xml 22 Jun 2007 15:44:26 -0000 1.52
+++ configuration.xml 26 Jun 2007 02:23:11 -0000 1.53
@@ -1,27 +1,19 @@
<chapter id="configuration">
<title>Configuring Seam and packaging Seam applications</title>
- <para>
- Configuration is a very boring topic and an extremely tedious pastime.
- Unfortunately, several lines of XML are required to integrate Seam into
- your JSF implementation and servlet container. There's no need to be too
- put off by the following sections; you'll never need to type any of this stuff
- yourself, since you can just copy and paste from the example applications!
- </para>
+ <para> Configuration is a very boring topic and an extremely tedious pastime. Unfortunately, several lines of XML
+ are required to integrate Seam into your JSF implementation and servlet container. There's no need to be too put
+ off by the following sections; you'll never need to type any of this stuff yourself, since you can just copy and
+ paste from the example applications! </para>
<sect1>
<title>Basic Seam configuration</title>
- <para>
- First, let's look at the basic configuration that is needed whenever
- we use Seam with JSF.
- </para>
+ <para> First, let's look at the basic configuration that is needed whenever we use Seam with JSF. </para>
<sect2>
<title>Integrating Seam with JSF and your servlet container</title>
- <para>
- Of course, you need a faces servlet!
- </para>
+ <para> Of course, you need a faces servlet! </para>
<programlisting><![CDATA[<servlet>
<servlet-name>Faces Servlet</servlet-name>
@@ -34,30 +26,20 @@
<url-pattern>*.seam</url-pattern>
</servlet-mapping>]]></programlisting>
- <para>
- (You can adjust the URL pattern to suit your taste.)
- </para>
+ <para> (You can adjust the URL pattern to suit your taste.) </para>
- <para>
- In addition, Seam requires the following entry in your <literal>web.xml</literal>
- file:
- </para>
+ <para> In addition, Seam requires the following entry in your <literal>web.xml</literal> file: </para>
<programlisting><![CDATA[<listener>
<listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
</listener>]]></programlisting>
- <para>
- This listener is responsible for bootstrapping Seam, and for destroying
- session and application contexts.
- </para>
+ <para> This listener is responsible for bootstrapping Seam, and for destroying session and application
+ contexts. </para>
- <para>
- Some JSF implementations have a broken implementation of server-side state
- saving that interferes with Seam's conversation propagation. If you have problems
- with conversation propagation during form submissions, try switching to client-side
- state saving. You'll need this in <literal>web.xml</literal>:
- </para>
+ <para> Some JSF implementations have a broken implementation of server-side state saving that interferes
+ with Seam's conversation propagation. If you have problems with conversation propagation during form
+ submissions, try switching to client-side state saving. You'll need this in <literal>web.xml</literal>: </para>
<programlisting><![CDATA[<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
@@ -69,18 +51,14 @@
<sect2>
<title>Using facelets</title>
- <para>
- If you want follow our advice and use facelets instead of JSP,
- add the following lines to <literal>faces-config.xml</literal>:
- </para>
+ <para> If you want follow our advice and use facelets instead of JSP, add the following lines to
+ <literal>faces-config.xml</literal>: </para>
<programlisting><![CDATA[<application>
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
</application>]]></programlisting>
- <para>
- And the following lines to <literal>web.xml</literal>:
- </para>
+ <para> And the following lines to <literal>web.xml</literal>: </para>
<programlisting><![CDATA[<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
@@ -92,11 +70,9 @@
<sect2>
<title>Seam Resource Servlet</title>
- <para>
- The Seam Resource Servlet provides resources used by Seam Remoting, captchas (see the security
- chapter) and some JSF UI controls. Configuring the Seam Resource Servlet requires the following
- entry in <literal>web.xml</literal>:
- </para>
+ <para> The Seam Resource Servlet provides resources used by Seam Remoting, captchas (see the security
+ chapter) and some JSF UI controls. Configuring the Seam Resource Servlet requires the following entry in
+ <literal>web.xml</literal>: </para>
<programlisting><![CDATA[<servlet>
<servlet-name>Seam Resource Servlet</servlet-name>
@@ -112,13 +88,10 @@
<sect2>
<title>Seam servlet filters</title>
- <para>
- Seam doesn't need any servlet filters for basic operation. However, there are several
- features which depend upon the use of filters. To make things easier for you guys,
- Seam lets you add and configure servlet filters just like you would configure other
- built-in Seam components. To take advantage of this feature, we must first install a
- master filter in <literal>web.xml</literal>:
- </para>
+ <para> Seam doesn't need any servlet filters for basic operation. However, there are several features which
+ depend upon the use of filters. To make things easier for you guys, Seam lets you add and configure
+ servlet filters just like you would configure other built-in Seam components. To take advantage of this
+ feature, we must first install a master filter in <literal>web.xml</literal>: </para>
<programlisting><![CDATA[<filter>
<filter-name>Seam Filter</filter-name>
@@ -133,28 +106,19 @@
<para>The Seam master filter <emphasis>must</emphasis> be the first filter specified in
<literal>web.xml</literal>. This ensures it is run first. </para>
- <para>
- Adding the master filter enables the following built-in filters.
- </para>
+ <para> Adding the master filter enables the following built-in filters. </para>
<sect3>
<title>Exception handling</title>
- <para>
- This filter provides the exception mapping functionality in
- <literal>pages.xml</literal> (almost all applications will need this).
- It also takes care of rolling back uncommitted transactions when uncaught
- exceptions occur. (According to the Java EE specification, the web container
- should do this automatically, but we've found that this behavior cannot be
- relied upon in all application servers. And it is certainly not required of
- plain servlet engines like Tomcat.)
- </para>
-
- <para>
- By default, the exception handling filter will process all requests,
- however this behavior may be adjusted by adding a
- <literal><web:exception-filter></literal> entry to
- <literal>components.xml</literal>, as shown in this example:
- </para>
+ <para> This filter provides the exception mapping functionality in <literal>pages.xml</literal> (almost
+ all applications will need this). It also takes care of rolling back uncommitted transactions when
+ uncaught exceptions occur. (According to the Java EE specification, the web container should do this
+ automatically, but we've found that this behavior cannot be relied upon in all application servers.
+ And it is certainly not required of plain servlet engines like Tomcat.) </para>
+
+ <para> By default, the exception handling filter will process all requests, however this behavior may be
+ adjusted by adding a <literal><web:exception-filter></literal> entry to
+ <literal>components.xml</literal>, as shown in this example: </para>
<programlisting><![CDATA[<components xmlns="http://jboss.com/products/seam/components"
xmlns:web="http://jboss.com/products/seam/web">
@@ -166,46 +130,37 @@
<itemizedlist>
<listitem>
<para>
- <literal>url-pattern</literal> — Used to specify which requests
- are filtered, the default is all requests.
- </para>
+ <literal>url-pattern</literal> — Used to specify which requests are filtered, the
+ default is all requests. </para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Conversation propagation with redirects</title>
- <para>
- This filter allows Seam to propagate the conversation context across
- browser redirects. It intercepts any browser redirects and adds a
- request parameter that specifies the Seam conversation identifier.
- </para>
+ <para> This filter allows Seam to propagate the conversation context across browser redirects. It
+ intercepts any browser redirects and adds a request parameter that specifies the Seam conversation
+ identifier. </para>
- <para>
- The redirect filter will process all requests by default, but this
- behavior can also be adjusted in <literal>components.xml</literal>:
- </para>
+ <para> The redirect filter will process all requests by default, but this behavior can also be adjusted
+ in <literal>components.xml</literal>: </para>
<programlisting><![CDATA[<web:redirect-filter url-pattern="*.seam"/>]]></programlisting>
<itemizedlist>
<listitem>
<para>
- <literal>url-pattern</literal> — Used to specify which requests
- are filtered, the default is all requests.
- </para>
+ <literal>url-pattern</literal> — Used to specify which requests are filtered, the
+ default is all requests. </para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Multipart form submissions</title>
- <para>
- This feature is necessary when using the Seam file upload JSF control. It
- detects multipart form requests and processes them according to the
- multipart/form-data specification (RFC-2388). To override the default
- settings, add the following entry to <literal>components.xml</literal>:
- </para>
+ <para> This feature is necessary when using the Seam file upload JSF control. It detects multipart form
+ requests and processes them according to the multipart/form-data specification (RFC-2388). To
+ override the default settings, add the following entry to <literal>components.xml</literal>: </para>
<programlisting><![CDATA[<web:multipart-filter create-temp-files="true"
max-request-size="1000000"
@@ -214,40 +169,31 @@
<itemizedlist>
<listitem>
<para>
- <literal>create-temp-files</literal> — If set to
- <literal>true</literal>, uploaded files are written to a temporary
- file (instead of held in memory). This may be an important
- consideration if large file uploads are expected. The default
- setting is <literal>false</literal>.
- </para>
+ <literal>create-temp-files</literal> — If set to <literal>true</literal>, uploaded
+ files are written to a temporary file (instead of held in memory). This may be an important
+ consideration if large file uploads are expected. The default setting is
+ <literal>false</literal>. </para>
</listitem>
<listitem>
<para>
- <literal>max-request-size</literal> — If the size of a file upload
- request (determined by reading the <literal>Content-Length</literal>
- header in the request) exceeds this value, the request will be
- aborted. The default setting is 0 (no size limit).
- </para>
+ <literal>max-request-size</literal> — If the size of a file upload request
+ (determined by reading the <literal>Content-Length</literal> header in the request) exceeds
+ this value, the request will be aborted. The default setting is 0 (no size limit). </para>
</listitem>
<listitem>
<para>
- <literal>url-pattern</literal> — Used to specify which requests
- are filtered, the default is all requests.
- </para>
+ <literal>url-pattern</literal> — Used to specify which requests are filtered, the
+ default is all requests. </para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Character encoding</title>
- <para>
- Sets the character encoding of submitted form data.
- </para>
+ <para> Sets the character encoding of submitted form data. </para>
- <para>
- This filter is not installed by default and requires an entry in
- <literal>components.xml</literal> to enable it:
- </para>
+ <para> This filter is not installed by default and requires an entry in
+ <literal>components.xml</literal> to enable it: </para>
<programlisting><![CDATA[<web:character-encoding-filter encoding="UTF-16"
override-client="true"
@@ -256,25 +202,20 @@
<itemizedlist>
<listitem>
<para>
- <literal>encoding</literal> — The encoding to use.
- </para>
+ <literal>encoding</literal> — The encoding to use. </para>
</listitem>
<listitem>
<para>
- <literal>override-client</literal> — If this is set to
- <literal>true</literal>, the request encoding will be set to
- whatever is specified by <literal>encoding</literal> no matter
- whether the request already specifies an encoding or not. If
- set to <literal>false</literal>, the request encoding will only
- be set if the request doesn't already specify an encoding. The
- default setting is <literal>false</literal>.
- </para>
+ <literal>override-client</literal> — If this is set to <literal>true</literal>,
+ the request encoding will be set to whatever is specified by <literal>encoding</literal> no
+ matter whether the request already specifies an encoding or not. If set to
+ <literal>false</literal>, the request encoding will only be set if the request doesn't
+ already specify an encoding. The default setting is <literal>false</literal>. </para>
</listitem>
<listitem>
<para>
- <literal>url-pattern</literal> — Used to specify which requests
- are filtered, the default is all requests.
- </para>
+ <literal>url-pattern</literal> — Used to specify which requests are filtered, the
+ default is all requests. </para>
</listitem>
</itemizedlist>
</sect3>
@@ -282,17 +223,12 @@
<sect3>
<title>Ajax4jsf</title>
- <para>
- If Ajax4jsf is used in your project, Seam will install the Ajax4jsf filter for you,
- making sure to install it before all other built-in filters. You don't need to install
- the Ajax4jsf filter in <literal>web.xml</literal> yourself.
- </para>
+ <para> If Ajax4jsf is used in your project, Seam will install the Ajax4jsf filter for you, making sure
+ to install it before all other built-in filters. You don't need to install the Ajax4jsf filter in
+ <literal>web.xml</literal> yourself. </para>
- <para>
- To override the default
- settings, add the following entry to <literal>components.xml</literal>. The options
- are the same as those specified in the Ajax4jsf Developer Guide:
- </para>
+ <para> To override the default settings, add the following entry to <literal>components.xml</literal>.
+ The options are the same as those specified in the Ajax4jsf Developer Guide: </para>
<programlisting><![CDATA[<web:ajax4jsf-filter force-parser="true"
enable-cache="true"
@@ -302,30 +238,27 @@
<listitem>
<para>
<literal>force-parser</literal> — forces all JSF pages to be validated by
- Ajax4jsf's XML syntax checker. If <literal>false</literal>, only AJAX responses
- are validated and converted to well-formed XML. Setting <literal>force-parser</literal>
- to <literal>false</literal> improves performance, but can provide visual artifacts
- on AJAX updates.
- </para>
+ Ajax4jsf's XML syntax checker. If <literal>false</literal>, only AJAX responses are
+ validated and converted to well-formed XML. Setting <literal>force-parser</literal> to
+ <literal>false</literal> improves performance, but can provide visual artifacts on AJAX
+ updates. </para>
</listitem>
<listitem>
<para>
<literal>enable-cache</literal> — enables caching of framework-generated resources
(e.g. javascript, CSS, images, etc). When developing custom javascript or CSS, setting to
- true prevents the browser from caching the resource.
- </para>
+ true prevents the browser from caching the resource. </para>
</listitem>
<listitem>
<para>
- <literal>log4j-init-file</literal> — is used to setup per-application logging. A path,
- relative to web application context, to the log4j.xml configuration file should be provided.
- </para>
+ <literal>log4j-init-file</literal> — is used to setup per-application logging. A
+ path, relative to web application context, to the log4j.xml configuration file should be
+ provided. </para>
</listitem>
<listitem>
<para>
- <literal>url-pattern</literal> — Used to specify which requests
- are filtered, the default is all requests.
- </para>
+ <literal>url-pattern</literal> — Used to specify which requests are filtered, the
+ default is all requests. </para>
</listitem>
</itemizedlist>
@@ -333,61 +266,46 @@
<sect3>
<title>Context management for custom servlets</title>
- <para>
- Requests sent direct to some servlet other than the JSF servlet are not
- processed through the JSF lifecycle, so Seam provides a servlet filter
- that can be applied to any other servlet that needs access to Seam
- components.
- </para>
-
- <para>
- This filter allows custom servlets to interact with the Seam contexts. It
- sets up the Seam contexts at the beginning of each request, and tears
- them down at the end of the request. You should make sure that this filter
- is <emphasis>never</emphasis> applied to the JSF <literal>FacesServlet</literal>.
- Seam uses the phase listener for context management in a JSF request.
- </para>
-
- <para>
- This filter is not installed by default and requires an entry in
- <literal>components.xml</literal> to enable it:
- </para>
+ <para> Requests sent direct to some servlet other than the JSF servlet are not processed through the JSF
+ lifecycle, so Seam provides a servlet filter that can be applied to any other servlet that needs
+ access to Seam components. </para>
+
+ <para> This filter allows custom servlets to interact with the Seam contexts. It sets up the Seam
+ contexts at the beginning of each request, and tears them down at the end of the request. You should
+ make sure that this filter is <emphasis>never</emphasis> applied to the JSF
+ <literal>FacesServlet</literal>. Seam uses the phase listener for context management in a JSF
+ request. </para>
+
+ <para> This filter is not installed by default and requires an entry in
+ <literal>components.xml</literal> to enable it: </para>
<programlisting><![CDATA[<web:context-filter url-pattern="/media/*"/>]]></programlisting>
<itemizedlist>
<listitem>
<para>
- <literal>url-pattern</literal> — Used to specify which requests
- are filtered, the default is all requests. If the url-pattern
- is specified for the context filter, then the filter will be
- enabled (unless explicitly disabled).
- </para>
+ <literal>url-pattern</literal> — Used to specify which requests are filtered, the
+ default is all requests. If the url-pattern is specified for the context filter, then the
+ filter will be enabled (unless explicitly disabled). </para>
</listitem>
</itemizedlist>
- <para>
- The context filter expects to find the conversation id of any
- conversation context in a request parameter named <literal>conversationId</literal>.
- You are responsible for ensuring that it gets sent in the request.
- </para>
-
- <para>
- You are also responsible for ensuring propagation of any new conversation id back
- to the client. Seam exposes the conversation id as a property of the built in
- component <literal>conversation</literal>.
- </para>
+ <para> The context filter expects to find the conversation id of any conversation context in a request
+ parameter named <literal>conversationId</literal>. You are responsible for ensuring that it gets
+ sent in the request. </para>
+
+ <para> You are also responsible for ensuring propagation of any new conversation id back to the client.
+ Seam exposes the conversation id as a property of the built in component
+ <literal>conversation</literal>. </para>
</sect3>
<sect3>
<title>Adding custom filters</title>
- <para>
- Seam can install your filters for you, allowing you to specify <emphasis>where</emphasis>
- in the chain your filter is placed (the servlet specification doesn't provide a well defined order
- if you specify your filters in a <literal>web.xml</literal>). Just add the <literal>@Filter</literal>
- annotation to your Seam component (which must implement <literal>javax.servlet.Filter</literal>):
- </para>
+ <para> Seam can install your filters for you, allowing you to specify <emphasis>where</emphasis> in the
+ chain your filter is placed (the servlet specification doesn't provide a well defined order if you
+ specify your filters in a <literal>web.xml</literal>). Just add the <literal>@Filter</literal>
+ annotation to your Seam component (which must implement <literal>javax.servlet.Filter</literal>): </para>
<programlisting><![CDATA[@Startup
@Scope(APPLICATION)
@@ -396,12 +314,10 @@
@Filter(within="org.jboss.seam.web.ajax4jsfFilter")
public class MultipartFilter extends AbstractFilter {]]></programlisting>
- <para>
- Adding the <literal>@Startup</literal> annotation means thar the component is available during
- Seam startup; bijection isn't available here (<literal>@Intercept(NEVER)</literal>); and the
- filter should be further down the chain than the Ajax4jsf filter
- (<literal>@Filter(within="org.jboss.seam.web.ajax4jsfFilter")</literal>).
- </para>
+ <para> Adding the <literal>@Startup</literal> annotation means thar the component is available during
+ Seam startup; bijection isn't available here (<literal>@Intercept(NEVER)</literal>); and the filter
+ should be further down the chain than the Ajax4jsf filter
+ (<literal>@Filter(within="org.jboss.seam.web.ajax4jsfFilter")</literal>). </para>
</sect3>
</sect2>
@@ -409,13 +325,11 @@
<sect2>
<title>Integrating Seam with your EJB container</title>
- <para>
- We need to apply the <literal>SeamInterceptor</literal> to our Seam
- components. The simplest way to do this across an entire application is
- to add the following interceptor configuration in <literal>ejb-jar.xml</literal>:
- </para>
+ <para> We need to apply the <literal>SeamInterceptor</literal> to our Seam components. The simplest way to
+ do this across an entire application is to add the following interceptor configuration in
+ <literal>ejb-jar.xml</literal>: </para>
-<programlisting><![CDATA[<interceptors>
+ <programlisting><![CDATA[<interceptors>
<interceptor>
<interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
</interceptor>
@@ -429,74 +343,48 @@
</assembly-descriptor>
]]></programlisting>
- <para>
- Seam needs to know where to go to find session beans in JNDI.
- One way to do this is specify the <literal>@JndiName</literal>
- annotation on every session bean Seam component. However, this
- is quite tedious. A better approach is to specify a pattern
- that Seam can use to calculate the JNDI name from the EJB name.
- Unfortunately, there is no standard mapping to global JNDI
- defined in the EJB3 specification, so this mapping is
- vendor-specific. We usually specify this option in
- <literal>components.xml</literal>.
- </para>
+ <para> Seam needs to know where to go to find session beans in JNDI. One way to do this is specify the
+ <literal>@JndiName</literal> annotation on every session bean Seam component. However, this is quite
+ tedious. A better approach is to specify a pattern that Seam can use to calculate the JNDI name from the
+ EJB name. Unfortunately, there is no standard mapping to global JNDI defined in the EJB3 specification,
+ so this mapping is vendor-specific. We usually specify this option in <literal>components.xml</literal>. </para>
- <para>
- For JBoss AS, the following pattern is correct:
- </para>
+ <para> For JBoss AS, the following pattern is correct: </para>
<programlisting><![CDATA[<core:init jndi-name="myEarName/#{ejbName}/local" />]]></programlisting>
- <para>
- Where <literal>myEarName</literal> is the name of the EAR in which
- the bean is deployed.
- </para>
+ <para> Where <literal>myEarName</literal> is the name of the EAR in which the bean is deployed. </para>
- <para>
- Outside the context of an EAR (when using the JBoss Embeddable EJB3 container),
- the following pattern is the one to use:
- </para>
+ <para> Outside the context of an EAR (when using the JBoss Embeddable EJB3 container), the following pattern
+ is the one to use: </para>
<programlisting><![CDATA[<core:init jndi-name="#{ejbName}/local" />]]></programlisting>
- <para>
- You'll have to experiment to find the right setting for other application
- servers. Note that some servers (such as GlassFish) require you to specify
- JNDI names for all EJB components explicitly (and tediously). In this case,
- you can pick your own pattern ;-)
- </para>
+ <para> You'll have to experiment to find the right setting for other application servers. Note that some
+ servers (such as GlassFish) require you to specify JNDI names for all EJB components explicitly (and
+ tediously). In this case, you can pick your own pattern ;-) </para>
</sect2>
<sect2>
<title>Don't forget!</title>
- <para>
- There is one final item you need to know about. You must place a <literal>seam.properties</literal>,
- <literal>META-INF/seam.properties</literal> or <literal>META-INF/components.xml</literal>
- file in any archive in which your Seam components are deployed (even an empty
- properties file will do). At startup, Seam will scan any archives with
- <literal>seam.properties</literal> files for seam components.
- </para>
-
- <para>
- In a web archive (WAR) file, you must place a <literal>seam.properties</literal> file in the
- <literal>WEB-INF/classes</literal> directory if you have any Seam components included here.
- </para>
-
- <para>
- That's why all the Seam examples have an empty <literal>seam.properties</literal>
- file. You can't just delete this file and expect everything to still work!
- </para>
-
- <para>
- You might think this is silly and what kind of idiot framework designers would
- make an empty file affect the behavior of their software?? Well, this is a
- workaround for a limitation of the JVM—if we didn't use this mechanism,
- our next best option would be to force you to list every component explicitly
- in <literal>components.xml</literal>, just like some other competing
- frameworks do! I think you'll like our way better.
- </para>
+ <para> There is one final item you need to know about. You must place a <literal>seam.properties</literal>,
+ <literal>META-INF/seam.properties</literal> or <literal>META-INF/components.xml</literal> file in
+ any archive in which your Seam components are deployed (even an empty properties file will do). At
+ startup, Seam will scan any archives with <literal>seam.properties</literal> files for seam components. </para>
+
+ <para> In a web archive (WAR) file, you must place a <literal>seam.properties</literal> file in the
+ <literal>WEB-INF/classes</literal> directory if you have any Seam components included here. </para>
+
+ <para> That's why all the Seam examples have an empty <literal>seam.properties</literal> file. You can't
+ just delete this file and expect everything to still work! </para>
+
+ <para> You might think this is silly and what kind of idiot framework designers would make an empty file
+ affect the behavior of their software?? Well, this is a workaround for a limitation of the
+ JVM—if we didn't use this mechanism, our next best option would be to force you to list every
+ component explicitly in <literal>components.xml</literal>, just like some other competing frameworks do!
+ I think you'll like our way better. </para>
</sect2>
@@ -514,18 +402,13 @@
</imageobject>
</mediaobject>
- <para>
- If you're running in a Java EE 5 environment, this is all the configuration
- required to start using Seam!
- </para>
+ <para> If you're running in a Java EE 5 environment, this is all the configuration required to start using Seam! </para>
<sect2>
<title>Packaging</title>
- <para>
- Once you've packaged all this stuff together into an EAR, the archive structure
- will look something like this:
- </para>
+ <para> Once you've packaged all this stuff together into an EAR, the archive structure will look something
+ like this: </para>
<programlisting><![CDATA[my-application.ear/
jboss-seam.jar
@@ -562,48 +445,30 @@
RegisterBean.class
...]]></programlisting>
- <para>
- You must include <literal>jboss-seam.jar</literal>, <literal>jboss-el.jar</literal> and
- <literal>jboss-el-api.jar</literal> in the EAR classpath. Make sure you reference all of
- these JARs from <literal>application.xml</literal>.
- </para>
-
- <para>
- If you want to use jBPM or Drools, you must include the needed jars in the EAR classpath.
- Make sure you reference all of the jars from <literal>application.xml</literal>.
- </para>
-
- <para>
- If you want to use facelets (our recommendation), you must include
- <literal>jsf-facelets.jar</literal> in the <literal>WEB-INF/lib</literal> directory
- of the WAR.
- </para>
-
- <para>
- If you want to use the Seam tag library (most Seam applications do), you must include
- <literal>jboss-seam-ui.jar</literal> in the <literal>WEB-INF/lib</literal> directory
- of the WAR. If you want to use the PDF or email tag libraries, you need to put
- <literal>jboss-seam-pdf.jar</literal> or <literal>jboss-seam-mail.jar</literal>
- in <literal>WEB-INF/lib</literal>.
- </para>
-
- <para>
- If you want to use the Seam debug page (only works for applications using facelets), you
- must include <literal>jboss-seam-debug.jar</literal> in the <literal>WEB-INF/lib</literal>
- directory of the WAR.
- </para>
-
- <para>
- Seam ships with several example applications that are deployable in any Java EE
- container that supports EJB 3.0.
- </para>
-
- <para>
- I really wish that was all there was to say on the topic of configuration but
- unfortunately we're only about a third of the way there. If you're too overwhelmed
- by all this tedious configuration stuff, feel free to skip over the rest of this section
- and come back to it later.
- </para>
+ <para> You must include <literal>jboss-seam.jar</literal>, <literal>jboss-el.jar</literal> and
+ <literal>jboss-el-api.jar</literal> in the EAR classpath. Make sure you reference all of these JARs
+ from <literal>application.xml</literal>. </para>
+
+ <para> If you want to use jBPM or Drools, you must include the needed jars in the EAR classpath. Make sure
+ you reference all of the jars from <literal>application.xml</literal>. </para>
+
+ <para> If you want to use facelets (our recommendation), you must include
+ <literal>jsf-facelets.jar</literal> in the <literal>WEB-INF/lib</literal> directory of the WAR. </para>
+
+ <para> If you want to use the Seam tag library (most Seam applications do), you must include
+ <literal>jboss-seam-ui.jar</literal> in the <literal>WEB-INF/lib</literal> directory of the WAR. If
+ you want to use the PDF or email tag libraries, you need to put <literal>jboss-seam-pdf.jar</literal> or
+ <literal>jboss-seam-mail.jar</literal> in <literal>WEB-INF/lib</literal>. </para>
+
+ <para> If you want to use the Seam debug page (only works for applications using facelets), you must include
+ <literal>jboss-seam-debug.jar</literal> in the <literal>WEB-INF/lib</literal> directory of the WAR. </para>
+
+ <para> Seam ships with several example applications that are deployable in any Java EE container that
+ supports EJB 3.0. </para>
+
+ <para> I really wish that was all there was to say on the topic of configuration but unfortunately we're
+ only about a third of the way there. If you're too overwhelmed by all this tedious configuration stuff,
+ feel free to skip over the rest of this section and come back to it later. </para>
</sect2>
@@ -612,14 +477,11 @@
<sect1>
<title>Configuring Seam in J2EE</title>
- <para>
- Seam is useful even if you're not yet ready to take the plunge into EJB 3.0. In this
- case you would use Hibernate3 or JPA instead of EJB 3.0 persistence, and plain JavaBeans
- instead of session beans. You'll miss out on some of the nice features of session
- beans but it will be very easy to migrate to EJB 3.0 when you're ready and, in the
- meantime, you'll be able to take advantage of Seam's unique declarative state
- management architecture.
- </para>
+ <para> Seam is useful even if you're not yet ready to take the plunge into EJB 3.0. In this case you would use
+ Hibernate3 or JPA instead of EJB 3.0 persistence, and plain JavaBeans instead of session beans. You'll miss
+ out on some of the nice features of session beans but it will be very easy to migrate to EJB 3.0 when you're
+ ready and, in the meantime, you'll be able to take advantage of Seam's unique declarative state management
+ architecture. </para>
<mediaobject>
<imageobject role="fo">
@@ -630,62 +492,46 @@
</imageobject>
</mediaobject>
- <para>
- Seam JavaBean components do not provide declarative transaction demarcation like session
- beans do. You <emphasis>could</emphasis> manage your transactions manually using the
- JTA <literal>UserTransaction</literal> or declaratively using Seam's
- <literal>@Transactional</literal> annotation. But most applications will just use Seam
- managed transactions when using Hibernate with JavaBeans.
- </para>
-
- <para>
- The Seam distribution includes a version of the booking example application that
- uses Hibernate3 and JavaBeans instead of EJB3, and another version that uses
- JPA and JavaBeans. These example applications are ready to deploy into any J2EE
- application server.
- </para>
+ <para> Seam JavaBean components do not provide declarative transaction demarcation like session beans do. You
+ <emphasis>could</emphasis> manage your transactions manually using the JTA
+ <literal>UserTransaction</literal> or declaratively using Seam's <literal>@Transactional</literal>
+ annotation. But most applications will just use Seam managed transactions when using Hibernate with
+ JavaBeans. </para>
+
+ <para> The Seam distribution includes a version of the booking example application that uses Hibernate3 and
+ JavaBeans instead of EJB3, and another version that uses JPA and JavaBeans. These example applications are
+ ready to deploy into any J2EE application server. </para>
<sect2>
<title>Boostrapping Hibernate in Seam</title>
- <para>
- Seam will bootstrap a Hibernate <literal>SessionFactory</literal> from your
- <literal>hibernate.cfg.xml</literal> file if you install a built-in component:
- </para>
+ <para> Seam will bootstrap a Hibernate <literal>SessionFactory</literal> from your
+ <literal>hibernate.cfg.xml</literal> file if you install a built-in component: </para>
<programlisting><![CDATA[<persistence:hibernate-session-factory name="hibernateSessionFactory"/>]]></programlisting>
- <para>
- You will also need to configure a <emphasis>managed session</emphasis> if you want
- a Seam managed Hibernate <literal>Session</literal> to be available via injection.
- </para>
+ <para> You will also need to configure a <emphasis>managed session</emphasis> if you want a Seam managed
+ Hibernate <literal>Session</literal> to be available via injection. </para>
</sect2>
<sect2>
<title>Boostrapping JPA in Seam</title>
- <para>
- Seam will bootstrap a JPA <literal>EntityManagerFactory</literal> from your
- <literal>persistence.xml</literal> file if you install this built-in component:
- </para>
+ <para> Seam will bootstrap a JPA <literal>EntityManagerFactory</literal> from your
+ <literal>persistence.xml</literal> file if you install this built-in component: </para>
<programlisting><![CDATA[<persistence:entity-manager-factory name="entityManagerFactory"/>]]></programlisting>
- <para>
- You will also need to configure a <emphasis>managed persistencece context</emphasis>
- if you want a Seam managed JPA <literal>EntityManager</literal> to be available via
- injection.
- </para>
+ <para> You will also need to configure a <emphasis>managed persistencece context</emphasis> if you want a
+ Seam managed JPA <literal>EntityManager</literal> to be available via injection. </para>
</sect2>
<sect2>
<title>Packaging</title>
- <para>
- We can package our application as a WAR, in the following structure:
- </para>
+ <para> We can package our application as a WAR, in the following structure: </para>
<programlisting><![CDATA[my-application.war/
META-INF/
@@ -720,10 +566,8 @@
register.jsp
...]]></programlisting>
- <para>
- If we want to deploy Hibernate in a non-EE environment like Tomcat or TestNG,
- we need to do a little bit more work.
- </para>
+ <para> If we want to deploy Hibernate in a non-EE environment like Tomcat or TestNG, we need to do a little
+ bit more work. </para>
</sect2>
</sect1>
@@ -731,15 +575,11 @@
<sect1>
<title>Configuring Seam in Java SE, with the JBoss Embedded</title>
- <para>
- JBoss Embedded lets you run EJB3 components outside the context of the Java EE 5
- application server. This is especially, but not only, useful for testing.
- </para>
+ <para> JBoss Embedded lets you run EJB3 components outside the context of the Java EE 5 application server. This
+ is especially, but not only, useful for testing. </para>
- <para>
- The Seam booking example application includes a TestNG integration test suite that
- runs on JBoss Embedded via <literal>SeamTest</literal>.
- </para>
+ <para> The Seam booking example application includes a TestNG integration test suite that runs on JBoss Embedded
+ via <literal>SeamTest</literal>. </para>
<mediaobject>
<imageobject role="fo">
@@ -750,9 +590,7 @@
</imageobject>
</mediaobject>
- <para>
- The booking example application may even be deployed to Tomcat.
- </para>
+ <para> The booking example application may even be deployed to Tomcat. </para>
<mediaobject>
<imageobject role="fo">
@@ -763,23 +601,62 @@
</imageobject>
</mediaobject>
- <sect2>
- <title>Installing JBoss Embedded</title>
+ <sect2 id="config.install.embedded">
+ <title>Installing Embedded JBoss</title>
+
+
+ <para>Embedded JBoss must by installed into Tomcat for Seam applications to run correctly on it. Embedded
+ JBoss can be downloaded from <ulink
+ url="http://sourceforge.net/project/showfiles.php?group_id=22866&package_id=228977"/>. The
+ process for installing Embedded JBoss into Tomcat 6 is quite simple. First, you should copy the JBoss Embedded JARs and
+ configuration files into Tomcat. </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para> Copy all files and directories under the Embedded JBoss <literal>bootstrap</literal> and
+ <literal>lib</literal> directories, except for the <literal>jndi.properties</literal> file,
+ into the Tomcat <literal>lib</literal> directory. </para>
+ </listitem>
+
+
+ <listitem>
+ <para>Remove the <literal>annotations-api.jar</literal> file from the Tomcat <literal>lib</literal>
+ directory. </para>
+ </listitem>
+ </itemizedlist>
- <para>
- Please follow the instructions in the JBoss Embedded documentation to
- install JBoss Embedded in Tomcat.
- </para>
+
+ <para>Next, two configuration files need to be updated to add Embedded JBoss-specific functionality.</para>
+
+ <itemizedlist>
+
+
+ <listitem>
+ <para> Add the Embedded JBoss listener to <literal>conf/server.xml</literal>. It should appear after
+ all other listeners in the file.</para>
+
+ <programlisting><Listener className="org.jboss.embedded.tomcat.EmbeddedJBossBootstrapListener" /></programlisting>
+ </listitem>
+
+ <listitem>
+ <para>WAR file scanning should be enabled by adding a listener to
+ <literal>conf/context.xml</literal>. </para>
+
+ <programlisting><Listener className="org.jboss.embedded.tomcat.WebinfScanner" /></programlisting>
+ </listitem>
+ </itemizedlist>
+
+ <para>For more configuration options, please see the Embedded JBoss Tomcat integration wiki entry at at
+ <ulink url="http://wiki.jboss.org/wiki/Wiki.jsp?page=EmbeddedAndTomcat"/>.</para>
</sect2>
<sect2>
<title>Packaging</title>
- <para>
- The archive structure of a WAR-based deployment on an servlet engine like Tomcat
- will look something like this:
- </para>
+ <para> The archive structure of a WAR-based deployment on an servlet engine like Tomcat will look something
+ like this: </para>
<programlisting><![CDATA[my-application.war/
META-INF/
@@ -815,10 +692,8 @@
register.jsp
...]]></programlisting>
- <para>
- Most of the Seam example applications may be deployed to Tomcat by running
- <literal>ant deploy.tomcat</literal>.
- </para>
+ <para> Most of the Seam example applications may be deployed to Tomcat by running <literal>ant
+ deploy.tomcat</literal>. </para>
</sect2>
@@ -826,12 +701,9 @@
<sect1>
<title>Configuring jBPM in Seam</title>
- <para>
- Seam's jBPM integration is not installed by default, so you'll need
- to enable jBPM by installing a built-in component. You'll also need to
- explicitly list your process and pageflow definitions. In
- <literal>components.xml</literal>:
- </para>
+ <para> Seam's jBPM integration is not installed by default, so you'll need to enable jBPM by installing a
+ built-in component. You'll also need to explicitly list your process and pageflow definitions. In
+ <literal>components.xml</literal>: </para>
<programlisting><![CDATA[<bpm:jbpm>
<bpm:pageflow-definitions>
@@ -844,13 +716,10 @@
</bpm:process-definitions>
</bpm:jbpm>]]></programlisting>
- <para>
- No further special configuration is needed if you only have pageflows.
- If you do have business process definitions, you need to provide a
- jBPM configuration, and a Hibernate configuration for jBPM. The Seam
- DVD Store demo includes example <literal>jbpm.cfg.xml</literal> and
- <literal>hibernate.cfg.xml</literal> files that will work with Seam:
- </para>
+ <para> No further special configuration is needed if you only have pageflows. If you do have business process
+ definitions, you need to provide a jBPM configuration, and a Hibernate configuration for jBPM. The Seam DVD
+ Store demo includes example <literal>jbpm.cfg.xml</literal> and <literal>hibernate.cfg.xml</literal> files
+ that will work with Seam: </para>
<programlisting><![CDATA[<jbpm-configuration>
@@ -871,21 +740,16 @@
</jbpm-configuration>]]></programlisting>
- <para>
- The most important thing to notice here is that jBPM transaction control is disabled.
- Seam or EJB3 should control the JTA transactions.
- </para>
+ <para> The most important thing to notice here is that jBPM transaction control is disabled. Seam or EJB3 should
+ control the JTA transactions. </para>
<sect2>
<title>Packaging</title>
- <para>
- There is not yet any well-defined packaging format for jBPM configuration
- and process/pageflow definition files. In the Seam examples we've decided
- to simply package all these files into the root of the EAR. In future, we
- will probably design some other standard packaging format. So the EAR looks
- something like this:
- </para>
+ <para> There is not yet any well-defined packaging format for jBPM configuration and process/pageflow
+ definition files. In the Seam examples we've decided to simply package all these files into the root of
+ the EAR. In future, we will probably design some other standard packaging format. So the EAR looks
+ something like this: </para>
<programlisting><![CDATA[my-application.ear/
jboss-seam.jar
@@ -929,10 +793,7 @@
approveDocument.jpdl.xml
documentLifecycle.jpdl.xml]]></programlisting>
- <para>
- Remember to add <literal>jbpm-3.1.jar</literal> to the manifest of your
- EJB-JAR and WAR.
- </para>
+ <para> Remember to add <literal>jbpm-3.1.jar</literal> to the manifest of your EJB-JAR and WAR. </para>
</sect2>
@@ -941,32 +802,24 @@
<sect1>
<title>Configuring Seam in a Portal</title>
- <para>
- To run a Seam application as a portlet, you'll need to provide certain
- portlet metadata (<literal>portlet.xml</literal>, etc) in addition to
- the usual Java EE metadata. See the <literal>examples/portal</literal>
- directory for an example of the booking demo preconfigured to run on
- JBoss Portal.
- </para>
+ <para> To run a Seam application as a portlet, you'll need to provide certain portlet metadata
+ (<literal>portlet.xml</literal>, etc) in addition to the usual Java EE metadata. See the
+ <literal>examples/portal</literal> directory for an example of the booking demo preconfigured to run on
+ JBoss Portal. </para>
</sect1>
<sect1>
<title>Configuring SFSB and Session Timeouts in JBoss AS</title>
- <para>
- It is very important that the timeout for Stateful Session Beans is set higher than the
- timeout for HTTP Sessions, otherwise SFSB's may time out before the user's HTTP session
- has ended. JBoss Application Server has a default session bean timeout of 30
- minutes, which is configured in <literal>server/default/conf/standardjboss.xml</literal>
- (replace <emphasis>default</emphasis> with your own configuration).
- </para>
+ <para> It is very important that the timeout for Stateful Session Beans is set higher than the timeout for HTTP
+ Sessions, otherwise SFSB's may time out before the user's HTTP session has ended. JBoss Application Server
+ has a default session bean timeout of 30 minutes, which is configured in
+ <literal>server/default/conf/standardjboss.xml</literal> (replace <emphasis>default</emphasis> with your
+ own configuration). </para>
- <para>
- The default SFSB timeout can be adjusted by modifying the value of
- <literal>max-bean-life</literal> in the <literal>LRUStatefulContextCachePolicy</literal>
- cache configuration:
- </para>
+ <para> The default SFSB timeout can be adjusted by modifying the value of <literal>max-bean-life</literal> in
+ the <literal>LRUStatefulContextCachePolicy</literal> cache configuration: </para>
<programlisting><![CDATA[<container-cache-conf>
<cache-policy>org.jboss.ejb.plugins.LRUStatefulContextCachePolicy</cache-policy>
@@ -987,23 +840,18 @@
</cache-policy-conf>
</container-cache-conf>]]></programlisting>
- <para>
- The default HTTP session timeout can be modified in
- <literal>server/default/deploy/jbossweb-tomcat55.sar/conf/web.xml</literal> for JBoss 4.0.x,
- or in <literal>server/default/deploy/jboss-web.deployer/conf/web.xml</literal>
- for JBoss 4.2.x. The following entry in this file controls the default session
- timeout for all web applications:
- </para>
+ <para> The default HTTP session timeout can be modified in
+ <literal>server/default/deploy/jbossweb-tomcat55.sar/conf/web.xml</literal> for JBoss 4.0.x, or in
+ <literal>server/default/deploy/jboss-web.deployer/conf/web.xml</literal> for JBoss 4.2.x. The following
+ entry in this file controls the default session timeout for all web applications: </para>
<programlisting><![CDATA[<session-config>
<!-- HTTP Session timeout, in minutes -->
<session-timeout>30</session-timeout>
</session-config>]]></programlisting>
- <para>
- To override this value for your own application, simply include this entry in
- your application's own <literal>web.xml</literal>.
- </para>
+ <para> To override this value for your own application, simply include this entry in your application's own
+ <literal>web.xml</literal>. </para>
</sect1>
1.17 +5 -5 jboss-seam/doc/reference/en/modules/i18n.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: i18n.xml
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/doc/reference/en/modules/i18n.xml,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- i18n.xml 4 Jun 2007 00:33:19 -0000 1.16
+++ i18n.xml 26 Jun 2007 02:23:11 -0000 1.17
@@ -20,18 +20,18 @@
<itemizedlist>
<listitem>
- If there is a locale associated with the HTTP request
+ <para>If there is a locale associated with the HTTP request
(the browser locale), and that locale is in the list
of supported locales from <literal>faces-config.xml</literal>,
- use that locale for the rest of the session.
+ use that locale for the rest of the session.</para>
</listitem>
<listitem>
- Otherwise, if a default locale was specified in the
+ <para>Otherwise, if a default locale was specified in the
<literal>faces-config.xml</literal>, use that locale
- for the rest of the session.
+ for the rest of the session.</para>
</listitem>
<listitem>
- Otherwise, use the default locale of the server.
+ <para>Otherwise, use the default locale of the server.</para>
</listitem>
</itemizedlist>
1.11 +1 -1 jboss-seam/doc/reference/en/modules/itext.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: itext.xml
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/doc/reference/en/modules/itext.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- itext.xml 15 Jun 2007 07:36:20 -0000 1.10
+++ itext.xml 26 Jun 2007 02:23:11 -0000 1.11
@@ -2010,7 +2010,7 @@
<listitem>
<para>
<literal>color</literal> — The color value. For gradient colors, this
- the starting color. <link linkend="itext.colors"/>
+ the starting color. <xref linkend="itext.colors"/>
</para>
</listitem>
<listitem>
1.33 +12 -12 jboss-seam/doc/reference/en/modules/jbpm.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: jbpm.xml
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/doc/reference/en/modules/jbpm.xml,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- jbpm.xml 17 Jun 2007 23:32:55 -0000 1.32
+++ jbpm.xml 26 Jun 2007 02:23:11 -0000 1.33
@@ -344,7 +344,6 @@
<transition name="complete" to="complete"/>
</page>]]></programlisting>
- </section>
<para>
In practice, both navigation models have their place, and you'll
@@ -352,6 +351,7 @@
</para>
</section>
+ </section>
<section>
<title>Using jPDL pageflows</title>
@@ -604,7 +604,7 @@
<end-state name="done"/>
</process-definition>]]></programlisting>
- </section>
+
<mediaobject>
<imageobject role="fo">
@@ -623,6 +623,7 @@
corresponds to a whole pageflow
<literal><pageflow-definition></literal>
</para>
+ </section>
<section>
<title>Using jPDL business process definitions</title>
@@ -807,8 +808,6 @@
completed before process execution can resume.)
</para>
- </section>
-
<para>
Please refer to the jBPM documentation for a more thorough overview of
the sophisticated features that jBPM provides for managing complex
@@ -816,5 +815,6 @@
</para>
</section>
+ </section>
</chapter>
1.15 +257 -257 jboss-seam/doc/reference/en/modules/testing.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: testing.xml
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/doc/reference/en/modules/testing.xml,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- testing.xml 12 Jun 2007 22:10:19 -0000 1.14
+++ testing.xml 26 Jun 2007 02:23:11 -0000 1.15
@@ -215,7 +215,7 @@
</para>
<para>
- <lteral>SeamTest</lteral> lets you write <emphasis>scripted</emphasis> tests,
+ <literal>SeamTest</literal> lets you write <emphasis>scripted</emphasis> tests,
in a simulated JSF environment. The role of a scripted test is to reproduce
the interaction between the view and the Seam components. In other words, you
get to pretend you are the JSF implementation!
1.91 +14 -19 jboss-seam/doc/reference/en/modules/tutorial.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: tutorial.xml
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/doc/reference/en/modules/tutorial.xml,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -b -r1.90 -r1.91
--- tutorial.xml 21 Jun 2007 23:46:57 -0000 1.90
+++ tutorial.xml 26 Jun 2007 02:23:11 -0000 1.91
@@ -57,17 +57,9 @@
First, make sure you have Ant correctly installed, with <literal>$ANT_HOME</literal> and
<literal>$JAVA_HOME</literal> set correctly. Next, make sure you set the location of your Tomcat
6.0 installation in the <literal>build.properties</literal> file in the root folder of your Seam
- installation.
- </para>
-
- <para>
- Next, follow the
- <ulink url="http://wiki.jboss.org/wiki/Wiki.jsp?page=EmbeddedAndTomcat">instructions</ulink>
- for installing JBoss Embedded on Tomcat 6.0. (This is a straightforward process, you need
- to copy some jars and files into the Tomcat <literal>lib/</literal> directory, and then
- edit <literal>conf/server.xml</literal> and <literal>conf/context.xml</literal>, adding
- the configurations required to bootstrap JBoss Embedded and enable scanning of WARs for
- EJB components and datasources.)
+ installation. You will need to follow the instructions in
+ <xref linkend="config.install.embedded"/>
+ for installing JBoss Embedded on Tomcat 6.0. JBoss embedded is required to run Seam applications on Tomcat.
</para>
<para>
@@ -1915,26 +1907,29 @@
<itemizedlist>
<listitem>
- <literal>BookingListAction</literal> retrieves existing bookings for the currently logged in user. </listitem>
+ <para><literal>BookingListAction</literal> retrieves existing bookings for the currently logged in user. </para>
+ </listitem>
<listitem>
- <literal>ChangePasswordAction</literal> updates the password of the currently logged in user. </listitem>
+ <para><literal>ChangePasswordAction</literal> updates the password of the currently logged in user.</para>
+ </listitem>
<listitem>
- <literal>HotelBookingAction</literal> implements the core functionality of the application: hotel
+ <para><literal>HotelBookingAction</literal> implements the core functionality of the application: hotel
room searching, selection, booking and booking confirmation. This functionality is implemented as a
- <emphasis>conversation</emphasis>, so this is the most interesting class in the application. </listitem>
+ <emphasis>conversation</emphasis>, so this is the most interesting class in the application. </para></listitem>
<listitem>
- <literal>RegisterAction</literal> registers a new system user. </listitem>
+ <para><literal>RegisterAction</literal> registers a new system user.</para>
+ </listitem>
</itemizedlist>
<para> Three entity beans implement the application's persistent domain model. </para>
<itemizedlist>
<listitem>
- <literal>Hotel</literal> is an entity bean that represent a hotel </listitem>
+ <para><literal>Hotel</literal> is an entity bean that represent a hotel </para></listitem>
<listitem>
- <literal>Booking</literal> is an entity bean that represents an existing booking </listitem>
+ <para><literal>Booking</literal> is an entity bean that represents an existing booking </para></listitem>
<listitem>
- <literal>User</literal> is an entity bean to represents a user who can make hotel bookings
+ <para><literal>User</literal> is an entity bean to represents a user who can make hotel bookings</para>
</listitem>
</itemizedlist>
More information about the jboss-cvs-commits
mailing list