[seam-commits] Seam SVN: r15034 - in branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US: images and 1 other directory.
seam-commits at lists.jboss.org
seam-commits at lists.jboss.org
Tue Aug 14 09:50:36 EDT 2012
Author: manaRH
Date: 2012-08-14 09:50:35 -0400 (Tue, 14 Aug 2012)
New Revision: 15034
Added:
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/images/plugin-junit.png
Modified:
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Annotations.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Concepts.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Configuration.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Elenhancements.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Events.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Framework.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Gettingstarted.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Groovy.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Hsearch.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/I18n.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Jms.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Performance.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Persistence.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Preface.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Security.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Tutorial.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Validation.xml
branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Wicket.xml
Log:
JBSEAM-5008 documentation issues
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Annotations.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Annotations.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Annotations.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -9,7 +9,7 @@
lets you use annotations to achieve a declarative style of programming.
Most of the annotations you'll use are defined by the EJB 3.0
specification. The annotations for data validation are defined by the
- Hibernate Validator package. Finally, Seam defines its own set of
+ Bean Validation standard. Finally, Seam defines its own set of
annotations, which we'll describe in this chapter.
</para>
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Concepts.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Concepts.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Concepts.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -377,8 +377,8 @@
the page or stateless contexts.
</para>
<para>
- Concurrent requests to session-scoped stateful session beans are always serialized by Seam as long
- as the Seam interceptors are not disabled for the bean.
+ Concurrent requests to session-scoped stateful session beans are not serialized by Seam as long
+ as EJB 3.1 has changed that. This is a difference in comparison to previous Seam 2.2.x.
</para>
<para>
@@ -568,7 +568,7 @@
namespaces.
</para>
-<programlisting><components xmlns="http://jboss.org/schema/seam/components">
+<programlisting role="XML"><components xmlns="http://jboss.org/schema/seam/components">
<import>org.jboss.seam.core</import>
<import>org.jboss.seam.cache</import>
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Configuration.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Configuration.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Configuration.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -49,6 +49,18 @@
<param-value>client</param-value>
</context-param>]]></programlisting>
+ <warning>
+ <para>Setting of <literal>javax.faces.STATE_SAVING_METHOD</literal> to <literal>client</literal>
+ can lead to security issues and it should be set environment entry <literal>com.sun.faces.ClientStateSavingPassword</literal>
+ in <filename>web.xml</filename> like:
+ <programlisting><![CDATA[
+ <env-entry>
+ <env-entry-name>com.sun.faces.ClientStateSavingPassword</env-entry-name>
+ <env-entry-type>java.lang.String</env-entry-type>
+ <env-entry-value>something</env-entry-value>
+ </env-entry>]]></programlisting>
+ </para>
+ </warning>
<para>
There is a minor gray area in the JSF specification regarding the mutability of view state values. Since
Seam uses the JSF view state to back its PAGE scope this can become an issue in some cases. If you're
@@ -425,31 +437,25 @@
<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 (and may depend on your own naming conventions as well). We usually
- specify this option in <literal>components.xml</literal>. </para>
+ EJB name. Fortunately, new portable JNDI Syntax was introduced in Java EE 6. There are three JNDI namespaces for
+ portable JNDI lookups - <literal>java:global</literal>, <literal>java:module</literal> and <literal>java:app</literal>.
+ More in <ulink url="http://docs.oracle.com/javaee/6/tutorial/doc/gipjf.html#girgn">Java EE 6 tutorial</ulink>
+ 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 7, the following pattern is correct: </para>
- <programlisting role="XML"><![CDATA[<core:init jndi-name="earName/#{ejbName}/local" />]]></programlisting>
+ <programlisting role="XML"><![CDATA[<core:init jndi-name="java:app/<ejb-module-name>/#{ejbName}" />]]></programlisting>
- <para> In this case, <literal>earName</literal> is the name of the EAR in which the bean is deployed, Seam
- replaces <literal>#{ejbName}</literal> with the name of the EJB, and the final segment represents the
- type of interface (local or remote). </para>
+ <para> In this case, <literal><ejb-module-name></literal> is the name of the EJB module (by default it is filename of ejb jar)
+ in which the bean is deployed, Seam replaces <literal>#{ejbName}</literal> with the name of the EJB. </para>
- <para> Outside the context of an EAR (when using the JBoss Embeddable EJB3 container), the first segment is
- dropped since there is no EAR, leaving us with the following pattern: </para>
-
- <programlisting role="XML"><![CDATA[<core:init jndi-name="#{ejbName}/local" />]]></programlisting>
-
<para> How these JNDI names are resolved and somehow locate an EJB component might appear a bit like black
magic at this point, so let's dig into the details. First, let's talk about how the EJB components get
into JNDI.</para>
- <para> The folks at JBoss don't care much for XML, if you can't tell. So when they designed JBoss AS, they
- decided that EJB components would get assigned a global JNDI name automatically, using the pattern
- just described (i.e., EAR name/EJB name/interface type). The EJB name is the first non-empty value
- from the following list: </para>
+ <para> EJB components would get assigned a global JNDI name automatically, using the pattern
+ described in <ulink url="http://docs.oracle.com/javaee/6/tutorial/doc/gipjf.html#girgn">Java EE 6 tutorial</ulink>.
+ The EJB name is the first non-empty value from the following list: </para>
<itemizedlist>
<listitem>
<para>The value of the <literal><ejb-name></literal> element in ejb-jar.xml</para>
@@ -504,7 +510,7 @@
is the EJB reference for the example component just shown: </para>
<programlisting role="XML"><![CDATA[<ejb-local-ref>
- <ejb-ref-name>myapp/AuthenticatorBean/local</ejb-ref-name>
+ <ejb-ref-name>myapp/AuthenticatorBean</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local>org.example.vehicles.action.Authenticator</local>
</ejb-local-ref>
@@ -570,17 +576,17 @@
injecting a SFSB, there is no guarantee that you will get the SFSB bound to the active session or
conversation, whatever the case may be. Thus, you definitely want to inject the Seam EJB component using
<literal>@In</literal>.</para>
-
+<!--
<para> That covers how JNDI names are defined and used. The lesson is that with some application servers,
such as GlassFish, you are going to have to specify JNDI names for all EJB components explicitly, and
sometimes twice! And even if you are following the same naming convention as JBoss AS, the JNDI pattern
in Seam may need to be altered. For instance, the global JNDI names are automatically prefixed with
java:comp/env on GlassFish, so you need to define the JNDI pattern as follows:</para>
-
+
<programlisting role="XML"><![CDATA[<core:init jndi-name="java:comp/env/earName/#{ejbName}/local" />]]></programlisting>
-
+-->
<para>
- Finally, let's talk about transactions. In an EJB3 environment, we recommend the use of a special
+ Finally, let's talk about transactions. In an EJB environment, we recommend the use of a special
built-in component for transaction management, that is fully aware of container transactions, and can
correctly process transaction success events registered with the <literal>Events</literal> component. If
you don't add this line to your <literal>components.xml</literal> file, Seam won't know when
@@ -659,7 +665,7 @@
</sect1>
<sect1>
- <title>Configuring Seam in Java EE 5</title>
+ <title>Configuring Seam in Java EE 6</title>
<mediaobject>
<imageobject role="fo">
@@ -670,7 +676,7 @@
</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 environment, this is all the configuration required to start using Seam! </para>
<sect2>
<title>Packaging</title>
@@ -693,7 +699,6 @@
components.xml
faces-config.xml
lib/
- jsf-facelets.jar
jboss-seam-ui.jar
login.jsp
register.jsp
@@ -1029,7 +1034,7 @@
annotated with <literal>@Foo</literal>:
</para>
- <programlisting><![CDATA[@Name("fooStartup")
+ <programlisting role="JAVA"><![CDATA[@Name("fooStartup")
@Scope(APPLICATION)
@Startup
public class FooStartup {
@@ -1062,7 +1067,7 @@
To do this, we need to write a custom deployment handler:
</para>
- <programlisting><![CDATA[public class FooDeploymentHandler implements DeploymentHandler {
+ <programlisting role="JAVA"><![CDATA[public class FooDeploymentHandler implements DeploymentHandler {
private static DeploymentMetadata FOO_METADATA = new DeploymentMetadata()
{
@@ -1107,7 +1112,7 @@
<literal>APPLICATION</literal> scoped component's startup:
</para>
- <programlisting><![CDATA[@Name("fooStartup")
+ <programlisting role="JAVA"><![CDATA[@Name("fooStartup")
@Scope(APPLICATION)
@Startup
public class FooStartup {
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Elenhancements.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Elenhancements.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Elenhancements.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -14,13 +14,23 @@
<title>Parameterized Expressions</title>
<para>
- Standard EL does not allow you to use a method with user defined
+ Standard EL 2.1 does not allow you to use a method with user defined
parameters — of course, JSF listener methods (e.g. a
- <literal>valueChangeListener</literal>) take parameters provided by JSF.
+ <literal>valueChangeListener</literal>) take parameters provided by JSF.
+ <ulink url="http://docs.oracle.com/javaee/6/tutorial/doc/gjddd.html">Standard EL 2.2</ulink>,
+ which is in Java EE 6, allows it now. So you don't have to use JBoss EL enhancements.
</para>
+ <para>You can still use JBoss EL instead of standard EL 2.2 from Java EE 6 by
+ setting up <literal>com.sun.faces.expressionFactory</literal> in <filename>web.xml</filename>:
+ <programlisting role="XML"><![CDATA[<context-param>
+ <param-name>com.sun.faces.expressionFactory</param-name>
+ <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
+</context-param>]]> </programlisting>
+ </para>
+
<para>
- JBoss EL removes this restriction. For example:
+ JBoss EL and EL 2.2 removed this restriction. For example:
</para>
<programlisting role="XHTML"><![CDATA[<h:commandButton action="#{hotelBooking.bookHotel(hotel)}" value="Book Hotel"/>]]></programlisting>
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Events.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Events.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Events.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -54,7 +54,7 @@
pageflow definition:
</para>
- <programlisting role="XML"><![CDATA[<start-page name="hello" view-id="/hello.jsp">
+ <programlisting role="XML"><![CDATA[<start-page name="hello" view-id="/hello.xhtml">
<transition to="hello">
<action expression="#{helloWorld.sayHello}"/>
</transition>
@@ -76,7 +76,7 @@
</para>
<programlisting role="XML"><![CDATA[<pages>
- <page view-id="/hello.jsp" action="#{helloWorld.sayHello}"/>
+ <page view-id="/hello.xhtml" action="#{helloWorld.sayHello}"/>
</pages>]]></programlisting>
<para>
@@ -120,7 +120,7 @@
</para>
<programlisting role="XML"><![CDATA[<pages>
- <page view-id="/hello.jsp">
+ <page view-id="/hello.xhtml">
<action execute="#{helloWorld.sayHello}" if="#{not validation.failed}"/>
<action execute="#{hitCount.increment}"/>
</page>
@@ -193,7 +193,7 @@
</para>
<programlisting role="XML"><![CDATA[<pages>
- <page view-id="/hello.jsp" action="#{helloWorld.sayHello}">
+ <page view-id="/hello.xhtml" action="#{helloWorld.sayHello}">
<param name="firstName" value="#{person.firstName}"/>
<param name="lastName" value="#{person.lastName}"/>
</page>
@@ -240,8 +240,8 @@
<para>
The essential idea behind all this is that <emphasis>however</emphasis>
- we get from any other page to <literal>/hello.jsp</literal> (or from
- <literal>/hello.jsp</literal> back to <literal>/hello.jsp</literal>),
+ we get from any other page to <literal>/hello.xhtml</literal> (or from
+ <literal>/hello.xhtml</literal> back to <literal>/hello.xhtml</literal>),
the value of the model attribute referred to in the value binding is
"remembered", without the need for a conversation (or other server-side
state).
@@ -260,7 +260,7 @@
</para>
<programlisting role="XML"><![CDATA[<pages>
- <page view-id="/hello.jsp" action="#{helloWorld.sayHello}">
+ <page view-id="/hello.xhtml" action="#{helloWorld.sayHello}">
<param name="firstName" />
<param name="lastName" />
</page>
@@ -383,7 +383,7 @@
</para>
<programlisting role="XML"><![CDATA[<pages>
- <page view-id="/calculator.jsp" action="#{calculator.calculate}">
+ <page view-id="/calculator.xhtml" action="#{calculator.calculate}">
<param name="x" value="#{calculator.lhs}"/>
<param name="y" value="#{calculator.rhs}"/>
<param name="op" converterId="com.my.calculator.OperatorConverter" value="#{calculator.op}"/>
@@ -395,7 +395,7 @@
</para>
<programlisting role="XML"><![CDATA[<pages>
- <page view-id="/calculator.jsp" action="#{calculator.calculate}">
+ <page view-id="/calculator.xhtml" action="#{calculator.calculate}">
<param name="x" value="#{calculator.lhs}"/>
<param name="y" value="#{calculator.rhs}"/>
<param name="op" converter="#{operatorConverter}" value="#{calculator.op}"/>
@@ -637,7 +637,7 @@
or even just a lot of navigation rules,
you will almost certainly want to split the declarations up over
multiple files. You can define actions and parameters for a page
- with the view id <literal>/calc/calculator.jsp</literal> in a
+ with the view id <literal>/calc/calculator.xhtml</literal> in a
resource named <literal>calc/calculator.page.xml</literal>. The
root element in this case is the <literal><page></literal>
element, and the view id is implied:
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Framework.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Framework.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Framework.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -230,7 +230,7 @@
</para>
<programlisting role="XML"><![CDATA[<pages>
- <page view-id="/editPerson.jsp">
+ <page view-id="/editPerson.xhtml">
<param name="personId" value="#{personHome.id}"/>
</page>
</pages>]]></programlisting>
@@ -420,7 +420,7 @@
<programlisting role="XHTML"><![CDATA[<h1>List of people</h1>
<h:dataTable value="#{people.resultList}" var="person">
<h:column>
- <s:link view="/editPerson.jsp" value="#{person.firstName} #{person.lastName}">
+ <s:link view="/editPerson.xhtml" value="#{person.firstName} #{person.lastName}">
<f:param name="personId" value="#{person.id}"/>
</s:link>
</h:column>
@@ -441,7 +441,7 @@
<programlisting role="XML"><![CDATA[<pages>
- <page view-id="/searchPerson.jsp">
+ <page view-id="/searchPerson.xhtml">
<param name="firstResult" value="#{people.firstResult}"/>
</page>
</pages>]]></programlisting>
@@ -453,7 +453,7 @@
<programlisting role="XHTML"><![CDATA[<h1>Search for people</h1>
<h:dataTable value="#{people.resultList}" var="person">
<h:column>
- <s:link view="/editPerson.jsp" value="#{person.firstName} #{person.lastName}">
+ <s:link view="/editPerson.xhtml" value="#{person.firstName} #{person.lastName}">
<f:param name="personId" value="#{person.id}"/>
</s:link>
</h:column>
@@ -501,12 +501,12 @@
<h:form>
<div>First name: <h:inputText value="#{examplePerson.firstName}"/></div>
<div>Last name: <h:inputText value="#{examplePerson.lastName}"/></div>
- <div><h:commandButton value="Search" action="/search.jsp"/></div>
+ <div><h:commandButton value="Search" action="/search.xhtml"/></div>
</h:form>
<h:dataTable value="#{people.resultList}" var="person">
<h:column>
- <s:link view="/editPerson.jsp" value="#{person.firstName} #{person.lastName}">
+ <s:link view="/editPerson.xhtml" value="#{person.firstName} #{person.lastName}">
<f:param name="personId" value="#{person.id}"/>
</s:link>
</h:column>
@@ -581,7 +581,7 @@
{
persist(user);
info("Registered new user #{user.username}");
- return "/registered.jspx";
+ return "/registered.xhtmlx";
}
else
{
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Gettingstarted.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Gettingstarted.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Gettingstarted.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -357,8 +357,9 @@
</itemizedlist>
<para>But if we want to change any Java code, we still need to do a full restart of the application. (In JBoss
- this may be accomplished by touching the top level deployment descriptor: <literal>application.xml</literal>
- for an EAR deployment, or <literal>web.xml</literal> for a WAR deployment.)</para>
+ this can be handled by configuring
+ <ulink url="https://docs.jboss.org/author/display/AS7/Deployment+Scanner+configuration">deployment scanner mode</ulink>
+ - more details how to do that are in <filename>$JBOSS_HOME/standalone/deployments/README.txt</filename></para>
<para>But if you really want a fast edit/compile/test cycle, Seam supports incremental redeployment of JavaBean
components. To make use of this functionality, you must deploy the JavaBean components into the
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Groovy.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Groovy.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Groovy.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -34,8 +34,7 @@
with existing Java libraries and frameworks.</para>
</listitem>
</itemizedlist>
-
- <para>TODO: write a quick overview of the Groovy syntax add-on</para>
+
</section>
<section>
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Hsearch.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Hsearch.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Hsearch.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -46,7 +46,7 @@
[...]
<!-- use a file system based index -->
<property name="hibernate.search.default.directory_provider"
- value="org.hibernate.search.store.FSDirectoryProvider"/>
+ value="filesystem"/>
<!-- directory where the indexes will be stored -->
<property name="hibernate.search.default.indexBase"
value="/Users/prod/apps/dvdstore/dvdindexes"/>
@@ -74,14 +74,13 @@
</listitem>
</itemizedlist>
- <para>Maven coordinates for using from Hibernate Search:
- <programlisting role="XML"><![CDATA[
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-search</artifactId>
- <version>4.1.1.Final</version>
- </dependency>
- ]]></programlisting>
+ <para>Maven coordinates for using Hibernate Search:
+ <programlisting><![CDATA[
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-search</artifactId>
+ <version>4.1.1.Final</version>
+ </dependency>]]></programlisting>
</para>
<para>Some Hibernate Search extensions require additional dependencies,
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/I18n.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/I18n.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/I18n.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -270,9 +270,7 @@
</context-param></programlisting>
</note>
<para>Seam overrides this behavior, and defaults all dates and times
- to the Seam timezone. In addition, Seam provides the <literal>
- <s:convertDateTime></literal> tag which always performs
- conversions in the Seam timezone.</para>
+ to the Seam timezone. </para>
<para>Seam also provides a default date converter to convert a string
value to a date. This saves you from having to specify a converter on
input fields that are simply capturing a date. The pattern is
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Jms.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Jms.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Jms.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -287,7 +287,7 @@
}]]></programlisting>
<para>
- (For JavaBean components we can annotate the component implementation class if we like.)
+ (For JavaBean components we have to annotate the component implementation class.)
</para>
<para>
@@ -322,6 +322,17 @@
}
}]]></programlisting>
+ <note>
+ <para>Please distinguish between
+ <ulink url="http://java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview_Part3.html#asynejb">
+ EJB 3.1 annotation
+ <literal>javax.ejb.Asynchronous</literal></ulink> and Seam annotation
+ <literal>org.jboss.seam.annotations.async.Asynchronous</literal>.
+ While first is designated for session beans only, the latter works
+ in non-EJB environment too.
+ </para>
+ </note>
+
<para>
The asynchronous method is processed in a completely new event context and does
not have access to the session or conversation context state of the caller. However,
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Performance.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Performance.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Performance.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -36,7 +36,7 @@
The following code listing demonstrates a Seam component with its interceptors disabled:
</para>
- <programlisting><![CDATA[@Name("foo")
+ <programlisting role="JAVA"><![CDATA[@Name("foo")
@Scope(EVENT)
@BypassInterceptors
public class Foo
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Persistence.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Persistence.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Persistence.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -3,7 +3,7 @@
<para>
Seam provides extensive support for the two most popular persistence
- architectures for Java: Hibernate, and the Java Persistence API
+ architectures for Java: Hibernate, and the Java Persistence API 2.0
introduced with EJB 3.1. Seam's unique state-management architecture
allows the most sophisticated ORM integration of any web application
framework.
@@ -165,7 +165,7 @@
<para>
Seam transaction management is useful even if you're using EJB 3.0
container-managed persistence contexts. But it is especially useful
- if you use Seam outside a Java EE 5 environment, or in any other
+ if you use Seam outside a Java EE environment, or in any other
case where you would use a Seam-managed persistence context.
</para>
@@ -190,7 +190,7 @@
<para>
Seam provides a transaction management abstraction for beginning, committing, rolling back, and
synchronizing with a transaction. By default Seam uses a JTA transaction component that integrates with
- Container Managed and programmatic EJB transactions. If you are working in a Java EE 5 environment, you
+ Container Managed and programmatic EJB transactions. If you are working in a Java EE environment, you
should install the EJB synchronization component in <literal>components.xml</literal>:
</para>
@@ -273,7 +273,7 @@
such as <literal>beforeCompletion()</literal> and <literal>afterCompletion()</literal>.
By default, Seam uses it's own transaction synchronization component which requires explicit use of the
Seam transaction component when committing a transaction to ensure synchronization callbacks are
- correctly executed. If in a Java EE 5 environment the
+ correctly executed. If in a Java EE environment the
<literal><transaction:ejb-transaction/></literal>
component should be declared in <literal>components.xml</literal> to ensure that Seam synchronization callbacks are
correctly called if the container commits a transaction outside of Seam's knowledge.
@@ -285,7 +285,7 @@
<title>Seam-managed persistence contexts</title>
<para>
- If you're using Seam outside of a Java EE 5 environment, you can't rely upon the
+ If you're using Seam outside of a Java EE environment, you can't rely upon the
container to manage the persistence context lifecycle for you. Even if you are
in an EE 5 environment, you might have a complex application with many loosly
coupled components that collaborate together in the scope of a single conversation,
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Preface.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Preface.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Preface.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -79,15 +79,18 @@
<term><emphasis>Integrated with Java EE6</emphasis></term>
<listitem>
<para>
- While Seam 2 was targeted Java EE 5 mainly, you can use some Java EE 6 technologies
- also on Seam 2.
+ While Seam 2.2 was targeted Java EE 5 mainly, you can use some Java EE 6 technologies
+ also on Seam 2.3.x.
</para>
<para>
- Seam 2 and its extensions was added a little re-factored into Java EE 6 as CDI technology.
- So this should be a current focus of majority users. But for previous Seam 2 users who
- doesn't want or can't use that, we bring some new features from the Java EE 6 set like JSF 2,
- JPA 2 and Bean Validation integrations into Seam 2.
+ Seam 2 and some of its extensions/implementations were added into Java EE 6 as CDI technology.
+ So this should be a current focus of majority users. But for previous Seam 2.2 users who
+ doesn't want or can't use pure Java EE 6, we bring some new features from the Java EE 6 set like JSF 2,
+ JPA 2 and Bean Validation integrations into Seam 2.3.x.
</para>
+ <note>
+ <para>Be warned - Seam 2.3 should work only on Java EE 6 certified server like JBoss AS 7 is.</para>
+ </note>
</listitem>
</varlistentry>
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Security.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Security.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Security.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -1056,7 +1056,7 @@
public Set<Role> getRoles() { return roles; }
public void setRoles(Set<Role> roles) { this.roles = roles; }
}]]></programlisting>
-<programlisting><![CDATA[@Entity
+<programlisting role="JAVA"><![CDATA[@Entity
public class Role {
private Integer roleId;
private String rolename;
@@ -1131,7 +1131,7 @@
public Set<Role> getRoles() { return roles; }
public void setRoles(Set<Role> roles) { this.roles = roles; }
}]]></programlisting>
-<programlisting><![CDATA[@Entity
+<programlisting role="JAVA"><![CDATA[@Entity
public class Role {
private Integer roleId;
private String rolename;
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Tutorial.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Tutorial.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Tutorial.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -12,54 +12,52 @@
of the Seam distribution. The registration example, which will be the first example we look at,
is in the <filename>examples/registration</filename> directory.</para>
- <para>Each example has the very similar directory structure which is based on Maven project structure defaults:</para>
+ <para>Each example has the very similar directory structure which is based on <ulink url="http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html">
+ Maven project structure defaults</ulink>:</para>
<itemizedlist>
<listitem>
- <para> The <filename>*-ear</filename> directory contains enterprise application submodule files such as
- aggregator for web application files, EJB project.
+ <para> The <filename><example>-ear</filename> directory contains enterprise application submodule files such as
+ aggregator for web application files, EJB project.
</para>
</listitem>
<listitem>
- <para> The <filename>*-web</filename> directory contains web application submodule view-related files such as
- web page templates, images and stylesheets.
+ <para> The <filename><example>-web</filename> directory contains web application submodule view-related files such as
+ web page templates, images and stylesheets.
</para>
</listitem>
<listitem>
- <para> The <filename>*-ejb</filename> directory contains Enterprise Java Beans components.
+ <para> The <filename><example>-ejb</filename> directory contains Enterprise Java Beans components.
</para>
</listitem>
<listitem>
- <para> The <filename>*-tests</filename> directory contains Maven integration and functional tests submodule.
+ <para> The <filename><example>-tests</filename> directory contains integration and functional tests.
</para>
</listitem>
</itemizedlist>
- <!-- TODO rewrite to maven project structure -->
<itemizedlist>
<listitem>
- <para> The <filename>view</filename> directory contains view-related files such as
- web page templates, images and stylesheets.
-
+ <para> The <filename><example>-web/src/main/webapp</filename> directory contains view-related files such as
+ web page templates, images and stylesheets.
</para>
</listitem>
<listitem>
- <para> The <filename>resources</filename> directory contains deployment descriptors and
+ <para> The <filename><example>-[ear|ejb]/src/main/resources</filename> directory contains deployment descriptors and
other configuration files.
</para>
</listitem>
<listitem>
- <para> The <filename>src</filename> directory contains the application source code. </para>
+ <para> The <filename><example>-ejb/src/main/java</filename> directory contains the application source code. </para>
</listitem>
</itemizedlist>
-<!-- end of TODO rewrite to maven project structure -->
<para>
- The example applications run both on JBoss AS 7.1.1 with no additional configuration.
+ The example applications run on JBoss AS 7.1.1 with no additional configuration.
The following sections will explain the procedure. Note that all the examples
are built and run from the Maven <filename>pom.xml</filename>, so you'll need at least version 3.x
- of Maven installed before you get started. At the time of writing this text recent version was 3.0.4.
+ of Maven installed before you get started. At the time of writing this text recent version of Maven was 3.0.4.
</para>
@@ -69,8 +67,8 @@
<para>The examples are configured for use on JBoss AS 7.1. You'll need to set <literal>JBOSS_HOME</literal>,
in your environment, to the location of your JBoss AS installation.</para>
- <para>Once you've set the location of JBoss AS and started the application server, you can build and deploy
- any example by typing <literal>mvn install</literal> in the example root directory. And deploys it by changing
+ <para>Once you've set the location of JBoss AS and started the application server, you can build
+ any example by typing <literal>mvn install</literal> in the example root directory. Any example is deployed by changing directory
to *-ear or *-web directory in case of existence only *-web submodule. Type in that submodule <literal>mvn jboss-as:deploy</literal>.
Any example that is packaged as an EAR deploys to a URL like
<literal>/seam-<replaceable>example</replaceable></literal>, where <replaceable>example</replaceable> is
@@ -246,8 +244,9 @@
</callout>
<callout arearefs="registration-notnull">
<para> The <literal>@NotNull</literal> and <literal>@Size</literal> annotations are
- part of the Hibernate Validator framework. Seam integrates Hibernate Validator and
- lets you use it for data validation (even if you are not using Hibernate for
+ part of the Bean Validation annotations specification (JSR-303). Seam integrates
+ Bean Validation through Hibernate Validator, which is the reference implementation,
+ and lets you use it for data validation (even if you are not using Hibernate for
persistence). </para>
</callout>
<callout arearefs="registration-id-annotation">
@@ -293,7 +292,7 @@
<area id="registration-outcome" coords="25"/>
<area id="registration-builtin" coords="29"/>
</areaspec>
- <programlisting><![CDATA[@Stateless
+ <programlisting role="JAVA"><![CDATA[@Stateless
@Name("register")
public class RegisterAction implements Register
{
@@ -440,11 +439,11 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
- <head>
+ <h:head>
<title>Register New User</title>
- </head>
- <body>
- <f:view>
+ </h:head>
+ <h:body>
+ <h:head>f:view>
<h:form>
<s:validateAll>
<h:panelGrid columns="2">
@@ -457,14 +456,14 @@
<h:commandButton value="Register" action="#{register.register}"/>
</h:form>
</f:view>
- </body>
+ </h:body>
</html>]]></programlisting></example>
<para> The only thing here that is specific to Seam is the
<literal><s:validateAll></literal> tag. This JSF component tells JSF to validate all
- the contained input fields against the Hibernate Validator annotations specified on the entity bean. </para>
+ the contained input fields against the Bean Validation annotations specified on the entity bean. </para>
<example>
<title>registered.xhtml</title>
@@ -474,14 +473,14 @@
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core">
- <head>
+ <h:head>
<title>Successfully Registered New User</title>
- </head>
- <body>
+ </h:head>
+ <h:body>
<f:view>
Welcome, #{user.name}, you are successfully registered as #{user.username}.
</f:view>
- </body>
+ </h:body>
</html>
]]></programlisting>
@@ -526,7 +525,7 @@
http://jboss.org/schema/seam/components
http://jboss.org/schema/seam/components-2.3.xsd">
- <core:init jndi-pattern="@jndiPattern@"/>
+ <core:init jndi-pattern="${jndiPattern}"/>
</components>]]></programlisting></example>
@@ -613,7 +612,8 @@
<para> Note that we don't need
any JSF managed bean declarations and neither FaceletViewHandler definition as Facelets are default view technology
- in JSF 2! Our managed beans are annotated Seam components.</para>
+ in JSF 2! Our managed beans are annotated Seam components. So basically we don't need <filename>faces-config.xml</filename> at all,
+ but here is the <filename>faces-config.xml</filename> as the template for advanced JSF configurations.</para>
<para> In fact, once you have all the basic descriptors set up, the <emphasis>only</emphasis> XML you
need to write as you add new functionality to a Seam application is orchestration: navigation rules
@@ -622,7 +622,7 @@
<para> In this simple example, we don't even need a navigation rule, since we decided to embed the view
id in our action code. </para>
-
+
</section>
<section>
@@ -689,10 +689,10 @@
<para> Finally, since our application is deployed as an EAR, we need a deployment descriptor there, too. </para>
<note>
- <para>This file can be generated by Maven EAR plugin and registration application has got this set up registration-ear/pom.xml.</para>
+ <para>This file can be generated by Maven EAR plugin and registration application has got this set up in registration-ear/pom.xml.</para>
</note>
- <para>Just for imagination, the following is the result of that generation:</para>
+ <para>Just for clarity, the following is the result of that generation:</para>
<example id="registration-application-xml"><title>registration application</title>
<programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
@@ -733,7 +733,7 @@
Since there is no value already bound to that name (in any Seam context), Seam instantiates the
<literal>user</literal> component, and returns the resulting <literal>User</literal> entity bean
instance to JSF after storing it in the Seam session context. </para>
- <para> The form input values are now validated against the Hibernate Validator constraints specified on the
+ <para> The form input values are now validated against the Bean Validator constraints specified on the
<literal>User</literal> entity. If the constraints are violated, JSF redisplays the page. Otherwise,
JSF binds the form input values to properties of the <literal>User</literal> entity bean. </para>
<para> Next, JSF asks Seam to resolve the variable named <literal>register</literal>. Seam uses the JNDI
@@ -883,7 +883,7 @@
<area id="messages-delete" coords="29"/>
<area id="messages-remove" coords="36"/>
</areaspec>
- <programlisting><![CDATA[@Stateful
+ <programlisting role="JAVA"><![CDATA[@Stateful
@Scope(SESSION)
@Name("messageManager")
public class MessageManagerBean implements Serializable, MessageManager
@@ -1018,10 +1018,10 @@
xmlns:s="http://jboss.org/schema/seam/taglib"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
- <head>
+ <h:head>
<title>Messages</title>
- </head>
- <body>
+ </h:head>
+ <h:body>
<f:view>
<h2>Message List</h2>
<h:outputText id="noMessages" value="No messages to display" rendered="#{messageList.rowCount==0}"/>
@@ -1053,7 +1053,7 @@
<h3><h:outputText id="title" value="#{message.title}"/></h3>
<div><h:outputText id="text" value="#{message.text}"/></div>
</f:view>
- </body>
+ </h:body>
</html>]]></programlisting>
</example>
@@ -1174,20 +1174,7 @@
</calloutlist>
</programlistingco>
</example>
-
- <para> If we view this process definition using the process definition editor provided by JBossIDE, this is
- what it looks like: </para>
-
- <mediaobject>
- <imageobject role="fo">
- <imagedata fileref="images/todo-process.png" align="center"/>
- </imageobject>
- <imageobject role="html">
- <imagedata fileref="images/todo-process.png" align="center"/>
- </imageobject>
- </mediaobject>
-
<para> This document defines our <emphasis>business process</emphasis> as a graph of nodes. This is the most
trivial possible business process: there is one <emphasis>task</emphasis> to be performed, and when that
task is complete, the business process ends. </para>
@@ -1238,10 +1225,10 @@
xmlns:s="http://jboss.org/schema/seam/taglib"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
- <head>
+ <h:head>
<title>Login</title>
- </head>
- <body>
+ </h:head>
+ <h:body>
<h1>Login</h1>
<f:view>
<h:form id="login">
@@ -1251,7 +1238,7 @@
</div>
</h:form>
</f:view>
- </body>
+ </h:body>
</html>]]></programlisting></example>
@@ -1315,10 +1302,13 @@
<para> Finally, the core of the application is in <literal>todo.xhtml</literal>: </para>
<example>
<title>todo.xhtml</title>
- <programlisting role="XHTML"><![CDATA[<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
-<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
-<%@ taglib uri="http://jboss.org/schema/seam/taglib" prefix="s" %>
-<html>
+ <programlisting role="XHTML"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:s="http://jboss.org/schema/seam/taglib"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core">
<head>
<title>Todo List</title>
</head>
@@ -1327,15 +1317,13 @@
<f:view>
<h:form id="list">
<div>
- <h:outputText value="There are no todo items."
- rendered="#{empty taskInstanceList}"/>
- <h:dataTable value="#{taskInstanceList}" var="task"
- rendered="#{not empty taskInstanceList}">
+ <h:outputText id="noItems" value="There are no todo items." rendered="#{empty taskInstancePriorityList}"/>
+ <h:dataTable id="items" value="#{taskInstancePriorityList}" var="task" rendered="#{not empty taskInstancePriorityList}">
<h:column>
<f:facet name="header">
<h:outputText value="Description"/>
</f:facet>
- <h:inputText value="#{task.description}"/>
+ <h:inputText id="description" value="#{task.description}" style="width: 400"/>
</h:column>
<h:column>
<f:facet name="header">
@@ -1349,18 +1337,18 @@
<f:facet name="header">
<h:outputText value="Priority"/>
</f:facet>
- <h:inputText value="#{task.priority}" style="width: 30"/>
+ <h:inputText id="priority" value="#{task.priority}" style="width: 30"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Due Date"/>
</f:facet>
- <h:inputText value="#{task.dueDate}" style="width: 100">
+ <h:inputText id="dueDate" value="#{task.dueDate}" style="width: 100">
<f:convertDateTime type="date" dateStyle="short"/>
</h:inputText>
</h:column>
<h:column>
- <s:button value="Done" action="#{todoList.done}" taskInstance="#{task}"/>
+ <s:button id="done" action="#{todoList.done}" taskInstance="#{task}" value="Done"/>
</h:column>
</h:dataTable>
</div>
@@ -1368,13 +1356,13 @@
<h:messages/>
</div>
<div>
- <h:commandButton value="Update Items" action="update"/>
+ <h:commandButton id="update" value="Update Items" rendered="#{not empty taskInstanceList}"/>
</div>
</h:form>
<h:form id="new">
<div>
- <h:inputText value="#{todoList.description}"/>
- <h:commandButton value="Create New Item" action="#{todoList.createTodo}"/>
+ <h:inputText id="description" value="#{todoList.description}" style="width: 400"/>
+ <h:commandButton id="create" value="Create New Item" action="#{todoList.createTodo}"/>
</div>
</h:form>
</f:view>
@@ -1621,7 +1609,7 @@
</programlistingco>
</example>
-
+<!--
<para> Here is what the pageflow looks like in the JBoss Developer Studio pageflow editor: </para>
<mediaobject>
@@ -1632,7 +1620,7 @@
<imagedata fileref="images/numberguess-pageflow.png" align="center"/>
</imageobject>
</mediaobject>
-
+ -->
<para> Now that we have seen the pageflow, it is very, very easy to understand the rest of the application! </para>
<para> Here is the main page of the application, <literal>numberGuess.xhtml</literal>: </para>
@@ -1644,12 +1632,12 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:s="http://jboss.org/schema/seam/taglib">
- <head>
+ <h:head>
<title>Guess a number...</title>
<link href="niceforms.css" rel="stylesheet" type="text/css" />
<script language="javascript" type="text/javascript" src="niceforms.js"><!-- --></script>
- </head>
- <body>
+ </h:head>
+ <h:body>
<h1>Guess a number...</h1>
<h:form id="NumberGuessMain" styleClass="niceform">
@@ -1694,7 +1682,7 @@
</div>
</h:form>
- </body>
+ </h:body>
</html>]]></programlisting>
</example>
@@ -1705,22 +1693,22 @@
<para> The <literal>win.xhtml</literal> page is predictable: </para>
<example>
<title>win.xhtml</title>
- <programlisting role="JSF"><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <programlisting role="XHTML"><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:s="http://jboss.org/schema/seam/taglib">
- <head>
+ <h:head>
<title>You won!</title>
<link href="niceforms.css" rel="stylesheet" type="text/css" />
- </head>
- <body>
+ </h:head>
+ <h:body>
<h1>You won!</h1>
Yes, the answer was <h:outputText id="CurrentGuess" value="#{numberGuess.currentGuess}" />.
It took you <h:outputText id="GuessCount" value="#{numberGuess.guessCount}" /> guesses.
<h:outputText id="CheatedMessage" value="But you cheated, so it doesn't count!" rendered="#{numberGuess.cheat}"/>
Would you like to <a href="numberGuess.seam">play again</a>?
- </body>
+ </h:body>
</html>
]]></programlisting>
</example>
@@ -1736,7 +1724,7 @@
<areaspec>
<area id="numberguess-create" coords="13"/>
</areaspec>
- <programlisting><![CDATA[@Name("numberGuess")
+ <programlisting role="JAVA"><![CDATA[@Name("numberGuess")
@Scope(ScopeType.CONVERSATION)
public class NumberGuess implements Serializable {
@@ -2129,7 +2117,7 @@
<area id="booking-datamodel-annotation" coords="15"/>
<area id="booking-destroy-annotation" coords="70"/>
</areaspec>
- <programlisting><![CDATA[@Stateful
+ <programlisting role="JAVA"><![CDATA[@Stateful
@Name("hotelSearch")
@Scope(ScopeType.SESSION)
@Restrict("#{identity.loggedIn}")
@@ -2314,7 +2302,7 @@
<para> The RichFaces <literal><a:ajax></literal> tag allows a JSF action
event listener to be called by asynchronous <literal>XMLHttpRequest</literal> when a
JavaScript event like <literal>onkeyup</literal> occurs. Even better, the
- <literal>reRender</literal> attribute lets us render a fragment of the JSF page and
+ <literal>render</literal> attribute lets us render a fragment of the JSF page and
perform a partial page update when the asynchronous response is received. </para>
</callout>
<callout arearefs="booking-status-element">
@@ -2329,10 +2317,7 @@
<para> The Seam <literal><s:link></literal> tag lets us attach a JSF action
listener to an ordinary (non-JavaScript) HTML link. The advantage of this over the
standard JSF <literal><h:commandLink></literal> is that it preserves the
- operation of "open in new window" and "open in new tab". Also notice that we use a
- method binding with a parameter: <literal>#{hotelBooking.selectHotel(hot)}</literal>.
- This is not possible in the standard Unified EL, but Seam provides an extension to the
- EL that lets you use parameters on any method binding expression. </para>
+ operation of "open in new window" and "open in new tab". </para>
<para> If you're wondering how navigation occurs,
you can find all the rules in <literal>WEB-INF/pages.xml</literal>;
this is discussed in <xref linkend="events.pageaction.navigation"/>. </para>
@@ -2362,7 +2347,7 @@
<area id="booking-end-annotation" coords="72"/>
<area id="booking-dest-annotation" coords="85"/>
</areaspec>
- <programlisting><![CDATA[@Stateful
+ <programlisting role="JAVA"><![CDATA[@Stateful
@Name("hotelBooking")
@Restrict("#{identity.loggedIn}")
public class HotelBookingAction implements HotelBooking
@@ -2588,7 +2573,7 @@
<area id="nested-booking-select-preference" coords="43"/>
<area id="nested-booking-end-annotation" coords="58"/>
</areaspec>
- <programlisting><![CDATA[@Stateful
+ <programlisting role="JAVA"><![CDATA[@Stateful
@Name("roomPreference")
@Restrict("#{identity.loggedIn}")
public class RoomPreferenceAction implements RoomPreference
@@ -2700,51 +2685,48 @@
<!-- Can't use code hightlighting with callouts -->
<programlistingco>
<areaspec>
- <area id="nested-booking-available-rooms" coords="19"/>
- <area id="nested-booking-selection-action" coords="36"/>
- <area id="nested-booking-cancel-action" coords="45"/>
+ <area id="nested-booking-available-rooms" coords="12"/>
+ <area id="nested-booking-selection-action" coords="29"/>
+ <area id="nested-booking-cancel-action" coords="36"/>
</areaspec>
<programlisting><![CDATA[<div class="section">
- <h1>Room Preference</h1>
+ <h1>Room Preference</h1>
</div>
-
<div class="section">
- <h:form id="room_selections_form">
- <div class="section">
- <h:outputText styleClass="output" value="No rooms available for the dates selected: " rendered="#{availableRooms != null and availableRooms.rowCount == 0}"/>
- <h:outputText styleClass="output" value="Rooms available for the dates selected: " rendered="#{availableRooms != null and availableRooms.rowCount > 0}"/>
- <h:outputText styleClass="output" value="#{booking.checkinDate}"/> -
- <h:outputText styleClass="output" value="#{booking.checkoutDate}"/>
+ <h:form id="room_selections_form">
+ <div class="section">
+ <h:outputText styleClass="output" value="No rooms available for the dates selected: " rendered="#{availableRooms != null and availableRooms.rowCount == 0}"/>
+ <h:outputText styleClass="output" value="Rooms available for the dates selected: " rendered="#{availableRooms != null and availableRooms.rowCount > 0}"/>
+ <h:outputText styleClass="output" value="#{booking.checkinDate}"/> -
+ <h:outputText styleClass="output" value="#{booking.checkoutDate}"/>
- <br/><br/>
-
- <h:dataTable id="rooms" value="#{availableRooms}" var="room" rendered="#{availableRooms.rowCount > 0}">
- <h:column>
- <f:facet name="header">Name</f:facet>
- #{room.name}
- </h:column>
- <h:column>
- <f:facet name="header">Description</f:facet>
- #{room.description}
- </h:column>
- <h:column>
- <f:facet name="header">Per Night</f:facet>
- <h:outputText value="#{room.price}">
- <f:convertNumber type="currency" currencySymbol="$"/>
- </h:outputText>
- </h:column>
- <h:column>
- <f:facet name="header">Action</f:facet>
- <h:commandLink id="selectRoomPreference" action="#{roomPreference.selectPreference}">Select</h:commandLink>
- </h:column>
- </h:dataTable>
+ <h:dataTable id="rooms" value="#{availableRooms}" var="room" rendered="#{availableRooms.rowCount > 0}">
+ <h:column>
+ <f:facet name="header">Name</f:facet>
+ #{room.name}
+ </h:column>
+ <h:column>
+ <f:facet name="header">Description</f:facet>
+ #{room.description}
+ </h:column>
+ <h:column>
+ <f:facet name="header">Per Night</f:facet>
+ <h:outputText value="#{room.price}">
+ <f:convertNumber type="currency" currencySymbol="$"/>
+ </h:outputText>
+ </h:column>
+ <h:column>
+ <f:facet name="header">Action</f:facet>
+ <h:commandLink id="selectRoomPreference" action="#{roomPreference.selectPreference}">Select</h:commandLink>
+ </h:column>
+ </h:dataTable>
+ </div>
+ <div class="entry">
+ <div class="label"> </div>
+ <div class="input">
+ <s:button id="cancel" value="Revise Dates" view="/book.xhtml"/>
</div>
- <div class="entry">
- <div class="label"> </div>
- <div class="input">
- <s:button id="cancel" value="Revise Dates" view="/book.xhtml"/>
- </div>
- </div>
+ </div>
</h:form>
</div>
]]></programlisting>
@@ -2781,7 +2763,7 @@
<area id="nested-booking-confirm" coords="82"/>
<area id="nested-booking-cancel" coords="89" />
</areaspec>
- <programlisting><![CDATA[@Stateful
+ <programlisting role="JAVA"><![CDATA[@Stateful
@Name("hotelBooking")
@Restrict("#{identity.loggedIn}")
public class HotelBookingAction implements HotelBooking
@@ -3031,7 +3013,7 @@
<area id="blog-seampc" coords="7"/>
<area id="blog-unwrap" coords="9"/>
</areaspec>
- <programlisting><![CDATA[@Name("blog")
+ <programlisting role="JAVA"><![CDATA[@Name("blog")
@Scope(ScopeType.STATELESS)
@AutoCreate
public class BlogService
@@ -3301,8 +3283,9 @@
<para> Notice that the example is using page actions for post validation
and the pageview counter. Also notice the use of a parameter in the page action method
- binding. This is not a standard feature of JSF EL, but Seam lets you use it, not just
- for page actions but also in JSF method bindings. </para>
+ binding. This was not a standard feature of JSF EL in Java EE 5, but now it is and works
+ like Seam lets you use it before, not just for page actions but also in JSF method bindings.
+ </para>
<para> When the <literal>entry.xhtml</literal> page is requested, Seam first binds the page parameter
<literal>blogEntryId</literal> to the model. Keep in mind that because of the URL rewriting,
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Validation.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Validation.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Validation.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -29,7 +29,7 @@
"validation" actually enforces constraints that are part of
the data model, and exist all the way down to the database
schema definition. Seam provides support for model-based
- constraints defined using Hibernate Validator.
+ constraints defined using Bean Validation.
</para>
<para>
@@ -56,7 +56,7 @@
<para>
Well, that's a decent first cut, but in practice it might be
more elegant to use custom constraints instead of the ones
- built into Hibernate Validator:
+ built into Bean Validation:
</para>
<programlisting role="JAVA"><![CDATA[public class Location {
@@ -161,7 +161,7 @@
<para>
You can then inject this value into the message string using
the placeholder {0} (the first and only parameter passed to a
- JSF message for a Hibernate Validator restriction). See the
+ JSF message for a Bean Validation restriction). See the
internationalization section for more information regarding
where to define these messages.
</para>
@@ -247,14 +247,14 @@
<s:decorate id="countryDecoration" template="edit.xhtml">
<ui:define name="label">Country:</ui:define>
<h:inputText value="#{location.country}" required="true">
- <a:support event="onblur" reRender="countryDecoration" bypassUpdates="true"/>
+ <a:ajax event="blur" render="countryDecoration" bypassUpdates="true"/>
</h:inputText>
</s:decorate>
<s:decorate id="zipDecoration" template="edit.xhtml">
<ui:define name="label">Zip code:</ui:define>
<h:inputText value="#{location.zip}" required="true">
- <a:support event="onblur" reRender="zipDecoration" bypassUpdates="true"/>
+ <a:ajax event="blur" render="zipDecoration" bypassUpdates="true"/>
</h:inputText>
</s:decorate>
@@ -278,14 +278,14 @@
<s:decorate id="countryDecoration" template="edit.xhtml">
<ui:define name="label">Country:</ui:define>
<h:inputText id="country" value="#{location.country}" required="true">
- <a:support event="onblur" reRender="countryDecoration" bypassUpdates="true"/>
+ <a:ajax event="blur" render="countryDecoration" bypassUpdates="true"/>
</h:inputText>
</s:decorate>
<s:decorate id="zipDecoration" template="edit.xhtml">
<ui:define name="label">Zip code:</ui:define>
<h:inputText id="zip" value="#{location.zip}" required="true">
- <a:support event="onblur" reRender="zipDecoration" bypassUpdates="true"/>
+ <a:ajax event="blur" render="zipDecoration" bypassUpdates="true"/>
</h:inputText>
</s:decorate>
@@ -297,7 +297,7 @@
And what if you want to specify a different message to be
displayed when validation fails? You can use the Seam message
bundle (and all it's goodies like el expressions inside the message,
- and per-view message bundles) with the Hibernate Validator:
+ and per-view message bundles) with the Bean Validation:
</para>
<programlisting role="JAVA"><![CDATA[public class Location {
Modified: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Wicket.xml
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Wicket.xml 2012-08-14 11:38:46 UTC (rev 15033)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/Wicket.xml 2012-08-14 13:50:35 UTC (rev 15034)
@@ -44,12 +44,6 @@
<code>super()</code>.
</para>
- <note>
- <para>
- We are working to improve this.
- </para>
- </note>
-
<para>
When a method is called in an inner class, bijection occurs for any
class which encloses it. This allows you to place your bijected
Added: branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/images/plugin-junit.png
===================================================================
--- branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/images/plugin-junit.png (rev 0)
+++ branches/community/Seam_2_3/seam-reference-guide/src/docbook/en-US/images/plugin-junit.png 2012-08-14 13:50:35 UTC (rev 15034)
@@ -0,0 +1,164 @@
+PNG
+
+
+%µªSu$
+æ{TU¨¢ÉªT Ú´iÓ*8ð¦Mb¸|Å
«dqTXjjn¸Ê²,î
+ ìû¹ÿJlI&¼ÂÚµkq¿)FÓ A7nT«VÍÂÂ
©ô°,KDþT¯Ðå[q[¦*
+
+]O©ÒsÀ¸¦§«
+ (cBë8©"
+|¹·/~râZÇÉÞö·êÿ=y=_³g
+S§áaLªlE¹7· øÆ<Ð(i.ß
+
+KçÁ>jÀÛò÷Sh]«ýÍY²æjpTçá$A
+
ß?qÖ
+»ÒO ¾ØÔê×U*zIÍXs£Ô¢s
+
T¹Xç å?Kä¥Kd2¹¹9Çq·nÝ9s¦··wZµîÝ»÷¥u÷öÏHUY
¥ÁÈȨqãÆ<O$éó§[·¾xñ¢V«Ý»woË-%
+R¹Oi¨ªHEBQ©©iþß*
ÂÎ;+
+ $IîR©B
+
h¤w«A>r¬úäÉ´REÀ½ùªZ»vm´K"22²jwuäc
+¨ªþA H9Tóª ª* ª* ª* ª* ª ª _,1Ñh¤ôàs
+
+
+U3U´&)CÇéÚ· ;¡ÇëØéHIÇæ:¡iã8½ªê
UÀªT <e?ôìȲlZJJÑr¹
E¹zK±,t«áÝ7
+àèäöêy5ÏoFF¦nR=fgGñq
&R[¹iOU54ûn§ÏlÞ²
+)¢x
+qãÆ13nܸÿÐ;Ï1Pù
õåó'NÎÎ
+}¡F£äñøNÎ
+¨´Ppú±*ËÐ~Ó(~Ó°]7Í =
+:Í_X[34¨u
+ú÷c¿ßòä=ßþÖ ÿ) 8´ãøÐ5¥ÜÜT&³°²J³¶³KIJJIJj5^½xª¿DpptdY&>.¾¬ù3sùëаu¤Áq,´plß±
+ªjÖu?{
+EJR/ÕkèógY-ýÝ==+vûq\¿[þèí×=·äÌ?/'xY¹å*r#Ê7ÍP¥R
êi ÿ]nuog¡B§#ZöXð{µm¼
+
+òðð (*÷f££#ª* HEª*άB©HPUAPUAPUAPUATUATUATUAäKQUN¢*×/ÇYufBÇ¡ï>!hsùªÊe\[4hÀ¼+il9VP=Z5ú»uOeoV{ìÇá³Î'â)
+Ú«'êîëëë7åhXAÃGµ9 ¥{º6tÛØO¦æ+ñ¼{qV_øfBäZò
+9¼J¾¼zã-ùÀ¹9
+Å»7»ÿ
Û&V7*o
Y÷ÏwÆvÞ©uïÊ2ZµîHHVâÖq¸ÿw-¯8>ûÇI_¯Ü:ÆC
+ÚZÒû÷¬ðQÑ&<!<¦´õL û%+÷ëðt©NíÝýÇß
+ ßÃ(ÙàÀ
GrzÎÚÒIúò÷«æíqÚ8¶F!d3þÝ8¹Ï2çË«·ê7£ 'ôìÊE6Ôi¼´½QlCTFUXj&çm z¸lØ|å´½óë%ý±hÙɧ±Z
+GÅ>?®èmn
+W7ÌÞºútuýà×ÿeÇìF" H¾úßÃ<i§¾ó2âCôá¢
+5M{~?ÒrøÍ%'ÍÓn¾ã7ãÇ
+½ [Z[[97éÕ¿1)óéÔ¨ØLNhfïb÷.ÏÊ3up²µ°phؽï»M´QÏFØøõm-·oÒghcâipxFä_ïÕÐÑÒʹnºæEN¤£»£¥Ljéåݳ¡(%4ùݳ}I_ ø<½hQ|@ ð)ÚPC*ì§ö
+
+Iòk1yrç·¡ë½ä°(ÏXîÚrðø'WýÏ^Oüºý{QÔ|CÉIͤÌe¼ã¥,\ÍÞYº±/â²t 2ì;.Ë°Í
+¸
AÊàZZÛØä;R_¢ð±[çñK;
+¹¾kÑòwü\Ûð&<k éÞÛÊo¬òVmX)s7<M×Dl°·\Öí
+AôÐ_wùT3Ñ<³(ÇPGQÀÒÌÛlTËd;¾MM8ô(VÓÚT"âEºÈÅÝ,î^Î^6¤û²·%~¶pçú3¯$[º¹ E,é/5d±W¯%̨Ì<ñ¤v¦LHdÆÛmrd:afgÊ+Îw<©aue +ðy×Ðg)
+
+!u¬f+¤³Å^í
+\¼½m_ïÝxôΤ´ôÐW jNàÜåk×ø?V)|/e8àXF«ÑÒGÁ£oî"Ë~pù^tJrthÚÑ@CeeѼG=õåmGBbÂ/ïÜóBÖ¡1
+d,æ6páLnãÎUæ
+A*£s
©j)ëBA0 ª ª ª ª" ª" ª" ¨ª ¨ª ¨ª UÞº÷ÙYèBSé}ÛÀAè;UA0 ª TIUÕ¥Ü>zðR¤ýTN8mZdhd6@UýDÐ1g6ï½¥òÐßH¥ÒÒk
+w%U?Ý4õ}á7|TÐÐû| B4»ÖmÓsè ö.ÆøõlÖ£}óæÙÍß5µ®0ÿmäÅ+iÕ6·¤J\pÛÚ³haÓÄW¾kC·ýñdj¾Çá[Öö¶ûÜç6óÑkÜMÐHܼGNØÙɨҽÄß`²cèþ÷8ÈsòîÞòÖ D®¾þq ÁQUðÝ'TUÎÉæìüµ.;)üú5«f$·þôé^kL§<8½gç¡àH
oWx¡&üüÕ,¯ÍÉW«D8÷÷ã;;g®Û"ýay衵ûË~m¥·6ÁI?{(Ϧ^Y1ÿ°ÂoζNÒ¿Ï_9wÓ¦ñ5*á©Ï§}#âgg%Z²t%äýâKdE'}û!C
+Ä|:<*6swµw1
+5%ÂÊè9SËcõáªß´
+
+!u¬f+¤³:&ýÎoóí}]>yeÓï~!þªsµªv'2òб°å«UÊ°å«
+´'oÑhä¢_ÚÆ£ï*
+
+
+õññù¯ô¾¤§éâMpºéê-Ã\øÚ
ø$@túîsù.((ÈÃâ(@ /qtt¬´¿X¥ã¯¶éÔÁ¾rK* ?ð
Àw°õä
+ª¬%*øÈ¡YãÞËûgjý)¦°iW~öùzê
VuoaþK¨pW/3ªßMÞþJý<ex±VõƼMÞSyÙ+üè[}}ãpϪó¤ÙsgTeI-m¬üÝwßiµÚü
`óæÍùµ©c95¬$eðúE¯ÿÝV¨Ú
+Ï´b÷v={1Cuü²Oæ¹*º,ûÚ~¶«M«-,mu7)©òrUø¡[ѯw±óµ^
Õvì?nd7ñ,¦Ù?bà¦B¥TÓåA-Äc&)xëæ¿ôÇ!ßÄÚµvíêY}1Zóx{àóa?ötæk#ÜþÿȺb½Ct±g×lüjÒØf²rîA¥RUKKË>}ú\¹r¥FúçÏ·oß¾¤[KGåüàu
+£¢¢üýýù|~ÑÕí°ý
+ˬ<
+ÕÎxõ(Æ~âöm_(ßo[¼äûL}s¾¸t58.ó·+äÒÐÊírJv!cðdÝVîRKŧìÍ߶è`¡ð&ïÙ¯taOâì'îøí+°S¿ÎüuIë»Y8öòW¿Ú<éûzÎ7T'Ü;w5ï\ËZ at Gìû3ÔÛVeð1äîr³@ÜJg¾yø"²p0åAV1ZeBtº¼ó¸±Õ5 !'øÓÎeDCS¢¸r&ùú¾·%þPGüïCOXOúÖK$õ7¶Ñp"A¼³ßLPþè¸HëP:U-7jÔÈÓÓóÙ³g5*nµvírÿ]m·
+
+$ãò{§èÊïsY1v&H¾@ øQ°!QÜ`mòÞýÛØY[Ú¸µ0´~+ªÈí¹¼
+iCvPªçyèëõ¼ÛµmݶSßiÁ6Ã×ÅR÷æ£X.ÖkùÍhàÑVÀ0¨iÒ
u.¿`Éê}Ïdmö©kZâKÉ̤&R+m\ÈÄ°ºør]Òý»IòV]9ËLÌ=Zwô "Çi
+r{iá¾QK1ó(:1U¦êø°4ÂÌNJñéb"Ýü×}3>òïÍ¿ÌàrdQ¢%Ļ۱
ÍÙCmëe«7\æßS×]¼©6da¿üÿKAÇ
+Á+,Îeè9Á7±°²²µë7{òÁþh³eíDZáÞ*CÊçÁ2³`^Uh"55ïÕ5tCÐñ[ÕGeI
+¤V¡f
+OÊÖ2gO{!© uEJwÐE Ü|¾qÛ¶bßÍ°Ô´¤ÈçÏãT°Ëq¬N«ÕhÝ+ÜVøêä÷7-:k5fîÄ s'×x¸ê׳ ¯!½FýsõaDBü«¿¶®úK×د©9 ¤¯yÍ¡>cmÃ+ç²|ã-lLoé.˼{îßäÄçá
^-fRîWyuç`
jgC{oÏÓ
+²ùzê¯×»Ï&ð>Åö¶T³ÜÊ3ÌÌ÷Ê+)«ßmÒßA2Y¾¥-þ÷Í°ì¬lºS yÖ
+êË.¾©Pd¥ÄŦk¯Îï?x9"wðº¤+·^Ä$§&¾ ¹r#Iàè.ç
+mµæo+¤ª&
+zM0ªéH°é̽½ªSgýë6$õz7ªåB
+n(¥lÙ3O³ »oü(~¤¸Ï´Ö<{!ûw$§OxÜZ¯ j2|ñ£zj;3÷¢8#SÒª@sã
+zñd|]"&äóƪÃäì]QM°k÷Ù³sà_~º°L@
+À¬ò]4éÈÜc#wiãÜX£5
+§É{B"6)2îºAÚ=B{y£êG\¡Dê»ïùóªØ`,Zßþ%jÆ!q"Ø&ÎKêë)\þÍ)´ ¿@Æ#-ÆÍëR¡`UÅÜ^}{
+§Ï¯ÕÔ['¨c£¹·äMk°
+VMñL
+Yã¹ÌIR¡S2¸ß#ÈgVUÅUï1ëÜYêx÷Ö ÇçH(¡26&}ûýÇscê"/X£
)¿ac2õ%JØijÚÔB¿~ÌËL6KÈ̹¤¬À'IcÒLb(£ý0âq
¶Ò_åôÝõ/ÅÆÕÄ÷ö ;vá×öjÏÑY«º¤Íòvï¡;y
åyò, y)ÞÁ
néâéÀÝî¤Nä&!L÷ûTá
+àKH/~óaÆ-mug&©r/ö
TM?¥Óæ«]TCPCÂDFr ç5(0T?/V0ñ*l
+#,êº7tCUù̪*¹H±cfE5Yô%¬G¾ÝOu¸³cpÀÑ,7'S8Éë3×´pÉgsÖª¶ÎÞcÄSF
+
+
+
+
+
+
+
+
+
+
+
+ÔÞ
ØöÎKRÅ©ÑÌÜJ$RúÎ[oeü!U ó²XY]-boìe3°4±ò.æd&b2WDDE¢Å¶}çT3¼xsݳ0Ñ]ÍMÌ¢µ§P´°R¦%ÀÅYH´kJZýi²
+
+
+ÅF¬Uw×ïI/Qehzg UÇ´]ÕW¹èágþ²(ÿö
¾¼æùÏÝZy~Çõv7
¬ý鸽â_ñä¶üÅË^ZPÐüO?ù5_þÑB5ú{ðùbÃ<¤Ö×~´â×¾[YûhM0z2Zhyõ|7
+Rb
+¯½y¸ôu7ÍØù«ÅóÞxò¢
+£¾"ʪü"ÿ׶Ʋ[_¼ýº
+b
+¿º
+ÀZÙúOf(eaI6
+prZíÿ~ì«ÃÚ'Rw5ÂF*Í]7¶O'íªåýøò?+±í`Þé·7<¿ù78Ò·riÞÈ_8ÏuâÔ3Һ德¤¶W{º_(8ú¤Nx{óà8uä´UToå
+
+
+
\ No newline at end of file
More information about the seam-commits
mailing list