[seam-commits] Seam SVN: r9794 - trunk/doc/Seam_Reference_Guide/it-IT.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Wed Dec 17 05:16:42 EST 2008


Author: nico.ben
Date: 2008-12-17 05:16:42 -0500 (Wed, 17 Dec 2008)
New Revision: 9794

Modified:
   trunk/doc/Seam_Reference_Guide/it-IT/Persistence.po
   trunk/doc/Seam_Reference_Guide/it-IT/Remoting.po
   trunk/doc/Seam_Reference_Guide/it-IT/Security.po
   trunk/doc/Seam_Reference_Guide/it-IT/Webservices.po
Log:
JBSEAM-3767: Italian translation of Seam guide

Modified: trunk/doc/Seam_Reference_Guide/it-IT/Persistence.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/it-IT/Persistence.po	2008-12-17 08:13:31 UTC (rev 9793)
+++ trunk/doc/Seam_Reference_Guide/it-IT/Persistence.po	2008-12-17 10:16:42 UTC (rev 9794)
@@ -6,8 +6,8 @@
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-10-14 11:38+0000\n"
-"PO-Revision-Date: 2008-04-04 01:24+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2008-12-17 10:55+0100\n"
+"Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -22,91 +22,49 @@
 #. Tag: para
 #: Persistence.xml:4
 #, no-c-format
-msgid ""
-"Seam provides extensive support for the two most popular persistence "
-"architectures for Java: Hibernate3, and the Java Persistence API introduced "
-"with EJB 3.0. Seam's unique state-management architecture allows the most "
-"sophisticated ORM integration of any web application framework."
+msgid "Seam provides extensive support for the two most popular persistence architectures for Java: Hibernate3, and the Java Persistence API introduced with EJB 3.0. Seam's unique state-management architecture allows the most sophisticated ORM integration of any web application framework."
 msgstr ""
 
 #. Tag: title
 #: Persistence.xml:13
 #, no-c-format
 msgid "Introduction"
-msgstr ""
+msgstr "Introduzione"
 
 #. Tag: para
 #: Persistence.xml:15
 #, no-c-format
-msgid ""
-"Seam grew out of the frustration of the Hibernate team with the "
-"statelessness typical of the previous generation of Java application "
-"architectures. The state management architecture of Seam was originally "
-"designed to solve problems relating to persistence&#8212;in particular "
-"problems associated with <emphasis>optimistic transaction processing</"
-"emphasis>. Scalable online applications always use optimistic transactions. "
-"An atomic (database/JTA) level transaction should not span a user "
-"interaction unless the application is designed to support only a very small "
-"number of concurrent clients. But almost all interesting work involves first "
-"displaying data to a user, and then, slightly later, updating the same data. "
-"So Hibernate was designed to support the idea of a persistence context which "
-"spanned an optimistic transaction."
+msgid "Seam grew out of the frustration of the Hibernate team with the statelessness typical of the previous generation of Java application architectures. The state management architecture of Seam was originally designed to solve problems relating to persistence&#8212;in particular problems associated with <emphasis>optimistic transaction processing</emphasis>. Scalable online applications always use optimistic transactions. An atomic (database/JTA) level transaction should not span a user interaction unless the application is designed to support only a very small number of concurrent clients. But almost all interesting work involves first displaying data to a user, and then, slightly later, updating the same data. So Hibernate was designed to support the idea of a persistence context which spanned an optimistic transaction."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:30
 #, no-c-format
-msgid ""
-"Unfortunately, the so-called \"stateless\" architectures that preceded Seam "
-"and EJB 3.0 had no construct for representing an optimistic transaction. So, "
-"instead, these architectures provided persistence contexts scoped to the "
-"atomic transaction. Of course, this resulted in many problems for users, and "
-"is the cause of the number one user complaint about Hibernate: the dreaded "
-"<literal>LazyInitializationException</literal>. What we need is a construct "
-"for representing an optimistic transaction in the application tier."
+msgid "Unfortunately, the so-called \"stateless\" architectures that preceded Seam and EJB 3.0 had no construct for representing an optimistic transaction. So, instead, these architectures provided persistence contexts scoped to the atomic transaction. Of course, this resulted in many problems for users, and is the cause of the number one user complaint about Hibernate: the dreaded <literal>LazyInitializationException</literal>. What we need is a construct for representing an optimistic transaction in the application tier."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:40
 #, no-c-format
-msgid ""
-"EJB 3.0 recognizes this problem, and introduces the idea of a stateful "
-"component (a stateful session bean) with an <emphasis>extended persistence "
-"context</emphasis> scoped to the lifetime of the component. This is a "
-"partial solution to the problem (and is a useful construct in and of itself) "
-"however there are two problems:"
+msgid "EJB 3.0 recognizes this problem, and introduces the idea of a stateful component (a stateful session bean) with an <emphasis>extended persistence context</emphasis> scoped to the lifetime of the component. This is a partial solution to the problem (and is a useful construct in and of itself) however there are two problems:"
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:50
 #, no-c-format
-msgid ""
-"The lifecycle of the stateful session bean must be managed manually via code "
-"in the web tier (it turns out that this is a subtle problem and much more "
-"difficult in practice than it sounds)."
+msgid "The lifecycle of the stateful session bean must be managed manually via code in the web tier (it turns out that this is a subtle problem and much more difficult in practice than it sounds)."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:57
 #, no-c-format
-msgid ""
-"Propagation of the persistence context between stateful components in the "
-"same optimistic transaction is possible, but tricky."
+msgid "Propagation of the persistence context between stateful components in the same optimistic transaction is possible, but tricky."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:64
 #, no-c-format
-msgid ""
-"Seam solves the first problem by providing conversations, and stateful "
-"session bean components scoped to the conversation. (Most conversations "
-"actually represent optimistic transactions in the data layer.) This is "
-"sufficient for many simple applications (such as the Seam booking demo) "
-"where persistence context propagation is not needed. For more complex "
-"applications, with many loosly-interacting components in each conversation, "
-"propagation of the persistence context across components becomes an "
-"important issue. So Seam extends the persistence context management model of "
-"EJB 3.0, to provide conversation-scoped extended persistence contexts."
+msgid "Seam solves the first problem by providing conversations, and stateful session bean components scoped to the conversation. (Most conversations actually represent optimistic transactions in the data layer.) This is sufficient for many simple applications (such as the Seam booking demo) where persistence context propagation is not needed. For more complex applications, with many loosly-interacting components in each conversation, propagation of the persistence context across components becomes an important issue. So Seam extends the persistence context management model of EJB 3.0, to provide conversation-scoped extended persistence contexts."
 msgstr ""
 
 #. Tag: title
@@ -118,33 +76,19 @@
 #. Tag: para
 #: Persistence.xml:81
 #, no-c-format
-msgid ""
-"EJB session beans feature declarative transaction management. The EJB "
-"container is able to start a transaction transparently when the bean is "
-"invoked, and end it when the invocation ends. If we write a session bean "
-"method that acts as a JSF action listener, we can do all the work associated "
-"with that action in one transaction, and be sure that it is committed or "
-"rolled back when we finish processing the action. This is a great feature, "
-"and all that is needed by some Seam applications."
+msgid "EJB session beans feature declarative transaction management. The EJB container is able to start a transaction transparently when the bean is invoked, and end it when the invocation ends. If we write a session bean method that acts as a JSF action listener, we can do all the work associated with that action in one transaction, and be sure that it is committed or rolled back when we finish processing the action. This is a great feature, and all that is needed by some Seam applications."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:90
 #, no-c-format
-msgid ""
-"However, there is a problem with this approach. A Seam application may not "
-"perform all data access for a request from a single method call to a session "
-"bean."
+msgid "However, there is a problem with this approach. A Seam application may not perform all data access for a request from a single method call to a session bean."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:97
 #, no-c-format
-msgid ""
-"The request might require processing by several loosly-coupled components, "
-"each of which is called independently from the web layer. It is common to "
-"see several or even many calls per request from the web layer to EJB "
-"components in Seam."
+msgid "The request might require processing by several loosly-coupled components, each of which is called independently from the web layer. It is common to see several or even many calls per request from the web layer to EJB components in Seam."
 msgstr ""
 
 #. Tag: para
@@ -156,86 +100,49 @@
 #. Tag: para
 #: Persistence.xml:110
 #, no-c-format
-msgid ""
-"The more transactions per request, the more likely we are to encounter "
-"atomicity and isolation problems when our application is processing many "
-"concurrent requests. Certainly, all write operations should occur in the "
-"same transaction!"
+msgid "The more transactions per request, the more likely we are to encounter atomicity and isolation problems when our application is processing many concurrent requests. Certainly, all write operations should occur in the same transaction!"
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:116
 #, no-c-format
-msgid ""
-"Hibernate users developed the <emphasis>\"open session in view\"</emphasis> "
-"pattern to work around this problem. In the Hibernate community, \"open "
-"session in view\" was historically even more important because frameworks "
-"like Spring use transaction-scoped persistence contexts. So rendering the "
-"view would cause <literal>LazyInitializationException</literal>s when "
-"unfetched associations were accessed."
+msgid "Hibernate users developed the <emphasis>\"open session in view\"</emphasis> pattern to work around this problem. In the Hibernate community, \"open session in view\" was historically even more important because frameworks like Spring use transaction-scoped persistence contexts. So rendering the view would cause <literal>LazyInitializationException</literal>s when unfetched associations were accessed."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:124
 #, no-c-format
-msgid ""
-"This pattern is usually implemented as a single transaction which spans the "
-"entire request. There are several problems with this implementation, the "
-"most serious being that we can never be sure that a transaction is "
-"successful until we commit it&#8212;but by the time the \"open session in "
-"view\" transaction is committed, the view is fully rendered, and the "
-"rendered response may already have been flushed to the client. How can we "
-"notify the user that their transaction was unsuccessful?"
+msgid "This pattern is usually implemented as a single transaction which spans the entire request. There are several problems with this implementation, the most serious being that we can never be sure that a transaction is successful until we commit it&#8212;but by the time the \"open session in view\" transaction is committed, the view is fully rendered, and the rendered response may already have been flushed to the client. How can we notify the user that their transaction was unsuccessful?"
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:133
 #, no-c-format
-msgid ""
-"Seam solves both the transaction isolation problem and the association "
-"fetching problem, while working around the problems with \"open session in "
-"view\". The solution comes in two parts:"
+msgid "Seam solves both the transaction isolation problem and the association fetching problem, while working around the problems with \"open session in view\". The solution comes in two parts:"
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:141
 #, no-c-format
-msgid ""
-"use an extended persistence context that is scoped to the conversation, "
-"instead of to the transaction"
+msgid "use an extended persistence context that is scoped to the conversation, instead of to the transaction"
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:147
 #, no-c-format
-msgid ""
-"use two transactions per request; the first spans the beginning of the "
-"restore view phase (some transaction managers begin the transaction later at "
-"the beginning of the apply request vaues phase) until the end of the invoke "
-"application phase; the second spans the render response phase"
+msgid "use two transactions per request; the first spans the beginning of the restore view phase (some transaction managers begin the transaction later at the beginning of the apply request vaues phase) until the end of the invoke application phase; the second spans the render response phase"
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:156
 #, no-c-format
-msgid ""
-"In the next section, we'll tell you how to set up a conversation-scope "
-"persistence context. But first we need to tell you how to enable Seam "
-"transaction management. Note that you can use conversation-scoped "
-"persistence contexts without Seam transaction management, and there are good "
-"reasons to use Seam transaction management even when you're not using Seam-"
-"managed persistence contexts. However, the two facilities were designed to "
-"work together, and work best when used together."
+msgid "In the next section, we'll tell you how to set up a conversation-scope persistence context. But first we need to tell you how to enable Seam transaction management. Note that you can use conversation-scoped persistence contexts without Seam transaction management, and there are good reasons to use Seam transaction management even when you're not using Seam-managed persistence contexts. However, the two facilities were designed to work together, and work best when used together."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:165
 #, no-c-format
-msgid ""
-"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 case where you would use a "
-"Seam-managed persistence context."
+msgid "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 case where you would use a Seam-managed persistence context."
 msgstr ""
 
 #. Tag: title
@@ -247,10 +154,7 @@
 #. Tag: para
 #: Persistence.xml:175
 #, no-c-format
-msgid ""
-"Seam transaction management is enabled by default for all JSF requests. If "
-"you want to <emphasis>disable</emphasis> this feature, you can do it in "
-"<literal>components.xml</literal>:"
+msgid "Seam transaction management is enabled by default for all JSF requests. If you want to <emphasis>disable</emphasis> this feature, you can do it in <literal>components.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
@@ -261,6 +165,9 @@
 "        \n"
 "<transaction:no-transaction />]]>"
 msgstr ""
+"<![CDATA[<core:init transaction-management-enabled=\"false\"/>\n"
+"        \n"
+"<transaction:no-transaction />]]>"
 
 #. Tag: title
 #: Persistence.xml:186
@@ -271,58 +178,37 @@
 #. Tag: para
 #: Persistence.xml:188
 #, no-c-format
-msgid ""
-"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 should install the EJB synchronization component in "
-"<literal>components.xml</literal>:"
+msgid "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 should install the EJB synchronization component in <literal>components.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
 #: Persistence.xml:195
 #, no-c-format
 msgid "<![CDATA[<transaction:ejb-transaction />]]>"
-msgstr ""
+msgstr "<![CDATA[<transaction:ejb-transaction />]]>"
 
 #. Tag: para
 #: Persistence.xml:197
 #, no-c-format
-msgid ""
-"However, if you are working in a non EE 5 container, Seam will try auto "
-"detect the transaction synchronization mechanism to use. However, if Seam is "
-"unable to detect the correct transaction synchronization to use, you may "
-"find you need configure one of the following:"
+msgid "However, if you are working in a non EE 5 container, Seam will try auto detect the transaction synchronization mechanism to use. However, if Seam is unable to detect the correct transaction synchronization to use, you may find you need configure one of the following:"
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:204
 #, no-c-format
-msgid ""
-"JPA RESOURCE_LOCAL transactions with the <literal>javax.persistence."
-"EntityTransaction</literal> interface. <literal>EntityTransaction</literal> "
-"begins the transaction at the beginning of the apply request values phase."
+msgid "JPA RESOURCE_LOCAL transactions with the <literal>javax.persistence.EntityTransaction</literal> interface. <literal>EntityTransaction</literal> begins the transaction at the beginning of the apply request values phase."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:212
 #, no-c-format
-msgid ""
-"Hibernate managed transactions with the <literal>org.hibernate.Transaction</"
-"literal> interface. <literal>HibernateTransaction</literal> begins the "
-"transaction at the beginning of the apply request values phase."
+msgid "Hibernate managed transactions with the <literal>org.hibernate.Transaction</literal> interface. <literal>HibernateTransaction</literal> begins the transaction at the beginning of the apply request values phase."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:220
 #, no-c-format
-msgid ""
-"Spring managed transactions with the <literal>org.springframework."
-"transaction.PlatformTransactionManager</literal> interface. The Spring "
-"<literal>PlatformTransactionManagement</literal> manager may begin the "
-"transaction at the beginning of the apply request values phase if the "
-"<literal>userConversationContext</literal> attribute is set."
+msgid "Spring managed transactions with the <literal>org.springframework.transaction.PlatformTransactionManager</literal> interface. The Spring <literal>PlatformTransactionManagement</literal> manager may begin the transaction at the beginning of the apply request values phase if the <literal>userConversationContext</literal> attribute is set."
 msgstr ""
 
 #. Tag: para
@@ -334,63 +220,43 @@
 #. Tag: para
 #: Persistence.xml:234
 #, no-c-format
-msgid ""
-"Configure JPA RESOURCE_LOCAL transaction management by adding the following "
-"to your components.xml where <literal>#{em}</literal> is the name of the "
-"<literal>persistence:managed-persistence-context</literal> component. If "
-"your managed persistence context is named <literal>entityManager</literal>, "
-"you can opt to leave out the <literal>entity-manager</literal> attribute. "
-"(see <link linkend=\"persistence.seam-managed-persistence-contexts\">Seam-"
-"managed persistence contexts</link> )"
+msgid "Configure JPA RESOURCE_LOCAL transaction management by adding the following to your components.xml where <literal>#{em}</literal> is the name of the <literal>persistence:managed-persistence-context</literal> component. If your managed persistence context is named <literal>entityManager</literal>, you can opt to leave out the <literal>entity-manager</literal> attribute. (see <link linkend=\"persistence.seam-managed-persistence-contexts\">Seam-managed persistence contexts</link> )"
 msgstr ""
 
 #. Tag: programlisting
 #: Persistence.xml:244
 #, no-c-format
 msgid "<![CDATA[<transaction:entity-transaction entity-manager=\"#{em}\"/>]]>"
-msgstr ""
+msgstr "<![CDATA[<transaction:entity-transaction entity-manager=\"#{em}\"/>]]>"
 
 #. Tag: para
 #: Persistence.xml:245
 #, no-c-format
-msgid ""
-"To configure Hibernate managed transactions declare the following in your "
-"components.xml where <literal>#{hibernateSession}</literal> is the name of "
-"the project's <literal>persistence:managed-hibernate-session</literal> "
-"component. If your managed hibernate session is named <literal>session</"
-"literal>, you can opt to leave out the <literal>session</literal> attribute. "
-"(see <link linkend=\"persistence.seam-managed-persistence-contexts\">Seam-"
-"managed persistence contexts</link> )"
+msgid "To configure Hibernate managed transactions declare the following in your components.xml where <literal>#{hibernateSession}</literal> is the name of the project's <literal>persistence:managed-hibernate-session</literal> component. If your managed hibernate session is named <literal>session</literal>, you can opt to leave out the <literal>session</literal> attribute. (see <link linkend=\"persistence.seam-managed-persistence-contexts\">Seam-managed persistence contexts</link> )"
 msgstr ""
 
 #. Tag: programlisting
 #: Persistence.xml:255
 #, no-c-format
-msgid ""
-"<![CDATA[<transaction:hibernate-transaction session=\"#{hibernateSession}\"/"
-">]]>"
-msgstr ""
+msgid "<![CDATA[<transaction:hibernate-transaction session=\"#{hibernateSession}\"/>]]>"
+msgstr "<![CDATA[<transaction:hibernate-transaction session=\"#{hibernateSession}\"/>]]>"
 
 #. Tag: para
 #: Persistence.xml:256
 #, no-c-format
-msgid ""
-"To explicitly disable Seam managed transactions declare the following in "
-"your components.xml:"
+msgid "To explicitly disable Seam managed transactions declare the following in your components.xml:"
 msgstr ""
 
 #. Tag: programlisting
 #: Persistence.xml:259
 #, no-c-format
 msgid "<![CDATA[<transaction:no-transaction />]]>"
-msgstr ""
+msgstr "<![CDATA[<transaction:no-transaction />]]>"
 
 #. Tag: para
 #: Persistence.xml:260
 #, no-c-format
-msgid ""
-"For configuring Spring managed transactions see <link linkend=\"spring-"
-"transactions\">using Spring PlatformTransactionManagement</link> ."
+msgid "For configuring Spring managed transactions see <link linkend=\"spring-transactions\">using Spring PlatformTransactionManagement</link> ."
 msgstr ""
 
 #. Tag: title
@@ -402,17 +268,7 @@
 #. Tag: para
 #: Persistence.xml:269
 #, no-c-format
-msgid ""
-"Transaction synchronization provides callbacks for transaction related "
-"events 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 <literal>&lt;transaction:ejb-transaction/&gt;</literal> "
-"component should be 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."
+msgid "Transaction synchronization provides callbacks for transaction related events 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 <literal>&lt;transaction:ejb-transaction/&gt;</literal> component should be 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."
 msgstr ""
 
 #. Tag: title
@@ -424,38 +280,19 @@
 #. Tag: para
 #: Persistence.xml:285
 #, no-c-format
-msgid ""
-"If you're using Seam outside of a Java EE 5 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, and in this case you might find that propagation of the "
-"persistence context between component is tricky and error-prone."
+msgid "If you're using Seam outside of a Java EE 5 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, and in this case you might find that propagation of the persistence context between component is tricky and error-prone."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:294
 #, no-c-format
-msgid ""
-"In either case, you'll need to use a <emphasis>managed persistence context</"
-"emphasis> (for JPA) or a <emphasis>managed session</emphasis> (for "
-"Hibernate) in your components. A Seam-managed persistence context is just a "
-"built-in Seam component that manages an instance of <literal>EntityManager</"
-"literal> or <literal>Session</literal> in the conversation context. You can "
-"inject it with <literal>@In</literal>."
+msgid "In either case, you'll need to use a <emphasis>managed persistence context</emphasis> (for JPA) or a <emphasis>managed session</emphasis> (for Hibernate) in your components. A Seam-managed persistence context is just a built-in Seam component that manages an instance of <literal>EntityManager</literal> or <literal>Session</literal> in the conversation context. You can inject it with <literal>@In</literal>."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:302
 #, no-c-format
-msgid ""
-"Seam-managed persistence contexts are extremely efficient in a clustered "
-"environment. Seam is able to perform an optimization that EJB 3.0 "
-"specification does not allow containers to use for container-managed "
-"extended persistence contexts. Seam supports transparent failover of "
-"extended persisence contexts, without the need to replicate any persistence "
-"context state between nodes. (We hope to fix this oversight in the next "
-"revision of the EJB spec.)"
+msgid "Seam-managed persistence contexts are extremely efficient in a clustered environment. Seam is able to perform an optimization that EJB 3.0 specification does not allow containers to use for container-managed extended persistence contexts. Seam supports transparent failover of extended persisence contexts, without the need to replicate any persistence context state between nodes. (We hope to fix this oversight in the next revision of the EJB spec.)"
 msgstr ""
 
 #. Tag: title
@@ -467,9 +304,7 @@
 #. Tag: para
 #: Persistence.xml:314
 #, no-c-format
-msgid ""
-"Configuring a managed persistence context is easy. In <literal>components."
-"xml</literal>, we can write:"
+msgid "Configuring a managed persistence context is easy. In <literal>components.xml</literal>, we can write:"
 msgstr ""
 
 #. Tag: programlisting
@@ -478,29 +313,22 @@
 msgid ""
 "<![CDATA[<persistence:managed-persistence-context name=\"bookingDatabase\" \n"
 "                                  auto-create=\"true\"\n"
-"                   persistence-unit-jndi-name=\"java:/EntityManagerFactories/"
-"bookingData\"/>]]>"
+"                   persistence-unit-jndi-name=\"java:/EntityManagerFactories/bookingData\"/>]]>"
 msgstr ""
+"<![CDATA[<persistence:managed-persistence-context name=\"bookingDatabase\" \n"
+"                                  auto-create=\"true\"\n"
+"                   persistence-unit-jndi-name=\"java:/EntityManagerFactories/bookingData\"/>]]>"
 
 #. Tag: para
 #: Persistence.xml:321
 #, no-c-format
-msgid ""
-"This configuration creates a conversation-scoped Seam component named "
-"<literal>bookingDatabase</literal> that manages the lifecycle of "
-"<literal>EntityManager</literal> instances for the persistence unit "
-"(<literal>EntityManagerFactory</literal> instance) with JNDI name "
-"<literal>java:/EntityManagerFactories/bookingData</literal>."
+msgid "This configuration creates a conversation-scoped Seam component named <literal>bookingDatabase</literal> that manages the lifecycle of <literal>EntityManager</literal> instances for the persistence unit (<literal>EntityManagerFactory</literal> instance) with JNDI name <literal>java:/EntityManagerFactories/bookingData</literal>."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:328
 #, no-c-format
-msgid ""
-"Of course, you need to make sure that you have bound the "
-"<literal>EntityManagerFactory</literal> into JNDI. In JBoss, you can do this "
-"by adding the following property setting to <literal>persistence.xml</"
-"literal>."
+msgid "Of course, you need to make sure that you have bound the <literal>EntityManagerFactory</literal> into JNDI. In JBoss, you can do this by adding the following property setting to <literal>persistence.xml</literal>."
 msgstr ""
 
 #. Tag: programlisting
@@ -510,6 +338,8 @@
 "<![CDATA[<property name=\"jboss.entity.manager.factory.jndi.name\" \n"
 "          value=\"java:/EntityManagerFactories/bookingData\"/>]]>"
 msgstr ""
+"<![CDATA[<property name=\"jboss.entity.manager.factory.jndi.name\" \n"
+"          value=\"java:/EntityManagerFactories/bookingData\"/>]]>"
 
 #. Tag: para
 #: Persistence.xml:336
@@ -521,20 +351,12 @@
 #: Persistence.xml:340
 #, no-c-format
 msgid "<![CDATA[@In EntityManager bookingDatabase;]]>"
-msgstr ""
+msgstr "<![CDATA[@In EntityManager bookingDatabase;]]>"
 
 #. Tag: para
 #: Persistence.xml:342
 #, no-c-format
-msgid ""
-"If you are using EJB3 and mark your class or method "
-"<literal>@TransactionAttribute(REQUIRES_NEW)</literal> then the transaction "
-"and persistence context shouldn't be propagated to method calls on this "
-"object. However as the Seam-managed persistence context is propagated to any "
-"component within the conversation, it will be propagated to methods marked "
-"<literal>REQUIRES_NEW</literal>. Therefore, if you mark a method "
-"<literal>REQUIRES_NEW</literal> then you should access the entity manager "
-"using @PersistenceContext."
+msgid "If you are using EJB3 and mark your class or method <literal>@TransactionAttribute(REQUIRES_NEW)</literal> then the transaction and persistence context shouldn't be propagated to method calls on this object. However as the Seam-managed persistence context is propagated to any component within the conversation, it will be propagated to methods marked <literal>REQUIRES_NEW</literal>. Therefore, if you mark a method <literal>REQUIRES_NEW</literal> then you should access the entity manager using @PersistenceContext."
 msgstr ""
 
 #. Tag: title
@@ -546,30 +368,29 @@
 #. Tag: para
 #: Persistence.xml:358
 #, no-c-format
-msgid ""
-"Seam-managed Hibernate sessions are similar. In <literal>components.xml</"
-"literal>:"
+msgid "Seam-managed Hibernate sessions are similar. In <literal>components.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
 #: Persistence.xml:362
 #, no-c-format
 msgid ""
-"<![CDATA[<persistence:hibernate-session-factory name="
-"\"hibernateSessionFactory\"/>\n"
+"<![CDATA[<persistence:hibernate-session-factory name=\"hibernateSessionFactory\"/>\n"
 "\n"
 "<persistence:managed-hibernate-session name=\"bookingDatabase\" \n"
 "                                auto-create=\"true\"\n"
-"                  session-factory-jndi-name=\"java:/bookingSessionFactory\"/"
-">]]>"
+"                  session-factory-jndi-name=\"java:/bookingSessionFactory\"/>]]>"
 msgstr ""
+"<![CDATA[<persistence:hibernate-session-factory name=\"hibernateSessionFactory\"/>\n"
+"\n"
+"<persistence:managed-hibernate-session name=\"bookingDatabase\" \n"
+"                                auto-create=\"true\"\n"
+"                  session-factory-jndi-name=\"java:/bookingSessionFactory\"/>]]>"
 
 #. Tag: para
 #: Persistence.xml:364
 #, no-c-format
-msgid ""
-"Where <literal>java:/bookingSessionFactory</literal> is the name of the "
-"session factory specified in <literal>hibernate.cfg.xml</literal>."
+msgid "Where <literal>java:/bookingSessionFactory</literal> is the name of the session factory specified in <literal>hibernate.cfg.xml</literal>."
 msgstr ""
 
 #. Tag: programlisting
@@ -579,38 +400,38 @@
 "<![CDATA[<session-factory name=\"java:/bookingSessionFactory\">\n"
 "    <property name=\"transaction.flush_before_completion\">true</property>\n"
 "    <property name=\"connection.release_mode\">after_statement</property>\n"
-"    <property name=\"transaction.manager_lookup_class\">org.hibernate."
-"transaction.JBossTransactionManagerLookup</property>\n"
-"    <property name=\"transaction.factory_class\">org.hibernate.transaction."
-"JTATransactionFactory</property>\n"
-"    <property name=\"connection.datasource\">java:/bookingDatasource</"
-"property>\n"
+"    <property name=\"transaction.manager_lookup_class\">org.hibernate.transaction.JBossTransactionManagerLookup</property>\n"
+"    <property name=\"transaction.factory_class\">org.hibernate.transaction.JTATransactionFactory</property>\n"
+"    <property name=\"connection.datasource\">java:/bookingDatasource</property>\n"
 "    ...\n"
 "</session-factory>]]>"
 msgstr ""
+"<![CDATA[<session-factory name=\"java:/bookingSessionFactory\">\n"
+"    <property name=\"transaction.flush_before_completion\">true</property>\n"
+"    <property name=\"connection.release_mode\">after_statement</property>\n"
+"    <property name=\"transaction.manager_lookup_class\">org.hibernate.transaction.JBossTransactionManagerLookup</property>\n"
+"    <property name=\"transaction.factory_class\">org.hibernate.transaction.JTATransactionFactory</property>\n"
+"    <property name=\"connection.datasource\">java:/bookingDatasource</property>\n"
+"    ...\n"
+"</session-factory>]]>"
 
 #. Tag: para
 #: Persistence.xml:371
 #, no-c-format
-msgid ""
-"Note that Seam does not flush the session, so you should always enable "
-"<literal>hibernate.transaction.flush_before_completion</literal> to ensure "
-"that the session is automatically flushed before the JTA transaction commits."
+msgid "Note that Seam does not flush the session, so you should always enable <literal>hibernate.transaction.flush_before_completion</literal> to ensure that the session is automatically flushed before the JTA transaction commits."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:378
 #, no-c-format
-msgid ""
-"We can now have a managed Hibernate <literal>Session</literal> injected into "
-"our JavaBean components using the following code:"
+msgid "We can now have a managed Hibernate <literal>Session</literal> injected into our JavaBean components using the following code:"
 msgstr ""
 
 #. Tag: programlisting
 #: Persistence.xml:383
 #, no-c-format
 msgid "<![CDATA[@In Session bookingDatabase;]]>"
-msgstr ""
+msgstr "<![CDATA[@In Session bookingDatabase;]]>"
 
 #. Tag: title
 #: Persistence.xml:388
@@ -621,51 +442,25 @@
 #. Tag: para
 #: Persistence.xml:389
 #, no-c-format
-msgid ""
-"Persistence contexts scoped to the conversation allows you to program "
-"optimistic transactions that span multiple requests to the server without "
-"the need to use the <literal>merge()</literal> operation , without the need "
-"to re-load data at the beginning of each request, and without the need to "
-"wrestle with the <literal>LazyInitializationException</literal> or "
-"<literal>NonUniqueObjectException</literal>."
+msgid "Persistence contexts scoped to the conversation allows you to program optimistic transactions that span multiple requests to the server without the need to use the <literal>merge()</literal> operation , without the need to re-load data at the beginning of each request, and without the need to wrestle with the <literal>LazyInitializationException</literal> or <literal>NonUniqueObjectException</literal>."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:398
 #, no-c-format
-msgid ""
-"As with any optimistic transaction management, transaction isolation and "
-"consistency can be achieved via use of optimistic locking. Fortunately, both "
-"Hibernate and EJB 3.0 make it very easy to use optimistic locking, by "
-"providing the <literal>@Version</literal> annotation."
+msgid "As with any optimistic transaction management, transaction isolation and consistency can be achieved via use of optimistic locking. Fortunately, both Hibernate and EJB 3.0 make it very easy to use optimistic locking, by providing the <literal>@Version</literal> annotation."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:405
 #, no-c-format
-msgid ""
-"By default, the persistence context is flushed (synchronized with the "
-"database) at the end of each transaction. This is sometimes the desired "
-"behavior. But very often, we would prefer that all changes are held in "
-"memory and only written to the database when the conversation ends "
-"successfully. This allows for truly atomic conversations. As the result of a "
-"truly stupid and shortsighted decision by certain non-JBoss, non-Sun and non-"
-"Sybase members of the EJB 3.0 expert group, there is currently no simple, "
-"usable and portable way to implement atomic conversations using EJB 3.0 "
-"persistence. However, Hibernate provides this feature as a vendor extension "
-"to the <literal>FlushModeType</literal>s defined by the specification, and "
-"it is our expectation that other vendors will soon provide a similar "
-"extension."
+msgid "By default, the persistence context is flushed (synchronized with the database) at the end of each transaction. This is sometimes the desired behavior. But very often, we would prefer that all changes are held in memory and only written to the database when the conversation ends successfully. This allows for truly atomic conversations. As the result of a truly stupid and shortsighted decision by certain non-JBoss, non-Sun and non-Sybase members of the EJB 3.0 expert group, there is currently no simple, usable and portable way to implement atomic conversations using EJB 3.0 persistence. However, Hibernate provides this feature as a vendor extension to the <literal>FlushModeType</literal>s defined by the specification, and it is our expectation that other vendors will soon provide a similar extension."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:419
 #, no-c-format
-msgid ""
-"Seam lets you specify <literal>FlushModeType.MANUAL</literal> when beginning "
-"a conversation. Currently, this works only when Hibernate is the underlying "
-"persistence provider, but we plan to support other equivalent vendor "
-"extensions."
+msgid "Seam lets you specify <literal>FlushModeType.MANUAL</literal> when beginning a conversation. Currently, this works only when Hibernate is the underlying persistence provider, but we plan to support other equivalent vendor extensions."
 msgstr ""
 
 #. Tag: programlisting
@@ -679,13 +474,17 @@
 "    claim = em.find(Claim.class, claimId);\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@In EntityManager em; //a Seam-managed persistence context\n"
+"\n"
+"@Begin(flushMode=MANUAL)\n"
+"public void beginClaimWizard() {\n"
+"    claim = em.find(Claim.class, claimId);\n"
+"}]]>"
 
 #. Tag: para
 #: Persistence.xml:427
 #, no-c-format
-msgid ""
-"Now, the <literal>claim</literal> object remains managed by the persistence "
-"context for the rest ot the conversation. We can make changes to the claim:"
+msgid "Now, the <literal>claim</literal> object remains managed by the persistence context for the rest ot the conversation. We can make changes to the claim:"
 msgstr ""
 
 #. Tag: programlisting
@@ -697,13 +496,15 @@
 "    claim.addParty(party);\n"
 "}]]>"
 msgstr ""
+"<![CDATA[public void addPartyToClaim() {\n"
+"    Party party = ....;\n"
+"    claim.addParty(party);\n"
+"}]]>"
 
 #. Tag: para
 #: Persistence.xml:434
 #, no-c-format
-msgid ""
-"But these changes will not be flushed to the database until we explicitly "
-"force the flush to occur:"
+msgid "But these changes will not be flushed to the database until we explicitly force the flush to occur:"
 msgstr ""
 
 #. Tag: programlisting
@@ -715,26 +516,27 @@
 "    em.flush();\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@End\n"
+"public void commitClaim() {\n"
+"    em.flush();\n"
+"}]]>"
 
 #. Tag: para
 #: Persistence.xml:441
 #, no-c-format
-msgid ""
-"Of course, you could set the <literal>flushMode</literal> to "
-"<literal>MANUAL</literal> from pages.xml, for example in a navigation rule:"
+msgid "Of course, you could set the <literal>flushMode</literal> to <literal>MANUAL</literal> from pages.xml, for example in a navigation rule:"
 msgstr ""
 
 #. Tag: programlisting
 #: Persistence.xml:446
 #, no-c-format
 msgid "<![CDATA[<begin-conversation flush-mode=\"MANUAL\" />]]>"
-msgstr ""
+msgstr "<![CDATA[<begin-conversation flush-mode=\"MANUAL\" />]]>"
 
 #. Tag: para
 #: Persistence.xml:448
 #, no-c-format
-msgid ""
-"You can set any Seam Managed Persistence Context to use manual flush mode:"
+msgid "You can set any Seam Managed Persistence Context to use manual flush mode:"
 msgstr ""
 
 #. Tag: programlisting
@@ -743,10 +545,13 @@
 msgid ""
 "<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
 "   xmlns:core=\"http://jboss.com/products/seam/core\">\n"
-"   <core:manager conversation-timeout=\"120000\" default-flush-mode=\"manual"
-"\" />\n"
+"   <core:manager conversation-timeout=\"120000\" default-flush-mode=\"manual\" />\n"
 "</components>]]>"
 msgstr ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+"   xmlns:core=\"http://jboss.com/products/seam/core\">\n"
+"   <core:manager conversation-timeout=\"120000\" default-flush-mode=\"manual\" />\n"
+"</components>]]>"
 
 #. Tag: title
 #: Persistence.xml:460
@@ -757,24 +562,13 @@
 #. Tag: para
 #: Persistence.xml:462
 #, no-c-format
-msgid ""
-"The <literal>EntityManager</literal> interface lets you access a vendor-"
-"specific API via the <literal>getDelegate()</literal> method. Naturally, the "
-"most interesting vendor is Hibernate, and the most powerful delegate "
-"interface is <literal>org.hibernate.Session</literal>. You'd be nuts to use "
-"anything else. Trust me, I'm not biased at all. If you must use a different "
-"JPA provider see <link linkend=\"alt-jpa-providers\">Using Alternate JPA "
-"Providers</link>."
+msgid "The <literal>EntityManager</literal> interface lets you access a vendor-specific API via the <literal>getDelegate()</literal> method. Naturally, the most interesting vendor is Hibernate, and the most powerful delegate interface is <literal>org.hibernate.Session</literal>. You'd be nuts to use anything else. Trust me, I'm not biased at all. If you must use a different JPA provider see <link linkend=\"alt-jpa-providers\">Using Alternate JPA Providers</link>."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:471
 #, no-c-format
-msgid ""
-"But regardless of whether you're using Hibernate (genius!) or something else "
-"(masochist, or just not very bright), you'll almost certainly want to use "
-"the delegate in your Seam components from time to time. One approach would "
-"be the following:"
+msgid "But regardless of whether you're using Hibernate (genius!) or something else (masochist, or just not very bright), you'll almost certainly want to use the delegate in your Seam components from time to time. One approach would be the following:"
 msgstr ""
 
 #. Tag: programlisting
@@ -785,19 +579,20 @@
 "\n"
 "@Create\n"
 "public void init() {\n"
-"    ( (Session) entityManager.getDelegate() ).enableFilter(\"currentVersions"
-"\");\n"
+"    ( (Session) entityManager.getDelegate() ).enableFilter(\"currentVersions\");\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@In EntityManager entityManager;\n"
+"\n"
+"@Create\n"
+"public void init() {\n"
+"    ( (Session) entityManager.getDelegate() ).enableFilter(\"currentVersions\");\n"
+"}]]>"
 
 #. Tag: para
 #: Persistence.xml:480
 #, no-c-format
-msgid ""
-"But typecasts are unquestionably the ugliest syntax in the Java language, so "
-"most people avoid them whenever possible. Here's a different way to get at "
-"the delegate. First, add the following line to <literal>components.xml</"
-"literal>:"
+msgid "But typecasts are unquestionably the ugliest syntax in the Java language, so most people avoid them whenever possible. Here's a different way to get at the delegate. First, add the following line to <literal>components.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
@@ -809,6 +604,10 @@
 "         auto-create=\"true\" \n"
 "         value=\"#{entityManager.delegate}\"/>]]>"
 msgstr ""
+"<![CDATA[<factory name=\"session\" \n"
+"         scope=\"STATELESS\" \n"
+"         auto-create=\"true\" \n"
+"         value=\"#{entityManager.delegate}\"/>]]>"
 
 #. Tag: para
 #: Persistence.xml:488
@@ -827,32 +626,34 @@
 "    session.enableFilter(\"currentVersions\");\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@In Session session;\n"
+"\n"
+"@Create\n"
+"public void init() {\n"
+"    session.enableFilter(\"currentVersions\");\n"
+"}]]>"
 
 #. Tag: title
 #: Persistence.xml:497
 #, no-c-format
 msgid "Using EL in EJB-QL/HQL"
-msgstr ""
+msgstr "Uso di EL in EJB-QL/HQL"
 
 #. Tag: para
 #: Persistence.xml:498
 #, no-c-format
-msgid ""
-"Seam proxies the <literal>EntityManager</literal> or <literal>Session</"
-"literal> object whenever you use a Seam-managed persistence context or "
-"inject a container managed persistence context using "
-"<literal>@PersistenceContext</literal>. This lets you use EL expressions in "
-"your query strings, safely and efficiently. For example, this:"
+msgid "Seam proxies the <literal>EntityManager</literal> or <literal>Session</literal> object whenever you use a Seam-managed persistence context or inject a container managed persistence context using <literal>@PersistenceContext</literal>. This lets you use EL expressions in your query strings, safely and efficiently. For example, this:"
 msgstr ""
 
 #. Tag: programlisting
 #: Persistence.xml:506
 #, no-c-format
 msgid ""
-"<![CDATA[User user = em.createQuery(\"from User where username=#{user."
-"username}\")\n"
+"<![CDATA[User user = em.createQuery(\"from User where username=#{user.username}\")\n"
 "         .getSingleResult();]]>"
 msgstr ""
+"<![CDATA[User user = em.createQuery(\"from User where username=#{user.username}\")\n"
+"         .getSingleResult();]]>"
 
 #. Tag: para
 #: Persistence.xml:508
@@ -868,6 +669,9 @@
 "         .setParameter(\"username\", user.getUsername())\n"
 "         .getSingleResult();]]>"
 msgstr ""
+"<![CDATA[User user = em.createQuery(\"from User where username=:username\")\n"
+"         .setParameter(\"username\", user.getUsername())\n"
+"         .getSingleResult();]]>"
 
 #. Tag: para
 #: Persistence.xml:512
@@ -879,10 +683,11 @@
 #: Persistence.xml:516
 #, no-c-format
 msgid ""
-"<![CDATA[User user = em.createQuery(\"from User where username=\" + user."
-"getUsername()) //BAD!\n"
+"<![CDATA[User user = em.createQuery(\"from User where username=\" + user.getUsername()) //BAD!\n"
 "         .getSingleResult();]]>"
 msgstr ""
+"<![CDATA[User user = em.createQuery(\"from User where username=\" + user.getUsername()) //BAD!\n"
+"         .getSingleResult();]]>"
 
 #. Tag: para
 #: Persistence.xml:518
@@ -894,28 +699,18 @@
 #: Persistence.xml:525
 #, no-c-format
 msgid "Using Hibernate filters"
-msgstr ""
+msgstr "Uso dei filtri Hibernate"
 
 #. Tag: para
 #: Persistence.xml:527
 #, no-c-format
-msgid ""
-"The coolest, and most unique, feature of Hibernate is <emphasis>filters</"
-"emphasis>. Filters let you provide a restricted view of the data in the "
-"database. You can find out more about filters in the Hibernate "
-"documentation. But we thought we'd mention an easy way to incorporate "
-"filters into a Seam application, one that works especially well with the "
-"Seam Application Framework."
+msgid "The coolest, and most unique, feature of Hibernate is <emphasis>filters</emphasis>. Filters let you provide a restricted view of the data in the database. You can find out more about filters in the Hibernate documentation. But we thought we'd mention an easy way to incorporate filters into a Seam application, one that works especially well with the Seam Application Framework."
 msgstr ""
 
 #. Tag: para
 #: Persistence.xml:535
 #, no-c-format
-msgid ""
-"Seam-managed persistence contexts may have a list of filters defined, which "
-"will be enabled whenever an <literal>EntityManager</literal> or Hibernate "
-"<literal>Session</literal> is first created. (Of course, they may only be "
-"used when Hibernate is the underlying persistence provider.)"
+msgid "Seam-managed persistence contexts may have a list of filters defined, which will be enabled whenever an <literal>EntityManager</literal> or Hibernate <literal>Session</literal> is first created. (Of course, they may only be used when Hibernate is the underlying persistence provider.)"
 msgstr ""
 
 #. Tag: programlisting
@@ -939,11 +734,34 @@
 "</persistence:filter>\n"
 "\n"
 "<persistence:managed-persistence-context name=\"personDatabase\"\n"
-"    persistence-unit-jndi-name=\"java:/EntityManagerFactories/personDatabase"
-"\">\n"
+"    persistence-unit-jndi-name=\"java:/EntityManagerFactories/personDatabase\">\n"
 "    <persistence:filters>\n"
 "        <value>#{regionFilter}</value>\n"
 "        <value>#{currentFilter}</value>\n"
 "    </persistence:filters>\n"
 "</persistence:managed-persistence-context>]]>"
 msgstr ""
+"<![CDATA[<persistence:filter name=\"regionFilter\">\n"
+"    <persistence:name>region</persistence:name>\n"
+"    <persistence:parameters>\n"
+"        <key>regionCode</key>\n"
+"        <value>#{region.code}</value>\n"
+"    </persistence:parameters>\n"
+"</persistence:filter>\n"
+"\n"
+"<persistence:filter name=\"currentFilter\">\n"
+"    <persistence:name>current</persistence:name>\n"
+"    <persistence:parameters>\n"
+"        <key>date</key>\n"
+"        <value>#{currentDate}</value>\n"
+"    </persistence:parameters>\n"
+"</persistence:filter>\n"
+"\n"
+"<persistence:managed-persistence-context name=\"personDatabase\"\n"
+"    persistence-unit-jndi-name=\"java:/EntityManagerFactories/personDatabase\">\n"
+"    <persistence:filters>\n"
+"        <value>#{regionFilter}</value>\n"
+"        <value>#{currentFilter}</value>\n"
+"    </persistence:filters>\n"
+"</persistence:managed-persistence-context>]]>"
+

Modified: trunk/doc/Seam_Reference_Guide/it-IT/Remoting.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/it-IT/Remoting.po	2008-12-17 08:13:31 UTC (rev 9793)
+++ trunk/doc/Seam_Reference_Guide/it-IT/Remoting.po	2008-12-17 10:16:42 UTC (rev 9794)
@@ -6,8 +6,8 @@
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-12-04 00:58+0000\n"
-"PO-Revision-Date: 2008-04-04 01:24+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2008-12-17 11:02+0100\n"
+"Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -17,33 +17,25 @@
 #: Remoting.xml:5
 #, no-c-format
 msgid "Remoting"
-msgstr ""
+msgstr "Remoting"
 
 #. Tag: para
 #: Remoting.xml:6
 #, no-c-format
-msgid ""
-"Seam provides a convenient method of remotely accessing components from a "
-"web page, using AJAX (Asynchronous Javascript and XML). The framework for "
-"this functionality is provided with almost no up-front development effort - "
-"your components only require simple annotating to become accessible via "
-"AJAX. This chapter describes the steps required to build an AJAX-enabled web "
-"page, then goes on to explain the features of the Seam Remoting framework in "
-"more detail."
+msgid "Seam provides a convenient method of remotely accessing components from a web page, using AJAX (Asynchronous Javascript and XML). The framework for this functionality is provided with almost no up-front development effort - your components only require simple annotating to become accessible via AJAX. This chapter describes the steps required to build an AJAX-enabled web page, then goes on to explain the features of the Seam Remoting framework in more detail."
 msgstr ""
 
 #. Tag: title
-#: Remoting.xml:13 Remoting.xml:587
+#: Remoting.xml:13
+#: Remoting.xml:587
 #, no-c-format
 msgid "Configuration"
-msgstr ""
+msgstr "Configurazione"
 
 #. Tag: para
 #: Remoting.xml:14
 #, no-c-format
-msgid ""
-"To use remoting, the Seam Resource servlet must first be configured in your "
-"<literal>web.xml</literal> file:"
+msgid "To use remoting, the Seam Resource servlet must first be configured in your <literal>web.xml</literal> file:"
 msgstr ""
 
 #. Tag: programlisting
@@ -60,36 +52,32 @@
 "  <url-pattern>/seam/resource/*</url-pattern>\n"
 "</servlet-mapping>]]>"
 msgstr ""
+"<![CDATA[<servlet>\n"
+"  <servlet-name>Seam Resource Servlet</servlet-name>\n"
+"  <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>\n"
+"</servlet>\n"
+"\n"
+"<servlet-mapping>\n"
+"  <servlet-name>Seam Resource Servlet</servlet-name>\n"
+"  <url-pattern>/seam/resource/*</url-pattern>\n"
+"</servlet-mapping>]]>"
 
 #. Tag: para
 #: Remoting.xml:18
 #, no-c-format
-msgid ""
-"The next step is to import the necessary Javascript into your web page. "
-"There are a minimum of two scripts that must be imported. The first one "
-"contains all the client-side framework code that enables remoting "
-"functionality:"
+msgid "The next step is to import the necessary Javascript into your web page. There are a minimum of two scripts that must be imported. The first one contains all the client-side framework code that enables remoting functionality:"
 msgstr ""
 
 #. Tag: programlisting
 #: Remoting.xml:22
 #, no-c-format
-msgid ""
-"<![CDATA[<script type=\"text/javascript\" src=\"seam/resource/remoting/"
-"resource/remote.js\"></script>]]>"
-msgstr ""
+msgid "<![CDATA[<script type=\"text/javascript\" src=\"seam/resource/remoting/resource/remote.js\"></script>]]>"
+msgstr "<![CDATA[<script type=\"text/javascript\" src=\"seam/resource/remoting/resource/remote.js\"></script>]]>"
 
 #. Tag: para
 #: Remoting.xml:24
 #, no-c-format
-msgid ""
-"The second script contains the stubs and type definitions for the components "
-"you wish to call. It is generated dynamically based on the local interface "
-"of your components, and includes type definitions for all of the classes "
-"that can be used to call the remotable methods of the interface. The name of "
-"the script reflects the name of your component. For example, if you have a "
-"stateless session bean annotated with <literal>@Name(\"customerAction\")</"
-"literal>, then your script tag should look like this:"
+msgid "The second script contains the stubs and type definitions for the components you wish to call. It is generated dynamically based on the local interface of your components, and includes type definitions for all of the classes that can be used to call the remotable methods of the interface. The name of the script reflects the name of your component. For example, if you have a stateless session bean annotated with <literal>@Name(\"customerAction\")</literal>, then your script tag should look like this:"
 msgstr ""
 
 #. Tag: programlisting
@@ -97,16 +85,15 @@
 #, no-c-format
 msgid ""
 "<![CDATA[<script type=\"text/javascript\" \n"
-"          src=\"seam/resource/remoting/interface.js?customerAction\"></"
-"script>]]>"
+"          src=\"seam/resource/remoting/interface.js?customerAction\"></script>]]>"
 msgstr ""
+"<![CDATA[<script type=\"text/javascript\" \n"
+"          src=\"seam/resource/remoting/interface.js?customerAction\"></script>]]>"
 
 #. Tag: para
 #: Remoting.xml:32
 #, no-c-format
-msgid ""
-"If you wish to access more than one component from the same page, then "
-"include them all as parameters of your script tag:"
+msgid "If you wish to access more than one component from the same page, then include them all as parameters of your script tag:"
 msgstr ""
 
 #. Tag: programlisting
@@ -114,17 +101,15 @@
 #, no-c-format
 msgid ""
 "<![CDATA[<script type=\"text/javascript\" \n"
-"        src=\"seam/resource/remoting/interface.js?"
-"customerAction&accountAction\"></script>]]>"
+"        src=\"seam/resource/remoting/interface.js?customerAction&accountAction\"></script>]]>"
 msgstr ""
+"<![CDATA[<script type=\"text/javascript\" \n"
+"        src=\"seam/resource/remoting/interface.js?customerAction&accountAction\"></script>]]>"
 
 #. Tag: para
 #: Remoting.xml:38
 #, no-c-format
-msgid ""
-"Alternatively, you may use the <literal>s:remote</literal> tag to import the "
-"required Javascript. Separate each component or class name you wish to "
-"import with a comma:"
+msgid "Alternatively, you may use the <literal>s:remote</literal> tag to import the required Javascript. Separate each component or class name you wish to import with a comma:"
 msgstr ""
 
 #. Tag: programlisting
@@ -135,6 +120,9 @@
 "  <s:remote include=\"customerAction,accountAction\"/>    \n"
 "    ]]>"
 msgstr ""
+"<![CDATA[\n"
+"  <s:remote include=\"customerAction,accountAction\"/>    \n"
+"    ]]>"
 
 #. Tag: title
 #: Remoting.xml:48
@@ -145,15 +133,7 @@
 #. Tag: para
 #: Remoting.xml:50
 #, no-c-format
-msgid ""
-"Client-side interaction with your components is all performed via the "
-"<literal>Seam</literal> Javascript object. This object is defined in "
-"<literal>remote.js</literal>, and you'll be using it to make asynchronous "
-"calls against your component. It is split into two areas of functionality; "
-"<literal>Seam.Component</literal> contains methods for working with "
-"components and <literal>Seam.Remoting</literal> contains methods for "
-"executing remote requests. The easiest way to become familiar with this "
-"object is to start with a simple example."
+msgid "Client-side interaction with your components is all performed via the <literal>Seam</literal> Javascript object. This object is defined in <literal>remote.js</literal>, and you'll be using it to make asynchronous calls against your component. It is split into two areas of functionality; <literal>Seam.Component</literal> contains methods for working with components and <literal>Seam.Remoting</literal> contains methods for executing remote requests. The easiest way to become familiar with this object is to start with a simple example."
 msgstr ""
 
 #. Tag: title
@@ -165,10 +145,7 @@
 #. Tag: para
 #: Remoting.xml:59
 #, no-c-format
-msgid ""
-"Let's step through a simple example to see how the <literal>Seam</literal> "
-"object works. First of all, let's create a new Seam component called "
-"<literal>helloAction</literal>."
+msgid "Let's step through a simple example to see how the <literal>Seam</literal> object works. First of all, let's create a new Seam component called <literal>helloAction</literal>."
 msgstr ""
 
 #. Tag: programlisting
@@ -183,14 +160,18 @@
 "    }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Stateless\n"
+"@Name(\"helloAction\")\n"
+"public class HelloAction implements HelloLocal {\n"
+"    public String sayHello(String name) {\n"
+"        return \"Hello, \" + name;\n"
+"    }\n"
+"}]]>"
 
 #. Tag: para
 #: Remoting.xml:64
 #, no-c-format
-msgid ""
-"You also need to create a local interface for our new component - take "
-"special note of the <literal>@WebRemote</literal> annotation, as it's "
-"required to make our method accessible via remoting:"
+msgid "You also need to create a local interface for our new component - take special note of the <literal>@WebRemote</literal> annotation, as it's required to make our method accessible via remoting:"
 msgstr ""
 
 #. Tag: programlisting
@@ -203,42 +184,40 @@
 "  public String sayHello(String name);\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Local\n"
+"public interface HelloLocal {\n"
+"  @WebRemote\n"
+"  public String sayHello(String name);\n"
+"}]]>"
 
 #. Tag: para
 #: Remoting.xml:69
 #, no-c-format
-msgid ""
-"That's all the server-side code we need to write. Now for our web page - "
-"create a new page and import the <literal>helloAction</literal> component:"
+msgid "That's all the server-side code we need to write. Now for our web page - create a new page and import the <literal>helloAction</literal> component:"
 msgstr ""
 
 #. Tag: programlisting
 #: Remoting.xml:72
 #, no-c-format
 msgid "<![CDATA[<s:remote include=\"helloAction\"/>]]>"
-msgstr ""
+msgstr "<![CDATA[<s:remote include=\"helloAction\"/>]]>"
 
 #. Tag: para
 #: Remoting.xml:74
 #, no-c-format
-msgid ""
-"To make this a fully interactive user experience, let's add a button to our "
-"page:"
+msgid "To make this a fully interactive user experience, let's add a button to our page:"
 msgstr ""
 
 #. Tag: programlisting
 #: Remoting.xml:76
 #, no-c-format
-msgid ""
-"<![CDATA[<button onclick=\"javascript:sayHello()\">Say Hello</button>]]>"
-msgstr ""
+msgid "<![CDATA[<button onclick=\"javascript:sayHello()\">Say Hello</button>]]>"
+msgstr "<![CDATA[<button onclick=\"javascript:sayHello()\">Say Hello</button>]]>"
 
 #. Tag: para
 #: Remoting.xml:78
 #, no-c-format
-msgid ""
-"We'll also need to add some more script to make our button actually do "
-"something when it's clicked:"
+msgid "We'll also need to add some more script to make our button actually do something when it's clicked:"
 msgstr ""
 
 #. Tag: programlisting
@@ -250,8 +229,7 @@
 "\n"
 "  function sayHello() {\n"
 "    var name = prompt(\"What is your name?\");\n"
-"    Seam.Component.getInstance(\"helloAction\").sayHello(name, "
-"sayHelloCallback);\n"
+"    Seam.Component.getInstance(\"helloAction\").sayHello(name, sayHelloCallback);\n"
 "  }\n"
 "\n"
 "  function sayHelloCallback(result) {\n"
@@ -261,105 +239,79 @@
 "   // ]]>]]&gt;<![CDATA[\n"
 "</script>]]>"
 msgstr ""
+"<![CDATA[<script type=\"text/javascript\">\n"
+"  //<![CDATA[\n"
+"\n"
+"  function sayHello() {\n"
+"    var name = prompt(\"What is your name?\");\n"
+"    Seam.Component.getInstance(\"helloAction\").sayHello(name, sayHelloCallback);\n"
+"  }\n"
+"\n"
+"  function sayHelloCallback(result) {\n"
+"    alert(result);\n"
+"  }\n"
+"\n"
+"   // ]]>]]&gt;<![CDATA[\n"
+"</script>]]>"
 
 #. Tag: para
 #: Remoting.xml:82
 #, no-c-format
-msgid ""
-"We're done! Deploy your application and browse to your page. Click the "
-"button, and enter a name when prompted. A message box will display the hello "
-"message confirming that the call was successful. If you want to save some "
-"time, you'll find the full source code for this Hello World example in "
-"Seam's <literal>/examples/remoting/helloworld</literal> directory."
+msgid "We're done! Deploy your application and browse to your page. Click the button, and enter a name when prompted. A message box will display the hello message confirming that the call was successful. If you want to save some time, you'll find the full source code for this Hello World example in Seam's <literal>/examples/remoting/helloworld</literal> directory."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:87
 #, no-c-format
-msgid ""
-"So what does the code of our script actually do? Let's break it down into "
-"smaller pieces. To start with, you can see from the Javascript code listing "
-"that we have implemented two methods - the first method is responsible for "
-"prompting the user for their name and then making a remote request. Take a "
-"look at the following line:"
+msgid "So what does the code of our script actually do? Let's break it down into smaller pieces. To start with, you can see from the Javascript code listing that we have implemented two methods - the first method is responsible for prompting the user for their name and then making a remote request. Take a look at the following line:"
 msgstr ""
 
 #. Tag: programlisting
 #: Remoting.xml:92
 #, no-c-format
-msgid ""
-"Seam.Component.getInstance(\"helloAction\").sayHello(name, sayHelloCallback);"
-msgstr ""
+msgid "Seam.Component.getInstance(\"helloAction\").sayHello(name, sayHelloCallback);"
+msgstr "Seam.Component.getInstance(\"helloAction\").sayHello(name, sayHelloCallback);"
 
 #. Tag: para
 #: Remoting.xml:94
 #, no-c-format
-msgid ""
-"The first section of this line, <literal>Seam.Component.getInstance"
-"(\"helloAction\")</literal> returns a proxy, or \"stub\" for our "
-"<literal>helloAction</literal> component. We can invoke the methods of our "
-"component against this stub, which is exactly what happens with the "
-"remainder of the line: <literal>sayHello(name, sayHelloCallback);</literal>."
+msgid "The first section of this line, <literal>Seam.Component.getInstance(\"helloAction\")</literal> returns a proxy, or \"stub\" for our <literal>helloAction</literal> component. We can invoke the methods of our component against this stub, which is exactly what happens with the remainder of the line: <literal>sayHello(name, sayHelloCallback);</literal>."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:99
 #, no-c-format
-msgid ""
-"What this line of code in its completeness does, is invoke the "
-"<literal>sayHello</literal> method of our component, passing in "
-"<literal>name</literal> as a parameter. The second parameter, "
-"<literal>sayHelloCallback</literal> isn't a parameter of our component's "
-"<literal>sayHello</literal> method, instead it tells the Seam Remoting "
-"framework that once it receives the response to our request, it should pass "
-"it to the <literal>sayHelloCallback</literal> Javascript method. This "
-"callback parameter is entirely optional, so feel free to leave it out if "
-"you're calling a method with a <literal>void</literal> return type or if you "
-"don't care about the result."
+msgid "What this line of code in its completeness does, is invoke the <literal>sayHello</literal> method of our component, passing in <literal>name</literal> as a parameter. The second parameter, <literal>sayHelloCallback</literal> isn't a parameter of our component's <literal>sayHello</literal> method, instead it tells the Seam Remoting framework that once it receives the response to our request, it should pass it to the <literal>sayHelloCallback</literal> Javascript method. This callback parameter is entirely optional, so feel free to leave it out if you're calling a method with a <literal>void</literal> return type or if you don't care about the result."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:107
 #, no-c-format
-msgid ""
-"The <literal>sayHelloCallback</literal> method, once receiving the response "
-"to our remote request then pops up an alert message displaying the result of "
-"our method call."
+msgid "The <literal>sayHelloCallback</literal> method, once receiving the response to our remote request then pops up an alert message displaying the result of our method call."
 msgstr ""
 
 #. Tag: title
 #: Remoting.xml:113
 #, no-c-format
 msgid "Seam.Component"
-msgstr ""
+msgstr "Seam.Component"
 
 #. Tag: para
 #: Remoting.xml:115
 #, no-c-format
-msgid ""
-"The <literal>Seam.Component</literal> Javascript object provides a number of "
-"client-side methods for working with your Seam components. The two main "
-"methods, <literal>newInstance()</literal> and <literal>getInstance()</"
-"literal> are documented in the following sections however their main "
-"difference is that <literal>newInstance()</literal> will always create a new "
-"instance of a component type, and <literal>getInstance()</literal> will "
-"return a singleton instance."
+msgid "The <literal>Seam.Component</literal> Javascript object provides a number of client-side methods for working with your Seam components. The two main methods, <literal>newInstance()</literal> and <literal>getInstance()</literal> are documented in the following sections however their main difference is that <literal>newInstance()</literal> will always create a new instance of a component type, and <literal>getInstance()</literal> will return a singleton instance."
 msgstr ""
 
 #. Tag: title
 #: Remoting.xml:122
 #, no-c-format
 msgid "Seam.Component.newInstance()"
-msgstr ""
+msgstr "Seam.Component.newInstance()"
 
 #. Tag: para
 #: Remoting.xml:123
 #, no-c-format
-msgid ""
-"Use this method to create a new instance of an entity or Javabean component. "
-"The object returned by this method will have the same getter/setter methods "
-"as its server-side counterpart, or alternatively if you wish you can access "
-"its fields directly. Take the following Seam entity component for example:"
+msgid "Use this method to create a new instance of an entity or Javabean component. The object returned by this method will have the same getter/setter methods as its server-side counterpart, or alternatively if you wish you can access its fields directly. Take the following Seam entity component for example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -399,6 +351,38 @@
 "  }\n"
 "}"
 msgstr ""
+"@Name(\"customer\")\n"
+"@Entity\n"
+"public class Customer implements Serializable\n"
+"{\n"
+"  private Integer customerId;\n"
+"  private String firstName;\n"
+"  private String lastName;\n"
+"    \n"
+"  @Column public Integer getCustomerId() { \n"
+"    return customerId; \n"
+"  }\n"
+"    \n"
+"  public void setCustomerId(Integer customerId} { \n"
+"    this.customerId = customerId; \n"
+"  }\n"
+"  \n"
+"  @Column public String getFirstName() { \n"
+"    return firstName; \n"
+"  }\n"
+"  \n"
+"  public void setFirstName(String firstName) {\n"
+"    this.firstName = firstName; \n"
+"  }\n"
+"  \n"
+"  @Column public String getLastName() {\n"
+"    return lastName;\n"
+"  }\n"
+"  \n"
+"  public void setLastName(String lastName) {\n"
+"    this.lastName = lastName;\n"
+"  }\n"
+"}"
 
 #. Tag: para
 #: Remoting.xml:129
@@ -410,7 +394,7 @@
 #: Remoting.xml:131
 #, no-c-format
 msgid "var customer = Seam.Component.newInstance(\"customer\");"
-msgstr ""
+msgstr "var customer = Seam.Component.newInstance(\"customer\");"
 
 #. Tag: para
 #: Remoting.xml:133
@@ -426,52 +410,44 @@
 "// Or you can set the fields directly\n"
 "customer.lastName = \"Smith\";"
 msgstr ""
+"customer.setFirstName(\"John\");\n"
+"// Oppure puoi impostare direttamente i campi\n"
+"customer.lastName = \"Smith\";"
 
 #. Tag: title
 #: Remoting.xml:140
 #, no-c-format
 msgid "Seam.Component.getInstance()"
-msgstr ""
+msgstr "Seam.Component.getInstance()"
 
 #. Tag: para
 #: Remoting.xml:142
 #, no-c-format
-msgid ""
-"The <literal>getInstance()</literal> method is used to get a reference to a "
-"Seam session bean component stub, which can then be used to remotely execute "
-"methods against your component. This method returns a singleton for the "
-"specified component, so calling it twice in a row with the same component "
-"name will return the same instance of the component."
+msgid "The <literal>getInstance()</literal> method is used to get a reference to a Seam session bean component stub, which can then be used to remotely execute methods against your component. This method returns a singleton for the specified component, so calling it twice in a row with the same component name will return the same instance of the component."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:147
 #, no-c-format
-msgid ""
-"To continue our example from before, if we have created a new "
-"<literal>customer</literal> and we now wish to save it, we would pass it to "
-"the <literal>saveCustomer()</literal> method of our <literal>customerAction</"
-"literal> component:"
+msgid "To continue our example from before, if we have created a new <literal>customer</literal> and we now wish to save it, we would pass it to the <literal>saveCustomer()</literal> method of our <literal>customerAction</literal> component:"
 msgstr ""
 
 #. Tag: programlisting
 #: Remoting.xml:151
 #, no-c-format
 msgid "Seam.Component.getInstance(\"customerAction\").saveCustomer(customer);"
-msgstr ""
+msgstr "Seam.Component.getInstance(\"customerAction\").saveCustomer(customer);"
 
 #. Tag: title
 #: Remoting.xml:155
 #, no-c-format
 msgid "Seam.Component.getComponentName()"
-msgstr ""
+msgstr "Seam.Component.getComponentName()"
 
 #. Tag: para
 #: Remoting.xml:157
 #, no-c-format
-msgid ""
-"Passing an object into this method will return its component name if it is a "
-"component, or <literal>null</literal> if it is not."
+msgid "Passing an object into this method will return its component name if it is a component, or <literal>null</literal> if it is not."
 msgstr ""
 
 #. Tag: programlisting
@@ -483,79 +459,63 @@
 "else if (Seam.Component.getComponentName(instance) == \"staff\")\n"
 "  alert(\"Staff member\");"
 msgstr ""
+"if (Seam.Component.getComponentName(instance) == \"customer\")\n"
+"  alert(\"Customer\");\n"
+"else if (Seam.Component.getComponentName(instance) == \"staff\")\n"
+"  alert(\"Staff member\");"
 
 #. Tag: title
 #: Remoting.xml:166
 #, no-c-format
 msgid "Seam.Remoting"
-msgstr ""
+msgstr "Seam.Remoting"
 
 #. Tag: para
 #: Remoting.xml:168
 #, no-c-format
-msgid ""
-"Most of the client side functionality for Seam Remoting is contained within "
-"the <literal>Seam.Remoting</literal> object. While you shouldn't need to "
-"directly call most of its methods, there are a couple of important ones "
-"worth mentioning."
+msgid "Most of the client side functionality for Seam Remoting is contained within the <literal>Seam.Remoting</literal> object. While you shouldn't need to directly call most of its methods, there are a couple of important ones worth mentioning."
 msgstr ""
 
 #. Tag: title
 #: Remoting.xml:173
 #, no-c-format
 msgid "Seam.Remoting.createType()"
-msgstr ""
+msgstr "Seam.Remoting.createType()"
 
 #. Tag: para
 #: Remoting.xml:175
 #, no-c-format
-msgid ""
-"If your application contains or uses Javabean classes that aren't Seam "
-"components, you may need to create these types on the client side to pass as "
-"parameters into your component method. Use the <literal>createType()</"
-"literal> method to create an instance of your type. Pass in the fully "
-"qualified Java class name as a parameter:"
+msgid "If your application contains or uses Javabean classes that aren't Seam components, you may need to create these types on the client side to pass as parameters into your component method. Use the <literal>createType()</literal> method to create an instance of your type. Pass in the fully qualified Java class name as a parameter:"
 msgstr ""
 
 #. Tag: programlisting
 #: Remoting.xml:180
 #, no-c-format
 msgid "var widget = Seam.Remoting.createType(\"com.acme.widgets.MyWidget\");"
-msgstr ""
+msgstr "var widget = Seam.Remoting.createType(\"com.acme.widgets.MyWidget\");"
 
 #. Tag: title
 #: Remoting.xml:184
 #, no-c-format
 msgid "Seam.Remoting.getTypeName()"
-msgstr ""
+msgstr "Seam.Remoting.getTypeName()"
 
 #. Tag: para
 #: Remoting.xml:186
 #, no-c-format
-msgid ""
-"This method is the equivalent of <literal>Seam.Component.getComponentName()</"
-"literal> but for non-component types. It will return the name of the type "
-"for an object instance, or <literal>null</literal> if the type is not known. "
-"The name is the fully qualified name of the type's Java class."
+msgid "This method is the equivalent of <literal>Seam.Component.getComponentName()</literal> but for non-component types. It will return the name of the type for an object instance, or <literal>null</literal> if the type is not known. The name is the fully qualified name of the type's Java class."
 msgstr ""
 
 #. Tag: title
 #: Remoting.xml:194
 #, no-c-format
 msgid "Evaluating EL Expressions"
-msgstr ""
+msgstr "Valutazione delle espressioni EL"
 
 #. Tag: para
 #: Remoting.xml:196
 #, no-c-format
-msgid ""
-"Seam Remoting also supports the evaluation of EL expressions, which provides "
-"another convenient method for retrieving data from the server. Using the "
-"<literal>Seam.Remoting.eval()</literal> function, an EL expression can be "
-"remotely evaluated on the server and the resulting value returned to a "
-"client-side callback method. This function accepts two parameters, the first "
-"being the EL expression to evaluate, and the second being the callback "
-"method to invoke with the value of the expression. Here's an example:"
+msgid "Seam Remoting also supports the evaluation of EL expressions, which provides another convenient method for retrieving data from the server. Using the <literal>Seam.Remoting.eval()</literal> function, an EL expression can be remotely evaluated on the server and the resulting value returned to a client-side callback method. This function accepts two parameters, the first being the EL expression to evaluate, and the second being the callback method to invoke with the value of the expression. Here's an example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -571,41 +531,37 @@
 "  Seam.Remoting.eval(\"#{customers}\", customersCallback);  \n"
 "    ]]>"
 msgstr ""
+"<![CDATA[  function customersCallback(customers) {\n"
+"    for (var i = 0; i < customers.length; i++) {\n"
+"      alert(\"Got customer: \" + customers[i].getName());\n"
+"    }    \n"
+"  }\n"
+"    \n"
+"  Seam.Remoting.eval(\"#{customers}\", customersCallback);  \n"
+"    ]]>"
 
 #. Tag: para
 #: Remoting.xml:206
 #, no-c-format
-msgid ""
-"In this example, the expression <literal>#{customers}</literal> is evaluated "
-"by Seam, and the value of the expression (in this case a list of Customer "
-"objects) is returned to the <literal>customersCallback()</literal> method. "
-"It is important to remember that the objects returned this way must have "
-"their types imported (via <literal>s:remote</literal>) to be able to work "
-"with them in Javascript. So to work with a list of <literal>customer</"
-"literal> objects, it is required to import the <literal>customer</literal> "
-"type:"
+msgid "In this example, the expression <literal>#{customers}</literal> is evaluated by Seam, and the value of the expression (in this case a list of Customer objects) is returned to the <literal>customersCallback()</literal> method. It is important to remember that the objects returned this way must have their types imported (via <literal>s:remote</literal>) to be able to work with them in Javascript. So to work with a list of <literal>customer</literal> objects, it is required to import the <literal>customer</literal> type:"
 msgstr ""
 
 #. Tag: programlisting
 #: Remoting.xml:214
 #, no-c-format
 msgid "<![CDATA[<s:remote include=\"customer\"/>]]>"
-msgstr ""
+msgstr "<![CDATA[<s:remote include=\"customer\"/>]]>"
 
 #. Tag: title
 #: Remoting.xml:218
 #, no-c-format
 msgid "Client Interfaces"
-msgstr ""
+msgstr "Interfacce client"
 
 #. Tag: para
 #: Remoting.xml:220
 #, no-c-format
-msgid ""
-"In the configuration section above, the interface, or \"stub\" for our "
-"component is imported into our page either via <literal>seam/resource/"
-"remoting/interface.js</literal>: or using the <literal>s:remote</literal> "
-"tag:"
+msgid "In the configuration section above, the interface, or \"stub\" for our component is imported into our page either via <literal>seam/resource/remoting/interface.js</literal>: or using the <literal>s:remote</literal> tag:"
 msgstr ""
 
 #. Tag: programlisting
@@ -613,65 +569,45 @@
 #, no-c-format
 msgid ""
 "<![CDATA[<script type=\"text/javascript\" \n"
-"        src=\"seam/resource/remoting/interface.js?customerAction\"></"
-"script>]]>"
+"        src=\"seam/resource/remoting/interface.js?customerAction\"></script>]]>"
 msgstr ""
+"<![CDATA[<script type=\"text/javascript\" \n"
+"        src=\"seam/resource/remoting/interface.js?customerAction\"></script>]]>"
 
 #. Tag: programlisting
 #: Remoting.xml:227
 #, no-c-format
 msgid "<![CDATA[<s:remote include=\"customerAction\"/>]]>"
-msgstr ""
+msgstr "<![CDATA[<s:remote include=\"customerAction\"/>]]>"
 
 #. Tag: para
 #: Remoting.xml:229
 #, no-c-format
-msgid ""
-"By including this script in our page, the interface definitions for our "
-"component, plus any other components or types that are required to execute "
-"the methods of our component are generated and made available for the "
-"remoting framework to use."
+msgid "By including this script in our page, the interface definitions for our component, plus any other components or types that are required to execute the methods of our component are generated and made available for the remoting framework to use."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:233
 #, no-c-format
-msgid ""
-"There are two types of client stub that can be generated, \"executable\" "
-"stubs and \"type\" stubs. Executable stubs are behavioural, and are used to "
-"execute methods against your session bean components, while type stubs "
-"contain state and represent the types that can be passed in as parameters or "
-"returned as a result."
+msgid "There are two types of client stub that can be generated, \"executable\" stubs and \"type\" stubs. Executable stubs are behavioural, and are used to execute methods against your session bean components, while type stubs contain state and represent the types that can be passed in as parameters or returned as a result."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:237
 #, no-c-format
-msgid ""
-"The type of client stub that is generated depends on the type of your Seam "
-"component. If the component is a session bean, then an executable stub will "
-"be generated, otherwise if it's an entity or JavaBean, then a type stub will "
-"be generated. There is one exception to this rule; if your component is a "
-"JavaBean (ie it is not a session bean nor an entity bean) and any of its "
-"methods are annotated with @WebRemote, then an executable stub will be "
-"generated for it instead of a type stub. This allows you to use remoting to "
-"call methods of your JavaBean components in a non-EJB environment where you "
-"don't have access to session beans."
+msgid "The type of client stub that is generated depends on the type of your Seam component. If the component is a session bean, then an executable stub will be generated, otherwise if it's an entity or JavaBean, then a type stub will be generated. There is one exception to this rule; if your component is a JavaBean (ie it is not a session bean nor an entity bean) and any of its methods are annotated with @WebRemote, then an executable stub will be generated for it instead of a type stub. This allows you to use remoting to call methods of your JavaBean components in a non-EJB environment where you don't have access to session beans."
 msgstr ""
 
 #. Tag: title
 #: Remoting.xml:247
 #, no-c-format
 msgid "The Context"
-msgstr ""
+msgstr "Il contesto"
 
 #. Tag: para
 #: Remoting.xml:249
 #, no-c-format
-msgid ""
-"The Seam Remoting Context contains additional information which is sent and "
-"received as part of a remoting request/response cycle. At this stage it only "
-"contains the conversation ID but may be expanded in the future."
+msgid "The Seam Remoting Context contains additional information which is sent and received as part of a remoting request/response cycle. At this stage it only contains the conversation ID but may be expanded in the future."
 msgstr ""
 
 #. Tag: title
@@ -683,26 +619,13 @@
 #. Tag: para
 #: Remoting.xml:256
 #, no-c-format
-msgid ""
-"If you intend on using remote calls within the scope of a conversation then "
-"you need to be able to read or set the conversation ID in the Seam Remoting "
-"Context. To read the conversation ID after making a remote request call "
-"<literal>Seam.Remoting.getContext().getConversationId()</literal>. To set "
-"the conversation ID before making a request, call <literal>Seam.Remoting."
-"getContext().setConversationId()</literal>."
+msgid "If you intend on using remote calls within the scope of a conversation then you need to be able to read or set the conversation ID in the Seam Remoting Context. To read the conversation ID after making a remote request call <literal>Seam.Remoting.getContext().getConversationId()</literal>. To set the conversation ID before making a request, call <literal>Seam.Remoting.getContext().setConversationId()</literal>."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:261
 #, no-c-format
-msgid ""
-"If the conversation ID hasn't been explicitly set with <literal>Seam."
-"Remoting.getContext().setConversationId()</literal>, then it will be "
-"automatically assigned the first valid conversation ID that is returned by "
-"any remoting call. If you are working with multiple conversations within "
-"your page, then you may need to explicitly set the conversation ID before "
-"each call. If you are working with just a single conversation, then you "
-"don't need to do anything special."
+msgid "If the conversation ID hasn't been explicitly set with <literal>Seam.Remoting.getContext().setConversationId()</literal>, then it will be automatically assigned the first valid conversation ID that is returned by any remoting call. If you are working with multiple conversations within your page, then you may need to explicitly set the conversation ID before each call. If you are working with just a single conversation, then you don't need to do anything special."
 msgstr ""
 
 #. Tag: title
@@ -714,68 +637,43 @@
 #. Tag: para
 #: Remoting.xml:270
 #, no-c-format
-msgid ""
-"In some circumstances it may be required to make a remote call within the "
-"scope of the current view's conversation. To do this, you must explicitly "
-"set the conversation ID to that of the view before making the remote call. "
-"This small snippet of JavaScript will set the conversation ID that is used "
-"for remoting calls to the current view's conversation ID:"
+msgid "In some circumstances it may be required to make a remote call within the scope of the current view's conversation. To do this, you must explicitly set the conversation ID to that of the view before making the remote call. This small snippet of JavaScript will set the conversation ID that is used for remoting calls to the current view's conversation ID:"
 msgstr ""
 
 #. Tag: programlisting
 #: Remoting.xml:275
 #, no-c-format
-msgid ""
-"<![CDATA[Seam.Remoting.getContext().setConversationId( #{conversation."
-"id} );]]>"
-msgstr ""
+msgid "<![CDATA[Seam.Remoting.getContext().setConversationId( #{conversation.id} );]]>"
+msgstr "<![CDATA[Seam.Remoting.getContext().setConversationId( #{conversation.id} );]]>"
 
 #. Tag: title
 #: Remoting.xml:280
 #, no-c-format
 msgid "Batch Requests"
-msgstr ""
+msgstr "Richieste batch"
 
 #. Tag: para
 #: Remoting.xml:282
 #, no-c-format
-msgid ""
-"Seam Remoting allows multiple component calls to be executed within a single "
-"request. It is recommended that this feature is used wherever it is "
-"appropriate to reduce network traffic."
+msgid "Seam Remoting allows multiple component calls to be executed within a single request. It is recommended that this feature is used wherever it is appropriate to reduce network traffic."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:285
 #, no-c-format
-msgid ""
-"The method <literal>Seam.Remoting.startBatch()</literal> will start a new "
-"batch, and any component calls executed after starting a batch are queued, "
-"rather than being sent immediately. When all the desired component calls "
-"have been added to the batch, the <literal>Seam.Remoting.executeBatch()</"
-"literal> method will send a single request containing all of the queued "
-"calls to the server, where they will be executed in order. After the calls "
-"have been executed, a single response containining all return values will be "
-"returned to the client and the callback functions (if provided) triggered in "
-"the same order as execution."
+msgid "The method <literal>Seam.Remoting.startBatch()</literal> will start a new batch, and any component calls executed after starting a batch are queued, rather than being sent immediately. When all the desired component calls have been added to the batch, the <literal>Seam.Remoting.executeBatch()</literal> method will send a single request containing all of the queued calls to the server, where they will be executed in order. After the calls have been executed, a single response containining all return values will be returned to the client and the callback functions (if provided) triggered in the same order as execution."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:292
 #, no-c-format
-msgid ""
-"If you start a new batch via the <literal>startBatch()</literal> method but "
-"then decide you don't want to send it, the <literal>Seam.Remoting.cancelBatch"
-"()</literal> method will discard any calls that were queued and exit the "
-"batch mode."
+msgid "If you start a new batch via the <literal>startBatch()</literal> method but then decide you don't want to send it, the <literal>Seam.Remoting.cancelBatch()</literal> method will discard any calls that were queued and exit the batch mode."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:296
 #, no-c-format
-msgid ""
-"To see an example of a batch being used, take a look at <literal>/examples/"
-"remoting/chatroom</literal>."
+msgid "To see an example of a batch being used, take a look at <literal>/examples/remoting/chatroom</literal>."
 msgstr ""
 
 #. Tag: title
@@ -793,84 +691,61 @@
 #. Tag: para
 #: Remoting.xml:306
 #, no-c-format
-msgid ""
-"This section describes the support for basic data types. On the server side "
-"these values are generally compatible with either their primitive type or "
-"their corresponding wrapper class."
+msgid "This section describes the support for basic data types. On the server side these values are generally compatible with either their primitive type or their corresponding wrapper class."
 msgstr ""
 
 #. Tag: title
 #: Remoting.xml:310
 #, no-c-format
 msgid "String"
-msgstr ""
+msgstr "String"
 
 #. Tag: para
 #: Remoting.xml:312
 #, no-c-format
-msgid ""
-"Simply use Javascript String objects when setting String parameter values."
+msgid "Simply use Javascript String objects when setting String parameter values."
 msgstr ""
 
 #. Tag: title
 #: Remoting.xml:316
 #, no-c-format
 msgid "Number"
-msgstr ""
+msgstr "Number"
 
 #. Tag: para
 #: Remoting.xml:318
 #, no-c-format
-msgid ""
-"There is support for all number types supported by Java. On the client side, "
-"number values are always serialized as their String representation and then "
-"on the server side they are converted to the correct destination type. "
-"Conversion into either a primitive or wrapper type is supported for "
-"<literal>Byte</literal>, <literal>Double</literal>, <literal>Float</"
-"literal>, <literal>Integer</literal>, <literal>Long</literal> and "
-"<literal>Short</literal> types."
+msgid "There is support for all number types supported by Java. On the client side, number values are always serialized as their String representation and then on the server side they are converted to the correct destination type. Conversion into either a primitive or wrapper type is supported for <literal>Byte</literal>, <literal>Double</literal>, <literal>Float</literal>, <literal>Integer</literal>, <literal>Long</literal> and <literal>Short</literal> types."
 msgstr ""
 
 #. Tag: title
 #: Remoting.xml:326
 #, no-c-format
 msgid "Boolean"
-msgstr ""
+msgstr "Boolean"
 
 #. Tag: para
 #: Remoting.xml:328
 #, no-c-format
-msgid ""
-"Booleans are represented client side by Javascript Boolean values, and "
-"server side by a Java boolean."
+msgid "Booleans are represented client side by Javascript Boolean values, and server side by a Java boolean."
 msgstr ""
 
 #. Tag: title
 #: Remoting.xml:334
 #, no-c-format
 msgid "JavaBeans"
-msgstr ""
+msgstr "JavaBeans"
 
 #. Tag: para
 #: Remoting.xml:336
 #, no-c-format
-msgid ""
-"In general these will be either Seam entity or JavaBean components, or some "
-"other non-component class. Use the appropriate method (either <literal>Seam."
-"Component.newInstance()</literal> for Seam components or <literal>Seam."
-"Remoting.createType()</literal> for everything else) to create a new "
-"instance of the object."
+msgid "In general these will be either Seam entity or JavaBean components, or some other non-component class. Use the appropriate method (either <literal>Seam.Component.newInstance()</literal> for Seam components or <literal>Seam.Remoting.createType()</literal> for everything else) to create a new instance of the object."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:340
 #, no-c-format
-msgid ""
-"It is important to note that only objects that are created by either of "
-"these two methods should be used as parameter values, where the parameter is "
-"not one of the other valid types mentioned anywhere else in this section. In "
-"some situations you may have a component method where the exact parameter "
-"type cannot be determined, such as:"
+msgid "It is important to note that only objects that are created by either of these two methods should be used as parameter values, where the parameter is not one of the other valid types mentioned anywhere else in this section. In some situations you may have a component method where the exact parameter type cannot be determined, such as:"
 msgstr ""
 
 #. Tag: programlisting
@@ -884,31 +759,29 @@
 "  }\n"
 "}"
 msgstr ""
+"@Name(\"myAction\")\n"
+"public class MyAction implements MyActionLocal {\n"
+"  public void doSomethingWithObject(Object obj) {\n"
+"    // code\n"
+"  }\n"
+"}"
 
 #. Tag: para
 #: Remoting.xml:347
 #, no-c-format
-msgid ""
-"In this case you might want to pass in an instance of your "
-"<literal>myWidget</literal> component, however the interface for "
-"<literal>myAction</literal> won't include <literal>myWidget</literal> as it "
-"is not directly referenced by any of its methods. To get around this, "
-"<literal>MyWidget</literal> needs to be explicitly imported:"
+msgid "In this case you might want to pass in an instance of your <literal>myWidget</literal> component, however the interface for <literal>myAction</literal> won't include <literal>myWidget</literal> as it is not directly referenced by any of its methods. To get around this, <literal>MyWidget</literal> needs to be explicitly imported:"
 msgstr ""
 
 #. Tag: programlisting
 #: Remoting.xml:352
 #, no-c-format
 msgid "<![CDATA[<s:remote include=\"myAction,myWidget\"/>]]>"
-msgstr ""
+msgstr "<![CDATA[<s:remote include=\"myAction,myWidget\"/>]]>"
 
 #. Tag: para
 #: Remoting.xml:354
 #, no-c-format
-msgid ""
-"This will then allow a <literal>myWidget</literal> object to be created with "
-"<literal>Seam.Component.newInstance(\"myWidget\")</literal>, which can then "
-"be passed to <literal>myAction.doSomethingWithObject()</literal>."
+msgid "This will then allow a <literal>myWidget</literal> object to be created with <literal>Seam.Component.newInstance(\"myWidget\")</literal>, which can then be passed to <literal>myAction.doSomethingWithObject()</literal>."
 msgstr ""
 
 #. Tag: title
@@ -920,27 +793,19 @@
 #. Tag: para
 #: Remoting.xml:363
 #, no-c-format
-msgid ""
-"Date values are serialized into a String representation that is accurate to "
-"the millisecond. On the client side, use a Javascript Date object to work "
-"with date values. On the server side, use any <literal>java.util.Date</"
-"literal> (or descendent, such as <literal>java.sql.Date</literal> or "
-"<literal>java.sql.Timestamp</literal> class."
+msgid "Date values are serialized into a String representation that is accurate to the millisecond. On the client side, use a Javascript Date object to work with date values. On the server side, use any <literal>java.util.Date</literal> (or descendent, such as <literal>java.sql.Date</literal> or <literal>java.sql.Timestamp</literal> class."
 msgstr ""
 
 #. Tag: title
 #: Remoting.xml:370
 #, no-c-format
 msgid "Enums"
-msgstr ""
+msgstr "Enums"
 
 #. Tag: para
 #: Remoting.xml:372
 #, no-c-format
-msgid ""
-"On the client side, enums are treated the same as Strings. When setting the "
-"value for an enum parameter, simply use the String representation of the "
-"enum. Take the following component as an example:"
+msgid "On the client side, enums are treated the same as Strings. When setting the value for an enum parameter, simply use the String representation of the enum. Take the following component as an example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -956,114 +821,92 @@
 "  }    \n"
 "}"
 msgstr ""
+"@Name(\"paintAction\")\n"
+"public class paintAction implements paintLocal {\n"
+"  public enum Color {red, green, blue, yellow, orange, purple};\n"
+"\n"
+"  public void paint(Color color) {\n"
+"    // code\n"
+"  }    \n"
+"}"
 
 #. Tag: para
 #: Remoting.xml:377
 #, no-c-format
-msgid ""
-"To call the <literal>paint()</literal> method with the color <literal>red</"
-"literal>, pass the parameter value as a String literal:"
+msgid "To call the <literal>paint()</literal> method with the color <literal>red</literal>, pass the parameter value as a String literal:"
 msgstr ""
 
 #. Tag: programlisting
 #: Remoting.xml:380
 #, no-c-format
 msgid "Seam.Component.getInstance(\"paintAction\").paint(\"red\");"
-msgstr ""
+msgstr "Seam.Component.getInstance(\"paintAction\").paint(\"red\");"
 
 #. Tag: para
 #: Remoting.xml:382
 #, no-c-format
-msgid ""
-"The inverse is also true - that is, if a component method returns an enum "
-"parameter (or contains an enum field anywhere in the returned object graph) "
-"then on the client-side it will be represented as a String."
+msgid "The inverse is also true - that is, if a component method returns an enum parameter (or contains an enum field anywhere in the returned object graph) then on the client-side it will be represented as a String."
 msgstr ""
 
 #. Tag: title
 #: Remoting.xml:387
 #, no-c-format
 msgid "Collections"
-msgstr ""
+msgstr "Collections"
 
 #. Tag: title
 #: Remoting.xml:390
 #, no-c-format
 msgid "Bags"
-msgstr ""
+msgstr "Bags"
 
 #. Tag: para
 #: Remoting.xml:392
 #, no-c-format
-msgid ""
-"Bags cover all collection types including arrays, collections, lists, sets, "
-"(but excluding Maps - see the next section for those), and are implemented "
-"client-side as a Javascript array. When calling a component method that "
-"accepts one of these types as a parameter, your parameter should be a "
-"Javascript array. If a component method returns one of these types, then the "
-"return value will also be a Javascript array. The remoting framework is "
-"clever enough on the server side to convert the bag to an appropriate type "
-"for the component method call."
+msgid "Bags cover all collection types including arrays, collections, lists, sets, (but excluding Maps - see the next section for those), and are implemented client-side as a Javascript array. When calling a component method that accepts one of these types as a parameter, your parameter should be a Javascript array. If a component method returns one of these types, then the return value will also be a Javascript array. The remoting framework is clever enough on the server side to convert the bag to an appropriate type for the component method call."
 msgstr ""
 
 #. Tag: title
 #: Remoting.xml:401
 #, no-c-format
 msgid "Maps"
-msgstr ""
+msgstr "Maps"
 
 #. Tag: para
 #: Remoting.xml:403
 #, no-c-format
-msgid ""
-"As there is no native support for Maps within Javascript, a simple Map "
-"implementation is provided with the Seam Remoting framework. To create a Map "
-"which can be used as a parameter to a remote call, create a new "
-"<literal>Seam.Remoting.Map</literal> object:"
+msgid "As there is no native support for Maps within Javascript, a simple Map implementation is provided with the Seam Remoting framework. To create a Map which can be used as a parameter to a remote call, create a new <literal>Seam.Remoting.Map</literal> object:"
 msgstr ""
 
 #. Tag: programlisting
 #: Remoting.xml:407
 #, no-c-format
 msgid "var map = new Seam.Remoting.Map();"
-msgstr ""
+msgstr "var map = new Seam.Remoting.Map();"
 
 #. Tag: para
 #: Remoting.xml:409
 #, no-c-format
-msgid ""
-"This Javascript implementation provides basic methods for working with Maps: "
-"<literal>size()</literal>, <literal>isEmpty()</literal>, <literal>keySet()</"
-"literal>, <literal>values()</literal>, <literal>get(key)</literal>, "
-"<literal>put(key, value)</literal>, <literal>remove(key)</literal> and "
-"<literal>contains(key)</literal>. Each of these methods are equivalent to "
-"their Java counterpart. Where the method returns a collection, such as "
-"<literal>keySet()</literal> and <literal>values()</literal>, a Javascript "
-"Array object will be returned that contains the key or value objects "
-"(respectively)."
+msgid "This Javascript implementation provides basic methods for working with Maps: <literal>size()</literal>, <literal>isEmpty()</literal>, <literal>keySet()</literal>, <literal>values()</literal>, <literal>get(key)</literal>, <literal>put(key, value)</literal>, <literal>remove(key)</literal> and <literal>contains(key)</literal>. Each of these methods are equivalent to their Java counterpart. Where the method returns a collection, such as <literal>keySet()</literal> and <literal>values()</literal>, a Javascript Array object will be returned that contains the key or value objects (respectively)."
 msgstr ""
 
 #. Tag: title
 #: Remoting.xml:420
 #, no-c-format
 msgid "Debugging"
-msgstr ""
+msgstr "Debugging"
 
 #. Tag: para
 #: Remoting.xml:422
 #, no-c-format
-msgid ""
-"To aid in tracking down bugs, it is possible to enable a debug mode which "
-"will display the contents of all the packets send back and forth between the "
-"client and server in a popup window. To enable debug mode, either execute "
-"the <literal>setDebug()</literal> method in Javascript:"
+msgid "To aid in tracking down bugs, it is possible to enable a debug mode which will display the contents of all the packets send back and forth between the client and server in a popup window. To enable debug mode, either execute the <literal>setDebug()</literal> method in Javascript:"
 msgstr ""
 
 #. Tag: programlisting
 #: Remoting.xml:426
 #, no-c-format
 msgid "Seam.Remoting.setDebug(true);"
-msgstr ""
+msgstr "Seam.Remoting.setDebug(true);"
 
 #. Tag: para
 #: Remoting.xml:428
@@ -1075,32 +918,24 @@
 #: Remoting.xml:430
 #, no-c-format
 msgid "<![CDATA[<remoting:remoting debug=\"true\"/>]]>"
-msgstr ""
+msgstr "<![CDATA[<remoting:remoting debug=\"true\"/>]]>"
 
 #. Tag: para
 #: Remoting.xml:432
 #, no-c-format
-msgid ""
-"To turn off debugging, call <literal>setDebug(false)</literal>. If you want "
-"to write your own messages to the debug log, call <literal>Seam.Remoting.log"
-"(message)</literal>."
+msgid "To turn off debugging, call <literal>setDebug(false)</literal>. If you want to write your own messages to the debug log, call <literal>Seam.Remoting.log(message)</literal>."
 msgstr ""
 
 #. Tag: title
 #: Remoting.xml:437
 #, no-c-format
 msgid "Handling Exceptions"
-msgstr ""
+msgstr "Gestione delle eccezioni"
 
 #. Tag: para
 #: Remoting.xml:439
 #, no-c-format
-msgid ""
-"When invoking a remote component method, it is possible to specify an "
-"exception handler which will process the response in the event of an "
-"exception during component invocation. To specify an exception handler "
-"function, include a reference to it after the callback parameter in your "
-"JavaScript:"
+msgid "When invoking a remote component method, it is possible to specify an exception handler which will process the response in the event of an exception during component invocation. To specify an exception handler function, include a reference to it after the callback parameter in your JavaScript:"
 msgstr ""
 
 #. Tag: programlisting
@@ -1108,38 +943,33 @@
 #, no-c-format
 msgid ""
 "<![CDATA[var callback = function(result) { alert(result); };\n"
-"var exceptionHandler = function(ex) { alert(\"An exception occurred: \" + ex."
-"getMessage()); };\n"
-"Seam.Component.getInstance(\"helloAction\").sayHello(name, callback, "
-"exceptionHandler);]]>"
+"var exceptionHandler = function(ex) { alert(\"An exception occurred: \" + ex.getMessage()); };\n"
+"Seam.Component.getInstance(\"helloAction\").sayHello(name, callback, exceptionHandler);]]>"
 msgstr ""
+"<![CDATA[var callback = function(result) { alert(result); };\n"
+"var exceptionHandler = function(ex) { alert(\"An exception occurred: \" + ex.getMessage()); };\n"
+"Seam.Component.getInstance(\"helloAction\").sayHello(name, callback, exceptionHandler);]]>"
 
 #. Tag: para
 #: Remoting.xml:447
 #, no-c-format
-msgid ""
-"If you do not have a callback handler defined, you must specify "
-"<literal>null</literal> in its place:"
+msgid "If you do not have a callback handler defined, you must specify <literal>null</literal> in its place:"
 msgstr ""
 
 #. Tag: programlisting
 #: Remoting.xml:451
 #, no-c-format
 msgid ""
-"<![CDATA[var exceptionHandler = function(ex) { alert(\"An exception "
-"occurred: \" + ex.getMessage()); };\n"
-"Seam.Component.getInstance(\"helloAction\").sayHello(name, null, "
-"exceptionHandler);]]>"
+"<![CDATA[var exceptionHandler = function(ex) { alert(\"An exception occurred: \" + ex.getMessage()); };\n"
+"Seam.Component.getInstance(\"helloAction\").sayHello(name, null, exceptionHandler);]]>"
 msgstr ""
+"<![CDATA[var exceptionHandler = function(ex) { alert(\"An exception occurred: \" + ex.getMessage()); };\n"
+"Seam.Component.getInstance(\"helloAction\").sayHello(name, null, exceptionHandler);]]>"
 
 #. Tag: para
 #: Remoting.xml:453
 #, no-c-format
-msgid ""
-"The exception object that is passed to the exception handler exposes one "
-"method, <literal>getMessage()</literal> that returns the exception message "
-"which is produced by the exception thrown by the <literal>@WebRemote</"
-"literal> method."
+msgid "The exception object that is passed to the exception handler exposes one method, <literal>getMessage()</literal> that returns the exception message which is produced by the exception thrown by the <literal>@WebRemote</literal> method."
 msgstr ""
 
 #. Tag: title
@@ -1151,10 +981,7 @@
 #. Tag: para
 #: Remoting.xml:464
 #, no-c-format
-msgid ""
-"The default loading message that appears in the top right corner of the "
-"screen can be modified, its rendering customised or even turned off "
-"completely."
+msgid "The default loading message that appears in the top right corner of the screen can be modified, its rendering customised or even turned off completely."
 msgstr ""
 
 #. Tag: title
@@ -1166,9 +993,7 @@
 #. Tag: para
 #: Remoting.xml:470
 #, no-c-format
-msgid ""
-"To change the message from the default \"Please Wait...\" to something "
-"different, set the value of <literal>Seam.Remoting.loadingMessage</literal>:"
+msgid "To change the message from the default \"Please Wait...\" to something different, set the value of <literal>Seam.Remoting.loadingMessage</literal>:"
 msgstr ""
 
 #. Tag: programlisting
@@ -1186,11 +1011,7 @@
 #. Tag: para
 #: Remoting.xml:479
 #, no-c-format
-msgid ""
-"To completely suppress the display of the loading message, override the "
-"implementation of <literal>displayLoadingMessage()</literal> and "
-"<literal>hideLoadingMessage()</literal> with functions that instead do "
-"nothing:"
+msgid "To completely suppress the display of the loading message, override the implementation of <literal>displayLoadingMessage()</literal> and <literal>hideLoadingMessage()</literal> with functions that instead do nothing:"
 msgstr ""
 
 #. Tag: programlisting
@@ -1211,11 +1032,7 @@
 #. Tag: para
 #: Remoting.xml:489
 #, no-c-format
-msgid ""
-"It is also possible to override the loading indicator to display an animated "
-"icon, or anything else that you want. To do this override the "
-"<literal>displayLoadingMessage()</literal> and <literal>hideLoadingMessage()"
-"</literal> messages with your own implementation:"
+msgid "It is also possible to override the loading indicator to display an animated icon, or anything else that you want. To do this override the <literal>displayLoadingMessage()</literal> and <literal>hideLoadingMessage()</literal> messages with your own implementation:"
 msgstr ""
 
 #. Tag: programlisting
@@ -1230,6 +1047,13 @@
 "    // Write code here to hide the indicator\n"
 "  };"
 msgstr ""
+"Seam.Remoting.displayLoadingMessage = function() {\n"
+"    // Write code here to display the indicator\n"
+"  };\n"
+"  \n"
+"  Seam.Remoting.hideLoadingMessage = function() {\n"
+"    // Write code here to hide the indicator\n"
+"  };"
 
 #. Tag: title
 #: Remoting.xml:498
@@ -1240,37 +1064,19 @@
 #. Tag: para
 #: Remoting.xml:500
 #, no-c-format
-msgid ""
-"When a remote method is executed, the result is serialized into an XML "
-"response that is returned to the client. This response is then unmarshaled "
-"by the client into a Javascript object. For complex types (i.e. Javabeans) "
-"that include references to other objects, all of these referenced objects "
-"are also serialized as part of the response. These objects may reference "
-"other objects, which may reference other objects, and so forth. If left "
-"unchecked, this object \"graph\" could potentially be enormous, depending on "
-"what relationships exist between your objects. And as a side issue (besides "
-"the potential verbosity of the response), you might also wish to prevent "
-"sensitive information from being exposed to the client."
+msgid "When a remote method is executed, the result is serialized into an XML response that is returned to the client. This response is then unmarshaled by the client into a Javascript object. For complex types (i.e. Javabeans) that include references to other objects, all of these referenced objects are also serialized as part of the response. These objects may reference other objects, which may reference other objects, and so forth. If left unchecked, this object \"graph\" could potentially be enormous, depending on what relationships exist between your objects. And as a side issue (besides the potential verbosity of the response), you might also wish to prevent sensitive information from being exposed to the client."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:508
 #, no-c-format
-msgid ""
-"Seam Remoting provides a simple means to \"constrain\" the object graph, by "
-"specifying the <literal>exclude</literal> field of the remote method's "
-"<literal>@WebRemote</literal> annotation. This field accepts a String array "
-"containing one or more paths specified using dot notation. When invoking a "
-"remote method, the objects in the result's object graph that match these "
-"paths are excluded from the serialized result packet."
+msgid "Seam Remoting provides a simple means to \"constrain\" the object graph, by specifying the <literal>exclude</literal> field of the remote method's <literal>@WebRemote</literal> annotation. This field accepts a String array containing one or more paths specified using dot notation. When invoking a remote method, the objects in the result's object graph that match these paths are excluded from the serialized result packet."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:513
 #, no-c-format
-msgid ""
-"For all our examples, we'll use the following <literal>Widget</literal> "
-"class:"
+msgid "For all our examples, we'll use the following <literal>Widget</literal> class:"
 msgstr ""
 
 #. Tag: programlisting
@@ -1289,6 +1095,17 @@
 "  // getters and setters for all fields\n"
 "}"
 msgstr ""
+"@Name(\"widget\")\n"
+"public class Widget\n"
+"{\n"
+"  private String value;\n"
+"  private String secret;\n"
+"  private Widget child;\n"
+"  private Map&lt;String,Widget&gt; widgetMap;\n"
+"  private List&lt;Widget&gt; widgetList;\n"
+"  \n"
+"  // getters and setters for all fields\n"
+"}"
 
 #. Tag: title
 #: Remoting.xml:518
@@ -1299,10 +1116,7 @@
 #. Tag: para
 #: Remoting.xml:520
 #, no-c-format
-msgid ""
-"If your remote method returns an instance of <literal>Widget</literal>, but "
-"you don't want to expose the <literal>secret</literal> field because it "
-"contains sensitive information, you would constrain it like this:"
+msgid "If your remote method returns an instance of <literal>Widget</literal>, but you don't want to expose the <literal>secret</literal> field because it contains sensitive information, you would constrain it like this:"
 msgstr ""
 
 #. Tag: programlisting
@@ -1312,19 +1126,13 @@
 "@WebRemote(exclude = {\"secret\"})\n"
 "public Widget getWidget();"
 msgstr ""
+"@WebRemote(exclude = {\"secret\"})\n"
+"public Widget getWidget();"
 
 #. Tag: para
 #: Remoting.xml:525
 #, no-c-format
-msgid ""
-"The value \"secret\" refers to the <literal>secret</literal> field of the "
-"returned object. Now, suppose that we don't care about exposing this "
-"particular field to the client. Instead, notice that the <literal>Widget</"
-"literal> value that is returned has a field <literal>child</literal> that is "
-"also a <literal>Widget</literal>. What if we want to hide the "
-"<literal>child</literal>'s <literal>secret</literal> value instead? We can "
-"do this by using dot notation to specify this field's path within the "
-"result's object graph:"
+msgid "The value \"secret\" refers to the <literal>secret</literal> field of the returned object. Now, suppose that we don't care about exposing this particular field to the client. Instead, notice that the <literal>Widget</literal> value that is returned has a field <literal>child</literal> that is also a <literal>Widget</literal>. What if we want to hide the <literal>child</literal>'s <literal>secret</literal> value instead? We can do this by using dot notation to specify this field's path within the result's object graph:"
 msgstr ""
 
 #. Tag: programlisting
@@ -1334,6 +1142,8 @@
 "@WebRemote(exclude = {\"child.secret\"})\n"
 "public Widget getWidget();"
 msgstr ""
+"@WebRemote(exclude = {\"child.secret\"})\n"
+"public Widget getWidget();"
 
 #. Tag: title
 #: Remoting.xml:537
@@ -1344,15 +1154,7 @@
 #. Tag: para
 #: Remoting.xml:539
 #, no-c-format
-msgid ""
-"The other place that objects can exist within an object graph are within a "
-"<literal>Map</literal> or some kind of collection (<literal>List</literal>, "
-"<literal>Set</literal>, <literal>Array</literal>, etc). Collections are "
-"easy, and are treated like any other field. For example, if our "
-"<literal>Widget</literal> contained a list of other <literal>Widget</"
-"literal>s in its <literal>widgetList</literal> field, to constrain the "
-"<literal>secret</literal> field of the <literal>Widget</literal>s in this "
-"list the annotation would look like this:"
+msgid "The other place that objects can exist within an object graph are within a <literal>Map</literal> or some kind of collection (<literal>List</literal>, <literal>Set</literal>, <literal>Array</literal>, etc). Collections are easy, and are treated like any other field. For example, if our <literal>Widget</literal> contained a list of other <literal>Widget</literal>s in its <literal>widgetList</literal> field, to constrain the <literal>secret</literal> field of the <literal>Widget</literal>s in this list the annotation would look like this:"
 msgstr ""
 
 #. Tag: programlisting
@@ -1362,18 +1164,13 @@
 "@WebRemote(exclude = {\"widgetList.secret\"})\n"
 "public Widget getWidget();"
 msgstr ""
+"@WebRemote(exclude = {\"widgetList.secret\"})\n"
+"public Widget getWidget();"
 
 #. Tag: para
 #: Remoting.xml:548
 #, no-c-format
-msgid ""
-"To constrain a <literal>Map</literal>'s key or value, the notation is "
-"slightly different. Appending <literal>[key]</literal> after the "
-"<literal>Map</literal>'s field name will constrain the <literal>Map</"
-"literal>'s key object values, while <literal>[value]</literal> will "
-"constrain the value object values. The following example demonstrates how "
-"the values of the <literal>widgetMap</literal> field have their "
-"<literal>secret</literal> field constrained:"
+msgid "To constrain a <literal>Map</literal>'s key or value, the notation is slightly different. Appending <literal>[key]</literal> after the <literal>Map</literal>'s field name will constrain the <literal>Map</literal>'s key object values, while <literal>[value]</literal> will constrain the value object values. The following example demonstrates how the values of the <literal>widgetMap</literal> field have their <literal>secret</literal> field constrained:"
 msgstr ""
 
 #. Tag: programlisting
@@ -1383,6 +1180,8 @@
 "@WebRemote(exclude = {\"widgetMap[value].secret\"})\n"
 "public Widget getWidget();"
 msgstr ""
+"@WebRemote(exclude = {\"widgetMap[value].secret\"})\n"
+"public Widget getWidget();"
 
 #. Tag: title
 #: Remoting.xml:558
@@ -1393,12 +1192,7 @@
 #. Tag: para
 #: Remoting.xml:560
 #, no-c-format
-msgid ""
-"There is one last notation that can be used to constrain the fields of a "
-"type of object no matter where in the result's object graph it appears. This "
-"notation uses either the name of the component (if the object is a Seam "
-"component) or the fully qualified class name (only if the object is not a "
-"Seam component) and is expressed using square brackets:"
+msgid "There is one last notation that can be used to constrain the fields of a type of object no matter where in the result's object graph it appears. This notation uses either the name of the component (if the object is a Seam component) or the fully qualified class name (only if the object is not a Seam component) and is expressed using square brackets:"
 msgstr ""
 
 #. Tag: programlisting
@@ -1408,6 +1202,8 @@
 "@WebRemote(exclude = {\"[widget].secret\"})\n"
 "public Widget getWidget();"
 msgstr ""
+"@WebRemote(exclude = {\"[widget].secret\"})\n"
+"public Widget getWidget();"
 
 #. Tag: title
 #: Remoting.xml:570
@@ -1418,9 +1214,7 @@
 #. Tag: para
 #: Remoting.xml:572
 #, no-c-format
-msgid ""
-"Constraints can also be combined, to filter objects from multiple paths "
-"within the object graph:"
+msgid "Constraints can also be combined, to filter objects from multiple paths within the object graph:"
 msgstr ""
 
 #. Tag: programlisting
@@ -1430,39 +1224,33 @@
 "@WebRemote(exclude = {\"widgetList.secret\", \"widgetMap[value].secret\"})\n"
 "public Widget getWidget();"
 msgstr ""
+"@WebRemote(exclude = {\"widgetList.secret\", \"widgetMap[value].secret\"})\n"
+"public Widget getWidget();"
 
 #. Tag: title
 #: Remoting.xml:580
 #, no-c-format
 msgid "JMS Messaging"
-msgstr ""
+msgstr "Messaggistica JMS"
 
 #. Tag: para
 #: Remoting.xml:582
 #, no-c-format
-msgid ""
-"Seam Remoting provides experimental support for JMS Messaging. This section "
-"describes the JMS support that is currently implemented, but please note "
-"that this may change in the future. It is currently not recommended that "
-"this feature is used within a production environment."
+msgid "Seam Remoting provides experimental support for JMS Messaging. This section describes the JMS support that is currently implemented, but please note that this may change in the future. It is currently not recommended that this feature is used within a production environment."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:589
 #, no-c-format
-msgid ""
-"Before you can subscribe to a JMS topic, you must first configure a list of "
-"the topics that can be subscribed to by Seam Remoting. List the topics under "
-"<literal>org.jboss.seam.remoting.messaging.subscriptionRegistry."
-"allowedTopics</literal> in <literal>seam.properties</literal>, <literal>web."
-"xml</literal> or <literal>components.xml</literal>."
+msgid "Before you can subscribe to a JMS topic, you must first configure a list of the topics that can be subscribed to by Seam Remoting. List the topics under <literal>org.jboss.seam.remoting.messaging.subscriptionRegistry.allowedTopics</literal> in <literal>seam.properties</literal>, <literal>web.xml</literal> or <literal>components.xml</literal>."
 msgstr ""
 
 #. Tag: programlisting
-#: Remoting.xml:594 Remoting.xml:649
+#: Remoting.xml:594
+#: Remoting.xml:649
 #, no-c-format
 msgid "<![CDATA[<remoting:remoting poll-timeout=\"5\" poll-interval=\"1\"/>]]>"
-msgstr ""
+msgstr "<![CDATA[<remoting:remoting poll-timeout=\"5\" poll-interval=\"1\"/>]]>"
 
 #. Tag: title
 #: Remoting.xml:599
@@ -1488,30 +1276,24 @@
 "\n"
 "Seam.Remoting.subscribe(\"topicName\", subscriptionCallback);"
 msgstr ""
+"function subscriptionCallback(message)\n"
+"{\n"
+"  if (message instanceof Seam.Remoting.TextMessage)\n"
+"    alert(\"Received message: \" + message.getText());\n"
+"}           \n"
+"\n"
+"Seam.Remoting.subscribe(\"topicName\", subscriptionCallback);"
 
 #. Tag: para
 #: Remoting.xml:605
 #, no-c-format
-msgid ""
-"The <literal>Seam.Remoting.subscribe()</literal> method accepts two "
-"parameters, the first being the name of the JMS Topic to subscribe to, the "
-"second being the callback function to invoke when a message is received."
+msgid "The <literal>Seam.Remoting.subscribe()</literal> method accepts two parameters, the first being the name of the JMS Topic to subscribe to, the second being the callback function to invoke when a message is received."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:608
 #, no-c-format
-msgid ""
-"There are two types of messages supported, Text messages and Object "
-"messages. If you need to test for the type of message that is passed to your "
-"callback function you can use the <literal>instanceof</literal> operator to "
-"test whether the message is a <literal>Seam.Remoting.TextMessage</literal> "
-"or <literal>Seam.Remoting.ObjectMessage</literal>. A <literal>TextMessage</"
-"literal> contains the text value in its <literal>text</literal> field (or "
-"alternatively call <literal>getText()</literal> on it), while an "
-"<literal>ObjectMessage</literal> contains its object value in its "
-"<literal>value</literal> field (or call its <literal>getValue()</literal> "
-"method)."
+msgid "There are two types of messages supported, Text messages and Object messages. If you need to test for the type of message that is passed to your callback function you can use the <literal>instanceof</literal> operator to test whether the message is a <literal>Seam.Remoting.TextMessage</literal> or <literal>Seam.Remoting.ObjectMessage</literal>. A <literal>TextMessage</literal> contains the text value in its <literal>text</literal> field (or alternatively call <literal>getText()</literal> on it), while an <literal>ObjectMessage</literal> contains its object value in its <literal>value</literal> field (or call its <literal>getValue()</literal> method)."
 msgstr ""
 
 #. Tag: title
@@ -1523,16 +1305,14 @@
 #. Tag: para
 #: Remoting.xml:620
 #, no-c-format
-msgid ""
-"To unsubscribe from a topic, call <literal>Seam.Remoting.unsubscribe()</"
-"literal> and pass in the topic name:"
+msgid "To unsubscribe from a topic, call <literal>Seam.Remoting.unsubscribe()</literal> and pass in the topic name:"
 msgstr ""
 
 #. Tag: programlisting
 #: Remoting.xml:623
 #, no-c-format
 msgid "Seam.Remoting.unsubscribe(\"topicName\");"
-msgstr ""
+msgstr "Seam.Remoting.unsubscribe(\"topicName\");"
 
 #. Tag: title
 #: Remoting.xml:627
@@ -1543,66 +1323,47 @@
 #. Tag: para
 #: Remoting.xml:629
 #, no-c-format
-msgid ""
-"There are two parameters which you can modify to control how polling occurs. "
-"The first one is <literal>Seam.Remoting.pollInterval</literal>, which "
-"controls how long to wait between subsequent polls for new messages. This "
-"parameter is expressed in seconds, and its default setting is 10."
+msgid "There are two parameters which you can modify to control how polling occurs. The first one is <literal>Seam.Remoting.pollInterval</literal>, which controls how long to wait between subsequent polls for new messages. This parameter is expressed in seconds, and its default setting is 10."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:633
 #, no-c-format
-msgid ""
-"The second parameter is <literal>Seam.Remoting.pollTimeout</literal>, and is "
-"also expressed as seconds. It controls how long a request to the server "
-"should wait for a new message before timing out and sending an empty "
-"response. Its default is 0 seconds, which means that when the server is "
-"polled, if there are no messages ready for delivery then an empty response "
-"will be immediately returned."
+msgid "The second parameter is <literal>Seam.Remoting.pollTimeout</literal>, and is also expressed as seconds. It controls how long a request to the server should wait for a new message before timing out and sending an empty response. Its default is 0 seconds, which means that when the server is polled, if there are no messages ready for delivery then an empty response will be immediately returned."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:638
 #, no-c-format
-msgid ""
-"Caution should be used when setting a high <literal>pollTimeout</literal> "
-"value; each request that has to wait for a message means that a server "
-"thread is tied up until a message is received, or until the request times "
-"out. If many such requests are being served simultaneously, it could mean a "
-"large number of threads become tied up because of this reason."
+msgid "Caution should be used when setting a high <literal>pollTimeout</literal> value; each request that has to wait for a message means that a server thread is tied up until a message is received, or until the request times out. If many such requests are being served simultaneously, it could mean a large number of threads become tied up because of this reason."
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:643
 #, no-c-format
-msgid ""
-"It is recommended that you set these options via components.xml, however "
-"they can be overridden via Javascript if desired. The following example "
-"demonstrates how to configure the polling to occur much more aggressively. "
-"You should set these parameters to suitable values for your application:"
+msgid "It is recommended that you set these options via components.xml, however they can be overridden via Javascript if desired. The following example demonstrates how to configure the polling to occur much more aggressively. You should set these parameters to suitable values for your application:"
 msgstr ""
 
 #. Tag: para
 #: Remoting.xml:647
 #, no-c-format
 msgid "Via components.xml:"
-msgstr ""
+msgstr "Via components.xml:"
 
 #. Tag: para
 #: Remoting.xml:651
 #, no-c-format
 msgid "Via JavaScript:"
-msgstr ""
+msgstr "Via JavaScript:"
 
 #. Tag: programlisting
 #: Remoting.xml:653
 #, no-c-format
 msgid ""
-"// Only wait 1 second between receiving a poll response and sending the next "
-"poll request.\n"
+"// Only wait 1 second between receiving a poll response and sending the next poll request.\n"
 "Seam.Remoting.pollInterval = 1;\n"
 "  \n"
 "// Wait up to 5 seconds on the server for new messages\n"
 "Seam.Remoting.pollTimeout = 5;"
 msgstr ""
+

Modified: trunk/doc/Seam_Reference_Guide/it-IT/Security.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/it-IT/Security.po	2008-12-17 08:13:31 UTC (rev 9793)
+++ trunk/doc/Seam_Reference_Guide/it-IT/Security.po	2008-12-17 10:16:42 UTC (rev 9794)
@@ -6,8 +6,8 @@
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-12-04 00:58+0000\n"
-"PO-Revision-Date: 2008-04-04 01:24+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2008-12-17 11:16+0100\n"
+"Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -17,69 +17,55 @@
 #: Security.xml:4
 #, no-c-format
 msgid "Security"
-msgstr ""
+msgstr "Sicurezza"
 
 #. Tag: title
 #: Security.xml:7
 #, no-c-format
 msgid "Overview"
-msgstr ""
+msgstr "Panoramica"
 
 #. Tag: para
 #: Security.xml:9
 #, no-c-format
-msgid ""
-"The Seam Security API provides a multitude of security-related features for "
-"your Seam-based application, covering such areas as:"
+msgid "The Seam Security API provides a multitude of security-related features for your Seam-based application, covering such areas as:"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:16
 #, no-c-format
-msgid ""
-"Authentication - an extensible, JAAS-based authentication layer that allows "
-"users to authenticate against any security provider."
+msgid "Authentication - an extensible, JAAS-based authentication layer that allows users to authenticate against any security provider."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:22
 #, no-c-format
-msgid ""
-"Identity Management - an API for managing a Seam application's users and "
-"roles at runtime."
+msgid "Identity Management - an API for managing a Seam application's users and roles at runtime."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:27
 #, no-c-format
-msgid ""
-"Authorization - an extremely comprehensive authorization framework, "
-"supporting user roles, persistent and rule-based permissions, and a "
-"pluggable permission resolver for easily implementing customised security "
-"logic."
+msgid "Authorization - an extremely comprehensive authorization framework, supporting user roles, persistent and rule-based permissions, and a pluggable permission resolver for easily implementing customised security logic."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:33
 #, no-c-format
-msgid ""
-"Permission Management - a set of built-in Seam components to allow easy "
-"management of an application's security policy."
+msgid "Permission Management - a set of built-in Seam components to allow easy management of an application's security policy."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:39
 #, no-c-format
-msgid ""
-"CAPTCHA support - to assist in the prevention of automated software/scripts "
-"abusing your Seam-based site."
+msgid "CAPTCHA support - to assist in the prevention of automated software/scripts abusing your Seam-based site."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:44
 #, no-c-format
 msgid "And much more"
-msgstr ""
+msgstr "E molto altro"
 
 #. Tag: para
 #: Security.xml:50
@@ -91,19 +77,12 @@
 #: Security.xml:57
 #, no-c-format
 msgid "Disabling Security"
-msgstr ""
+msgstr "Disabilitare la sicurezza"
 
 #. Tag: para
 #: Security.xml:59
 #, no-c-format
-msgid ""
-"In some situations it may be necessary to disable Seam Security, for "
-"instances during unit tests or because you are using a different approach to "
-"security, such as native JAAS. Simply call the static method "
-"<literal>Identity.setSecurityEnabled(false)</literal> to disable the "
-"security infrastructure. Of course, it's not very convenient to have to call "
-"a static method when you want to configure the application, so as an "
-"alternative you can control this setting in components.xml:"
+msgid "In some situations it may be necessary to disable Seam Security, for instances during unit tests or because you are using a different approach to security, such as native JAAS. Simply call the static method <literal>Identity.setSecurityEnabled(false)</literal> to disable the security infrastructure. Of course, it's not very convenient to have to call a static method when you want to configure the application, so as an alternative you can control this setting in components.xml:"
 msgstr ""
 
 #. Tag: para
@@ -139,30 +118,19 @@
 #. Tag: para
 #: Security.xml:85
 #, no-c-format
-msgid ""
-"Assuming you are planning to take advantage of what Seam Security has to "
-"offer, the rest of this chapter documents the plethora of options you have "
-"for giving your user an identity in the eyes of the security model "
-"(authentication) and locking down the application by establishing "
-"constraints (authorization). Let's begin with the task of authentication "
-"since that's the foundation of any security model."
+msgid "Assuming you are planning to take advantage of what Seam Security has to offer, the rest of this chapter documents the plethora of options you have for giving your user an identity in the eyes of the security model (authentication) and locking down the application by establishing constraints (authorization). Let's begin with the task of authentication since that's the foundation of any security model."
 msgstr ""
 
 #. Tag: title
 #: Security.xml:95
 #, no-c-format
 msgid "Authentication"
-msgstr ""
+msgstr "Autenticazione"
 
 #. Tag: para
 #: Security.xml:97
 #, no-c-format
-msgid ""
-"The authentication features provided by Seam Security are built upon JAAS "
-"(Java Authentication and Authorization Service), and as such provide a "
-"robust and highly configurable API for handling user authentication. "
-"However, for less complex authentication requirements Seam offers a much "
-"more simplified method of authentication that hides the complexity of JAAS."
+msgid "The authentication features provided by Seam Security are built upon JAAS (Java Authentication and Authorization Service), and as such provide a robust and highly configurable API for handling user authentication. However, for less complex authentication requirements Seam offers a much more simplified method of authentication that hides the complexity of JAAS."
 msgstr ""
 
 #. Tag: title
@@ -174,26 +142,13 @@
 #. Tag: para
 #: Security.xml:107
 #, no-c-format
-msgid ""
-"If you use Seam's Identity Management features (discussed later in this "
-"chapter) then it is not necessary to create an authenticator component (and "
-"you can skip this section)."
+msgid "If you use Seam's Identity Management features (discussed later in this chapter) then it is not necessary to create an authenticator component (and you can skip this section)."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:113
 #, no-c-format
-msgid ""
-"The simplified authentication method provided by Seam uses a built-in JAAS "
-"login module, <literal>SeamLoginModule</literal>, which delegates "
-"authentication to one of your own Seam components. This login module is "
-"already configured inside Seam as part of a default application policy and "
-"as such does not require any additional configuration files. It allows you "
-"to write an authentication method using the entity classes that are provided "
-"by your own application, or alternatively to authenticate with some other "
-"third party provider. Configuring this simplified form of authentication "
-"requires the <literal>identity</literal> component to be configured in "
-"<literal>components.xml</literal>:"
+msgid "The simplified authentication method provided by Seam uses a built-in JAAS login module, <literal>SeamLoginModule</literal>, which delegates authentication to one of your own Seam components. This login module is already configured inside Seam as part of a default application policy and as such does not require any additional configuration files. It allows you to write an authentication method using the entity classes that are provided by your own application, or alternatively to authenticate with some other third party provider. Configuring this simplified form of authentication requires the <literal>identity</literal> component to be configured in <literal>components.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
@@ -205,25 +160,29 @@
 "            xmlns:security=\"http://jboss.com/products/seam/security\"\n"
 "            xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
 "            xsi:schemaLocation=\n"
-"                \"http://jboss.com/products/seam/components http://jboss.com/"
-"products/seam/components-2.1.xsd\n"
-"                 http://jboss.com/products/seam/security http://jboss.com/"
-"products/seam/security-2.1.xsd\">\n"
+"                \"http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd\n"
+"                 http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.1.xsd\">\n"
 "\n"
-"    <security:identity authenticate-method=\"#{authenticator.authenticate}\"/"
-">\n"
+"    <security:identity authenticate-method=\"#{authenticator.authenticate}\"/>\n"
 "\n"
 "</components>]]>"
 msgstr ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+"            xmlns:core=\"http://jboss.com/products/seam/core\"\n"
+"            xmlns:security=\"http://jboss.com/products/seam/security\"\n"
+"            xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"            xsi:schemaLocation=\n"
+"                \"http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd\n"
+"                 http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.1.xsd\">\n"
+"\n"
+"    <security:identity authenticate-method=\"#{authenticator.authenticate}\"/>\n"
+"\n"
+"</components>]]>"
 
 #. Tag: para
 #: Security.xml:124
 #, no-c-format
-msgid ""
-"The EL expression <literal>#{authenticator.authenticate}</literal> is a "
-"method binding that indicates the <literal>authenticate</literal> method of "
-"the <literal>authenticator</literal> component will be used to authenticate "
-"the user."
+msgid "The EL expression <literal>#{authenticator.authenticate}</literal> is a method binding that indicates the <literal>authenticate</literal> method of the <literal>authenticator</literal> component will be used to authenticate the user."
 msgstr ""
 
 #. Tag: title
@@ -235,19 +194,7 @@
 #. Tag: para
 #: Security.xml:135
 #, no-c-format
-msgid ""
-"The <literal>authenticate-method</literal> property specified for "
-"<literal>identity</literal> in <literal>components.xml</literal> specifies "
-"which method will be used by <literal>SeamLoginModule</literal> to "
-"authenticate users. This method takes no parameters, and is expected to "
-"return a boolean, which indicates whether authentication is successful or "
-"not. The user's username and password can be obtained from "
-"<literal>Credentials.getUsername()</literal> and <literal>Credentials."
-"getPassword()</literal>, respectively (you can get a reference to the "
-"<literal>credentials</literal> component via <literal>Identity.instance()."
-"getCredentials()</literal>). Any roles that the user is a member of should "
-"be assigned using <literal>Identity.addRole()</literal>. Here's a complete "
-"example of an authentication method inside a POJO component:"
+msgid "The <literal>authenticate-method</literal> property specified for <literal>identity</literal> in <literal>components.xml</literal> specifies which method will be used by <literal>SeamLoginModule</literal> to authenticate users. This method takes no parameters, and is expected to return a boolean, which indicates whether authentication is successful or not. The user's username and password can be obtained from <literal>Credentials.getUsername()</literal> and <literal>Credentials.getPassword()</literal>, respectively (you can get a reference to the <literal>credentials</literal> component via <literal>Identity.instance().getCredentials()</literal>). Any roles that the user is a member of should be assigned using <literal>Identity.addRole()</literal>. Here's a complete example of an authentication method inside a POJO component:"
 msgstr ""
 
 #. Tag: programlisting
@@ -263,8 +210,7 @@
 "   public boolean authenticate() {\n"
 "      try {\n"
 "         User user = (User) entityManager.createQuery(\n"
-"            \"from User where username = :username and password = :password"
-"\")\n"
+"            \"from User where username = :username and password = :password\")\n"
 "            .setParameter(\"username\", credentials.getUsername())\n"
 "            .setParameter(\"password\", credentials.getPassword())\n"
 "            .getSingleResult();\n"
@@ -284,64 +230,63 @@
 "\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Name(\"authenticator\")\n"
+"public class Authenticator {\n"
+"   @In EntityManager entityManager;\n"
+"   @In Credentials credentials;\n"
+"   @In Identity identity;\n"
+"\n"
+"   public boolean authenticate() {\n"
+"      try {\n"
+"         User user = (User) entityManager.createQuery(\n"
+"            \"from User where username = :username and password = :password\")\n"
+"            .setParameter(\"username\", credentials.getUsername())\n"
+"            .setParameter(\"password\", credentials.getPassword())\n"
+"            .getSingleResult();\n"
+"\n"
+"         if (user.getRoles() != null) {\n"
+"            for (UserRole mr : user.getRoles())\n"
+"               identity.addRole(mr.getName());\n"
+"         }\n"
+"\n"
+"         return true;\n"
+"      }\n"
+"      catch (NoResultException ex) {\n"
+"         return false;\n"
+"      }\n"
+"\n"
+"   }\n"
+"\n"
+"}]]>"
 
 #. Tag: para
 #: Security.xml:149
 #, no-c-format
-msgid ""
-"In the above example, both <literal>User</literal> and <literal>UserRole</"
-"literal> are application-specific entity beans. The <literal>roles</literal> "
-"parameter is populated with the roles that the user is a member of, which "
-"should be added to the <literal>Set</literal> as literal string values, e.g. "
-"\"admin\", \"user\". In this case, if the user record is not found and a "
-"<literal>NoResultException</literal> thrown, the authentication method "
-"returns <literal>false</literal> to indicate the authentication failed."
+msgid "In the above example, both <literal>User</literal> and <literal>UserRole</literal> are application-specific entity beans. The <literal>roles</literal> parameter is populated with the roles that the user is a member of, which should be added to the <literal>Set</literal> as literal string values, e.g. \"admin\", \"user\". In this case, if the user record is not found and a <literal>NoResultException</literal> thrown, the authentication method returns <literal>false</literal> to indicate the authentication failed."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:158
 #, no-c-format
-msgid ""
-"When writing an authenticator method, it is important that it is kept "
-"minimal and free from any side-effects. This is because there is no "
-"guarantee as to how many times the authenticator method will be called by "
-"the security API, and as such it may be invoked multiple times during a "
-"single request. Because of this, any special code that should execute upon a "
-"successful or failed authentication should be written by implementing an "
-"event observer. See the section on Security Events further down in this "
-"chapter for more information about which events are raised by Seam Security."
+msgid "When writing an authenticator method, it is important that it is kept minimal and free from any side-effects. This is because there is no guarantee as to how many times the authenticator method will be called by the security API, and as such it may be invoked multiple times during a single request. Because of this, any special code that should execute upon a successful or failed authentication should be written by implementing an event observer. See the section on Security Events further down in this chapter for more information about which events are raised by Seam Security."
 msgstr ""
 
 #. Tag: title
 #: Security.xml:170
 #, no-c-format
 msgid "Identity.addRole()"
-msgstr ""
+msgstr "Identity.addRole()"
 
 #. Tag: para
 #: Security.xml:172
 #, no-c-format
-msgid ""
-"The <literal>Identity.addRole()</literal> method behaves differently "
-"depending on whether the current session is authenticated or not. If the "
-"session is not authenticated, then <literal>addRole()</literal> should "
-"<emphasis>only</emphasis> be called during the authentication process. When "
-"called here, the role name is placed into a temporary list of pre-"
-"authenticated roles. Once authentication is successful, the pre-"
-"authenticated roles then become \"real\" roles, and calling "
-"<literal>Identity.hasRole()</literal> for those roles will then return true. "
-"The following sequence diagram represents the list of pre-authenticated "
-"roles as a first class object to show more clearly how it fits in to the "
-"authentication process."
+msgid "The <literal>Identity.addRole()</literal> method behaves differently depending on whether the current session is authenticated or not. If the session is not authenticated, then <literal>addRole()</literal> should <emphasis>only</emphasis> be called during the authentication process. When called here, the role name is placed into a temporary list of pre-authenticated roles. Once authentication is successful, the pre-authenticated roles then become \"real\" roles, and calling <literal>Identity.hasRole()</literal> for those roles will then return true. The following sequence diagram represents the list of pre-authenticated roles as a first class object to show more clearly how it fits in to the authentication process."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:192
 #, no-c-format
-msgid ""
-"If the current session is already authenticated, then calling "
-"<literal>Identity.addRole()</literal> will have the expected effect of "
-"immediately granting the specified role to the current user."
+msgid "If the current session is already authenticated, then calling <literal>Identity.addRole()</literal> will have the expected effect of immediately granting the specified role to the current user."
 msgstr ""
 
 #. Tag: title
@@ -353,10 +298,7 @@
 #. Tag: para
 #: Security.xml:202
 #, no-c-format
-msgid ""
-"Say for example, that upon a successful login that some user statistics must "
-"be updated. This would be done by writing an event observer for the "
-"<literal>org.jboss.seam.security.loginSuccessful</literal> event, like this:"
+msgid "Say for example, that upon a successful login that some user statistics must be updated. This would be done by writing an event observer for the <literal>org.jboss.seam.security.loginSuccessful</literal> event, like this:"
 msgstr ""
 
 #. Tag: programlisting
@@ -372,14 +314,19 @@
 "      userStats.incrementLoginCount();\n"
 "   }]]>"
 msgstr ""
+"<![CDATA[   @In UserStats userStats;\n"
+"\n"
+"   @Observer(\"org.jboss.seam.security.loginSuccessful\")\n"
+"   public void updateUserStats()\n"
+"   {\n"
+"      userStats.setLastLoginDate(new Date());\n"
+"      userStats.incrementLoginCount();\n"
+"   }]]>"
 
 #. Tag: para
 #: Security.xml:210
 #, no-c-format
-msgid ""
-"This observer method can be placed anywhere, even in the Authenticator "
-"component itself. You can find more information about security-related "
-"events later in this chapter."
+msgid "This observer method can be placed anywhere, even in the Authenticator component itself. You can find more information about security-related events later in this chapter."
 msgstr ""
 
 #. Tag: title
@@ -391,14 +338,7 @@
 #. Tag: para
 #: Security.xml:221
 #, no-c-format
-msgid ""
-"The <literal>credentials</literal> component provides both "
-"<literal>username</literal> and <literal>password</literal> properties, "
-"catering for the most common authentication scenario. These properties can "
-"be bound directly to the username and password fields on a login form. Once "
-"these properties are set, calling <literal>identity.login()</literal> will "
-"authenticate the user using the provided credentials. Here's an example of a "
-"simple login form:"
+msgid "The <literal>credentials</literal> component provides both <literal>username</literal> and <literal>password</literal> properties, catering for the most common authentication scenario. These properties can be bound directly to the username and password fields on a login form. Once these properties are set, calling <literal>identity.login()</literal> will authenticate the user using the provided credentials. Here's an example of a simple login form:"
 msgstr ""
 
 #. Tag: programlisting
@@ -419,14 +359,24 @@
 "    <h:commandButton value=\"Login\" action=\"#{identity.login}\"/>\n"
 "</div>]]>"
 msgstr ""
+"<![CDATA[<div>\n"
+"    <h:outputLabel for=\"name\" value=\"Username\"/>\n"
+"    <h:inputText id=\"name\" value=\"#{credentials.username}\"/>\n"
+"</div>\n"
+"\n"
+"<div>\n"
+"    <h:outputLabel for=\"password\" value=\"Password\"/>\n"
+"    <h:inputSecret id=\"password\" value=\"#{credentials.password}\"/>\n"
+"</div>\n"
+"\n"
+"<div>\n"
+"    <h:commandButton value=\"Login\" action=\"#{identity.login}\"/>\n"
+"</div>]]>"
 
 #. Tag: para
 #: Security.xml:231
 #, no-c-format
-msgid ""
-"Similarly, logging out the user is done by calling <literal>#{identity."
-"logout}</literal>. Calling this action will clear the security state of the "
-"currently authenticated user, and invalidate the user's session."
+msgid "Similarly, logging out the user is done by calling <literal>#{identity.logout}</literal>. Calling this action will clear the security state of the currently authenticated user, and invalidate the user's session."
 msgstr ""
 
 #. Tag: title
@@ -438,15 +388,13 @@
 #. Tag: para
 #: Security.xml:240
 #, no-c-format
-msgid ""
-"So to sum up, there are the three easy steps to configure authentication:"
+msgid "So to sum up, there are the three easy steps to configure authentication:"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:246
 #, no-c-format
-msgid ""
-"Configure an authentication method in <literal>components.xml</literal>."
+msgid "Configure an authentication method in <literal>components.xml</literal>."
 msgstr ""
 
 #. Tag: para
@@ -465,83 +413,42 @@
 #: Security.xml:265
 #, no-c-format
 msgid "Remember Me"
-msgstr ""
+msgstr "Ricordami"
 
 #. Tag: para
 #: Security.xml:267
 #, no-c-format
-msgid ""
-"Seam Security supports the same kind of \"Remember Me\" functionality that "
-"is commonly encountered in many online web-based applications. It is "
-"actually supported in two different \"flavours\", or modes - the first mode "
-"allows the username to be stored in the user's browser as a cookie, and "
-"leaves the entering of the password up to the browser (many modern browsers "
-"are capable of remembering passwords)."
+msgid "Seam Security supports the same kind of \"Remember Me\" functionality that is commonly encountered in many online web-based applications. It is actually supported in two different \"flavours\", or modes - the first mode allows the username to be stored in the user's browser as a cookie, and leaves the entering of the password up to the browser (many modern browsers are capable of remembering passwords)."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:274
 #, no-c-format
-msgid ""
-"The second mode supports the storing of a unique token in a cookie, and "
-"allows a user to authenticate automatically upon returning to the site, "
-"without having to provide a password."
+msgid "The second mode supports the storing of a unique token in a cookie, and allows a user to authenticate automatically upon returning to the site, without having to provide a password."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:280
 #, no-c-format
-msgid ""
-"Automatic client authentication with a persistent cookie stored on the "
-"client machine is dangerous. While convenient for users, any cross-site "
-"scripting security hole in your website would have dramatically more serious "
-"effects than usual. Without the authentication cookie, the only cookie to "
-"steal for an attacker with XSS is the cookie of the current session of a "
-"user. This means the attack only works when the user has an open session - "
-"which should be a short timespan. However, it is much more attractive and "
-"dangerous if an attacker has the possibility to steal a persistent Remember "
-"Me cookie that allows him to login without authentication, at any time. Note "
-"that this all depends on how well you protect your website against XSS "
-"attacks - it's up to you to make sure that your website is 100% XSS safe - a "
-"non-trival achievement for any website that allows user input to be rendered "
-"on a page."
+msgid "Automatic client authentication with a persistent cookie stored on the client machine is dangerous. While convenient for users, any cross-site scripting security hole in your website would have dramatically more serious effects than usual. Without the authentication cookie, the only cookie to steal for an attacker with XSS is the cookie of the current session of a user. This means the attack only works when the user has an open session - which should be a short timespan. However, it is much more attractive and dangerous if an attacker has the possibility to steal a persistent Remember Me cookie that allows him to login without authentication, at any time. Note that this all depends on how well you protect your website against XSS attacks - it's up to you to make sure that your website is 100% XSS safe - a non-trival achievement for any website that allows user input to be rendered on a page."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:291
 #, no-c-format
-msgid ""
-"Browser vendors recognized this issue and introduced a \"Remember Passwords"
-"\" feature - today almost all browsers support this. Here, the browser "
-"remembers the login username and password for a particular website and "
-"domain, and fills out the login form automatically when you don't have an "
-"active session with the website. If you as a website designer then offer a "
-"convenient login keyboard shortcut, this approach is almost as convenient as "
-"a \"Remember Me\" cookie and much safer. Some browsers (e.g. Safari on OS X) "
-"even store the login form data in the encrypted global operation system "
-"keychain. Or, in a networked environment, the keychain can be transported "
-"with the user (between laptop and desktop for example), while browser "
-"cookies are usually not synchronized."
+msgid "Browser vendors recognized this issue and introduced a \"Remember Passwords\" feature - today almost all browsers support this. Here, the browser remembers the login username and password for a particular website and domain, and fills out the login form automatically when you don't have an active session with the website. If you as a website designer then offer a convenient login keyboard shortcut, this approach is almost as convenient as a \"Remember Me\" cookie and much safer. Some browsers (e.g. Safari on OS X) even store the login form data in the encrypted global operation system keychain. Or, in a networked environment, the keychain can be transported with the user (between laptop and desktop for example), while browser cookies are usually not synchronized."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:301
 #, no-c-format
-msgid ""
-"To summarize: While everyone is doing it, persistent \"Remember Me\" cookies "
-"with automatic authentication are a bad practice and should not be used. "
-"Cookies that \"remember\" only the users login name, and fill out the login "
-"form with that username as a convenience, are not an issue."
+msgid "To summarize: While everyone is doing it, persistent \"Remember Me\" cookies with automatic authentication are a bad practice and should not be used. Cookies that \"remember\" only the users login name, and fill out the login form with that username as a convenience, are not an issue."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:308
 #, no-c-format
-msgid ""
-"To enable the remember me feature for the default (safe, username only) "
-"mode, no special configuration is required. In your login form, simply bind "
-"the remember me checkbox to <literal>rememberMe.enabled</literal>, like in "
-"the following example:"
+msgid "To enable the remember me feature for the default (safe, username only) mode, no special configuration is required. In your login form, simply bind the remember me checkbox to <literal>rememberMe.enabled</literal>, like in the following example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -555,16 +462,28 @@
 "  \n"
 "  <div>\n"
 "    <h:outputLabel for=\"password\" value=\"Password\"/>\n"
-"    <h:inputSecret id=\"password\" value=\"#{credentials.password}\" "
-"redisplay=\"true\"/>\n"
+"    <h:inputSecret id=\"password\" value=\"#{credentials.password}\" redisplay=\"true\"/>\n"
 "  </div>      \n"
 "  \n"
 "  <div class=\"loginRow\">\n"
 "    <h:outputLabel for=\"rememberMe\" value=\"Remember me\"/>\n"
-"    <h:selectBooleanCheckbox id=\"rememberMe\" value=\"#{rememberMe.enabled}"
-"\"/>\n"
+"    <h:selectBooleanCheckbox id=\"rememberMe\" value=\"#{rememberMe.enabled}\"/>\n"
 "  </div>]]>"
 msgstr ""
+"<![CDATA[  <div>\n"
+"    <h:outputLabel for=\"name\" value=\"User name\"/>\n"
+"    <h:inputText id=\"name\" value=\"#{credentials.username}\"/>\n"
+"  </div>\n"
+"  \n"
+"  <div>\n"
+"    <h:outputLabel for=\"password\" value=\"Password\"/>\n"
+"    <h:inputSecret id=\"password\" value=\"#{credentials.password}\" redisplay=\"true\"/>\n"
+"  </div>      \n"
+"  \n"
+"  <div class=\"loginRow\">\n"
+"    <h:outputLabel for=\"rememberMe\" value=\"Remember me\"/>\n"
+"    <h:selectBooleanCheckbox id=\"rememberMe\" value=\"#{rememberMe.enabled}\"/>\n"
+"  </div>]]>"
 
 #. Tag: title
 #: Security.xml:317
@@ -575,22 +494,13 @@
 #. Tag: para
 #: Security.xml:319
 #, no-c-format
-msgid ""
-"To use the automatic, token-based mode of the remember me feature, you must "
-"first configure a token store. The most common scenario is to store these "
-"authentication tokens within a database (which Seam supports), however it is "
-"possible to implement your own token store by implementing the <literal>org."
-"jboss.seam.security.TokenStore</literal> interface. This section will assume "
-"you will be using the provided <literal>JpaTokenStore</literal> "
-"implementation to store authentication tokens inside a database table."
+msgid "To use the automatic, token-based mode of the remember me feature, you must first configure a token store. The most common scenario is to store these authentication tokens within a database (which Seam supports), however it is possible to implement your own token store by implementing the <literal>org.jboss.seam.security.TokenStore</literal> interface. This section will assume you will be using the provided <literal>JpaTokenStore</literal> implementation to store authentication tokens inside a database table."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:327
 #, no-c-format
-msgid ""
-"The first step is to create a new Entity which will contain the tokens. The "
-"following example shows a possible structure that you may use:"
+msgid "The first step is to create a new Entity which will contain the tokens. The following example shows a possible structure that you may use:"
 msgstr ""
 
 #. Tag: programlisting
@@ -631,26 +541,50 @@
 "   }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Entity\n"
+"public class AuthenticationToken implements Serializable {  \n"
+"   private Integer tokenId;\n"
+"   private String username;\n"
+"   private String value;\n"
+"   \n"
+"   @Id @GeneratedValue\n"
+"   public Integer getTokenId() {\n"
+"      return tokenId;\n"
+"   }\n"
+"   \n"
+"   public void setTokenId(Integer tokenId) {\n"
+"      this.tokenId = tokenId;\n"
+"   }\n"
+"   \n"
+"   @TokenUsername\n"
+"   public String getUsername() {\n"
+"      return username;\n"
+"   }\n"
+"   \n"
+"   public void setUsername(String username) {\n"
+"      this.username = username;\n"
+"   }\n"
+"   \n"
+"   @TokenValue\n"
+"   public String getValue() {\n"
+"      return value;\n"
+"   }\n"
+"   \n"
+"   public void setValue(String value) {\n"
+"      this.value = value;\n"
+"   }\n"
+"}]]>"
 
 #. Tag: para
 #: Security.xml:334
 #, no-c-format
-msgid ""
-"As you can see from this listing, a couple of special annotations, "
-"<literal>@TokenUsername</literal> and <literal>@TokenValue</literal> are "
-"used to configure the username and token properties of the entity. These "
-"annotations are required for the entity that will contain the authentication "
-"tokens."
+msgid "As you can see from this listing, a couple of special annotations, <literal>@TokenUsername</literal> and <literal>@TokenValue</literal> are used to configure the username and token properties of the entity. These annotations are required for the entity that will contain the authentication tokens."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:340
 #, no-c-format
-msgid ""
-"The next step is to configure <literal>JpaTokenStore</literal> to use this "
-"entity bean to store and retrieve authentication tokens. This is done in "
-"<literal>components.xml</literal> by specifying the <literal>token-class</"
-"literal> attribute:"
+msgid "The next step is to configure <literal>JpaTokenStore</literal> to use this entity bean to store and retrieve authentication tokens. This is done in <literal>components.xml</literal> by specifying the <literal>token-class</literal> attribute:"
 msgstr ""
 
 #. Tag: programlisting
@@ -658,19 +592,17 @@
 #, no-c-format
 msgid ""
 "<![CDATA[\n"
-"  <security:jpa-token-store token-class=\"org.jboss.seam.example.seamspace."
-"AuthenticationToken\"/>        \n"
+"  <security:jpa-token-store token-class=\"org.jboss.seam.example.seamspace.AuthenticationToken\"/>        \n"
 "        ]]>"
 msgstr ""
+"<![CDATA[\n"
+"  <security:jpa-token-store token-class=\"org.jboss.seam.example.seamspace.AuthenticationToken\"/>        \n"
+"        ]]>"
 
 #. Tag: para
 #: Security.xml:348
 #, no-c-format
-msgid ""
-"Once this is done, the last thing to do is to configure the "
-"<literal>RememberMe</literal> component in <literal>components.xml</literal> "
-"also. Its <literal>mode</literal> should be set to <literal>autoLogin</"
-"literal>:"
+msgid "Once this is done, the last thing to do is to configure the <literal>RememberMe</literal> component in <literal>components.xml</literal> also. Its <literal>mode</literal> should be set to <literal>autoLogin</literal>:"
 msgstr ""
 
 #. Tag: programlisting
@@ -680,22 +612,19 @@
 "<![CDATA[  <security:remember-me mode=\"autoLogin\"/>        \n"
 "        ]]>"
 msgstr ""
+"<![CDATA[  <security:remember-me mode=\"autoLogin\"/>        \n"
+"        ]]>"
 
 #. Tag: para
 #: Security.xml:355
 #, no-c-format
-msgid ""
-"That is all that is required - automatic authentication will now occur for "
-"users revisiting your site (as long as they check the \"remember me\" "
-"checkbox)."
+msgid "That is all that is required - automatic authentication will now occur for users revisiting your site (as long as they check the \"remember me\" checkbox)."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:360
 #, no-c-format
-msgid ""
-"To ensure that users are automatically authenticated when returning to the "
-"site, the following section should be placed in components.xml:"
+msgid "To ensure that users are automatically authenticated when returning to the site, the following section should be placed in components.xml:"
 msgstr ""
 
 #. Tag: programlisting
@@ -710,6 +639,13 @@
 "    <action execute=\"#{redirect.returnToCapturedView}\"/>\n"
 "  </event>]]>"
 msgstr ""
+"<![CDATA[  <event type=\"org.jboss.seam.security.notLoggedIn\">\n"
+"    <action execute=\"#{redirect.captureCurrentView}\"/>\n"
+"    <action execute=\"#{identity.tryLogin()}\"/>\n"
+"  </event>\n"
+"  <event type=\"org.jboss.seam.security.loginSuccessful\">\n"
+"    <action execute=\"#{redirect.returnToCapturedView}\"/>\n"
+"  </event>]]>"
 
 #. Tag: title
 #: Security.xml:372
@@ -720,42 +656,25 @@
 #. Tag: para
 #: Security.xml:374
 #, no-c-format
-msgid ""
-"To prevent users from receiving the default error page in response to a "
-"security error, it's recommended that <literal>pages.xml</literal> is "
-"configured to redirect security errors to a more \"pretty\" page. The two "
-"main types of exceptions thrown by the security API are:"
+msgid "To prevent users from receiving the default error page in response to a security error, it's recommended that <literal>pages.xml</literal> is configured to redirect security errors to a more \"pretty\" page. The two main types of exceptions thrown by the security API are:"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:382
 #, no-c-format
-msgid ""
-"<literal>NotLoggedInException</literal> - This exception is thrown if the "
-"user attempts to access a restricted action or page when they are not logged "
-"in."
+msgid "<literal>NotLoggedInException</literal> - This exception is thrown if the user attempts to access a restricted action or page when they are not logged in."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:388
 #, no-c-format
-msgid ""
-"<literal>AuthorizationException</literal> - This exception is only thrown if "
-"the user is already logged in, and they have attempted to access a "
-"restricted action or page for which they do not have the necessary "
-"privileges."
+msgid "<literal>AuthorizationException</literal> - This exception is only thrown if the user is already logged in, and they have attempted to access a restricted action or page for which they do not have the necessary privileges."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:396
 #, no-c-format
-msgid ""
-"In the case of a <literal>NotLoggedInException</literal>, it is recommended "
-"that the user is redirected to either a login or registration page so that "
-"they can log in. For an <literal>AuthorizationException</literal>, it may be "
-"useful to redirect the user to an error page. Here's an example of a "
-"<literal>pages.xml</literal> file that redirects both of these security "
-"exceptions:"
+msgid "In the case of a <literal>NotLoggedInException</literal>, it is recommended that the user is redirected to either a login or registration page so that they can log in. For an <literal>AuthorizationException</literal>, it may be useful to redirect the user to an error page. Here's an example of a <literal>pages.xml</literal> file that redirects both of these security exceptions:"
 msgstr ""
 
 #. Tag: programlisting
@@ -775,21 +694,35 @@
 "    <exception class=\"org.jboss.seam.security.AuthorizationException\">\n"
 "        <end-conversation/>\n"
 "        <redirect view-id=\"/security_error.xhtml\">\n"
-"            <message>You do not have the necessary security privileges to "
-"perform this action.</message>\n"
+"            <message>You do not have the necessary security privileges to perform this action.</message>\n"
 "        </redirect>\n"
 "    </exception>\n"
 "\n"
 "</pages>]]>"
 msgstr ""
+"<![CDATA[<pages>\n"
+"\n"
+"    ...\n"
+"\n"
+"    <exception class=\"org.jboss.seam.security.NotLoggedInException\">\n"
+"        <redirect view-id=\"/login.xhtml\">\n"
+"            <message>You must be logged in to perform this action</message>\n"
+"        </redirect>\n"
+"    </exception>\n"
+"\n"
+"    <exception class=\"org.jboss.seam.security.AuthorizationException\">\n"
+"        <end-conversation/>\n"
+"        <redirect view-id=\"/security_error.xhtml\">\n"
+"            <message>You do not have the necessary security privileges to perform this action.</message>\n"
+"        </redirect>\n"
+"    </exception>\n"
+"\n"
+"</pages>]]>"
 
 #. Tag: para
 #: Security.xml:405
 #, no-c-format
-msgid ""
-"Most web applications require even more sophisticated handling of login "
-"redirection, so Seam includes some special functionality for handling this "
-"problem."
+msgid "Most web applications require even more sophisticated handling of login redirection, so Seam includes some special functionality for handling this problem."
 msgstr ""
 
 #. Tag: title
@@ -801,10 +734,7 @@
 #. Tag: para
 #: Security.xml:415
 #, no-c-format
-msgid ""
-"You can ask Seam to redirect the user to a login screen when an "
-"unauthenticated user tries to access a particular view (or wildcarded view "
-"id) as follows:"
+msgid "You can ask Seam to redirect the user to a login screen when an unauthenticated user tries to access a particular view (or wildcarded view id) as follows:"
 msgstr ""
 
 #. Tag: programlisting
@@ -819,26 +749,24 @@
 "\n"
 "</pages>]]>"
 msgstr ""
+"<![CDATA[<pages login-view-id=\"/login.xhtml\">\n"
+"\n"
+"    <page view-id=\"/members/*\" login-required=\"true\"/>\n"
+"\n"
+"    ...\n"
+"\n"
+"</pages>]]>"
 
 #. Tag: para
 #: Security.xml:423
 #, no-c-format
-msgid ""
-"This is less of a blunt instrument than the exception handler shown above, "
-"but should probably be used in conjunction with it."
+msgid "This is less of a blunt instrument than the exception handler shown above, but should probably be used in conjunction with it."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:429
 #, no-c-format
-msgid ""
-"After the user logs in, we want to automatically send them back where they "
-"came from, so they can retry the action that required logging in. If you add "
-"the following event listeners to <literal>components.xml</literal>, attempts "
-"to access a restricted view while not logged in will be remembered, so that "
-"upon the user successfully logging in they will be redirected to the "
-"originally requested view, with any page parameters that existed in the "
-"original request."
+msgid "After the user logs in, we want to automatically send them back where they came from, so they can retry the action that required logging in. If you add the following event listeners to <literal>components.xml</literal>, attempts to access a restricted view while not logged in will be remembered, so that upon the user successfully logging in they will be redirected to the originally requested view, with any page parameters that existed in the original request."
 msgstr ""
 
 #. Tag: programlisting
@@ -853,14 +781,18 @@
 "    <action execute=\"#{redirect.returnToCapturedView}\"/>\n"
 "</event>]]>"
 msgstr ""
+"<![CDATA[<event type=\"org.jboss.seam.security.notLoggedIn\">\n"
+"    <action execute=\"#{redirect.captureCurrentView}\"/>\n"
+"</event>\n"
+"\n"
+"<event type=\"org.jboss.seam.security.postAuthenticate\">\n"
+"    <action execute=\"#{redirect.returnToCapturedView}\"/>\n"
+"</event>]]>"
 
 #. Tag: para
 #: Security.xml:440
 #, no-c-format
-msgid ""
-"Note that login redirection is implemented as a conversation-scoped "
-"mechanism, so don't end the conversation in your <literal>authenticate()</"
-"literal> method."
+msgid "Note that login redirection is implemented as a conversation-scoped mechanism, so don't end the conversation in your <literal>authenticate()</literal> method."
 msgstr ""
 
 #. Tag: title
@@ -872,11 +804,7 @@
 #. Tag: para
 #: Security.xml:450
 #, no-c-format
-msgid ""
-"Although not recommended for use unless absolutely necessary, Seam provides "
-"means for authenticating using either HTTP Basic or HTTP Digest (RFC 2617) "
-"methods. To use either form of authentication, the <literal>authentication-"
-"filter</literal> component must be enabled in components.xml:"
+msgid "Although not recommended for use unless absolutely necessary, Seam provides means for authenticating using either HTTP Basic or HTTP Digest (RFC 2617) methods. To use either form of authentication, the <literal>authentication-filter</literal> component must be enabled in components.xml:"
 msgstr ""
 
 #. Tag: programlisting
@@ -887,15 +815,14 @@
 "  <web:authentication-filter url-pattern=\"*.seam\" auth-type=\"basic\"/>\n"
 "      ]]>"
 msgstr ""
+"<![CDATA[\n"
+"  <web:authentication-filter url-pattern=\"*.seam\" auth-type=\"basic\"/>\n"
+"      ]]>"
 
 #. Tag: para
 #: Security.xml:458
 #, no-c-format
-msgid ""
-"To enable the filter for basic authentication, set <literal>auth-type</"
-"literal> to <literal>basic</literal>, or for digest authentication, set it "
-"to <literal>digest</literal>. If using digest authentication, the "
-"<literal>key</literal> and <literal>realm</literal> must also be set:"
+msgid "To enable the filter for basic authentication, set <literal>auth-type</literal> to <literal>basic</literal>, or for digest authentication, set it to <literal>digest</literal>. If using digest authentication, the <literal>key</literal> and <literal>realm</literal> must also be set:"
 msgstr ""
 
 #. Tag: programlisting
@@ -903,18 +830,17 @@
 #, no-c-format
 msgid ""
 "<![CDATA[\n"
-"  <web:authentication-filter url-pattern=\"*.seam\" auth-type=\"digest\" key="
-"\"AA3JK34aSDlkj\" realm=\"My App\"/>\n"
+"  <web:authentication-filter url-pattern=\"*.seam\" auth-type=\"digest\" key=\"AA3JK34aSDlkj\" realm=\"My App\"/>\n"
 "      ]]>"
 msgstr ""
+"<![CDATA[\n"
+"  <web:authentication-filter url-pattern=\"*.seam\" auth-type=\"digest\" key=\"AA3JK34aSDlkj\" realm=\"My App\"/>\n"
+"      ]]>"
 
 #. Tag: para
 #: Security.xml:466
 #, no-c-format
-msgid ""
-"The <literal>key</literal> can be any String value. The <literal>realm</"
-"literal> is the name of the authentication realm that is presented to the "
-"user when they authenticate."
+msgid "The <literal>key</literal> can be any String value. The <literal>realm</literal> is the name of the authentication realm that is presented to the user when they authenticate."
 msgstr ""
 
 #. Tag: title
@@ -926,12 +852,7 @@
 #. Tag: para
 #: Security.xml:474
 #, no-c-format
-msgid ""
-"If using digest authentication, your authenticator class should extend the "
-"abstract class <literal>org.jboss.seam.security.digest.DigestAuthenticator</"
-"literal>, and use the <literal>validatePassword()</literal> method to "
-"validate the user's plain text password against the digest request. Here is "
-"an example:"
+msgid "If using digest authentication, your authenticator class should extend the abstract class <literal>org.jboss.seam.security.digest.DigestAuthenticator</literal>, and use the <literal>validatePassword()</literal> method to validate the user's plain text password against the digest request. Here is an example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -957,6 +878,24 @@
 "   }\n"
 "        ]]>"
 msgstr ""
+"<![CDATA[\n"
+"   public boolean authenticate()\n"
+"   {\n"
+"      try\n"
+"      {\n"
+"         User user = (User) entityManager.createQuery(\n"
+"            \"from User where username = :username\")\n"
+"            .setParameter(\"username\", identity.getUsername())\n"
+"            .getSingleResult();\n"
+"\n"
+"         return validatePassword(user.getPassword());\n"
+"      }\n"
+"      catch (NoResultException ex)\n"
+"      {\n"
+"         return false;\n"
+"      }\n"
+"   }\n"
+"        ]]>"
 
 #. Tag: title
 #: Security.xml:487
@@ -967,9 +906,7 @@
 #. Tag: para
 #: Security.xml:489
 #, no-c-format
-msgid ""
-"This section explores some of the advanced features provided by the security "
-"API for addressing more complex security requirements."
+msgid "This section explores some of the advanced features provided by the security API for addressing more complex security requirements."
 msgstr ""
 
 #. Tag: title
@@ -981,30 +918,19 @@
 #. Tag: para
 #: Security.xml:497
 #, no-c-format
-msgid ""
-"If you would rather not use the simplified JAAS configuration provided by "
-"the Seam Security API, you may instead delegate to the default system JAAS "
-"configuration by providing a <literal>jaas-config-name</literal> property in "
-"<literal>components.xml</literal>. For example, if you are using JBoss AS "
-"and wish to use the <literal>other</literal> policy (which uses the "
-"<literal>UsersRolesLoginModule</literal> login module provided by JBoss AS), "
-"then the entry in <literal>components.xml</literal> would look like this:"
+msgid "If you would rather not use the simplified JAAS configuration provided by the Seam Security API, you may instead delegate to the default system JAAS configuration by providing a <literal>jaas-config-name</literal> property in <literal>components.xml</literal>. For example, if you are using JBoss AS and wish to use the <literal>other</literal> policy (which uses the <literal>UsersRolesLoginModule</literal> login module provided by JBoss AS), then the entry in <literal>components.xml</literal> would look like this:"
 msgstr ""
 
 #. Tag: programlisting
 #: Security.xml:505
 #, no-c-format
 msgid "<![CDATA[<security:identity jaas-config-name=\"other\"/>]]>"
-msgstr ""
+msgstr "<![CDATA[<security:identity jaas-config-name=\"other\"/>]]>"
 
 #. Tag: para
 #: Security.xml:507
 #, no-c-format
-msgid ""
-"Please keep in mind that doing this does not mean that your user will be "
-"authenticated in whichever container your Seam application is deployed in. "
-"It merely instructs Seam Security to authenticate itself using the "
-"configured JAAS security policy."
+msgid "Please keep in mind that doing this does not mean that your user will be authenticated in whichever container your Seam application is deployed in. It merely instructs Seam Security to authenticate itself using the configured JAAS security policy."
 msgstr ""
 
 #. Tag: title
@@ -1016,24 +942,13 @@
 #. Tag: para
 #: Security.xml:519
 #, no-c-format
-msgid ""
-"Identity Management provides a standard API for the management of a Seam "
-"application's users and roles, regardless of which identity store (database, "
-"LDAP, etc) is used on the backend. At the center of the Identity Management "
-"API is the <literal>identityManager</literal> component, which provides all "
-"the methods for creating, modifying and deleting users, granting and "
-"revoking roles, changing passwords, enabling and disabling user accounts, "
-"authenticating users and listing users and roles."
+msgid "Identity Management provides a standard API for the management of a Seam application's users and roles, regardless of which identity store (database, LDAP, etc) is used on the backend. At the center of the Identity Management API is the <literal>identityManager</literal> component, which provides all the methods for creating, modifying and deleting users, granting and revoking roles, changing passwords, enabling and disabling user accounts, authenticating users and listing users and roles."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:527
 #, no-c-format
-msgid ""
-"Before it may be used, the <literal>identityManager</literal> must first be "
-"configured with one or more <literal>IdentityStore</literal>s. These "
-"components do the actual work of interacting with the backend security "
-"provider, whether it be a database, LDAP server, or something else."
+msgid "Before it may be used, the <literal>identityManager</literal> must first be configured with one or more <literal>IdentityStore</literal>s. These components do the actual work of interacting with the backend security provider, whether it be a database, LDAP server, or something else."
 msgstr ""
 
 #. Tag: title
@@ -1045,43 +960,19 @@
 #. Tag: para
 #: Security.xml:545
 #, no-c-format
-msgid ""
-"The <literal>identityManager</literal> component allows for separate "
-"identity stores to be configured for authentication and authorization "
-"operations. This means that it is possible for users to be authenticated "
-"against one identity store, for example an LDAP directory, yet have their "
-"roles loaded from another identity store, such as a relational database."
+msgid "The <literal>identityManager</literal> component allows for separate identity stores to be configured for authentication and authorization operations. This means that it is possible for users to be authenticated against one identity store, for example an LDAP directory, yet have their roles loaded from another identity store, such as a relational database."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:552
 #, no-c-format
-msgid ""
-"Seam provides two <literal>IdentityStore</literal> implementations out of "
-"the box; <literal>JpaIdentityStore</literal> uses a relational database to "
-"store user and role information, and is the default identity store that is "
-"used if nothing is explicitly configured in the <literal>identityManager</"
-"literal> component. The other implementation that is provided is "
-"<literal>LdapIdentityStore</literal>, which uses an LDAP directory to store "
-"users and roles."
+msgid "Seam provides two <literal>IdentityStore</literal> implementations out of the box; <literal>JpaIdentityStore</literal> uses a relational database to store user and role information, and is the default identity store that is used if nothing is explicitly configured in the <literal>identityManager</literal> component. The other implementation that is provided is <literal>LdapIdentityStore</literal>, which uses an LDAP directory to store users and roles."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:560
 #, no-c-format
-msgid ""
-"There are two configurable properties for the <literal>identityManager</"
-"literal> component - <literal>identityStore</literal> and "
-"<literal>roleIdentityStore</literal>. The value for these properties must be "
-"an EL expression referring to a Seam component implementing the "
-"<literal>IdentityStore</literal> interface. As already mentioned, if left "
-"unconfigured then <literal>JpaIdentityStore</literal> will be assumed by "
-"default. If only the <literal>identityStore</literal> property is "
-"configured, then the same value will be used for <literal>roleIdentityStore</"
-"literal> also. For example, the following entry in <literal>components.xml</"
-"literal> will configure <literal>identityManager</literal> to use an "
-"<literal>LdapIdentityStore</literal> for both user-related and role-related "
-"operations:"
+msgid "There are two configurable properties for the <literal>identityManager</literal> component - <literal>identityStore</literal> and <literal>roleIdentityStore</literal>. The value for these properties must be an EL expression referring to a Seam component implementing the <literal>IdentityStore</literal> interface. As already mentioned, if left unconfigured then <literal>JpaIdentityStore</literal> will be assumed by default. If only the <literal>identityStore</literal> property is configured, then the same value will be used for <literal>roleIdentityStore</literal> also. For example, the following entry in <literal>components.xml</literal> will configure <literal>identityManager</literal> to use an <literal>LdapIdentityStore</literal> for both user-related and role-related operations:"
 msgstr ""
 
 #. Tag: programlisting
@@ -1092,14 +983,14 @@
 "  <security:identity-manager identity-store=\"#{ldapIdentityStore}\"/>\n"
 "      ]]>"
 msgstr ""
+"<![CDATA[      \n"
+"  <security:identity-manager identity-store=\"#{ldapIdentityStore}\"/>\n"
+"      ]]>"
 
 #. Tag: para
 #: Security.xml:574
 #, no-c-format
-msgid ""
-"The following example configures <literal>identityManager</literal> to use "
-"an <literal>LdapIdentityStore</literal> for user-related operations, and "
-"<literal>JpaIdentityStore</literal> for role-related operations:"
+msgid "The following example configures <literal>identityManager</literal> to use an <literal>LdapIdentityStore</literal> for user-related operations, and <literal>JpaIdentityStore</literal> for role-related operations:"
 msgstr ""
 
 #. Tag: programlisting
@@ -1112,13 +1003,16 @@
 "    role-identity-store=\"#{jpaIdentityStore}\"/>\n"
 "      ]]>"
 msgstr ""
+"<![CDATA[      \n"
+"  <security:identity-manager \n"
+"    identity-store=\"#{ldapIdentityStore}\" \n"
+"    role-identity-store=\"#{jpaIdentityStore}\"/>\n"
+"      ]]>"
 
 #. Tag: para
 #: Security.xml:581
 #, no-c-format
-msgid ""
-"The following sections explain both of these identity store implementations "
-"in greater detail."
+msgid "The following sections explain both of these identity store implementations in greater detail."
 msgstr ""
 
 #. Tag: title
@@ -1130,13 +1024,7 @@
 #. Tag: para
 #: Security.xml:590
 #, no-c-format
-msgid ""
-"This identity store allows for users and roles to be stored inside a "
-"relational database. It is designed to be as unrestrictive as possible in "
-"regards to database schema design, allowing a great deal of flexibility in "
-"the underlying table structure. This is achieved through the use of a set of "
-"special annotations, allowing entity beans to be configured to store user "
-"and role records."
+msgid "This identity store allows for users and roles to be stored inside a relational database. It is designed to be as unrestrictive as possible in regards to database schema design, allowing a great deal of flexibility in the underlying table structure. This is achieved through the use of a set of special annotations, allowing entity beans to be configured to store user and role records."
 msgstr ""
 
 #. Tag: title
@@ -1148,13 +1036,7 @@
 #. Tag: para
 #: Security.xml:600
 #, no-c-format
-msgid ""
-"<literal>JpaIdentityStore</literal> requires that both the <literal>user-"
-"class</literal> and <literal>role-class</literal> properties are configured. "
-"These properties should refer to the entity classes that are to be used to "
-"store both user and role records, respectively. The following example shows "
-"the configuration from <literal>components.xml</literal> in the SeamSpace "
-"example:"
+msgid "<literal>JpaIdentityStore</literal> requires that both the <literal>user-class</literal> and <literal>role-class</literal> properties are configured. These properties should refer to the entity classes that are to be used to store both user and role records, respectively. The following example shows the configuration from <literal>components.xml</literal> in the SeamSpace example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -1167,6 +1049,11 @@
 "    role-class=\"org.jboss.seam.example.seamspace.MemberRole\"/>\n"
 "        ]]>"
 msgstr ""
+"<![CDATA[\n"
+"  <security:jpa-identity-store \n"
+"    user-class=\"org.jboss.seam.example.seamspace.MemberAccount\"\n"
+"    role-class=\"org.jboss.seam.example.seamspace.MemberRole\"/>\n"
+"        ]]>"
 
 #. Tag: title
 #: Security.xml:612
@@ -1177,10 +1064,7 @@
 #. Tag: para
 #: Security.xml:614
 #, no-c-format
-msgid ""
-"As already mentioned, a set of special annotations are used to configure "
-"entity beans for storing users and roles. The following table lists each of "
-"the annotations, and their descriptions."
+msgid "As already mentioned, a set of special annotations are used to configure entity beans for storing users and roles. The following table lists each of the annotations, and their descriptions."
 msgstr ""
 
 #. Tag: title
@@ -1190,21 +1074,33 @@
 msgstr ""
 
 #. Tag: para
-#: Security.xml:630 Security.xml:764 Security.xml:3361 Security.xml:3524
+#: Security.xml:630
+#: Security.xml:764
+#: Security.xml:3361
+#: Security.xml:3524
 #, no-c-format
 msgid "Annotation"
 msgstr ""
 
 #. Tag: para
-#: Security.xml:633 Security.xml:767
+#: Security.xml:633
+#: Security.xml:767
 #, no-c-format
 msgid "Status"
 msgstr ""
 
 #. Tag: para
-#: Security.xml:636 Security.xml:770 Security.xml:966 Security.xml:1418
-#: Security.xml:2147 Security.xml:2756 Security.xml:3150 Security.xml:3367
-#: Security.xml:3530 Security.xml:3771 Security.xml:4208
+#: Security.xml:636
+#: Security.xml:770
+#: Security.xml:966
+#: Security.xml:1418
+#: Security.xml:2147
+#: Security.xml:2756
+#: Security.xml:3150
+#: Security.xml:3367
+#: Security.xml:3530
+#: Security.xml:3771
+#: Security.xml:4208
 #, no-c-format
 msgid "Description"
 msgstr ""
@@ -1213,10 +1109,13 @@
 #: Security.xml:645
 #, no-c-format
 msgid "@UserPrincipal"
-msgstr ""
+msgstr "@UserPrincipal"
 
 #. Tag: para
-#: Security.xml:649 Security.xml:665 Security.xml:740 Security.xml:783
+#: Security.xml:649
+#: Security.xml:665
+#: Security.xml:740
+#: Security.xml:783
 #, no-c-format
 msgid "Required"
 msgstr ""
@@ -1224,24 +1123,19 @@
 #. Tag: para
 #: Security.xml:652
 #, no-c-format
-msgid ""
-"This annotation marks the field or method containing the user's username."
+msgid "This annotation marks the field or method containing the user's username."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:661
 #, no-c-format
 msgid "@UserPassword"
-msgstr ""
+msgstr "@UserPassword"
 
 #. Tag: para
 #: Security.xml:668
 #, no-c-format
-msgid ""
-"This annotation marks the field or method containing the user's password. It "
-"allows a <literal>hash</literal> algorithm to be specified for password "
-"hashing. Possible values for <literal>hash</literal> are <literal>md5</"
-"literal>, <literal>sha</literal> and <literal>none</literal>. E.g:"
+msgid "This annotation marks the field or method containing the user's password. It allows a <literal>hash</literal> algorithm to be specified for password hashing. Possible values for <literal>hash</literal> are <literal>md5</literal>, <literal>sha</literal> and <literal>none</literal>. E.g:"
 msgstr ""
 
 #. Tag: programlisting
@@ -1253,76 +1147,73 @@
 "  return passwordHash; \n"
 "}]]>"
 msgstr ""
+"<![CDATA[@UserPassword(hash = \"md5\")\n"
+"public String getPasswordHash() { \n"
+"  return passwordHash; \n"
+"}]]>"
 
 #. Tag: para
 #: Security.xml:676
 #, no-c-format
-msgid ""
-"If an application requires a hash algorithm that isn't supported natively by "
-"Seam, it is possible to extend the <literal>PasswordHash</literal> component "
-"to implement other hashing algorithms."
+msgid "If an application requires a hash algorithm that isn't supported natively by Seam, it is possible to extend the <literal>PasswordHash</literal> component to implement other hashing algorithms."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:687
 #, no-c-format
 msgid "@UserFirstName"
-msgstr ""
+msgstr "@UserFirstName"
 
 #. Tag: para
-#: Security.xml:691 Security.xml:707 Security.xml:723 Security.xml:799
+#: Security.xml:691
+#: Security.xml:707
+#: Security.xml:723
+#: Security.xml:799
 #: Security.xml:815
 #, no-c-format
 msgid "Optional"
-msgstr ""
+msgstr "Opzionale"
 
 #. Tag: para
 #: Security.xml:694
 #, no-c-format
-msgid ""
-"This annotation marks the field or method containing the user's first name."
+msgid "This annotation marks the field or method containing the user's first name."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:703
 #, no-c-format
 msgid "@UserLastName"
-msgstr ""
+msgstr "@UserLastName"
 
 #. Tag: para
 #: Security.xml:710
 #, no-c-format
-msgid ""
-"This annotation marks the field or method containing the user's last name."
+msgid "This annotation marks the field or method containing the user's last name."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:719
 #, no-c-format
 msgid "@UserEnabled"
-msgstr ""
+msgstr "@UserEnabled"
 
 #. Tag: para
 #: Security.xml:726
 #, no-c-format
-msgid ""
-"This annotation marks the field or method containing the enabled status of "
-"the user. This should be a boolean property, and if not present then all "
-"user accounts are assumed to be enabled."
+msgid "This annotation marks the field or method containing the enabled status of the user. This should be a boolean property, and if not present then all user accounts are assumed to be enabled."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:736
 #, no-c-format
 msgid "@UserRoles"
-msgstr ""
+msgstr "@UserRoles"
 
 #. Tag: para
 #: Security.xml:743
 #, no-c-format
-msgid ""
-"This annotation marks the field or method containing the roles of the user. "
-"This property will be described in more detail further down."
+msgid "This annotation marks the field or method containing the roles of the user. This property will be described in more detail further down."
 msgstr ""
 
 #. Tag: title
@@ -1335,41 +1226,36 @@
 #: Security.xml:779
 #, no-c-format
 msgid "@RoleName"
-msgstr ""
+msgstr "@RoleName"
 
 #. Tag: para
 #: Security.xml:786
 #, no-c-format
-msgid ""
-"This annotation marks the field or method containing the name of the role."
+msgid "This annotation marks the field or method containing the name of the role."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:795
 #, no-c-format
 msgid "@RoleGroups"
-msgstr ""
+msgstr "@RoleGroups"
 
 #. Tag: para
 #: Security.xml:802
 #, no-c-format
-msgid ""
-"This annotation marks the field or method containing the group memberships "
-"of the role."
+msgid "This annotation marks the field or method containing the group memberships of the role."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:811
 #, no-c-format
 msgid "@RoleConditional"
-msgstr ""
+msgstr "@RoleConditional"
 
 #. Tag: para
 #: Security.xml:818
 #, no-c-format
-msgid ""
-"This annotation marks the field or method indicating whether the role is "
-"conditional or not. Conditional roles are explained later in this chapter."
+msgid "This annotation marks the field or method indicating whether the role is conditional or not. Conditional roles are explained later in this chapter."
 msgstr ""
 
 #. Tag: title
@@ -1381,11 +1267,7 @@
 #. Tag: para
 #: Security.xml:834
 #, no-c-format
-msgid ""
-"As mentioned previously, <literal>JpaIdentityStore</literal> is designed to "
-"be as flexible as possible when it comes to the database schema design of "
-"your user and role tables. This section looks at a number of possible "
-"database schemas that can be used to store user and role records."
+msgid "As mentioned previously, <literal>JpaIdentityStore</literal> is designed to be as flexible as possible when it comes to the database schema design of your user and role tables. This section looks at a number of possible database schemas that can be used to store user and role records."
 msgstr ""
 
 #. Tag: title
@@ -1397,10 +1279,7 @@
 #. Tag: para
 #: Security.xml:843
 #, no-c-format
-msgid ""
-"In this bare minimal example, a simple user and role table are linked via a "
-"many-to-many relationship using a cross-reference table named "
-"<literal>UserRoles</literal>."
+msgid "In this bare minimal example, a simple user and role table are linked via a many-to-many relationship using a cross-reference table named <literal>UserRoles</literal>."
 msgstr ""
 
 #. Tag: programlisting
@@ -1424,8 +1303,7 @@
 "  \n"
 "  @UserPassword(hash = \"md5\")\n"
 "  public String getPasswordHash() { return passwordHash; }\n"
-"  public void setPasswordHash(String passwordHash) { this.passwordHash = "
-"passwordHash; }\n"
+"  public void setPasswordHash(String passwordHash) { this.passwordHash = passwordHash; }\n"
 "  \n"
 "  @UserRoles\n"
 "  @ManyToMany(targetEntity = Role.class)\n"
@@ -1436,6 +1314,33 @@
 "  public void setRoles(Set<Role> roles) { this.roles = roles; }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Entity\n"
+"public class User {\n"
+"  private Integer userId;\n"
+"  private String username;\n"
+"  private String passwordHash;\n"
+"  private Set<Role> roles;\n"
+"  \n"
+"  @Id @GeneratedValue\n"
+"  public Integer getUserId() { return userId; }\n"
+"  public void setUserId(Integer userId) { this.userId = userId; }\n"
+"  \n"
+"  @UserPrincipal\n"
+"  public String getUsername() { return username; }\n"
+"  public void setUsername(String username) { this.username = username; }\n"
+"  \n"
+"  @UserPassword(hash = \"md5\")\n"
+"  public String getPasswordHash() { return passwordHash; }\n"
+"  public void setPasswordHash(String passwordHash) { this.passwordHash = passwordHash; }\n"
+"  \n"
+"  @UserRoles\n"
+"  @ManyToMany(targetEntity = Role.class)\n"
+"  @JoinTable(name = \"UserRoles\", \n"
+"    joinColumns = @JoinColumn(name = \"UserId\"),\n"
+"    inverseJoinColumns = @JoinColumn(name = \"RoleId\"))\n"
+"  public Set<Role> getRoles() { return roles; }\n"
+"  public void setRoles(Set<Role> roles) { this.roles = roles; }\n"
+"}]]>"
 
 #. Tag: programlisting
 #: Security.xml:858
@@ -1455,6 +1360,19 @@
 "  public void setRolename(String rolename) { this.rolename = rolename; }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Entity\n"
+"public class Role {\n"
+"  private Integer roleId;\n"
+"  private String rolename;\n"
+"  \n"
+"  @Id @Generated\n"
+"  public Integer getRoleId() { return roleId; }\n"
+"  public void setRoleId(Integer roleId) { this.roleId = roleId; }\n"
+"  \n"
+"  @RoleName\n"
+"  public String getRolename() { return rolename; }\n"
+"  public void setRolename(String rolename) { this.rolename = rolename; }\n"
+"}]]>"
 
 #. Tag: title
 #: Security.xml:863
@@ -1465,9 +1383,7 @@
 #. Tag: para
 #: Security.xml:865
 #, no-c-format
-msgid ""
-"This example builds on the above minimal example by including all of the "
-"optional fields, and allowing group memberships for roles."
+msgid "This example builds on the above minimal example by including all of the optional fields, and allowing group memberships for roles."
 msgstr ""
 
 #. Tag: programlisting
@@ -1494,13 +1410,11 @@
 "  \n"
 "  @UserPassword(hash = \"md5\")\n"
 "  public String getPasswordHash() { return passwordHash; }\n"
-"  public void setPasswordHash(String passwordHash) { this.passwordHash = "
-"passwordHash; }\n"
+"  public void setPasswordHash(String passwordHash) { this.passwordHash = passwordHash; }\n"
 "  \n"
 "  @UserFirstName\n"
 "  public String getFirstname() { return firstname; }\n"
-"  public void setFirstname(String firstname) { this.firstname = "
-"firstname; }\n"
+"  public void setFirstname(String firstname) { this.firstname = firstname; }\n"
 "  \n"
 "  @UserLastName\n"
 "  public String getLastname() { return lastname; }\n"
@@ -1519,6 +1433,48 @@
 "  public void setRoles(Set<Role> roles) { this.roles = roles; }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Entity\n"
+"public class User {\n"
+"  private Integer userId;\n"
+"  private String username;\n"
+"  private String passwordHash;\n"
+"  private Set<Role> roles;\n"
+"  private String firstname;\n"
+"  private String lastname;\n"
+"  private boolean enabled;\n"
+"  \n"
+"  @Id @GeneratedValue\n"
+"  public Integer getUserId() { return userId; }\n"
+"  public void setUserId(Integer userId) { this.userId = userId; }\n"
+"  \n"
+"  @UserPrincipal\n"
+"  public String getUsername() { return username; }\n"
+"  public void setUsername(String username) { this.username = username; }\n"
+"  \n"
+"  @UserPassword(hash = \"md5\")\n"
+"  public String getPasswordHash() { return passwordHash; }\n"
+"  public void setPasswordHash(String passwordHash) { this.passwordHash = passwordHash; }\n"
+"  \n"
+"  @UserFirstName\n"
+"  public String getFirstname() { return firstname; }\n"
+"  public void setFirstname(String firstname) { this.firstname = firstname; }\n"
+"  \n"
+"  @UserLastName\n"
+"  public String getLastname() { return lastname; }\n"
+"  public void setLastname(String lastname) { this.lastname = lastname; }\n"
+"  \n"
+"  @UserEnabled\n"
+"  public boolean isEnabled() { return enabled; }\n"
+"  public void setEnabled(boolean enabled) { this.enabled = enabled; }\n"
+"  \n"
+"  @UserRoles\n"
+"  @ManyToMany(targetEntity = Role.class)\n"
+"  @JoinTable(name = \"UserRoles\", \n"
+"    joinColumns = @JoinColumn(name = \"UserId\"),\n"
+"    inverseJoinColumns = @JoinColumn(name = \"RoleId\"))\n"
+"  public Set<Role> getRoles() { return roles; }\n"
+"  public void setRoles(Set<Role> roles) { this.roles = roles; }\n"
+"}]]>"
 
 #. Tag: programlisting
 #: Security.xml:880
@@ -1540,8 +1496,7 @@
 "  \n"
 "  @RoleConditional\n"
 "  public boolean isConditional() { return conditional; }\n"
-"  public void setConditional(boolean conditional) { this.conditional = "
-"conditional; }\n"
+"  public void setConditional(boolean conditional) { this.conditional = conditional; }\n"
 "  \n"
 "  @RoleGroups\n"
 "  @ManyToMany(targetEntity = Role.class)\n"
@@ -1553,6 +1508,33 @@
 "  \n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Entity\n"
+"public class Role {\n"
+"  private Integer roleId;\n"
+"  private String rolename;\n"
+"  private boolean conditional;\n"
+"  \n"
+"  @Id @Generated\n"
+"  public Integer getRoleId() { return roleId; }\n"
+"  public void setRoleId(Integer roleId) { this.roleId = roleId; }\n"
+"  \n"
+"  @RoleName\n"
+"  public String getRolename() { return rolename; }\n"
+"  public void setRolename(String rolename) { this.rolename = rolename; }\n"
+"  \n"
+"  @RoleConditional\n"
+"  public boolean isConditional() { return conditional; }\n"
+"  public void setConditional(boolean conditional) { this.conditional = conditional; }\n"
+"  \n"
+"  @RoleGroups\n"
+"  @ManyToMany(targetEntity = Role.class)\n"
+"  @JoinTable(name = \"RoleGroups\", \n"
+"    joinColumns = @JoinColumn(name = \"RoleId\"),\n"
+"    inverseJoinColumns = @JoinColumn(name = \"GroupId\"))\n"
+"  public Set<Role> getGroups() { return groups; }\n"
+"  public void setGroups(Set<Role> groups) { this.groups = groups; }  \n"
+"  \n"
+"}]]>"
 
 #. Tag: title
 #: Security.xml:886
@@ -1563,89 +1545,61 @@
 #. Tag: para
 #: Security.xml:888
 #, no-c-format
-msgid ""
-"When using <literal>JpaIdentityStore</literal> as the identity store "
-"implementation with <literal>IdentityManager</literal>, a few events are "
-"raised as a result of invoking certain <literal>IdentityManager</literal> "
-"methods."
+msgid "When using <literal>JpaIdentityStore</literal> as the identity store implementation with <literal>IdentityManager</literal>, a few events are raised as a result of invoking certain <literal>IdentityManager</literal> methods."
 msgstr ""
 
 #. Tag: title
 #: Security.xml:894
 #, no-c-format
 msgid "JpaIdentityStore.EVENT_PRE_PERSIST_USER"
-msgstr ""
+msgstr "JpaIdentityStore.EVENT_PRE_PERSIST_USER"
 
 #. Tag: para
 #: Security.xml:896
 #, no-c-format
-msgid ""
-"This event is raised in response to calling <literal>IdentityManager."
-"createUser()</literal>. Just before the user entity is persisted to the "
-"database, this event will be raised passing the entity instance as an event "
-"parameter. The entity will be an instance of the <literal>user-class</"
-"literal> configured for <literal>JpaIdentityStore</literal>."
+msgid "This event is raised in response to calling <literal>IdentityManager.createUser()</literal>. Just before the user entity is persisted to the database, this event will be raised passing the entity instance as an event parameter. The entity will be an instance of the <literal>user-class</literal> configured for <literal>JpaIdentityStore</literal>."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:902
 #, no-c-format
-msgid ""
-"Writing an observer for this event may be useful for setting additional "
-"field values on the entity, which aren't set as part of the standard "
-"<literal>createUser()</literal> functionality."
+msgid "Writing an observer for this event may be useful for setting additional field values on the entity, which aren't set as part of the standard <literal>createUser()</literal> functionality."
 msgstr ""
 
 #. Tag: title
 #: Security.xml:909
 #, no-c-format
 msgid "JpaIdentityStore.EVENT_USER_CREATED"
-msgstr ""
+msgstr "JpaIdentityStore.EVENT_USER_CREATED"
 
 #. Tag: para
 #: Security.xml:911
 #, no-c-format
-msgid ""
-"This event is also raised in response to calling <literal>IdentityManager."
-"createUser()</literal>. However, it is raised after the user entity has "
-"already been persisted to the database. Like the "
-"<literal>EVENT_PRE_PERSIST_USER</literal> event, it also passes the entity "
-"instance as an event parameter. It may be useful to observe this event if "
-"you also need to persist other entities that reference the user entity, for "
-"example contact detail records or other user-specific data."
+msgid "This event is also raised in response to calling <literal>IdentityManager.createUser()</literal>. However, it is raised after the user entity has already been persisted to the database. Like the <literal>EVENT_PRE_PERSIST_USER</literal> event, it also passes the entity instance as an event parameter. It may be useful to observe this event if you also need to persist other entities that reference the user entity, for example contact detail records or other user-specific data."
 msgstr ""
 
 #. Tag: title
 #: Security.xml:921
 #, no-c-format
 msgid "JpaIdentityStore.EVENT_USER_AUTHENTICATED"
-msgstr ""
+msgstr "JpaIdentityStore.EVENT_USER_AUTHENTICATED"
 
 #. Tag: para
 #: Security.xml:923
 #, no-c-format
-msgid ""
-"This event is raised when calling <literal>IdentityManager.authenticate()</"
-"literal>. It passes the user entity instance as the event parameter, and is "
-"useful for reading additional properties from the user entity that is being "
-"authenticated."
+msgid "This event is raised when calling <literal>IdentityManager.authenticate()</literal>. It passes the user entity instance as the event parameter, and is useful for reading additional properties from the user entity that is being authenticated."
 msgstr ""
 
 #. Tag: title
 #: Security.xml:933
 #, no-c-format
 msgid "LdapIdentityStore"
-msgstr ""
+msgstr "LdapIdentityStore"
 
 #. Tag: para
 #: Security.xml:935
 #, no-c-format
-msgid ""
-"This identity store implementation is designed for working with user records "
-"stored in an LDAP directory. It is very highly configurable, allowing great "
-"flexibility in how both users and roles are stored in the directory. The "
-"following sections describe the configuration options for this identity "
-"store, and provide some configuration examples."
+msgid "This identity store implementation is designed for working with user records stored in an LDAP directory. It is very highly configurable, allowing great flexibility in how both users and roles are stored in the directory. The following sections describe the configuration options for this identity store, and provide some configuration examples."
 msgstr ""
 
 #. Tag: title
@@ -1657,10 +1611,7 @@
 #. Tag: para
 #: Security.xml:944
 #, no-c-format
-msgid ""
-"The following table describes the available properties that can be "
-"configured in <literal>components.xml</literal> for "
-"<literal>LdapIdentityStore</literal>."
+msgid "The following table describes the available properties that can be configured in <literal>components.xml</literal> for <literal>LdapIdentityStore</literal>."
 msgstr ""
 
 #. Tag: title
@@ -1703,13 +1654,13 @@
 #: Security.xml:991
 #, no-c-format
 msgid "server-port"
-msgstr ""
+msgstr "server-port"
 
 #. Tag: literal
 #: Security.xml:995
 #, no-c-format
 msgid "<literal>389</literal>"
-msgstr ""
+msgstr "<literal>389</literal>"
 
 #. Tag: para
 #: Security.xml:998
@@ -1721,13 +1672,13 @@
 #: Security.xml:1007
 #, no-c-format
 msgid "user-context-DN"
-msgstr ""
+msgstr "user-context-DN"
 
 #. Tag: literal
 #: Security.xml:1011
 #, no-c-format
 msgid "ou=Person,dc=acme,dc=com"
-msgstr ""
+msgstr "ou=Person,dc=acme,dc=com"
 
 #. Tag: para
 #: Security.xml:1014
@@ -1739,53 +1690,49 @@
 #: Security.xml:1023
 #, no-c-format
 msgid "user-DN-prefix"
-msgstr ""
+msgstr "user-DN-prefix"
 
 #. Tag: literal
 #: Security.xml:1027
 #, no-c-format
 msgid "uid="
-msgstr ""
+msgstr "uid="
 
 #. Tag: para
 #: Security.xml:1030
 #, no-c-format
-msgid ""
-"This value is prefixed to the front of the username to locate the user's "
-"record."
+msgid "This value is prefixed to the front of the username to locate the user's record."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1039
 #, no-c-format
 msgid "user-DN-suffix"
-msgstr ""
+msgstr "user-DN-suffix"
 
 #. Tag: literal
 #: Security.xml:1043
 #, no-c-format
 msgid ",ou=Person,dc=acme,dc=com"
-msgstr ""
+msgstr ",ou=Person,dc=acme,dc=com"
 
 #. Tag: para
 #: Security.xml:1046
 #, no-c-format
-msgid ""
-"This value is appended to the end of the username to locate the user's "
-"record."
+msgid "This value is appended to the end of the username to locate the user's record."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1055
 #, no-c-format
 msgid "role-context-DN"
-msgstr ""
+msgstr "role-context-DN"
 
 #. Tag: literal
 #: Security.xml:1059
 #, no-c-format
 msgid "ou=Role,dc=acme,dc=com"
-msgstr ""
+msgstr "ou=Role,dc=acme,dc=com"
 
 #. Tag: para
 #: Security.xml:1062
@@ -1797,53 +1744,49 @@
 #: Security.xml:1071
 #, no-c-format
 msgid "role-DN-prefix"
-msgstr ""
+msgstr "role-DN-prefix"
 
 #. Tag: literal
 #: Security.xml:1075
 #, no-c-format
 msgid "<literal>cn=</literal>"
-msgstr ""
+msgstr "<literal>cn=</literal>"
 
 #. Tag: para
 #: Security.xml:1078
 #, no-c-format
-msgid ""
-"This value is prefixed to the front of the role name to form the DN for "
-"locating the role record."
+msgid "This value is prefixed to the front of the role name to form the DN for locating the role record."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1088
 #, no-c-format
 msgid "role-DN-suffix"
-msgstr ""
+msgstr "role-DN-suffix"
 
 #. Tag: literal
 #: Security.xml:1092
 #, no-c-format
 msgid ",ou=Roles,dc=acme,dc=com"
-msgstr ""
+msgstr ",ou=Roles,dc=acme,dc=com"
 
 #. Tag: para
 #: Security.xml:1095
 #, no-c-format
-msgid ""
-"This value is appended to the role name to form the DN for locating the role "
-"record."
+msgid "This value is appended to the role name to form the DN for locating the role record."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1104
 #, no-c-format
 msgid "bind-DN"
-msgstr ""
+msgstr "bind-DN"
 
 #. Tag: literal
 #: Security.xml:1108
 #, no-c-format
 msgid "cn=Manager,dc=acme,dc=com"
-msgstr ""
+msgstr "cn=Manager,dc=acme,dc=com"
 
 #. Tag: para
 #: Security.xml:1111
@@ -1855,72 +1798,67 @@
 #: Security.xml:1120
 #, no-c-format
 msgid "bind-credentials"
-msgstr ""
+msgstr "bind-credentials"
 
 #. Tag: literal
 #: Security.xml:1124
 #, no-c-format
 msgid "secret"
-msgstr ""
+msgstr "secret"
 
 #. Tag: para
 #: Security.xml:1127
 #, no-c-format
-msgid ""
-"These are the credentials (the password) used to bind to the LDAP server."
+msgid "These are the credentials (the password) used to bind to the LDAP server."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1136
 #, no-c-format
 msgid "user-role-attribute"
-msgstr ""
+msgstr "user-role-attribute"
 
 #. Tag: literal
 #: Security.xml:1140
 #, no-c-format
 msgid "roles"
-msgstr ""
+msgstr "roles"
 
 #. Tag: para
 #: Security.xml:1143
 #, no-c-format
-msgid ""
-"This is the name of the attribute of the user record that contains the list "
-"of roles that the user is a member of."
+msgid "This is the name of the attribute of the user record that contains the list of roles that the user is a member of."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1153
 #, no-c-format
 msgid "role-attribute-is-DN"
-msgstr ""
+msgstr "role-attribute-is-DN"
 
 #. Tag: literal
 #: Security.xml:1157
 #, no-c-format
 msgid "true"
-msgstr ""
+msgstr "true"
 
 #. Tag: para
 #: Security.xml:1160
 #, no-c-format
-msgid ""
-"This boolean property indicates whether the role attribute of the user "
-"record is itself a distinguished name."
+msgid "This boolean property indicates whether the role attribute of the user record is itself a distinguished name."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1170
 #, no-c-format
 msgid "user-name-attribute"
-msgstr ""
+msgstr "user-name-attribute"
 
 #. Tag: literal
 #: Security.xml:1174
 #, no-c-format
 msgid "<literal>uid</literal>"
-msgstr ""
+msgstr "<literal>uid</literal>"
 
 #. Tag: para
 #: Security.xml:1177
@@ -1938,13 +1876,12 @@
 #: Security.xml:1190
 #, no-c-format
 msgid "userPassword"
-msgstr ""
+msgstr "userPassword"
 
 #. Tag: para
 #: Security.xml:1193
 #, no-c-format
-msgid ""
-"Indicates which attribute of the user record contains the user's password."
+msgid "Indicates which attribute of the user record contains the user's password."
 msgstr ""
 
 #. Tag: literal
@@ -1954,7 +1891,8 @@
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:1206 Security.xml:1254
+#: Security.xml:1206
+#: Security.xml:1254
 #, no-c-format
 msgid "null"
 msgstr ""
@@ -1962,8 +1900,7 @@
 #. Tag: para
 #: Security.xml:1209
 #, no-c-format
-msgid ""
-"Indicates which attribute of the user record contains the user's first name."
+msgid "Indicates which attribute of the user record contains the user's first name."
 msgstr ""
 
 #. Tag: literal
@@ -1981,8 +1918,7 @@
 #. Tag: para
 #: Security.xml:1225
 #, no-c-format
-msgid ""
-"Indicates which attribute of the user record contains the user's last name."
+msgid "Indicates which attribute of the user record contains the user's last name."
 msgstr ""
 
 #. Tag: literal
@@ -1992,7 +1928,8 @@
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:1238 Security.xml:1270
+#: Security.xml:1238
+#: Security.xml:1270
 #, no-c-format
 msgid "<literal>cn</literal>"
 msgstr ""
@@ -2000,55 +1937,49 @@
 #. Tag: para
 #: Security.xml:1241
 #, no-c-format
-msgid ""
-"Indicates which attribute of the user record contains the user's full "
-"(common) name."
+msgid "Indicates which attribute of the user record contains the user's full (common) name."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1250
 #, no-c-format
 msgid "enabled-attribute"
-msgstr ""
+msgstr "enabled-attribute"
 
 #. Tag: para
 #: Security.xml:1257
 #, no-c-format
-msgid ""
-"Indicates which attribute of the user record determines whether the user is "
-"enabled."
+msgid "Indicates which attribute of the user record determines whether the user is enabled."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1266
 #, no-c-format
 msgid "role-name-attribute"
-msgstr ""
+msgstr "role-name-attribute"
 
 #. Tag: para
 #: Security.xml:1273
 #, no-c-format
-msgid ""
-"Indicates which attribute of the role record contains the name of the role."
+msgid "Indicates which attribute of the role record contains the name of the role."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1282
 #, no-c-format
 msgid "object-class-attribute"
-msgstr ""
+msgstr "object-class-attribute"
 
 #. Tag: literal
 #: Security.xml:1286
 #, no-c-format
 msgid "objectClass"
-msgstr ""
+msgstr "objectClass"
 
 #. Tag: para
 #: Security.xml:1289
 #, no-c-format
-msgid ""
-"Indicates which attribute determines the class of an object in the directory."
+msgid "Indicates which attribute determines the class of an object in the directory."
 msgstr ""
 
 #. Tag: literal
@@ -2066,8 +1997,7 @@
 #. Tag: para
 #: Security.xml:1305
 #, no-c-format
-msgid ""
-"An array of the object classes that new role records should be created as."
+msgid "An array of the object classes that new role records should be created as."
 msgstr ""
 
 #. Tag: literal
@@ -2085,8 +2015,7 @@
 #. Tag: para
 #: Security.xml:1321
 #, no-c-format
-msgid ""
-"An array of the object classes that new user records should be created as."
+msgid "An array of the object classes that new user records should be created as."
 msgstr ""
 
 #. Tag: title
@@ -2098,18 +2027,7 @@
 #. Tag: para
 #: Security.xml:1335
 #, no-c-format
-msgid ""
-"The following configuration example shows how <literal>LdapIdentityStore</"
-"literal> may be configured for an LDAP directory running on fictional host "
-"<literal>directory.mycompany.com</literal>. The users are stored within this "
-"directory under the context <literal>ou=Person,dc=mycompany,dc=com</"
-"literal>, and are identified using the <literal>uid</literal> attribute "
-"(which corresponds to their username). Roles are stored in their own "
-"context, <literal>ou=Roles,dc=mycompany,dc=com</literal> and referenced from "
-"the user's entry via the <literal>roles</literal> attribute. Role entries "
-"are identified by their common name (the <literal>cn</literal> attribute) , "
-"which corresponds to the role name. In this example, users may be disabled "
-"by setting the value of their <literal>enabled</literal> attribute to false."
+msgid "The following configuration example shows how <literal>LdapIdentityStore</literal> may be configured for an LDAP directory running on fictional host <literal>directory.mycompany.com</literal>. The users are stored within this directory under the context <literal>ou=Person,dc=mycompany,dc=com</literal>, and are identified using the <literal>uid</literal> attribute (which corresponds to their username). Roles are stored in their own context, <literal>ou=Roles,dc=mycompany,dc=com</literal> and referenced from the user's entry via the <literal>roles</literal> attribute. Role entries are identified by their common name (the <literal>cn</literal> attribute) , which corresponds to the role name. In this example, users may be disabled by setting the value of their <literal>enabled</literal> attribute to false."
 msgstr ""
 
 #. Tag: programlisting
@@ -2143,20 +2061,13 @@
 #. Tag: para
 #: Security.xml:1355
 #, no-c-format
-msgid ""
-"Writing your own identity store implementation allows you to authenticate "
-"and perform identity management operations against security providers that "
-"aren't supported out of the box by Seam. Only a single class is required to "
-"achieve this, and it must implement the <literal>org.jboss.seam.security."
-"management.IdentityStore</literal> interface."
+msgid "Writing your own identity store implementation allows you to authenticate and perform identity management operations against security providers that aren't supported out of the box by Seam. Only a single class is required to achieve this, and it must implement the <literal>org.jboss.seam.security.management.IdentityStore</literal> interface."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:1362
 #, no-c-format
-msgid ""
-"Please refer to the JavaDoc for <literal>IdentityStore</literal> for a "
-"description of the methods that must be implemented."
+msgid "Please refer to the JavaDoc for <literal>IdentityStore</literal> for a description of the methods that must be implemented."
 msgstr ""
 
 #. Tag: title
@@ -2168,15 +2079,7 @@
 #. Tag: para
 #: Security.xml:1372
 #, no-c-format
-msgid ""
-"If you are using the Identity Management features in your Seam application, "
-"then it is not required to provide an authenticator component (see previous "
-"Authentication section) to enable authentication. Simply omit the "
-"<literal>authenticator-method</literal> from the <literal>identity</literal> "
-"configuration in <literal>components.xml</literal>, and the "
-"<literal>SeamLoginModule</literal> will by default use "
-"<literal>IdentityManager</literal> to authenticate your application's users, "
-"without any special configuration required."
+msgid "If you are using the Identity Management features in your Seam application, then it is not required to provide an authenticator component (see previous Authentication section) to enable authentication. Simply omit the <literal>authenticator-method</literal> from the <literal>identity</literal> configuration in <literal>components.xml</literal>, and the <literal>SeamLoginModule</literal> will by default use <literal>IdentityManager</literal> to authenticate your application's users, without any special configuration required."
 msgstr ""
 
 #. Tag: title
@@ -2188,9 +2091,7 @@
 #. Tag: para
 #: Security.xml:1385
 #, no-c-format
-msgid ""
-"The <literal>IdentityManager</literal> can be accessed either by injecting "
-"it into your Seam component as follows:"
+msgid "The <literal>IdentityManager</literal> can be accessed either by injecting it into your Seam component as follows:"
 msgstr ""
 
 #. Tag: programlisting
@@ -2202,23 +2103,19 @@
 #. Tag: para
 #: Security.xml:1392
 #, no-c-format
-msgid ""
-"or by accessing it through its static <literal>instance()</literal> method:"
+msgid "or by accessing it through its static <literal>instance()</literal> method:"
 msgstr ""
 
 #. Tag: programlisting
 #: Security.xml:1396
 #, no-c-format
-msgid ""
-"<![CDATA[  IdentityManager identityManager = IdentityManager.instance();]]>"
+msgid "<![CDATA[  IdentityManager identityManager = IdentityManager.instance();]]>"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:1398
 #, no-c-format
-msgid ""
-"The following table describes <literal>IdentityManager</literal>'s API "
-"methods:"
+msgid "The following table describes <literal>IdentityManager</literal>'s API methods:"
 msgstr ""
 
 #. Tag: title
@@ -2228,8 +2125,12 @@
 msgstr ""
 
 #. Tag: para
-#: Security.xml:1412 Security.xml:1828 Security.xml:2753 Security.xml:3147
-#: Security.xml:3768 Security.xml:3937
+#: Security.xml:1412
+#: Security.xml:1828
+#: Security.xml:2753
+#: Security.xml:3147
+#: Security.xml:3768
+#: Security.xml:3937
 #, no-c-format
 msgid "Method"
 msgstr ""
@@ -2247,50 +2148,61 @@
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:1433 Security.xml:1452 Security.xml:1471 Security.xml:1490
-#: Security.xml:1509 Security.xml:1529 Security.xml:1548 Security.xml:1567
-#: Security.xml:1586 Security.xml:1606 Security.xml:1626 Security.xml:1740
-#: Security.xml:1762 Security.xml:1780 Security.xml:2766 Security.xml:3218
-#: Security.xml:3237 Security.xml:3256 Security.xml:3274 Security.xml:3819
-#: Security.xml:3838 Security.xml:3857 Security.xml:3876
+#: Security.xml:1433
+#: Security.xml:1452
+#: Security.xml:1471
+#: Security.xml:1490
+#: Security.xml:1509
+#: Security.xml:1529
+#: Security.xml:1548
+#: Security.xml:1567
+#: Security.xml:1586
+#: Security.xml:1606
+#: Security.xml:1626
+#: Security.xml:1740
+#: Security.xml:1762
+#: Security.xml:1780
+#: Security.xml:2766
+#: Security.xml:3218
+#: Security.xml:3237
+#: Security.xml:3256
+#: Security.xml:3274
+#: Security.xml:3819
+#: Security.xml:3838
+#: Security.xml:3857
+#: Security.xml:3876
 #, no-c-format
 msgid "boolean"
-msgstr ""
+msgstr "boolean"
 
 #. Tag: para
 #: Security.xml:1437
 #, no-c-format
-msgid ""
-"Creates a new user account, with the specified name and password. Returns "
-"<literal>true</literal> if successful, or <literal>false</literal> if not."
+msgid "Creates a new user account, with the specified name and password. Returns <literal>true</literal> if successful, or <literal>false</literal> if not."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1447
 #, no-c-format
 msgid "deleteUser(String name)"
-msgstr ""
+msgstr "deleteUser(String name)"
 
 #. Tag: para
 #: Security.xml:1456
 #, no-c-format
-msgid ""
-"Deletes the user account with the specified name. Returns <literal>true</"
-"literal> if successful, or <literal>false</literal> if not."
+msgid "Deletes the user account with the specified name. Returns <literal>true</literal> if successful, or <literal>false</literal> if not."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1466
 #, no-c-format
 msgid "createRole(String role)"
-msgstr ""
+msgstr "createRole(String role)"
 
 #. Tag: para
 #: Security.xml:1475
 #, no-c-format
-msgid ""
-"Creates a new role, with the specified name. Returns <literal>true</literal> "
-"if successful, or <literal>false</literal> if not."
+msgid "Creates a new role, with the specified name. Returns <literal>true</literal> if successful, or <literal>false</literal> if not."
 msgstr ""
 
 #. Tag: literal
@@ -2302,126 +2214,110 @@
 #. Tag: para
 #: Security.xml:1494
 #, no-c-format
-msgid ""
-"Deletes the role with the specified name. Returns <literal>true</literal> if "
-"successful, or <literal>false</literal> if not."
+msgid "Deletes the role with the specified name. Returns <literal>true</literal> if successful, or <literal>false</literal> if not."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1504
 #, no-c-format
 msgid "enableUser(String name)"
-msgstr ""
+msgstr "enableUser(String name)"
 
 #. Tag: para
 #: Security.xml:1513
 #, no-c-format
-msgid ""
-"Enables the user account with the specified name. Accounts that are not "
-"enabled are not able to authenticate. Returns <literal>true</literal> if "
-"successful, or <literal>false</literal> if not."
+msgid "Enables the user account with the specified name. Accounts that are not enabled are not able to authenticate. Returns <literal>true</literal> if successful, or <literal>false</literal> if not."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1524
 #, no-c-format
 msgid "disableUser(String name)"
-msgstr ""
+msgstr "disableUser(String name)"
 
 #. Tag: para
 #: Security.xml:1533
 #, no-c-format
-msgid ""
-"Disables the user account with the specified name. Returns <literal>true</"
-"literal> if successful, or <literal>false</literal> if not."
+msgid "Disables the user account with the specified name. Returns <literal>true</literal> if successful, or <literal>false</literal> if not."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1543
 #, no-c-format
 msgid "changePassword(String name, String password)"
-msgstr ""
+msgstr "changePassword(String name, String password)"
 
 #. Tag: para
 #: Security.xml:1552
 #, no-c-format
-msgid ""
-"Changes the password for the user account with the specified name. Returns "
-"<literal>true</literal> if successful, or <literal>false</literal> if not."
+msgid "Changes the password for the user account with the specified name. Returns <literal>true</literal> if successful, or <literal>false</literal> if not."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1562
 #, no-c-format
 msgid "isUserEnabled(String name)"
-msgstr ""
+msgstr "isUserEnabled(String name)"
 
 #. Tag: para
 #: Security.xml:1571
 #, no-c-format
-msgid ""
-"Returns <literal>true</literal> if the specified user account is enabled, or "
-"<literal>false</literal> if it isn't."
+msgid "Returns <literal>true</literal> if the specified user account is enabled, or <literal>false</literal> if it isn't."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1581
 #, no-c-format
 msgid "grantRole(String name, String role)"
-msgstr ""
+msgstr "grantRole(String name, String role)"
 
 #. Tag: para
 #: Security.xml:1590
 #, no-c-format
-msgid ""
-"Grants the specified role to the specified user or role. The role must "
-"already exist for it to be granted. Returns <literal>true</literal> if the "
-"role is successfully granted, or <literal>false</literal> if it is already "
-"granted to the user."
+msgid "Grants the specified role to the specified user or role. The role must already exist for it to be granted. Returns <literal>true</literal> if the role is successfully granted, or <literal>false</literal> if it is already granted to the user."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1601
 #, no-c-format
 msgid "revokeRole(String name, String role)"
-msgstr ""
+msgstr "revokeRole(String name, String role)"
 
 #. Tag: para
 #: Security.xml:1610
 #, no-c-format
-msgid ""
-"Revokes the specified role from the specified user or role. Returns "
-"<literal>true</literal> if the specified user is a member of the role and it "
-"is successfully revoked, or <literal>false</literal> if the user is not a "
-"member of the role."
+msgid "Revokes the specified role from the specified user or role. Returns <literal>true</literal> if the specified user is a member of the role and it is successfully revoked, or <literal>false</literal> if the user is not a member of the role."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:1621
 #, no-c-format
 msgid "userExists(String name)"
-msgstr ""
+msgstr "userExists(String name)"
 
 #. Tag: para
 #: Security.xml:1630
 #, no-c-format
-msgid ""
-"Returns <literal>true</literal> if the specified user exists, or "
-"<literal>false</literal> if it doesn't."
+msgid "Returns <literal>true</literal> if the specified user exists, or <literal>false</literal> if it doesn't."
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:1640 Security.xml:2041
+#: Security.xml:1640
+#: Security.xml:2041
 #, no-c-format
 msgid "listUsers()"
-msgstr ""
+msgstr "listUsers()"
 
 #. Tag: literal
-#: Security.xml:1645 Security.xml:1663 Security.xml:1681 Security.xml:1699
-#: Security.xml:1717 Security.xml:1798
+#: Security.xml:1645
+#: Security.xml:1663
+#: Security.xml:1681
+#: Security.xml:1699
+#: Security.xml:1717
+#: Security.xml:1798
 #, no-c-format
 msgid "List"
-msgstr ""
+msgstr "listUsers(String filter)"
 
 #. Tag: para
 #: Security.xml:1649
@@ -2433,21 +2329,21 @@
 #: Security.xml:1658
 #, no-c-format
 msgid "listUsers(String filter)"
-msgstr ""
+msgstr "listUsers(String filter)"
 
 #. Tag: para
 #: Security.xml:1667
 #, no-c-format
-msgid ""
-"Returns a list of all user names filtered by the specified filter parameter, "
-"sorted in alpha-numeric order."
+msgid "Returns a list of all user names filtered by the specified filter parameter, sorted in alpha-numeric order."
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:1676 Security.xml:1793 Security.xml:2059
+#: Security.xml:1676
+#: Security.xml:1793
+#: Security.xml:2059
 #, no-c-format
 msgid "listRoles()"
-msgstr ""
+msgstr "listRoles()"
 
 #. Tag: para
 #: Security.xml:1685
@@ -2459,14 +2355,12 @@
 #: Security.xml:1694
 #, no-c-format
 msgid "getGrantedRoles(String name)"
-msgstr ""
+msgstr "getGrantedRoles(String name)"
 
 #. Tag: para
 #: Security.xml:1703
 #, no-c-format
-msgid ""
-"Returns a list of the names of all the roles explicitly granted to the "
-"specified user name."
+msgid "Returns a list of the names of all the roles explicitly granted to the specified user name."
 msgstr ""
 
 #. Tag: literal
@@ -2478,14 +2372,7 @@
 #. Tag: para
 #: Security.xml:1721
 #, no-c-format
-msgid ""
-"Returns a list of the names of all the roles implicitly granted to the "
-"specified user name. Implicitly granted roles include those that are not "
-"directly granted to a user, rather they are granted to the roles that the "
-"user is a member of. For example, is the <literal>admin</literal> role is a "
-"member of the <literal>user</literal> role, and a user is a member of the "
-"<literal>admin</literal> role, then the implied roles for the user are both "
-"the <literal>admin</literal>, and <literal>user</literal> roles."
+msgid "Returns a list of the names of all the roles implicitly granted to the specified user name. Implicitly granted roles include those that are not directly granted to a user, rather they are granted to the roles that the user is a member of. For example, is the <literal>admin</literal> role is a member of the <literal>user</literal> role, and a user is a member of the <literal>admin</literal> role, then the implied roles for the user are both the <literal>admin</literal>, and <literal>user</literal> roles."
 msgstr ""
 
 #. Tag: literal
@@ -2497,13 +2384,7 @@
 #. Tag: para
 #: Security.xml:1744
 #, no-c-format
-msgid ""
-"Authenticates the specified username and password using the configured "
-"Identity Store. Returns <literal>true</literal> if successful or "
-"<literal>false</literal> if authentication failed. Successful authentication "
-"implies nothing beyond the return value of the method. It does not change "
-"the state of the <literal>Identity</literal> component - to perform a proper "
-"Seam login the <literal>Identity.login()</literal> must be used instead."
+msgid "Authenticates the specified username and password using the configured Identity Store. Returns <literal>true</literal> if successful or <literal>false</literal> if authentication failed. Successful authentication implies nothing beyond the return value of the method. It does not change the state of the <literal>Identity</literal> component - to perform a proper Seam login the <literal>Identity.login()</literal> must be used instead."
 msgstr ""
 
 #. Tag: literal
@@ -2515,9 +2396,7 @@
 #. Tag: para
 #: Security.xml:1766
 #, no-c-format
-msgid ""
-"Adds the specified role as a member of the specified group. Returns true if "
-"the operation is successful."
+msgid "Adds the specified role as a member of the specified group. Returns true if the operation is successful."
 msgstr ""
 
 #. Tag: literal
@@ -2529,9 +2408,7 @@
 #. Tag: para
 #: Security.xml:1784
 #, no-c-format
-msgid ""
-"Removes the specified role from the specified group. Returns true if the "
-"operation is successful."
+msgid "Removes the specified role from the specified group. Returns true if the operation is successful."
 msgstr ""
 
 #. Tag: para
@@ -2543,12 +2420,7 @@
 #. Tag: para
 #: Security.xml:1812
 #, no-c-format
-msgid ""
-"Using the Identity Management API requires that the calling user has the "
-"appropriate authorization to invoke its methods. The following table "
-"describes the permission requirements for each of the methods in "
-"<literal>IdentityManager</literal>. The permission targets listed below are "
-"literal String values."
+msgid "Using the Identity Management API requires that the calling user has the appropriate authorization to invoke its methods. The following table describes the permission requirements for each of the methods in <literal>IdentityManager</literal>. The permission targets listed below are literal String values."
 msgstr ""
 
 #. Tag: title
@@ -2558,13 +2430,15 @@
 msgstr ""
 
 #. Tag: para
-#: Security.xml:1831 Security.xml:3940
+#: Security.xml:1831
+#: Security.xml:3940
 #, no-c-format
 msgid "Permission Target"
 msgstr ""
 
 #. Tag: para
-#: Security.xml:1834 Security.xml:3943
+#: Security.xml:1834
+#: Security.xml:3943
 #, no-c-format
 msgid "Permission Action"
 msgstr ""
@@ -2576,15 +2450,23 @@
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:1848 Security.xml:1866 Security.xml:1920 Security.xml:1938
-#: Security.xml:1956 Security.xml:1974 Security.xml:1992 Security.xml:2010
-#: Security.xml:2028 Security.xml:2046
+#: Security.xml:1848
+#: Security.xml:1866
+#: Security.xml:1920
+#: Security.xml:1938
+#: Security.xml:1956
+#: Security.xml:1974
+#: Security.xml:1992
+#: Security.xml:2010
+#: Security.xml:2028
+#: Security.xml:2046
 #, no-c-format
 msgid "seam.user"
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:1853 Security.xml:1889
+#: Security.xml:1853
+#: Security.xml:1889
 #, no-c-format
 msgid "create"
 msgstr ""
@@ -2596,7 +2478,8 @@
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:1871 Security.xml:1907
+#: Security.xml:1871
+#: Security.xml:1907
 #, no-c-format
 msgid "delete"
 msgstr ""
@@ -2608,7 +2491,10 @@
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:1884 Security.xml:1902 Security.xml:2064 Security.xml:2082
+#: Security.xml:1884
+#: Security.xml:1902
+#: Security.xml:2064
+#: Security.xml:2082
 #: Security.xml:2100
 #, no-c-format
 msgid "seam.role"
@@ -2627,8 +2513,13 @@
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:1925 Security.xml:1943 Security.xml:1961 Security.xml:1997
-#: Security.xml:2015 Security.xml:2087 Security.xml:2105
+#: Security.xml:1925
+#: Security.xml:1943
+#: Security.xml:1961
+#: Security.xml:1997
+#: Security.xml:2015
+#: Security.xml:2087
+#: Security.xml:2105
 #, no-c-format
 msgid "update"
 msgstr ""
@@ -2652,7 +2543,10 @@
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:1979 Security.xml:2033 Security.xml:2051 Security.xml:2069
+#: Security.xml:1979
+#: Security.xml:2033
+#: Security.xml:2051
+#: Security.xml:2069
 #, no-c-format
 msgid "read"
 msgstr ""
@@ -2690,10 +2584,7 @@
 #. Tag: para
 #: Security.xml:2113
 #, no-c-format
-msgid ""
-"The following code listing provides an example set of security rules that "
-"grants access to all Identity Management-related methods to members of the "
-"<literal>admin</literal> role:"
+msgid "The following code listing provides an example set of security rules that grants access to all Identity Management-related methods to members of the <literal>admin</literal> role:"
 msgstr ""
 
 #. Tag: programlisting
@@ -2721,6 +2612,26 @@
 "end\n"
 "]]>"
 msgstr ""
+"<![CDATA[rule ManageUsers\n"
+"  no-loop\n"
+"  activation-group \"permissions\"\n"
+"when\n"
+"  check: PermissionCheck(name == \"seam.user\", granted == false)\n"
+"  Role(name == \"admin\")\n"
+"then\n"
+"  check.grant();\n"
+"end\n"
+"\n"
+"rule ManageRoles\n"
+"  no-loop\n"
+"  activation-group \"permissions\"\n"
+"when\n"
+"  check: PermissionCheck(name == \"seam.role\", granted == false)\n"
+"  Role(name == \"admin\")\n"
+"then\n"
+"  check.grant();\n"
+"end\n"
+"]]>"
 
 #. Tag: title
 #: Security.xml:2125
@@ -2731,12 +2642,7 @@
 #. Tag: para
 #: Security.xml:2127
 #, no-c-format
-msgid ""
-"The security API produces a number of default faces messages for various "
-"security-related events. The following table lists the message keys that can "
-"be used to override these messages by specifying them in a <literal>message."
-"properties</literal> resource file. To suppress the message, just put the "
-"key with an empty value in the resource file."
+msgid "The security API produces a number of default faces messages for various security-related events. The following table lists the message keys that can be used to override these messages by specifying them in a <literal>message.properties</literal> resource file. To suppress the message, just put the key with an empty value in the resource file."
 msgstr ""
 
 #. Tag: title
@@ -2760,71 +2666,55 @@
 #. Tag: para
 #: Security.xml:2161
 #, no-c-format
-msgid ""
-"This message is produced when a user successfully logs in via the security "
-"API."
+msgid "This message is produced when a user successfully logs in via the security API."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:2169
 #, no-c-format
 msgid "org.jboss.seam.loginFailed"
-msgstr ""
+msgstr "org.jboss.seam.loginFailed"
 
 #. Tag: para
 #: Security.xml:2173
 #, no-c-format
-msgid ""
-"This message is produced when the login process fails, either because the "
-"user provided an incorrect username or password, or because authentication "
-"failed in some other way."
+msgid "This message is produced when the login process fails, either because the user provided an incorrect username or password, or because authentication failed in some other way."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:2182
 #, no-c-format
 msgid "org.jboss.seam.NotLoggedIn"
-msgstr ""
+msgstr "org.jboss.seam.NotLoggedIn"
 
 #. Tag: para
 #: Security.xml:2186
 #, no-c-format
-msgid ""
-"This message is produced when a user attempts to perform an action or access "
-"a page that requires a security check, and the user is not currently "
-"authenticated."
+msgid "This message is produced when a user attempts to perform an action or access a page that requires a security check, and the user is not currently authenticated."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:2195
 #, no-c-format
 msgid "org.jboss.seam.AlreadyLoggedIn"
-msgstr ""
+msgstr "org.jboss.seam.AlreadyLoggedIn"
 
 #. Tag: para
 #: Security.xml:2199
 #, no-c-format
-msgid ""
-"This message is produced when a user that is already authenticated attempts "
-"to log in again."
+msgid "This message is produced when a user that is already authenticated attempts to log in again."
 msgstr ""
 
 #. Tag: title
 #: Security.xml:2210
 #, no-c-format
 msgid "Authorization"
-msgstr ""
+msgstr "Autorizzazione"
 
 #. Tag: para
 #: Security.xml:2212
 #, no-c-format
-msgid ""
-"There are a number of authorization mechanisms provided by the Seam Security "
-"API for securing access to components, component methods, and pages. This "
-"section describes each of these. An important thing to note is that if you "
-"wish to use any of the advanced features (such as rule-based permissions) "
-"then your <literal>components.xml</literal> may need to be configured to "
-"support this - see the Configuration section above."
+msgid "There are a number of authorization mechanisms provided by the Seam Security API for securing access to components, component methods, and pages. This section describes each of these. An important thing to note is that if you wish to use any of the advanced features (such as rule-based permissions) then your <literal>components.xml</literal> may need to be configured to support this - see the Configuration section above."
 msgstr ""
 
 #. Tag: title
@@ -2836,64 +2726,37 @@
 #. Tag: para
 #: Security.xml:2223
 #, no-c-format
-msgid ""
-"Seam Security is built around the premise of users being granted roles and/"
-"or permissions, allowing them to perform operations that may not otherwise "
-"be permissible for users without the necessary security privileges. Each of "
-"the authorization mechanisms provided by the Seam Security API are built "
-"upon this core concept of roles and permissions, with an extensible "
-"framework providing multiple ways to secure application resources."
+msgid "Seam Security is built around the premise of users being granted roles and/or permissions, allowing them to perform operations that may not otherwise be permissible for users without the necessary security privileges. Each of the authorization mechanisms provided by the Seam Security API are built upon this core concept of roles and permissions, with an extensible framework providing multiple ways to secure application resources."
 msgstr ""
 
 #. Tag: title
 #: Security.xml:2231
 #, no-c-format
 msgid "What is a role?"
-msgstr ""
+msgstr "Cosa è un ruolo?"
 
 #. Tag: para
 #: Security.xml:2233
 #, no-c-format
-msgid ""
-"A role is a <emphasis>group</emphasis>, or <emphasis>type</emphasis>, of "
-"user that may have been granted certain privileges for performing one or "
-"more specific actions within an application. They are simple constructs, "
-"consisting of just a name such as \"admin\", \"user\", \"customer\", etc. "
-"They can be granted either to users (or in some cases to other roles), and "
-"are used to create logical groups of users for the convenient assignment of "
-"specific application privileges."
+msgid "A role is a <emphasis>group</emphasis>, or <emphasis>type</emphasis>, of user that may have been granted certain privileges for performing one or more specific actions within an application. They are simple constructs, consisting of just a name such as \"admin\", \"user\", \"customer\", etc. They can be granted either to users (or in some cases to other roles), and are used to create logical groups of users for the convenient assignment of specific application privileges."
 msgstr ""
 
 #. Tag: title
 #: Security.xml:2251
 #, no-c-format
 msgid "What is a permission?"
-msgstr ""
+msgstr "Cosa è un permesso?"
 
 #. Tag: para
 #: Security.xml:2253
 #, no-c-format
-msgid ""
-"A permission is a privilege (sometimes once-off) for performing a single, "
-"specific action. It is entirely possible to build an application using "
-"nothing but permissions, however roles offer a higher level of convenience "
-"when granting privileges to groups of users. They are slightly more complex "
-"in structure than roles, essentially consisting of three \"aspects\"; a "
-"target, an action, and a recipient. The target of a permission is the object "
-"(or an arbitrary name or class) for which a particular action is allowed to "
-"be performed by a specific recipient (or user). For example, the user \"Bob"
-"\" may have permission to delete customer objects. In this case, the "
-"permission target may be \"customer\", the permission action would be "
-"\"delete\" and the recipient would be \"Bob\"."
+msgid "A permission is a privilege (sometimes once-off) for performing a single, specific action. It is entirely possible to build an application using nothing but permissions, however roles offer a higher level of convenience when granting privileges to groups of users. They are slightly more complex in structure than roles, essentially consisting of three \"aspects\"; a target, an action, and a recipient. The target of a permission is the object (or an arbitrary name or class) for which a particular action is allowed to be performed by a specific recipient (or user). For example, the user \"Bob\" may have permission to delete customer objects. In this case, the permission target may be \"customer\", the permission action would be \"delete\" and the recipient would be \"Bob\"."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2273
 #, no-c-format
-msgid ""
-"Within this documentation, permissions are generally represented in the form "
-"<literal>target:action</literal> (omitting the recipient, although in "
-"reality one is always required)."
+msgid "Within this documentation, permissions are generally represented in the form <literal>target:action</literal> (omitting the recipient, although in reality one is always required)."
 msgstr ""
 
 #. Tag: title
@@ -2905,9 +2768,7 @@
 #. Tag: para
 #: Security.xml:2284
 #, no-c-format
-msgid ""
-"Let's start by examining the simplest form of authorization, component "
-"security, starting with the <literal>@Restrict</literal> annotation."
+msgid "Let's start by examining the simplest form of authorization, component security, starting with the <literal>@Restrict</literal> annotation."
 msgstr ""
 
 #. Tag: title
@@ -2919,11 +2780,7 @@
 #. Tag: para
 #: Security.xml:2292
 #, no-c-format
-msgid ""
-"While using the <literal>@Restrict</literal> annotation provides a powerful "
-"and flexible method for security component methods due to its ability to "
-"support EL expressions, it is recommended that the typesafe equivalent "
-"(described later) be used, at least for the compile-time safety it provides."
+msgid "While using the <literal>@Restrict</literal> annotation provides a powerful and flexible method for security component methods due to its ability to support EL expressions, it is recommended that the typesafe equivalent (described later) be used, at least for the compile-time safety it provides."
 msgstr ""
 
 #. Tag: title
@@ -2935,25 +2792,13 @@
 #. Tag: para
 #: Security.xml:2302
 #, no-c-format
-msgid ""
-"Seam components may be secured either at the method or the class level, "
-"using the <literal>@Restrict</literal> annotation. If both a method and it's "
-"declaring class are annotated with <literal>@Restrict</literal>, the method "
-"restriction will take precedence (and the class restriction will not apply). "
-"If a method invocation fails a security check, then an exception will be "
-"thrown as per the contract for <literal>Identity.checkRestriction()</"
-"literal> (see Inline Restrictions). A <literal>@Restrict</literal> on just "
-"the component class itself is equivalent to adding <literal>@Restrict</"
-"literal> to each of its methods."
+msgid "Seam components may be secured either at the method or the class level, using the <literal>@Restrict</literal> annotation. If both a method and it's declaring class are annotated with <literal>@Restrict</literal>, the method restriction will take precedence (and the class restriction will not apply). If a method invocation fails a security check, then an exception will be thrown as per the contract for <literal>Identity.checkRestriction()</literal> (see Inline Restrictions). A <literal>@Restrict</literal> on just the component class itself is equivalent to adding <literal>@Restrict</literal> to each of its methods."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2312
 #, no-c-format
-msgid ""
-"An empty <literal>@Restrict</literal> implies a permission check of "
-"<literal>componentName:methodName</literal>. Take for example the following "
-"component method:"
+msgid "An empty <literal>@Restrict</literal> implies a permission check of <literal>componentName:methodName</literal>. Take for example the following component method:"
 msgstr ""
 
 #. Tag: programlisting
@@ -2967,15 +2812,17 @@
 "    }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Name(\"account\")\n"
+"public class AccountAction {\n"
+"    @Restrict public void delete() {\n"
+"      ...\n"
+"    }\n"
+"}]]>"
 
 #. Tag: para
 #: Security.xml:2319
 #, no-c-format
-msgid ""
-"In this example, the implied permission required to call the <literal>delete"
-"()</literal> method is <literal>account:delete</literal>. The equivalent of "
-"this would be to write <literal>@Restrict(\"#{s:hasPermission"
-"('account','delete')}\")</literal>. Now let's look at another example:"
+msgid "In this example, the implied permission required to call the <literal>delete()</literal> method is <literal>account:delete</literal>. The equivalent of this would be to write <literal>@Restrict(\"#{s:hasPermission('account','delete')}\")</literal>. Now let's look at another example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -2993,40 +2840,33 @@
 "    }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Restrict @Name(\"account\")\n"
+"public class AccountAction {\n"
+"    public void insert() {\n"
+"      ...\n"
+"    }\n"
+"    @Restrict(\"#{s:hasRole('admin')}\")\n"
+"    public void delete() {\n"
+"      ...\n"
+"    }\n"
+"}]]>"
 
 #. Tag: para
 #: Security.xml:2328
 #, no-c-format
-msgid ""
-"This time, the component class itself is annotated with <literal>@Restrict</"
-"literal>. This means that any methods without an overriding "
-"<literal>@Restrict</literal> annotation require an implicit permission "
-"check. In the case of this example, the <literal>insert()</literal> method "
-"requires a permission of <literal>account:insert</literal>, while the "
-"<literal>delete()</literal> method requires that the user is a member of the "
-"<literal>admin</literal> role."
+msgid "This time, the component class itself is annotated with <literal>@Restrict</literal>. This means that any methods without an overriding <literal>@Restrict</literal> annotation require an implicit permission check. In the case of this example, the <literal>insert()</literal> method requires a permission of <literal>account:insert</literal>, while the <literal>delete()</literal> method requires that the user is a member of the <literal>admin</literal> role."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2336
 #, no-c-format
-msgid ""
-"Before we go any further, let's address the <literal>#{s:hasRole()}</"
-"literal> expression seen in the above example. Both <literal>s:hasRole</"
-"literal> and <literal>s:hasPermission</literal> are EL functions, which "
-"delegate to the correspondingly named methods of the <literal>Identity</"
-"literal> class. These functions can be used within any EL expression "
-"throughout the entirety of the security API."
+msgid "Before we go any further, let's address the <literal>#{s:hasRole()}</literal> expression seen in the above example. Both <literal>s:hasRole</literal> and <literal>s:hasPermission</literal> are EL functions, which delegate to the correspondingly named methods of the <literal>Identity</literal> class. These functions can be used within any EL expression throughout the entirety of the security API."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2343
 #, no-c-format
-msgid ""
-"Being an EL expression, the value of the <literal>@Restrict</literal> "
-"annotation may reference any objects that exist within a Seam context. This "
-"is extremely useful when performing permission checks for a specific object "
-"instance. Look at this example:"
+msgid "Being an EL expression, the value of the <literal>@Restrict</literal> annotation may reference any objects that exist within a Seam context. This is extremely useful when performing permission checks for a specific object instance. Look at this example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -3042,18 +2882,19 @@
 "    }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Name(\"account\")\n"
+"public class AccountAction {\n"
+"    @In Account selectedAccount;\n"
+"    @Restrict(\"#{s:hasPermission(selectedAccount,'modify')}\")\n"
+"    public void modify() {\n"
+"        selectedAccount.modify();\n"
+"    }\n"
+"}]]>"
 
 #. Tag: para
 #: Security.xml:2351
 #, no-c-format
-msgid ""
-"The interesting thing to note from this example is the reference to "
-"<literal>selectedAccount</literal> seen within the <literal>hasPermission()</"
-"literal> function call. The value of this variable will be looked up from "
-"within the Seam context, and passed to the <literal>hasPermission()</"
-"literal> method in <literal>Identity</literal>, which in this case can then "
-"determine if the user has the required permission for modifying the "
-"specified <literal>Account</literal> object."
+msgid "The interesting thing to note from this example is the reference to <literal>selectedAccount</literal> seen within the <literal>hasPermission()</literal> function call. The value of this variable will be looked up from within the Seam context, and passed to the <literal>hasPermission()</literal> method in <literal>Identity</literal>, which in this case can then determine if the user has the required permission for modifying the specified <literal>Account</literal> object."
 msgstr ""
 
 #. Tag: title
@@ -3065,11 +2906,7 @@
 #. Tag: para
 #: Security.xml:2362
 #, no-c-format
-msgid ""
-"Sometimes it might be desirable to perform a security check in code, without "
-"using the <literal>@Restrict</literal> annotation. In this situation, simply "
-"use <literal>Identity.checkRestriction()</literal> to evaluate a security "
-"expression, like this:"
+msgid "Sometimes it might be desirable to perform a security check in code, without using the <literal>@Restrict</literal> annotation. In this situation, simply use <literal>Identity.checkRestriction()</literal> to evaluate a security expression, like this:"
 msgstr ""
 
 #. Tag: programlisting
@@ -3077,41 +2914,35 @@
 #, no-c-format
 msgid ""
 "<![CDATA[public void deleteCustomer() {\n"
-"    Identity.instance().checkRestriction(\"#{s:hasPermission"
-"(selectedCustomer,'delete')}\");\n"
+"    Identity.instance().checkRestriction(\"#{s:hasPermission(selectedCustomer,'delete')}\");\n"
 "}]]>"
 msgstr ""
+"<![CDATA[public void deleteCustomer() {\n"
+"    Identity.instance().checkRestriction(\"#{s:hasPermission(selectedCustomer,'delete')}\");\n"
+"}]]>"
 
 #. Tag: para
 #: Security.xml:2370
 #, no-c-format
-msgid ""
-"If the expression specified doesn't evaluate to <literal>true</literal>, "
-"either"
+msgid "If the expression specified doesn't evaluate to <literal>true</literal>, either"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2376
 #, no-c-format
-msgid ""
-"if the user is not logged in, a <literal>NotLoggedInException</literal> "
-"exception is thrown or"
+msgid "if the user is not logged in, a <literal>NotLoggedInException</literal> exception is thrown or"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2382
 #, no-c-format
-msgid ""
-"if the user is logged in, an <literal>AuthorizationException</literal> "
-"exception is thrown."
+msgid "if the user is logged in, an <literal>AuthorizationException</literal> exception is thrown."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2389
 #, no-c-format
-msgid ""
-"It is also possible to call the <literal>hasRole()</literal> and "
-"<literal>hasPermission()</literal> methods directly from Java code:"
+msgid "It is also possible to call the <literal>hasRole()</literal> and <literal>hasPermission()</literal> methods directly from Java code:"
 msgstr ""
 
 #. Tag: programlisting
@@ -3119,13 +2950,16 @@
 #, no-c-format
 msgid ""
 "<![CDATA[if (!Identity.instance().hasRole(\"admin\"))\n"
-"     throw new AuthorizationException(\"Must be admin to perform this action"
-"\");\n"
+"     throw new AuthorizationException(\"Must be admin to perform this action\");\n"
 "\n"
 "if (!Identity.instance().hasPermission(\"customer\", \"create\"))\n"
-"     throw new AuthorizationException(\"You may not create new customers"
-"\");]]>"
+"     throw new AuthorizationException(\"You may not create new customers\");]]>"
 msgstr ""
+"<![CDATA[if (!Identity.instance().hasRole(\"admin\"))\n"
+"     throw new AuthorizationException(\"Must be admin to perform this action\");\n"
+"\n"
+"if (!Identity.instance().hasPermission(\"customer\", \"create\"))\n"
+"     throw new AuthorizationException(\"You may not create new customers\");]]>"
 
 #. Tag: title
 #: Security.xml:2400
@@ -3136,73 +2970,49 @@
 #. Tag: para
 #: Security.xml:2402
 #, no-c-format
-msgid ""
-"One indication of a well designed user interface is that the user is not "
-"presented with options for which they don't have the necessary privileges to "
-"use. Seam Security allows conditional rendering of either 1) sections of a "
-"page or 2) individual controls, based upon the privileges of the user, using "
-"the very same EL expressions that are used for component security."
+msgid "One indication of a well designed user interface is that the user is not presented with options for which they don't have the necessary privileges to use. Seam Security allows conditional rendering of either 1) sections of a page or 2) individual controls, based upon the privileges of the user, using the very same EL expressions that are used for component security."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2409
 #, no-c-format
-msgid ""
-"Let's take a look at some examples of interface security. First of all, "
-"let's pretend that we have a login form that should only be rendered if the "
-"user is not already logged in. Using the <literal>identity.isLoggedIn()</"
-"literal> property, we can write this:"
+msgid "Let's take a look at some examples of interface security. First of all, let's pretend that we have a login form that should only be rendered if the user is not already logged in. Using the <literal>identity.isLoggedIn()</literal> property, we can write this:"
 msgstr ""
 
 #. Tag: programlisting
 #: Security.xml:2415
 #, no-c-format
-msgid ""
-"<![CDATA[<h:form class=\"loginForm\" rendered=\"#{not identity.loggedIn}\">]]"
-">"
-msgstr ""
+msgid "<![CDATA[<h:form class=\"loginForm\" rendered=\"#{not identity.loggedIn}\">]]>"
+msgstr "<![CDATA[<h:form class=\"loginForm\" rendered=\"#{not identity.loggedIn}\">]]>"
 
 #. Tag: para
 #: Security.xml:2417
 #, no-c-format
-msgid ""
-"If the user isn't logged in, then the login form will be rendered - very "
-"straight forward so far. Now let's pretend there is a menu on the page that "
-"contains some actions which should only be accessible to users in the "
-"<literal>manager</literal> role. Here's one way that these could be written:"
+msgid "If the user isn't logged in, then the login form will be rendered - very straight forward so far. Now let's pretend there is a menu on the page that contains some actions which should only be accessible to users in the <literal>manager</literal> role. Here's one way that these could be written:"
 msgstr ""
 
 #. Tag: programlisting
 #: Security.xml:2423
 #, no-c-format
 msgid ""
-"<![CDATA[<h:outputLink action=\"#{reports.listManagerReports}\" rendered=\"#"
-"{s:hasRole('manager')}\">\n"
+"<![CDATA[<h:outputLink action=\"#{reports.listManagerReports}\" rendered=\"#{s:hasRole('manager')}\">\n"
 "    Manager Reports\n"
 "</h:outputLink>]]>"
 msgstr ""
+"<![CDATA[<h:outputLink action=\"#{reports.listManagerReports}\" rendered=\"#{s:hasRole('manager')}\">\n"
+"    Manager Reports\n"
+"</h:outputLink>]]>"
 
 #. Tag: para
 #: Security.xml:2425
 #, no-c-format
-msgid ""
-"This is also quite straight forward. If the user is not a member of the "
-"<literal>manager</literal> role, then the outputLink will not be rendered. "
-"The <literal>rendered</literal> attribute can generally be used on the "
-"control itself, or on a surrounding <literal>&lt;s:div&gt;</literal> or "
-"<literal>&lt;s:span&gt;</literal> control."
+msgid "This is also quite straight forward. If the user is not a member of the <literal>manager</literal> role, then the outputLink will not be rendered. The <literal>rendered</literal> attribute can generally be used on the control itself, or on a surrounding <literal>&lt;s:div&gt;</literal> or <literal>&lt;s:span&gt;</literal> control."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2432
 #, no-c-format
-msgid ""
-"Now for something more complex. Let's say you have a <literal>h:dataTable</"
-"literal> control on a page listing records for which you may or may not wish "
-"to render action links depending on the user's privileges. The <literal>s:"
-"hasPermission</literal> EL function allows us to pass in an object parameter "
-"which can be used to determine whether the user has the requested permission "
-"for that object or not. Here's how a dataTable with secured links might look:"
+msgid "Now for something more complex. Let's say you have a <literal>h:dataTable</literal> control on a page listing records for which you may or may not wish to render action links depending on the user's privileges. The <literal>s:hasPermission</literal> EL function allows us to pass in an object parameter which can be used to determine whether the user has the requested permission for that object or not. Here's how a dataTable with secured links might look:"
 msgstr ""
 
 #. Tag: programlisting
@@ -3227,6 +3037,23 @@
 "    </h:column>\n"
 "</h:dataTable>]]>"
 msgstr ""
+"<![CDATA[<h:dataTable value=\"#{clients}\" var=\"cl\">\n"
+"    <h:column>\n"
+"        <f:facet name=\"header\">Name</f:facet>\n"
+"        #{cl.name}\n"
+"    </h:column>\n"
+"    <h:column>\n"
+"        <f:facet name=\"header\">City</f:facet>\n"
+"        #{cl.city}\n"
+"    </h:column>\n"
+"    <h:column>\n"
+"        <f:facet name=\"header\">Action</f:facet>\n"
+"        <s:link value=\"Modify Client\" action=\"#{clientAction.modify}\"\n"
+"                rendered=\"#{s:hasPermission(cl,'modify')\"/>\n"
+"        <s:link value=\"Delete Client\" action=\"#{clientAction.delete}\"\n"
+"                rendered=\"#{s:hasPermission(cl,'delete')\"/>\n"
+"    </h:column>\n"
+"</h:dataTable>]]>"
 
 #. Tag: title
 #: Security.xml:2445
@@ -3237,18 +3064,7 @@
 #. Tag: para
 #: Security.xml:2446
 #, no-c-format
-msgid ""
-"Page security requires that the application is using a <literal>pages.xml</"
-"literal> file, however is extremely simple to configure. Simply include a "
-"<literal>&lt;restrict/&gt;</literal> element within the <literal>page</"
-"literal> elements that you wish to secure. If no explicit restriction is "
-"specified by the <literal>restrict</literal> element, an implied permission "
-"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
-"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
-"xhtml:restore</literal> will be required when any JSF postback (form "
-"submission) originates from the page. Otherwise, the specified restriction "
-"will be evaluated as a standard security expression. Here's a couple of "
-"examples:"
+msgid "Page security requires that the application is using a <literal>pages.xml</literal> file, however is extremely simple to configure. Simply include a <literal>&lt;restrict/&gt;</literal> element within the <literal>page</literal> elements that you wish to secure. If no explicit restriction is specified by the <literal>restrict</literal> element, an implied permission of <literal>/viewId.xhtml:render</literal> will be checked when the page is accessed via a non-faces (GET) request, and a permission of <literal>/viewId.xhtml:restore</literal> will be required when any JSF postback (form submission) originates from the page. Otherwise, the specified restriction will be evaluated as a standard security expression. Here's a couple of examples:"
 msgstr ""
 
 #. Tag: programlisting
@@ -3259,14 +3075,14 @@
 "    <restrict/>\n"
 "</page>]]>"
 msgstr ""
+"<![CDATA[<page view-id=\"/settings.xhtml\">\n"
+"    <restrict/>\n"
+"</page>]]>"
 
 #. Tag: para
 #: Security.xml:2459
 #, no-c-format
-msgid ""
-"This page has an implied permission of <literal>/settings.xhtml:render</"
-"literal> required for non-faces requests and an implied permission of "
-"<literal>/settings.xhtml:restore</literal> for faces requests."
+msgid "This page has an implied permission of <literal>/settings.xhtml:render</literal> required for non-faces requests and an implied permission of <literal>/settings.xhtml:restore</literal> for faces requests."
 msgstr ""
 
 #. Tag: programlisting
@@ -3277,13 +3093,14 @@
 "    <restrict>#{s:hasRole('admin')}</restrict>\n"
 "</page>]]>"
 msgstr ""
+"<![CDATA[<page view-id=\"/reports.xhtml\">\n"
+"    <restrict>#{s:hasRole('admin')}</restrict>\n"
+"</page>]]>"
 
 #. Tag: para
 #: Security.xml:2466
 #, no-c-format
-msgid ""
-"Both faces and non-faces requests to this page require that the user is a "
-"member of the <literal>admin</literal> role."
+msgid "Both faces and non-faces requests to this page require that the user is a member of the <literal>admin</literal> role."
 msgstr ""
 
 #. Tag: title
@@ -3295,17 +3112,13 @@
 #. Tag: para
 #: Security.xml:2476
 #, no-c-format
-msgid ""
-"Seam security also makes it possible to apply security restrictions to read, "
-"insert, update and delete actions for entities."
+msgid "Seam security also makes it possible to apply security restrictions to read, insert, update and delete actions for entities."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2481
 #, no-c-format
-msgid ""
-"To secure all actions for an entity class, add a <literal>@Restrict</"
-"literal> annotation on the class itself:"
+msgid "To secure all actions for an entity class, add a <literal>@Restrict</literal> annotation on the class itself:"
 msgstr ""
 
 #. Tag: programlisting
@@ -3319,70 +3132,53 @@
 "  ...\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Entity\n"
+"@Name(\"customer\")\n"
+"@Restrict\n"
+"public class Customer {\n"
+"  ...\n"
+"}]]>"
 
 #. Tag: para
 #: Security.xml:2488
 #, no-c-format
-msgid ""
-"If no expression is specified in the <literal>@Restrict</literal> "
-"annotation, the default security check that is performed is a permission "
-"check of <literal>entity:action</literal>, where the permission target is "
-"the entity instance, and the <literal>action</literal> is either "
-"<literal>read</literal>, <literal>insert</literal>, <literal>update</"
-"literal> or <literal>delete</literal>."
+msgid "If no expression is specified in the <literal>@Restrict</literal> annotation, the default security check that is performed is a permission check of <literal>entity:action</literal>, where the permission target is the entity instance, and the <literal>action</literal> is either <literal>read</literal>, <literal>insert</literal>, <literal>update</literal> or <literal>delete</literal>."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2495
 #, no-c-format
-msgid ""
-"It is also possible to only restrict certain actions, by placing a "
-"<literal>@Restrict</literal> annotation on the relevent entity lifecycle "
-"method (annotated as follows):"
+msgid "It is also possible to only restrict certain actions, by placing a <literal>@Restrict</literal> annotation on the relevent entity lifecycle method (annotated as follows):"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2502
 #, no-c-format
-msgid ""
-"<literal>@PostLoad</literal> - Called after an entity instance is loaded "
-"from the database. Use this method to configure a <literal>read</literal> "
-"permission."
+msgid "<literal>@PostLoad</literal> - Called after an entity instance is loaded from the database. Use this method to configure a <literal>read</literal> permission."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2508
 #, no-c-format
-msgid ""
-"<literal>@PrePersist</literal> - Called before a new instance of the entity "
-"is inserted. Use this method to configure an <literal>insert</literal> "
-"permission."
+msgid "<literal>@PrePersist</literal> - Called before a new instance of the entity is inserted. Use this method to configure an <literal>insert</literal> permission."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2514
 #, no-c-format
-msgid ""
-"<literal>@PreUpdate</literal> - Called before an entity is updated. Use this "
-"method to configure an <literal>update</literal> permission."
+msgid "<literal>@PreUpdate</literal> - Called before an entity is updated. Use this method to configure an <literal>update</literal> permission."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2520
 #, no-c-format
-msgid ""
-"<literal>@PreRemove</literal> - Called before an entity is deleted. Use this "
-"method to configure a <literal>delete</literal> permission."
+msgid "<literal>@PreRemove</literal> - Called before an entity is deleted. Use this method to configure a <literal>delete</literal> permission."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2527
 #, no-c-format
-msgid ""
-"Here's an example of how an entity would be configured to perform a security "
-"check for any <literal>insert</literal> operations. Please note that the "
-"method is not required to do anything, the only important thing in regard to "
-"security is how it is annotated:"
+msgid "Here's an example of how an entity would be configured to perform a security check for any <literal>insert</literal> operations. Please note that the method is not required to do anything, the only important thing in regard to security is how it is annotated:"
 msgstr ""
 
 #. Tag: programlisting
@@ -3394,6 +3190,10 @@
 "  public void prePersist() {}\n"
 "   ]]>"
 msgstr ""
+"<![CDATA[\n"
+"  @PrePersist @Restrict\n"
+"  public void prePersist() {}\n"
+"   ]]>"
 
 #. Tag: title
 #: Security.xml:2536
@@ -3404,9 +3204,7 @@
 #. Tag: para
 #: Security.xml:2539
 #, no-c-format
-msgid ""
-"You can also specify the call back method in <literal>/META-INF/orm.xml</"
-"literal>:"
+msgid "You can also specify the call back method in <literal>/META-INF/orm.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
@@ -3416,8 +3214,7 @@
 "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
 "<entity-mappings xmlns=\"http://java.sun.com/xml/ns/persistence/orm\"\n"
 "                 xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"                 xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence/"
-"orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd\"\n"
+"                 xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd\"\n"
 "                 version=\"1.0\">\n"
 "\n"
 "   <entity class=\"Customer\">\n"
@@ -3426,24 +3223,28 @@
 "\n"
 "</entity-mappings>]]>"
 msgstr ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<entity-mappings xmlns=\"http://java.sun.com/xml/ns/persistence/orm\"\n"
+"                 xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"                 xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd\"\n"
+"                 version=\"1.0\">\n"
+"\n"
+"   <entity class=\"Customer\">\n"
+"      <pre-persist method-name=\"prePersist\" />\n"
+"   </entity>\n"
+"\n"
+"</entity-mappings>]]>"
 
 #. Tag: para
 #: Security.xml:2545
 #, no-c-format
-msgid ""
-"Of course, you still need to annotate the <literal>prePersist()</literal> "
-"method on <literal>Customer</literal> with <literal>@Restrict</literal>"
+msgid "Of course, you still need to annotate the <literal>prePersist()</literal> method on <literal>Customer</literal> with <literal>@Restrict</literal>"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2551
 #, no-c-format
-msgid ""
-"And here's an example of an entity permission rule that checks if the "
-"authenticated user is allowed to insert a new <literal>MemberBlog</literal> "
-"record (from the seamspace example). The entity for which the security check "
-"is being made is automatically inserted into the working memory (in this "
-"case <literal>MemberBlog</literal>):"
+msgid "And here's an example of an entity permission rule that checks if the authenticated user is allowed to insert a new <literal>MemberBlog</literal> record (from the seamspace example). The entity for which the security check is being made is automatically inserted into the working memory (in this case <literal>MemberBlog</literal>):"
 msgstr ""
 
 #. Tag: programlisting
@@ -3455,38 +3256,33 @@
 "  activation-group \"permissions\"\n"
 "when\n"
 "  principal: Principal()\n"
-"  memberBlog: MemberBlog(member : member -> (member.getUsername().equals"
-"(principal.getName())))\n"
-"  check: PermissionCheck(target == memberBlog, action == \"insert\", granted "
-"== false)\n"
+"  memberBlog: MemberBlog(member : member -> (member.getUsername().equals(principal.getName())))\n"
+"  check: PermissionCheck(target == memberBlog, action == \"insert\", granted == false)\n"
 "then\n"
 "  check.grant();\n"
 "end;]]>"
 msgstr ""
+"<![CDATA[rule InsertMemberBlog\n"
+"  no-loop\n"
+"  activation-group \"permissions\"\n"
+"when\n"
+"  principal: Principal()\n"
+"  memberBlog: MemberBlog(member : member -> (member.getUsername().equals(principal.getName())))\n"
+"  check: PermissionCheck(target == memberBlog, action == \"insert\", granted == false)\n"
+"then\n"
+"  check.grant();\n"
+"end;]]>"
 
 #. Tag: para
 #: Security.xml:2559
 #, no-c-format
-msgid ""
-"This rule will grant the permission <literal>memberBlog:insert</literal> if "
-"the currently authenticated user (indicated by the <literal>Principal</"
-"literal> fact) has the same name as the member for which the blog entry is "
-"being created. The \"<literal>principal: Principal()</literal>\" structure "
-"that can be seen in the example code is a variable binding - it binds the "
-"instance of the <literal>Principal</literal> object from the working memory "
-"(placed there during authentication) and assigns it to a variable called "
-"<literal>principal</literal>. Variable bindings allow the value to be "
-"referred to in other places, such as the following line which compares the "
-"member's username to the <literal>Principal</literal> name. For more "
-"details, please refer to the JBoss Rules documentation."
+msgid "This rule will grant the permission <literal>memberBlog:insert</literal> if the currently authenticated user (indicated by the <literal>Principal</literal> fact) has the same name as the member for which the blog entry is being created. The \"<literal>principal: Principal()</literal>\" structure that can be seen in the example code is a variable binding - it binds the instance of the <literal>Principal</literal> object from the working memory (placed there during authentication) and assigns it to a variable called <literal>principal</literal>. Variable bindings allow the value to be referred to in other places, such as the following line which compares the member's username to the <literal>Principal</literal> name. For more details, please refer to the JBoss Rules documentation."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2569
 #, no-c-format
-msgid ""
-"Finally, we need to install a listener class that integrates Seam security "
-"with your JPA provider."
+msgid "Finally, we need to install a listener class that integrates Seam security with your JPA provider."
 msgstr ""
 
 #. Tag: title
@@ -3498,10 +3294,7 @@
 #. Tag: para
 #: Security.xml:2577
 #, no-c-format
-msgid ""
-"Security checks for EJB3 entity beans are performed with an "
-"<literal>EntityListener</literal>. You can install this listener by using "
-"the following <literal>META-INF/orm.xml</literal> file:"
+msgid "Security checks for EJB3 entity beans are performed with an <literal>EntityListener</literal>. You can install this listener by using the following <literal>META-INF/orm.xml</literal> file:"
 msgstr ""
 
 #. Tag: programlisting
@@ -3511,21 +3304,34 @@
 "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
 "<entity-mappings xmlns=\"http://java.sun.com/xml/ns/persistence/orm\"\n"
 "                 xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"                 xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence/"
-"orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd\"\n"
+"                 xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd\"\n"
 "                 version=\"1.0\">\n"
 "\n"
 "    <persistence-unit-metadata>\n"
 "        <persistence-unit-defaults>\n"
 "            <entity-listeners>\n"
-"                <entity-listener class=\"org.jboss.seam.security."
-"EntitySecurityListener\"/>\n"
+"                <entity-listener class=\"org.jboss.seam.security.EntitySecurityListener\"/>\n"
 "            </entity-listeners>\n"
 "        </persistence-unit-defaults>\n"
 "    </persistence-unit-metadata>\n"
 "\n"
 "</entity-mappings>]]>"
 msgstr ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<entity-mappings xmlns=\"http://java.sun.com/xml/ns/persistence/orm\"\n"
+"                 xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"                 xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd\"\n"
+"                 version=\"1.0\">\n"
+"\n"
+"    <persistence-unit-metadata>\n"
+"        <persistence-unit-defaults>\n"
+"            <entity-listeners>\n"
+"                <entity-listener class=\"org.jboss.seam.security.EntitySecurityListener\"/>\n"
+"            </entity-listeners>\n"
+"        </persistence-unit-defaults>\n"
+"    </persistence-unit-metadata>\n"
+"\n"
+"</entity-mappings>]]>"
 
 #. Tag: title
 #: Security.xml:2587
@@ -3536,10 +3342,7 @@
 #. Tag: para
 #: Security.xml:2589
 #, no-c-format
-msgid ""
-"If you are using a Hibernate <literal>SessionFactory</literal> configured "
-"via Seam, and are using annotations, or <literal>orm.xml</literal>, then you "
-"don't need to do anything special to use entity security."
+msgid "If you are using a Hibernate <literal>SessionFactory</literal> configured via Seam, and are using annotations, or <literal>orm.xml</literal>, then you don't need to do anything special to use entity security."
 msgstr ""
 
 #. Tag: title
@@ -3551,55 +3354,43 @@
 #. Tag: para
 #: Security.xml:2602
 #, no-c-format
-msgid ""
-"Seam provides a number of annotations that may be used as an alternative to "
-"<literal>@Restrict</literal>, which have the added advantage of providing "
-"compile-time safety as they don't support arbitrary EL expressions in the "
-"same way that <literal>@Restrict</literal> does."
+msgid "Seam provides a number of annotations that may be used as an alternative to <literal>@Restrict</literal>, which have the added advantage of providing compile-time safety as they don't support arbitrary EL expressions in the same way that <literal>@Restrict</literal> does."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2608
 #, no-c-format
-msgid ""
-"Out of the box, Seam comes with annotations for standard CRUD-based "
-"permissions, however it is a simple matter to add your own. The following "
-"annotations are provided in the <literal>org.jboss.seam.annotations."
-"security</literal> package:"
+msgid "Out of the box, Seam comes with annotations for standard CRUD-based permissions, however it is a simple matter to add your own. The following annotations are provided in the <literal>org.jboss.seam.annotations.security</literal> package:"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2615
 #, no-c-format
 msgid "@Insert"
-msgstr ""
+msgstr "@Insert"
 
 #. Tag: para
 #: Security.xml:2618
 #, no-c-format
 msgid "@Read"
-msgstr ""
+msgstr "@Read"
 
 #. Tag: para
 #: Security.xml:2621
 #, no-c-format
 msgid "@Update"
-msgstr ""
+msgstr "@Update"
 
 #. Tag: para
 #: Security.xml:2624
 #, no-c-format
 msgid "@Delete"
-msgstr ""
+msgstr "@Delete"
 
 #. Tag: para
 #: Security.xml:2628
 #, no-c-format
-msgid ""
-"To use these annotations, simply place them on the method or parameter for "
-"which you wish to perform a security check. If placed on a method, then they "
-"should specify a target class for which the permission will be checked. Take "
-"the following example:"
+msgid "To use these annotations, simply place them on the method or parameter for which you wish to perform a security check. If placed on a method, then they should specify a target class for which the permission will be checked. Take the following example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -3611,27 +3402,21 @@
 "    ...\n"
 "  }]]>"
 msgstr ""
+"<![CDATA[  @Insert(Customer.class)\n"
+"  public void createCustomer() {\n"
+"    ...\n"
+"  }]]>"
 
 #. Tag: para
 #: Security.xml:2636
 #, no-c-format
-msgid ""
-"In this example, a permission check will be performed for the user to ensure "
-"that they have the rights to create new <literal>Customer</literal> objects. "
-"The target of the permission check will be <literal>Customer.class</literal> "
-"(the actual <literal>java.lang.Class</literal> instance itself), and the "
-"action is the lower case representation of the annotation name, which in "
-"this example is <literal>insert</literal>."
+msgid "In this example, a permission check will be performed for the user to ensure that they have the rights to create new <literal>Customer</literal> objects. The target of the permission check will be <literal>Customer.class</literal> (the actual <literal>java.lang.Class</literal> instance itself), and the action is the lower case representation of the annotation name, which in this example is <literal>insert</literal>."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2643
 #, no-c-format
-msgid ""
-"It is also possible to annotate the parameters of a component method in the "
-"same way. If this is done, then it is not required to specify a permission "
-"target (as the parameter value itself will be the target of the permission "
-"check):"
+msgid "It is also possible to annotate the parameters of a component method in the same way. If this is done, then it is not required to specify a permission target (as the parameter value itself will be the target of the permission check):"
 msgstr ""
 
 #. Tag: programlisting
@@ -3642,13 +3427,14 @@
 "    ...\n"
 "  }]]>"
 msgstr ""
+"<![CDATA[  public void updateCustomer(@Update Customer customer) {\n"
+"    ...\n"
+"  }]]>"
 
 #. Tag: para
 #: Security.xml:2650
 #, no-c-format
-msgid ""
-"To create your own security annotation, you simply need to annotate it with "
-"<literal>@PermissionCheck</literal>, for example:"
+msgid "To create your own security annotation, you simply need to annotate it with <literal>@PermissionCheck</literal>, for example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -3664,21 +3450,26 @@
 "   Class value() default void.class;\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Target({METHOD, PARAMETER})\n"
+"@Documented\n"
+"@Retention(RUNTIME)\n"
+"@Inherited\n"
+"@PermissionCheck\n"
+"public @interface Promote {\n"
+"   Class value() default void.class;\n"
+"}]]>"
 
 #. Tag: para
 #: Security.xml:2656
 #, no-c-format
-msgid ""
-"If you wish to override the default permisison action name (which is the "
-"lower case version of the annotation name) with another value, you can "
-"specify it within the <literal>@PermissionCheck</literal> annotation:"
+msgid "If you wish to override the default permisison action name (which is the lower case version of the annotation name) with another value, you can specify it within the <literal>@PermissionCheck</literal> annotation:"
 msgstr ""
 
 #. Tag: programlisting
 #: Security.xml:2661
 #, no-c-format
 msgid "<![CDATA[@PermissionCheck(\"upgrade\")]]>"
-msgstr ""
+msgstr "<![CDATA[@PermissionCheck(\"upgrade\")]]>"
 
 #. Tag: title
 #: Security.xml:2666
@@ -3689,17 +3480,7 @@
 #. Tag: para
 #: Security.xml:2668
 #, no-c-format
-msgid ""
-"In addition to supporting typesafe permission annotation, Seam Security also "
-"provides typesafe role annotations that allow you to restrict access to "
-"component methods based on the role memberships of the currently "
-"authenticated user. Seam provides one such annotation out of the box, "
-"<literal>org.jboss.seam.annotations.security.Admin</literal>, used to "
-"restrict access to a method to users that are a member of the "
-"<literal>admin</literal> role (so long as your own application supports such "
-"a role). To create your own role annotations, simply meta-annotate them with "
-"<literal>org.jboss.seam.annotations.security.RoleCheck</literal>, like in "
-"the following example:"
+msgid "In addition to supporting typesafe permission annotation, Seam Security also provides typesafe role annotations that allow you to restrict access to component methods based on the role memberships of the currently authenticated user. Seam provides one such annotation out of the box, <literal>org.jboss.seam.annotations.security.Admin</literal>, used to restrict access to a method to users that are a member of the <literal>admin</literal> role (so long as your own application supports such a role). To create your own role annotations, simply meta-annotate them with <literal>org.jboss.seam.annotations.security.RoleCheck</literal>, like in the following example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -3714,16 +3495,18 @@
 "public @interface User { \n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Target({METHOD})\n"
+"@Documented\n"
+"@Retention(RUNTIME)\n"
+"@Inherited\n"
+"@RoleCheck\n"
+"public @interface User { \n"
+"}]]>"
 
 #. Tag: para
 #: Security.xml:2679
 #, no-c-format
-msgid ""
-"Any methods subsequently annotated with the <literal>@User</literal> "
-"annotation as shown in the above example will be automatically intercepted "
-"and the user checked for the membership of the corresponding role name "
-"(which is the lower case version of the annotation name, in this case "
-"<literal>user</literal>)."
+msgid "Any methods subsequently annotated with the <literal>@User</literal> annotation as shown in the above example will be automatically intercepted and the user checked for the membership of the corresponding role name (which is the lower case version of the annotation name, in this case <literal>user</literal>)."
 msgstr ""
 
 #. Tag: title
@@ -3735,50 +3518,37 @@
 #. Tag: para
 #: Security.xml:2690
 #, no-c-format
-msgid ""
-"Seam Security provides an extensible framework for resolving application "
-"permissions. The following class diagram shows an overview of the main "
-"components of the permission framework:"
+msgid "Seam Security provides an extensible framework for resolving application permissions. The following class diagram shows an overview of the main components of the permission framework:"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2704
 #, no-c-format
-msgid ""
-"The relevant classes are explained in more detail in the following sections."
+msgid "The relevant classes are explained in more detail in the following sections."
 msgstr ""
 
 #. Tag: title
 #: Security.xml:2709
 #, no-c-format
 msgid "PermissionResolver"
-msgstr ""
+msgstr "PermissionResolver"
 
 #. Tag: para
 #: Security.xml:2711
 #, no-c-format
-msgid ""
-"This is actually an interface, which provides methods for resolving "
-"individual object permissions. Seam provides the following built-in "
-"<literal>PermissionResolver</literal> implementations, which are described "
-"in more detail later in the chapter:"
+msgid "This is actually an interface, which provides methods for resolving individual object permissions. Seam provides the following built-in <literal>PermissionResolver</literal> implementations, which are described in more detail later in the chapter:"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2719
 #, no-c-format
-msgid ""
-"<literal>RuleBasedPermissionResolver</literal> - This permission resolver "
-"uses Drools to resolve rule-based permission checks."
+msgid "<literal>RuleBasedPermissionResolver</literal> - This permission resolver uses Drools to resolve rule-based permission checks."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2723
 #, no-c-format
-msgid ""
-"<literal>PersistentPermissionResolver</literal> - This permission resolver "
-"stores object permissions in a persistent store, such as a relational "
-"database."
+msgid "<literal>PersistentPermissionResolver</literal> - This permission resolver stores object permissions in a persistent store, such as a relational database."
 msgstr ""
 
 #. Tag: title
@@ -3790,13 +3560,7 @@
 #. Tag: para
 #: Security.xml:2731
 #, no-c-format
-msgid ""
-"It is very simple to implement your own permission resolver. The "
-"<literal>PermissionResolver</literal> interface defines only two methods "
-"that must be implemented, as shown by the following table. By deploying your "
-"own <literal>PermissionResolver</literal> implementation in your Seam "
-"project, it will be automatically scanned during deployment and registered "
-"with the default <literal>ResolverChain</literal>."
+msgid "It is very simple to implement your own permission resolver. The <literal>PermissionResolver</literal> interface defines only two methods that must be implemented, as shown by the following table. By deploying your own <literal>PermissionResolver</literal> implementation in your Seam project, it will be automatically scanned during deployment and registered with the default <literal>ResolverChain</literal>."
 msgstr ""
 
 #. Tag: title
@@ -3806,7 +3570,9 @@
 msgstr ""
 
 #. Tag: para
-#: Security.xml:2750 Security.xml:3144 Security.xml:3765
+#: Security.xml:2750
+#: Security.xml:3144
+#: Security.xml:3765
 #, no-c-format
 msgid "Return type"
 msgstr ""
@@ -3815,24 +3581,19 @@
 #: Security.xml:2771
 #, no-c-format
 msgid "hasPermission(Object target, String action)"
-msgstr ""
+msgstr "hasPermission(Object target, String action)"
 
 #. Tag: para
 #: Security.xml:2775
 #, no-c-format
-msgid ""
-"This method must resolve whether the currently authenticated user (obtained "
-"via a call to <literal>Identity.getPrincipal()</literal>) has the permission "
-"specified by the <literal>target</literal> and <literal>action</literal> "
-"parameters. It should return <literal>true</literal> if the user has the "
-"permission, or <literal>false</literal> if they don't."
+msgid "This method must resolve whether the currently authenticated user (obtained via a call to <literal>Identity.getPrincipal()</literal>) has the permission specified by the <literal>target</literal> and <literal>action</literal> parameters. It should return <literal>true</literal> if the user has the permission, or <literal>false</literal> if they don't."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:2787
 #, no-c-format
 msgid "void"
-msgstr ""
+msgstr "void"
 
 #. Tag: literal
 #: Security.xml:2792
@@ -3843,100 +3604,61 @@
 #. Tag: para
 #: Security.xml:2796
 #, no-c-format
-msgid ""
-"This method should remove any objects from the specified set, that would "
-"return <literal>true</literal> if passed to the <literal>hasPermission()</"
-"literal> method with the same <literal>action</literal> parameter value."
+msgid "This method should remove any objects from the specified set, that would return <literal>true</literal> if passed to the <literal>hasPermission()</literal> method with the same <literal>action</literal> parameter value."
 msgstr ""
 
 #. Tag: title
 #: Security.xml:2812
 #, no-c-format
 msgid "ResolverChain"
-msgstr ""
+msgstr "ResolverChain"
 
 #. Tag: para
 #: Security.xml:2814
 #, no-c-format
-msgid ""
-"A <literal>ResolverChain</literal> contains an ordered list of "
-"<literal>PermissionResolver</literal>s, for the purpose of resolving object "
-"permissions for a particular object class or permission target."
+msgid "A <literal>ResolverChain</literal> contains an ordered list of <literal>PermissionResolver</literal>s, for the purpose of resolving object permissions for a particular object class or permission target."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2819
 #, no-c-format
-msgid ""
-"The following sequence diagram shows the interaction between the components "
-"of the permission framework during a permission check (explanation follows). "
-"A permission check can originate from a number of possible sources, for "
-"example - the security interceptor, the <literal>s:hasPermission</literal> "
-"EL function, or via an API call to <literal>Identity.checkPermission</"
-"literal>:"
+msgid "The following sequence diagram shows the interaction between the components of the permission framework during a permission check (explanation follows). A permission check can originate from a number of possible sources, for example - the security interceptor, the <literal>s:hasPermission</literal> EL function, or via an API call to <literal>Identity.checkPermission</literal>:"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2837
 #, no-c-format
-msgid ""
-"1. A permission check is initiated somewhere (either in code or via an EL "
-"expression) resulting in a call to <literal>Identity.hasPermission()</"
-"literal>."
+msgid "1. A permission check is initiated somewhere (either in code or via an EL expression) resulting in a call to <literal>Identity.hasPermission()</literal>."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2843
 #, no-c-format
-msgid ""
-"1.1. <literal>Identity</literal> invokes <literal>PermissionMapper."
-"resolvePermission()</literal>, passing in the permission to be resolved."
+msgid "1.1. <literal>Identity</literal> invokes <literal>PermissionMapper.resolvePermission()</literal>, passing in the permission to be resolved."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2850
 #, no-c-format
-msgid ""
-"1.1.1. <literal>PermissionMapper</literal> maintains a <literal>Map</"
-"literal> of <literal>ResolverChain</literal> instances, keyed by class. It "
-"uses this map to locate the correct <literal>ResolverChain</literal> for the "
-"permission's target object. Once it has the correct <literal>ResolverChain</"
-"literal>, it retrieves the list of <literal>PermissionResolver</literal>s it "
-"contains via a call to <literal>ResolverChain.getResolvers()</literal>."
+msgid "1.1.1. <literal>PermissionMapper</literal> maintains a <literal>Map</literal> of <literal>ResolverChain</literal> instances, keyed by class. It uses this map to locate the correct <literal>ResolverChain</literal> for the permission's target object. Once it has the correct <literal>ResolverChain</literal>, it retrieves the list of <literal>PermissionResolver</literal>s it contains via a call to <literal>ResolverChain.getResolvers()</literal>."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2860
 #, no-c-format
-msgid ""
-"1.1.2. For each <literal>PermissionResolver</literal> in the "
-"<literal>ResolverChain</literal>, the <literal>PermissionMapper</literal> "
-"invokes its <literal>hasPermission()</literal> method, passing in the "
-"permission instance to be checked. If any of the "
-"<literal>PermissionResolver</literal>s return <literal>true</literal>, then "
-"the permission check has succeeded and the <literal>PermissionMapper</"
-"literal> also returns <literal>true</literal> to <literal>Identity</"
-"literal>. If none of the <literal>PermissionResolver</literal>s return true, "
-"then the permission check has failed."
+msgid "1.1.2. For each <literal>PermissionResolver</literal> in the <literal>ResolverChain</literal>, the <literal>PermissionMapper</literal> invokes its <literal>hasPermission()</literal> method, passing in the permission instance to be checked. If any of the <literal>PermissionResolver</literal>s return <literal>true</literal>, then the permission check has succeeded and the <literal>PermissionMapper</literal> also returns <literal>true</literal> to <literal>Identity</literal>. If none of the <literal>PermissionResolver</literal>s return true, then the permission check has failed."
 msgstr ""
 
 #. Tag: title
 #: Security.xml:2876
 #, no-c-format
 msgid "RuleBasedPermissionResolver"
-msgstr ""
+msgstr "RuleBasedPermissionResolver"
 
 #. Tag: para
 #: Security.xml:2878
 #, no-c-format
-msgid ""
-"One of the built-in permission resolvers provided by Seam, "
-"<literal>RuleBasedPermissionResolver</literal> allows permissions to be "
-"evaluated based on a set of Drools (JBoss Rules) security rules. A couple of "
-"the advantages of using a rule engine are 1) a centralized location for the "
-"business logic that is used to evaluate user permissions, and 2) speed - "
-"Drools uses very efficient algorithms for evaluating large numbers of "
-"complex rules involving multiple conditions."
+msgid "One of the built-in permission resolvers provided by Seam, <literal>RuleBasedPermissionResolver</literal> allows permissions to be evaluated based on a set of Drools (JBoss Rules) security rules. A couple of the advantages of using a rule engine are 1) a centralized location for the business logic that is used to evaluate user permissions, and 2) speed - Drools uses very efficient algorithms for evaluating large numbers of complex rules involving multiple conditions."
 msgstr ""
 
 #. Tag: title
@@ -3948,44 +3670,42 @@
 #. Tag: para
 #: Security.xml:2889
 #, no-c-format
-msgid ""
-"If using the rule-based permission features provided by Seam Security, the "
-"following jar files are required by Drools to be distributed with your "
-"project:"
+msgid "If using the rule-based permission features provided by Seam Security, the following jar files are required by Drools to be distributed with your project:"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2896
 #, no-c-format
 msgid "drools-compiler.jar"
-msgstr ""
+msgstr "drools-compiler.jar"
 
 #. Tag: para
 #: Security.xml:2899
 #, no-c-format
 msgid "drools-core.jar"
-msgstr ""
+msgstr "drools-core.jar"
 
 #. Tag: para
 #: Security.xml:2902
 #, no-c-format
 msgid "janino.jar"
-msgstr ""
+msgstr "janino.jar"
 
 #. Tag: para
 #: Security.xml:2905
 #, no-c-format
 msgid "antlr-runtime.jar"
-msgstr ""
+msgstr "antlr-runtime.jar"
 
 #. Tag: para
 #: Security.xml:2908
 #, no-c-format
 msgid "mvel14.jar"
-msgstr ""
+msgstr "mvel14.jar"
 
 #. Tag: title
-#: Security.xml:2915 Security.xml:3107
+#: Security.xml:2915
+#: Security.xml:3107
 #, no-c-format
 msgid "Configuration"
 msgstr ""
@@ -3993,11 +3713,7 @@
 #. Tag: para
 #: Security.xml:2917
 #, no-c-format
-msgid ""
-"The configuration for <literal>RuleBasedPermissionResolver</literal> "
-"requires that a Drools rule base is first configured in <literal>components."
-"xml</literal>. By default, it expects that the rule base is named "
-"<literal>securityRules</literal>, as per the following example:"
+msgid "The configuration for <literal>RuleBasedPermissionResolver</literal> requires that a Drools rule base is first configured in <literal>components.xml</literal>. By default, it expects that the rule base is named <literal>securityRules</literal>, as per the following example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -4010,14 +3726,10 @@
 "              xmlns:drools=\"http://jboss.com/products/seam/drools\"\n"
 "              xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
 "              xsi:schemaLocation=\n"
-"                  \"http://jboss.com/products/seam/core http://jboss.com/"
-"products/seam/core-2.1.xsd\n"
-"                   http://jboss.com/products/seam/components http://jboss."
-"com/products/seam/components-2.1.xsd\n"
-"                   http://jboss.com/products/seam/drools http://jboss.com/"
-"products/seam/drools-2.1.xsd\"\n"
-"                   http://jboss.com/products/seam/security http://jboss.com/"
-"products/seam/security-2.1.xsd\">\n"
+"                  \"http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.xsd\n"
+"                   http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd\n"
+"                   http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.1.xsd\"\n"
+"                   http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.1.xsd\">\n"
 "  \n"
 "     <drools:rule-base name=\"securityRules\">\n"
 "         <drools:rule-files>\n"
@@ -4027,14 +3739,29 @@
 "  \n"
 "  </components>]]>"
 msgstr ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+"              xmlns:core=\"http://jboss.com/products/seam/core\"\n"
+"              xmlns:security=\"http://jboss.com/products/seam/security\"\n"
+"              xmlns:drools=\"http://jboss.com/products/seam/drools\"\n"
+"              xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"              xsi:schemaLocation=\n"
+"                  \"http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.xsd\n"
+"                   http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd\n"
+"                   http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.1.xsd\"\n"
+"                   http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.1.xsd\">\n"
+"  \n"
+"     <drools:rule-base name=\"securityRules\">\n"
+"         <drools:rule-files>\n"
+"             <value>/META-INF/security.drl</value>\n"
+"         </drools:rule-files>\n"
+"     </drools:rule-base>\n"
+"  \n"
+"  </components>]]>"
 
 #. Tag: para
 #: Security.xml:2925
 #, no-c-format
-msgid ""
-"The default rule base name can be overridden by specifying the "
-"<literal>security-rules</literal> property for "
-"<literal>RuleBasedPermissionResolver</literal>:"
+msgid "The default rule base name can be overridden by specifying the <literal>security-rules</literal> property for <literal>RuleBasedPermissionResolver</literal>:"
 msgstr ""
 
 #. Tag: programlisting
@@ -4042,16 +3769,15 @@
 #, no-c-format
 msgid ""
 "<![CDATA[\n"
-"  <security:rule-based-permission-resolver security-rules=\"#"
-"{prodSecurityRules}\"/>]]>"
+"  <security:rule-based-permission-resolver security-rules=\"#{prodSecurityRules}\"/>]]>"
 msgstr ""
+"<![CDATA[\n"
+"  <security:rule-based-permission-resolver security-rules=\"#{prodSecurityRules}\"/>]]>"
 
 #. Tag: para
 #: Security.xml:2932
 #, no-c-format
-msgid ""
-"Once the <literal>RuleBase</literal> component is configured, it's time to "
-"write the security rules."
+msgid "Once the <literal>RuleBase</literal> component is configured, it's time to write the security rules."
 msgstr ""
 
 #. Tag: title
@@ -4063,21 +3789,13 @@
 #. Tag: para
 #: Security.xml:2940
 #, no-c-format
-msgid ""
-"The first step to writing security rules is to create a new rule file in the "
-"<literal>/META-INF</literal> directory of your application's jar file. "
-"Usually this file would be named something like <literal>security.drl</"
-"literal>, however you can name it whatever you like as long as it is "
-"configured correspondingly in <literal>components.xml</literal>."
+msgid "The first step to writing security rules is to create a new rule file in the <literal>/META-INF</literal> directory of your application's jar file. Usually this file would be named something like <literal>security.drl</literal>, however you can name it whatever you like as long as it is configured correspondingly in <literal>components.xml</literal>."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2947
 #, no-c-format
-msgid ""
-"So what should the security rules file contain? At this stage it might be a "
-"good idea to at least skim through the Drools documentation, however to get "
-"started here's an extremely simple example:"
+msgid "So what should the security rules file contain? At this stage it might be a good idea to at least skim through the Drools documentation, however to get started here's an extremely simple example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -4101,128 +3819,67 @@
 #. Tag: para
 #: Security.xml:2954
 #, no-c-format
-msgid ""
-"Let's break this down step by step. The first thing we see is the package "
-"declaration. A package in Drools is essentially a collection of rules. The "
-"package name can be anything you want - it doesn't relate to anything else "
-"outside the scope of the rule base."
+msgid "Let's break this down step by step. The first thing we see is the package declaration. A package in Drools is essentially a collection of rules. The package name can be anything you want - it doesn't relate to anything else outside the scope of the rule base."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2960
 #, no-c-format
-msgid ""
-"The next thing we can notice is a couple of import statements for the "
-"<literal>PermissionCheck</literal> and <literal>Role</literal> classes. "
-"These imports inform the rules engine that we'll be referencing these "
-"classes within our rules."
+msgid "The next thing we can notice is a couple of import statements for the <literal>PermissionCheck</literal> and <literal>Role</literal> classes. These imports inform the rules engine that we'll be referencing these classes within our rules."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2966
 #, no-c-format
-msgid ""
-"Finally we have the code for the rule. Each rule within a package should be "
-"given a unique name (usually describing the purpose of the rule). In this "
-"case our rule is called <literal>CanUserDeleteCustomers</literal> and will "
-"be used to check whether a user is allowed to delete a customer record."
+msgid "Finally we have the code for the rule. Each rule within a package should be given a unique name (usually describing the purpose of the rule). In this case our rule is called <literal>CanUserDeleteCustomers</literal> and will be used to check whether a user is allowed to delete a customer record."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2972
 #, no-c-format
-msgid ""
-"Looking at the body of the rule definition we can notice two distinct "
-"sections. Rules have what is known as a left hand side (LHS) and a right "
-"hand side (RHS). The LHS consists of the conditional part of the rule, i.e. "
-"a list of conditions which must be satisfied for the rule to fire. The LHS "
-"is represented by the <literal>when</literal> section. The RHS is the "
-"consequence, or action section of the rule that will only be fired if all of "
-"the conditions in the LHS are met. The RHS is represented by the "
-"<literal>then</literal> section. The end of the rule is denoted by the "
-"<literal>end</literal> line."
+msgid "Looking at the body of the rule definition we can notice two distinct sections. Rules have what is known as a left hand side (LHS) and a right hand side (RHS). The LHS consists of the conditional part of the rule, i.e. a list of conditions which must be satisfied for the rule to fire. The LHS is represented by the <literal>when</literal> section. The RHS is the consequence, or action section of the rule that will only be fired if all of the conditions in the LHS are met. The RHS is represented by the <literal>then</literal> section. The end of the rule is denoted by the <literal>end</literal> line."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2981
 #, no-c-format
-msgid ""
-"If we look at the LHS of the rule, we see two conditions listed there. Let's "
-"examine the first condition:"
+msgid "If we look at the LHS of the rule, we see two conditions listed there. Let's examine the first condition:"
 msgstr ""
 
 #. Tag: programlisting
 #: Security.xml:2985
 #, no-c-format
-msgid ""
-"<![CDATA[c: PermissionCheck(target == \"customer\", action == \"delete\")]]>"
+msgid "<![CDATA[c: PermissionCheck(target == \"customer\", action == \"delete\")]]>"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2987
 #, no-c-format
-msgid ""
-"In plain english, this condition is stating that there must exist a "
-"<literal>PermissionCheck</literal> object with a <literal>target</literal> "
-"property equal to \"customer\", and an <literal>action</literal> property "
-"equal to \"delete\" within the working memory."
+msgid "In plain english, this condition is stating that there must exist a <literal>PermissionCheck</literal> object with a <literal>target</literal> property equal to \"customer\", and an <literal>action</literal> property equal to \"delete\" within the working memory."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:2993
 #, no-c-format
-msgid ""
-"So what is the working memory? Also known as a \"stateful session\" in "
-"Drools terminology, the working memory is a session-scoped object that "
-"contains the contextual information that is required by the rules engine to "
-"make a decision about a permission check. Each time the "
-"<literal>hasPermission()</literal> method is called, a temporary "
-"<literal>PermissionCheck</literal> object, or <emphasis>Fact</emphasis>, is "
-"inserted into the working memory. This <literal>PermissionCheck</literal> "
-"corresponds exactly to the permission that is being checked, so for example "
-"if you call <literal>hasPermission(\"account\", \"create\")</literal> then a "
-"<literal>PermissionCheck</literal> object with a <literal>target</literal> "
-"equal to \"account\" and <literal>action</literal> equal to \"create\" will "
-"be inserted into the working memory for the duration of the permission check."
+msgid "So what is the working memory? Also known as a \"stateful session\" in Drools terminology, the working memory is a session-scoped object that contains the contextual information that is required by the rules engine to make a decision about a permission check. Each time the <literal>hasPermission()</literal> method is called, a temporary <literal>PermissionCheck</literal> object, or <emphasis>Fact</emphasis>, is inserted into the working memory. This <literal>PermissionCheck</literal> corresponds exactly to the permission that is being checked, so for example if you call <literal>hasPermission(\"account\", \"create\")</literal> then a <literal>PermissionCheck</literal> object with a <literal>target</literal> equal to \"account\" and <literal>action</literal> equal to \"create\" will be inserted into the working memory for the duration of the permission check."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3005
 #, no-c-format
-msgid ""
-"Besides the <literal>PermissionCheck</literal> facts, there is also a "
-"<literal>org.jboss.seam.security.Role</literal> fact for each of the roles "
-"that the authenticated user is a member of. These <literal>Role</literal> "
-"facts are synchronized with the user's authenticated roles at the beginning "
-"of every permission check. As a consequence, any <literal>Role</literal> "
-"object that is inserted into the working memory during the course of a "
-"permission check will be removed before the next permission check occurs, if "
-"the authenticated user is not actually a member of that role. Besides the "
-"<literal>PermissionCheck</literal> and <literal>Role</literal> facts, the "
-"working memory also contains the <literal>java.security.Principal</literal> "
-"object that was created as a result of the authentication process."
+msgid "Besides the <literal>PermissionCheck</literal> facts, there is also a <literal>org.jboss.seam.security.Role</literal> fact for each of the roles that the authenticated user is a member of. These <literal>Role</literal> facts are synchronized with the user's authenticated roles at the beginning of every permission check. As a consequence, any <literal>Role</literal> object that is inserted into the working memory during the course of a permission check will be removed before the next permission check occurs, if the authenticated user is not actually a member of that role. Besides the <literal>PermissionCheck</literal> and <literal>Role</literal> facts, the working memory also contains the <literal>java.security.Principal</literal> object that was created as a result of the authentication process."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3016
 #, no-c-format
-msgid ""
-"It is also possible to insert additional long-lived facts into the working "
-"memory by calling <literal>RuleBasedPermissionResolver.instance()."
-"getSecurityContext().insert()</literal>, passing the object as a parameter. "
-"The exception to this is <literal>Role</literal> objects, which as already "
-"discussed are synchronized at the start of each permission check."
+msgid "It is also possible to insert additional long-lived facts into the working memory by calling <literal>RuleBasedPermissionResolver.instance().getSecurityContext().insert()</literal>, passing the object as a parameter. The exception to this is <literal>Role</literal> objects, which as already discussed are synchronized at the start of each permission check."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3023
 #, no-c-format
-msgid ""
-"Getting back to our simple example, we can also notice that the first line "
-"of our LHS is prefixed with <literal>c:</literal>. This is a variable "
-"binding, and is used to refer back to the object that is matched by the "
-"condition (in this case, the <literal>PermissionCheck</literal>). Moving on "
-"to the second line of our LHS, we see this:"
+msgid "Getting back to our simple example, we can also notice that the first line of our LHS is prefixed with <literal>c:</literal>. This is a variable binding, and is used to refer back to the object that is matched by the condition (in this case, the <literal>PermissionCheck</literal>). Moving on to the second line of our LHS, we see this:"
 msgstr ""
 
 #. Tag: programlisting
@@ -4234,22 +3891,13 @@
 #. Tag: para
 #: Security.xml:3032
 #, no-c-format
-msgid ""
-"This condition simply states that there must be a <literal>Role</literal> "
-"object with a <literal>name</literal> of \"admin\" within the working "
-"memory. As already mentioned, user roles are inserted into the working "
-"memory at the beginning of each permission check. So, putting both "
-"conditions together, this rule is essentially saying \"I will fire if you "
-"are checking for the <literal>customer:delete</literal> permission and the "
-"user is a member of the <literal>admin</literal> role\"."
+msgid "This condition simply states that there must be a <literal>Role</literal> object with a <literal>name</literal> of \"admin\" within the working memory. As already mentioned, user roles are inserted into the working memory at the beginning of each permission check. So, putting both conditions together, this rule is essentially saying \"I will fire if you are checking for the <literal>customer:delete</literal> permission and the user is a member of the <literal>admin</literal> role\"."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3040
 #, no-c-format
-msgid ""
-"So what is the consequence of the rule firing? Let's take a look at the RHS "
-"of the rule:"
+msgid "So what is the consequence of the rule firing? Let's take a look at the RHS of the rule:"
 msgstr ""
 
 #. Tag: programlisting
@@ -4261,18 +3909,7 @@
 #. Tag: para
 #: Security.xml:3046
 #, no-c-format
-msgid ""
-"The RHS consists of Java code, and in this case is invoking the "
-"<literal>grant()</literal> method of the <literal>c</literal> object, which "
-"as already mentioned is a variable binding for the <literal>PermissionCheck</"
-"literal> object. Besides the <literal>name</literal> and <literal>action</"
-"literal> properties of the <literal>PermissionCheck</literal> object, there "
-"is also a <literal>granted</literal> property which is initially set to "
-"<literal>false</literal>. Calling <literal>grant()</literal> on a "
-"<literal>PermissionCheck</literal> sets the <literal>granted</literal> "
-"property to <literal>true</literal>, which means that the permission check "
-"was successful, allowing the user to carry out whatever action the "
-"permission check was intended for."
+msgid "The RHS consists of Java code, and in this case is invoking the <literal>grant()</literal> method of the <literal>c</literal> object, which as already mentioned is a variable binding for the <literal>PermissionCheck</literal> object. Besides the <literal>name</literal> and <literal>action</literal> properties of the <literal>PermissionCheck</literal> object, there is also a <literal>granted</literal> property which is initially set to <literal>false</literal>. Calling <literal>grant()</literal> on a <literal>PermissionCheck</literal> sets the <literal>granted</literal> property to <literal>true</literal>, which means that the permission check was successful, allowing the user to carry out whatever action the permission check was intended for."
 msgstr ""
 
 #. Tag: title
@@ -4284,15 +3921,7 @@
 #. Tag: para
 #: Security.xml:3062
 #, no-c-format
-msgid ""
-"So far we have only seen permission checks for String-literal permission "
-"targets. It is of course also possible to write security rules for "
-"permission targets of more complex types. For example, let's say that you "
-"wish to write a security rule to allow your users to create blog comments. "
-"The following rule demonstrates how this may be expressed, by requiring the "
-"target of the permission check to be an instance of <literal>MemberBlog</"
-"literal>, and also requiring that the currently authenticated user is a "
-"member of the <literal>user</literal> role:"
+msgid "So far we have only seen permission checks for String-literal permission targets. It is of course also possible to write security rules for permission targets of more complex types. For example, let's say that you wish to write a security rule to allow your users to create blog comments. The following rule demonstrates how this may be expressed, by requiring the target of the permission check to be an instance of <literal>MemberBlog</literal>, and also requiring that the currently authenticated user is a member of the <literal>user</literal> role:"
 msgstr ""
 
 #. Tag: programlisting
@@ -4304,8 +3933,7 @@
 "  activation-group \"permissions\"\n"
 "when\n"
 "  blog: MemberBlog()\n"
-"  check: PermissionCheck(target == blog, action == \"create\", granted == "
-"false)\n"
+"  check: PermissionCheck(target == blog, action == \"create\", granted == false)\n"
 "  Role(name == \"user\")\n"
 "then\n"
 "  check.grant();\n"
@@ -4322,11 +3950,7 @@
 #. Tag: para
 #: Security.xml:3078
 #, no-c-format
-msgid ""
-"It is possible to implement a wildcard permission check (which allows all "
-"actions for a given permission target), by omitting the <literal>action</"
-"literal> constraint for the <literal>PermissionCheck</literal> in your rule, "
-"like this:"
+msgid "It is possible to implement a wildcard permission check (which allows all actions for a given permission target), by omitting the <literal>action</literal> constraint for the <literal>PermissionCheck</literal> in your rule, like this:"
 msgstr ""
 
 #. Tag: programlisting
@@ -4346,10 +3970,7 @@
 #. Tag: para
 #: Security.xml:3086
 #, no-c-format
-msgid ""
-"This rule allows users with the <literal>admin</literal> role to perform "
-"<emphasis>any</emphasis> action for any <literal>customer</literal> "
-"permission check."
+msgid "This rule allows users with the <literal>admin</literal> role to perform <emphasis>any</emphasis> action for any <literal>customer</literal> permission check."
 msgstr ""
 
 #. Tag: title
@@ -4361,35 +3982,19 @@
 #. Tag: para
 #: Security.xml:3098
 #, no-c-format
-msgid ""
-"Another built-in permission resolver provided by Seam, "
-"<literal>PersistentPermissionResolver</literal> allows permissions to be "
-"loaded from persistent storage, such as a relational database. This "
-"permission resolver provides ACL style instance-based security, allowing for "
-"specific object permissions to be assigned to individual users and roles. It "
-"also allows for persistent, arbitrarily-named permission targets (not "
-"necessarily object/class based) to be assigned in the same way."
+msgid "Another built-in permission resolver provided by Seam, <literal>PersistentPermissionResolver</literal> allows permissions to be loaded from persistent storage, such as a relational database. This permission resolver provides ACL style instance-based security, allowing for specific object permissions to be assigned to individual users and roles. It also allows for persistent, arbitrarily-named permission targets (not necessarily object/class based) to be assigned in the same way."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3109
 #, no-c-format
-msgid ""
-"Before it can be used, <literal>PersistentPermissionResolver</literal> must "
-"be configured with a valid <literal>PermissionStore</literal> in "
-"<literal>components.xml</literal>. If not configured, it will attempt to use "
-"the default permission store, <literal>JpaIdentityStore</literal> (see "
-"section further down for details). To use a permission store other than the "
-"default, configure the <literal>permission-store</literal> property as "
-"follows:"
+msgid "Before it can be used, <literal>PersistentPermissionResolver</literal> must be configured with a valid <literal>PermissionStore</literal> in <literal>components.xml</literal>. If not configured, it will attempt to use the default permission store, <literal>JpaIdentityStore</literal> (see section further down for details). To use a permission store other than the default, configure the <literal>permission-store</literal> property as follows:"
 msgstr ""
 
 #. Tag: programlisting
 #: Security.xml:3117
 #, no-c-format
-msgid ""
-"<![CDATA[  <security:persistent-permission-resolver permission-store=\"#"
-"{myCustomPermissionStore}\"/>]]>"
+msgid "<![CDATA[  <security:persistent-permission-resolver permission-store=\"#{myCustomPermissionStore}\"/>]]>"
 msgstr ""
 
 #. Tag: title
@@ -4401,14 +4006,7 @@
 #. Tag: para
 #: Security.xml:3124
 #, no-c-format
-msgid ""
-"A permission store is required for <literal>PersistentPermissionResolver</"
-"literal> to connect to the backend storage where permissions are persisted. "
-"Seam provides one <literal>PermissionStore</literal> implementation out of "
-"the box, <literal>JpaPermissionStore</literal>, which is used to store "
-"permissions inside a relational database. It is possible to write your own "
-"permission store by implementing the <literal>PermissionStore</literal> "
-"interface, which defines the following methods:"
+msgid "A permission store is required for <literal>PersistentPermissionResolver</literal> to connect to the backend storage where permissions are persisted. Seam provides one <literal>PermissionStore</literal> implementation out of the box, <literal>JpaPermissionStore</literal>, which is used to store permissions inside a relational database. It is possible to write your own permission store by implementing the <literal>PermissionStore</literal> interface, which defines the following methods:"
 msgstr ""
 
 #. Tag: title
@@ -4418,14 +4016,18 @@
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:3160 Security.xml:3179 Security.xml:3198 Security.xml:3781
+#: Security.xml:3160
+#: Security.xml:3179
+#: Security.xml:3198
+#: Security.xml:3781
 #: Security.xml:3800
 #, no-c-format
 msgid "List&lt;Permission&gt;"
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:3165 Security.xml:3805
+#: Security.xml:3165
+#: Security.xml:3805
 #, no-c-format
 msgid "listPermissions(Object target)"
 msgstr ""
@@ -4433,14 +4035,12 @@
 #. Tag: para
 #: Security.xml:3169
 #, no-c-format
-msgid ""
-"This method should return a <literal>List</literal> of <literal>Permission</"
-"literal> objects representing all the permissions granted for the specified "
-"target object."
+msgid "This method should return a <literal>List</literal> of <literal>Permission</literal> objects representing all the permissions granted for the specified target object."
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:3184 Security.xml:3786
+#: Security.xml:3184
+#: Security.xml:3786
 #, no-c-format
 msgid "listPermissions(Object target, String action)"
 msgstr ""
@@ -4448,10 +4048,7 @@
 #. Tag: para
 #: Security.xml:3188
 #, no-c-format
-msgid ""
-"This method should return a <literal>List</literal> of <literal>Permission</"
-"literal> objects representing all the permissions with the specified action, "
-"granted for the specified target object."
+msgid "This method should return a <literal>List</literal> of <literal>Permission</literal> objects representing all the permissions with the specified action, granted for the specified target object."
 msgstr ""
 
 #. Tag: literal
@@ -4463,10 +4060,7 @@
 #. Tag: para
 #: Security.xml:3207
 #, no-c-format
-msgid ""
-"This method should return a <literal>List</literal> of <literal>Permission</"
-"literal> objects representing all the permissions with the specified action, "
-"granted for the specified set of target objects."
+msgid "This method should return a <literal>List</literal> of <literal>Permission</literal> objects representing all the permissions with the specified action, granted for the specified set of target objects."
 msgstr ""
 
 #. Tag: literal
@@ -4478,13 +4072,12 @@
 #. Tag: para
 #: Security.xml:3227
 #, no-c-format
-msgid ""
-"This method should persist the specified <literal>Permission</literal> "
-"object to the backend storage, returning true if successful."
+msgid "This method should persist the specified <literal>Permission</literal> object to the backend storage, returning true if successful."
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:3242 Security.xml:3843
+#: Security.xml:3242
+#: Security.xml:3843
 #, no-c-format
 msgid "grantPermissions(List&lt;Permission&gt; permissions)"
 msgstr ""
@@ -4492,14 +4085,12 @@
 #. Tag: para
 #: Security.xml:3246
 #, no-c-format
-msgid ""
-"This method should persist all of the <literal>Permission</literal> objects "
-"contained in the specified <literal>List</literal>, returning true if "
-"successful."
+msgid "This method should persist all of the <literal>Permission</literal> objects contained in the specified <literal>List</literal>, returning true if successful."
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:3261 Security.xml:3862
+#: Security.xml:3261
+#: Security.xml:3862
 #, no-c-format
 msgid "revokePermission(Permission permission)"
 msgstr ""
@@ -4507,13 +4098,12 @@
 #. Tag: para
 #: Security.xml:3265
 #, no-c-format
-msgid ""
-"This method should remove the specified <literal>Permission</literal> object "
-"from persistent storage."
+msgid "This method should remove the specified <literal>Permission</literal> object from persistent storage."
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:3279 Security.xml:3881
+#: Security.xml:3279
+#: Security.xml:3881
 #, no-c-format
 msgid "revokePermissions(List&lt;Permission&gt; permissions)"
 msgstr ""
@@ -4521,19 +4111,19 @@
 #. Tag: para
 #: Security.xml:3283
 #, no-c-format
-msgid ""
-"This method should remove all of the <literal>Permission</literal> objects "
-"in the specified list from persistent storage."
+msgid "This method should remove all of the <literal>Permission</literal> objects in the specified list from persistent storage."
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:3293 Security.xml:3895
+#: Security.xml:3293
+#: Security.xml:3895
 #, no-c-format
 msgid "List&lt;String&gt;"
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:3298 Security.xml:3900
+#: Security.xml:3298
+#: Security.xml:3900
 #, no-c-format
 msgid "listAvailableActions(Object target)"
 msgstr ""
@@ -4541,11 +4131,7 @@
 #. Tag: para
 #: Security.xml:3302
 #, no-c-format
-msgid ""
-"This method should return a list of all the available actions (as Strings) "
-"for the class of the specified target object. It is used in conjunction with "
-"permission management to build the user interface for granting specific "
-"class permissions (see section further down)."
+msgid "This method should return a list of all the available actions (as Strings) for the class of the specified target object. It is used in conjunction with permission management to build the user interface for granting specific class permissions (see section further down)."
 msgstr ""
 
 #. Tag: title
@@ -4557,57 +4143,38 @@
 #. Tag: para
 #: Security.xml:3318
 #, no-c-format
-msgid ""
-"This is the default <literal>PermissionStore</literal> implementation (and "
-"the only one provided by Seam), which uses a relational database to store "
-"permissions. Before it can be used it must be configured with either one or "
-"two entity classes for storing user and role permissions. These entity "
-"classes must be annotated with a special set of security annotations to "
-"configure which properties of the entity correspond to various aspects of "
-"the permissions being stored."
+msgid "This is the default <literal>PermissionStore</literal> implementation (and the only one provided by Seam), which uses a relational database to store permissions. Before it can be used it must be configured with either one or two entity classes for storing user and role permissions. These entity classes must be annotated with a special set of security annotations to configure which properties of the entity correspond to various aspects of the permissions being stored."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3326
 #, no-c-format
-msgid ""
-"If you wish to use the same entity (i.e. a single database table) to store "
-"both user and role permissions, then only the <literal>user-permission-"
-"class</literal> property is required to be configured. If you wish to use "
-"separate tables for storing user and role permissions, then in addition to "
-"the <literal>user-permission-class</literal> property you must also "
-"configure the <literal>role-permission-class</literal> property."
+msgid "If you wish to use the same entity (i.e. a single database table) to store both user and role permissions, then only the <literal>user-permission-class</literal> property is required to be configured. If you wish to use separate tables for storing user and role permissions, then in addition to the <literal>user-permission-class</literal> property you must also configure the <literal>role-permission-class</literal> property."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3333
 #, no-c-format
-msgid ""
-"For example, to configure a single entity class to store both user and role "
-"permissions:"
+msgid "For example, to configure a single entity class to store both user and role permissions:"
 msgstr ""
 
 #. Tag: programlisting
 #: Security.xml:3335
 #, no-c-format
-msgid ""
-"<![CDATA[  <security:jpa-permission-store user-permission-class=\"com.acme."
-"model.AccountPermission\"/>]]>"
+msgid "<![CDATA[  <security:jpa-permission-store user-permission-class=\"com.acme.model.AccountPermission\"/>]]>"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3337
 #, no-c-format
-msgid ""
-"To configure separate entity classes for storing user and role permissions:"
+msgid "To configure separate entity classes for storing user and role permissions:"
 msgstr ""
 
 #. Tag: programlisting
 #: Security.xml:3339
 #, no-c-format
 msgid ""
-"<![CDATA[  <security:jpa-permission-store user-permission-class=\"com.acme."
-"model.UserPermission\"\n"
+"<![CDATA[  <security:jpa-permission-store user-permission-class=\"com.acme.model.UserPermission\"\n"
 "    role-permission-class=\"com.acme.model.RolePermission\"/>]]>"
 msgstr ""
 
@@ -4620,12 +4187,7 @@
 #. Tag: para
 #: Security.xml:3344
 #, no-c-format
-msgid ""
-"As mentioned, the entity classes that contain the user and role permissions "
-"must be configured with a special set of annotations, contained within the "
-"<literal>org.jboss.seam.annotations.security.permission</literal> package. "
-"The following table lists each of these annotations along with a description "
-"of how they are used:"
+msgid "As mentioned, the entity classes that contain the user and role permissions must be configured with a special set of annotations, contained within the <literal>org.jboss.seam.annotations.security.permission</literal> package. The following table lists each of these annotations along with a description of how they are used:"
 msgstr ""
 
 #. Tag: title
@@ -4635,7 +4197,8 @@
 msgstr ""
 
 #. Tag: para
-#: Security.xml:3364 Security.xml:3527
+#: Security.xml:3364
+#: Security.xml:3527
 #, no-c-format
 msgid "Target"
 msgstr ""
@@ -4647,7 +4210,10 @@
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:3382 Security.xml:3401 Security.xml:3420 Security.xml:3439
+#: Security.xml:3382
+#: Security.xml:3401
+#: Security.xml:3420
+#: Security.xml:3439
 #: Security.xml:3458
 #, no-c-format
 msgid "FIELD,METHOD"
@@ -4656,10 +4222,7 @@
 #. Tag: para
 #: Security.xml:3386
 #, no-c-format
-msgid ""
-"This annotation identifies the property of the entity that will contain the "
-"permission target. The property should be of type <literal>java.lang.String</"
-"literal>."
+msgid "This annotation identifies the property of the entity that will contain the permission target. The property should be of type <literal>java.lang.String</literal>."
 msgstr ""
 
 #. Tag: literal
@@ -4671,10 +4234,7 @@
 #. Tag: para
 #: Security.xml:3405
 #, no-c-format
-msgid ""
-"This annotation identifies the property of the entity that will contain the "
-"permission action. The property should be of type <literal>java.lang.String</"
-"literal>."
+msgid "This annotation identifies the property of the entity that will contain the permission action. The property should be of type <literal>java.lang.String</literal>."
 msgstr ""
 
 #. Tag: literal
@@ -4686,10 +4246,7 @@
 #. Tag: para
 #: Security.xml:3424
 #, no-c-format
-msgid ""
-"This annotation identifies the property of the entity that will contain the "
-"recipient user for the permission. It should be of type <literal>java.lang."
-"String</literal> and contain the user's username."
+msgid "This annotation identifies the property of the entity that will contain the recipient user for the permission. It should be of type <literal>java.lang.String</literal> and contain the user's username."
 msgstr ""
 
 #. Tag: literal
@@ -4701,10 +4258,7 @@
 #. Tag: para
 #: Security.xml:3443
 #, no-c-format
-msgid ""
-"This annotation identifies the property of the entity that will contain the "
-"recipient role for the permission. It should be of type <literal>java.lang."
-"String</literal> and contain the role name."
+msgid "This annotation identifies the property of the entity that will contain the recipient role for the permission. It should be of type <literal>java.lang.String</literal> and contain the role name."
 msgstr ""
 
 #. Tag: literal
@@ -4716,25 +4270,13 @@
 #. Tag: para
 #: Security.xml:3462
 #, no-c-format
-msgid ""
-"This annotation should be used when the same entity/table is used to store "
-"both user and role permissions. It identifies the property of the entity "
-"that is used to discriminate between user and role permissions. By default, "
-"if the column value contains the string literal <literal>user</literal>, "
-"then the record will be treated as a user permission. If it contains the "
-"string literal <literal>role</literal>, then it will be treated as a role "
-"permission. It is also possible to override these defaults by specifying the "
-"<literal>userValue</literal> and <literal>roleValue</literal> properties "
-"within the annotation. For example, to use <literal>u</literal> and "
-"<literal>r</literal> instead of <literal>user</literal> and <literal>role</"
-"literal>, the annotation would be written like this:"
+msgid "This annotation should be used when the same entity/table is used to store both user and role permissions. It identifies the property of the entity that is used to discriminate between user and role permissions. By default, if the column value contains the string literal <literal>user</literal>, then the record will be treated as a user permission. If it contains the string literal <literal>role</literal>, then it will be treated as a role permission. It is also possible to override these defaults by specifying the <literal>userValue</literal> and <literal>roleValue</literal> properties within the annotation. For example, to use <literal>u</literal> and <literal>r</literal> instead of <literal>user</literal> and <literal>role</literal>, the annotation would be written like this:"
 msgstr ""
 
 #. Tag: programlisting
 #: Security.xml:3472
 #, no-c-format
-msgid ""
-"<![CDATA[  @PermissionDiscriminator(userValue = \"u\", roleValue = \"r\")]]>"
+msgid "<![CDATA[  @PermissionDiscriminator(userValue = \"u\", roleValue = \"r\")]]>"
 msgstr ""
 
 #. Tag: title
@@ -4746,10 +4288,7 @@
 #. Tag: para
 #: Security.xml:3485
 #, no-c-format
-msgid ""
-"Here is an example of an entity class that is used to store both user and "
-"role permissions. The following class can be found inside the SeamSpace "
-"example:"
+msgid "Here is an example of an entity class that is used to store both user and role permissions. The following class can be found inside the SeamSpace example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -4816,18 +4355,7 @@
 #. Tag: para
 #: Security.xml:3492
 #, no-c-format
-msgid ""
-"As can be seen in the above example, the <literal>getDiscriminator()</"
-"literal> method has been annotated with the "
-"<literal>@PermissionDiscriminator</literal> annotation, to allow "
-"<literal>JpaPermissionStore</literal> to determine which records represent "
-"user permissions and which represent role permissions. In addition, it can "
-"also be seen that the <literal>getRecipient()</literal> method is annotated "
-"with both <literal>@PermissionUser</literal> and <literal>@PermissionRole</"
-"literal> annotations. This is perfectly valid, and simply means that the "
-"<literal>recipient</literal> property of the entity will either contain the "
-"name of the user or the name of the role, depending on the value of the "
-"<literal>discriminator</literal> property."
+msgid "As can be seen in the above example, the <literal>getDiscriminator()</literal> method has been annotated with the <literal>@PermissionDiscriminator</literal> annotation, to allow <literal>JpaPermissionStore</literal> to determine which records represent user permissions and which represent role permissions. In addition, it can also be seen that the <literal>getRecipient()</literal> method is annotated with both <literal>@PermissionUser</literal> and <literal>@PermissionRole</literal> annotations. This is perfectly valid, and simply means that the <literal>recipient</literal> property of the entity will either contain the name of the user or the name of the role, depending on the value of the <literal>discriminator</literal> property."
 msgstr ""
 
 #. Tag: title
@@ -4839,11 +4367,7 @@
 #. Tag: para
 #: Security.xml:3507
 #, no-c-format
-msgid ""
-"A further set of class-specific annotations can be used to configure a "
-"specific set of allowable permissions for a target class. These permissions "
-"can be found in the <literal>org.jboss.seam.annotation.security.permission</"
-"literal> package:"
+msgid "A further set of class-specific annotations can be used to configure a specific set of allowable permissions for a target class. These permissions can be found in the <literal>org.jboss.seam.annotation.security.permission</literal> package:"
 msgstr ""
 
 #. Tag: title
@@ -4859,7 +4383,8 @@
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:3545 Security.xml:3563
+#: Security.xml:3545
+#: Security.xml:3563
 #, no-c-format
 msgid "TYPE"
 msgstr ""
@@ -4867,9 +4392,7 @@
 #. Tag: para
 #: Security.xml:3549
 #, no-c-format
-msgid ""
-"A container annotation, this annotation may contain an array of "
-"<literal>@Permission</literal> annotations."
+msgid "A container annotation, this annotation may contain an array of <literal>@Permission</literal> annotations."
 msgstr ""
 
 #. Tag: literal
@@ -4881,20 +4404,13 @@
 #. Tag: para
 #: Security.xml:3567
 #, no-c-format
-msgid ""
-"This annotation defines a single allowable permission action for the target "
-"class. Its <literal>action</literal> property must be specified, and an "
-"optional <literal>mask</literal> property may also be specified if "
-"permission actions are to be persisted as bitmasked values (see next "
-"section)."
+msgid "This annotation defines a single allowable permission action for the target class. Its <literal>action</literal> property must be specified, and an optional <literal>mask</literal> property may also be specified if permission actions are to be persisted as bitmasked values (see next section)."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3579
 #, no-c-format
-msgid ""
-"Here's an example of the above annotations in action. The following class "
-"can also be found in the SeamSpace example:"
+msgid "Here's an example of the above annotations in action. The following class can also be found in the SeamSpace example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -4912,10 +4428,7 @@
 #. Tag: para
 #: Security.xml:3585
 #, no-c-format
-msgid ""
-"This example demonstrates how two allowable permission actions, "
-"<literal>view</literal> and <literal>comment</literal> can be declared for "
-"the entity class <literal>MemberImage</literal>."
+msgid "This example demonstrates how two allowable permission actions, <literal>view</literal> and <literal>comment</literal> can be declared for the entity class <literal>MemberImage</literal>."
 msgstr ""
 
 #. Tag: title
@@ -4927,26 +4440,13 @@
 #. Tag: para
 #: Security.xml:3595
 #, no-c-format
-msgid ""
-"By default, multiple permissions for the same target object and recipient "
-"will be persisted as a single database record, with the <literal>action</"
-"literal> property/column containing a comma-separated list of the granted "
-"actions. To reduce the amount of physical storage required to persist a "
-"large number of permissions, it is possible to use a bitmasked integer value "
-"(instead of a comma-separated list) to store the list of permission actions."
+msgid "By default, multiple permissions for the same target object and recipient will be persisted as a single database record, with the <literal>action</literal> property/column containing a comma-separated list of the granted actions. To reduce the amount of physical storage required to persist a large number of permissions, it is possible to use a bitmasked integer value (instead of a comma-separated list) to store the list of permission actions."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3602
 #, no-c-format
-msgid ""
-"For example, if recipient \"Bob\" is granted both the <literal>view</"
-"literal> and <literal>comment</literal> permissions for a particular "
-"<literal>MemberImage</literal> (an entity bean) instance, then by default "
-"the <literal>action</literal> property of the permission entity will contain "
-"\"<literal>view,comment</literal>\", representing the two granted permission "
-"actions. Alternatively, if using bitmasked values for the permission "
-"actions, as defined like so:"
+msgid "For example, if recipient \"Bob\" is granted both the <literal>view</literal> and <literal>comment</literal> permissions for a particular <literal>MemberImage</literal> (an entity bean) instance, then by default the <literal>action</literal> property of the permission entity will contain \"<literal>view,comment</literal>\", representing the two granted permission actions. Alternatively, if using bitmasked values for the permission actions, as defined like so:"
 msgstr ""
 
 #. Tag: programlisting
@@ -4960,23 +4460,23 @@
 "@Entity\n"
 "public class MemberImage implements Serializable {]]>"
 msgstr ""
+"<![CDATA[@Permissions({\n"
+"   @Permission(action = \"view\", mask = 1),\n"
+"   @Permission(action = \"comment\", mask = 2)\n"
+"})\n"
+"@Entity\n"
+"public class MemberImage implements Serializable {]]>"
 
 #. Tag: para
 #: Security.xml:3611
 #, no-c-format
-msgid ""
-"The <literal>action</literal> property will instead simply contain \"3"
-"\" (with both the 1 bit and 2 bit switched on). Obviously for a large number "
-"of allowable actions for any particular target class, the storage required "
-"for the permission records is greatly reduced by using bitmasked actions."
+msgid "The <literal>action</literal> property will instead simply contain \"3\" (with both the 1 bit and 2 bit switched on). Obviously for a large number of allowable actions for any particular target class, the storage required for the permission records is greatly reduced by using bitmasked actions."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3617
 #, no-c-format
-msgid ""
-"Obviously, it is very important that the <literal>mask</literal> values "
-"specified are powers of 2."
+msgid "Obviously, it is very important that the <literal>mask</literal> values specified are powers of 2."
 msgstr ""
 
 #. Tag: title
@@ -4988,23 +4488,13 @@
 #. Tag: para
 #: Security.xml:3625
 #, no-c-format
-msgid ""
-"When storing or looking up permissions, <literal>JpaPermissionStore</"
-"literal> must be able to uniquely identify specific object instances to "
-"effectively operate on its permissions. To achieve this, an "
-"<emphasis>identifier strategy</emphasis> may be assigned to each target "
-"class for the generation of unique identifier values. Each identifier "
-"strategy implementation knows how to generate unique identifiers for a "
-"particular type of class, and it is a simple matter to create new identifier "
-"strategies."
+msgid "When storing or looking up permissions, <literal>JpaPermissionStore</literal> must be able to uniquely identify specific object instances to effectively operate on its permissions. To achieve this, an <emphasis>identifier strategy</emphasis> may be assigned to each target class for the generation of unique identifier values. Each identifier strategy implementation knows how to generate unique identifiers for a particular type of class, and it is a simple matter to create new identifier strategies."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3633
 #, no-c-format
-msgid ""
-"The <literal>IdentifierStrategy</literal> interface is very simple, "
-"declaring only two methods:"
+msgid "The <literal>IdentifierStrategy</literal> interface is very simple, declaring only two methods:"
 msgstr ""
 
 #. Tag: programlisting
@@ -5016,38 +4506,27 @@
 "   String getIdentifier(Object target);\n"
 "}]]>"
 msgstr ""
+"<![CDATA[public interface IdentifierStrategy {\n"
+"   boolean canIdentify(Class targetClass);\n"
+"   String getIdentifier(Object target);\n"
+"}]]>"
 
 #. Tag: para
 #: Security.xml:3639
 #, no-c-format
-msgid ""
-"The first method, <literal>canIdentify()</literal> simply returns "
-"<literal>true</literal> if the identifier strategy is capable of generating "
-"a unique identifier for the specified target class. The second method, "
-"<literal>getIdentifier()</literal> returns the unique identifier value for "
-"the specified target object."
+msgid "The first method, <literal>canIdentify()</literal> simply returns <literal>true</literal> if the identifier strategy is capable of generating a unique identifier for the specified target class. The second method, <literal>getIdentifier()</literal> returns the unique identifier value for the specified target object."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3645
 #, no-c-format
-msgid ""
-"Seam provides two <literal>IdentifierStrategy</literal> implementations, "
-"<literal>ClassIdentifierStrategy</literal> and "
-"<literal>EntityIdentifierStrategy</literal> (see next sections for details)."
+msgid "Seam provides two <literal>IdentifierStrategy</literal> implementations, <literal>ClassIdentifierStrategy</literal> and <literal>EntityIdentifierStrategy</literal> (see next sections for details)."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3650
 #, no-c-format
-msgid ""
-"To explicitly configure a specific identifier strategy to use for a "
-"particular class, it should be annotated with <literal>org.jboss.seam."
-"annotations.security.permission.Identifier</literal>, and the value should "
-"be set to a concrete implementation of the <literal>IdentifierStrategy</"
-"literal> interface. An optional <literal>name</literal> property can also be "
-"specified, the effect of which is dependent upon the actual "
-"<literal>IdentifierStrategy</literal> implementation used."
+msgid "To explicitly configure a specific identifier strategy to use for a particular class, it should be annotated with <literal>org.jboss.seam.annotations.security.permission.Identifier</literal>, and the value should be set to a concrete implementation of the <literal>IdentifierStrategy</literal> interface. An optional <literal>name</literal> property can also be specified, the effect of which is dependent upon the actual <literal>IdentifierStrategy</literal> implementation used."
 msgstr ""
 
 #. Tag: title
@@ -5059,15 +4538,7 @@
 #. Tag: para
 #: Security.xml:3662
 #, no-c-format
-msgid ""
-"This identifier strategy is used to generate unique identifiers for classes, "
-"and will use the value of the <literal>name</literal> (if specified) in the "
-"<literal>@Identifier</literal> annotation. If there is no <literal>name</"
-"literal> property provided, then it will attempt to use the component name "
-"of the class (if the class is a Seam component), or as a last resort it will "
-"create an identifier based on the name of the class (excluding the package "
-"name). For example, the identifier for the following class will be "
-"\"<literal>customer</literal>\":"
+msgid "This identifier strategy is used to generate unique identifiers for classes, and will use the value of the <literal>name</literal> (if specified) in the <literal>@Identifier</literal> annotation. If there is no <literal>name</literal> property provided, then it will attempt to use the component name of the class (if the class is a Seam component), or as a last resort it will create an identifier based on the name of the class (excluding the package name). For example, the identifier for the following class will be \"<literal>customer</literal>\":"
 msgstr ""
 
 #. Tag: programlisting
@@ -5077,13 +4548,13 @@
 "<![CDATA[@Identifier(name = \"customer\")\n"
 "public class Customer {]]>"
 msgstr ""
+"<![CDATA[@Identifier(name = \"customer\")\n"
+"public class Customer {]]>"
 
 #. Tag: para
 #: Security.xml:3673
 #, no-c-format
-msgid ""
-"The identifier for the following class will be \"<literal>customerAction</"
-"literal>\":"
+msgid "The identifier for the following class will be \"<literal>customerAction</literal>\":"
 msgstr ""
 
 #. Tag: programlisting
@@ -5093,42 +4564,31 @@
 "<![CDATA[@Name(\"customerAction\")\n"
 "public class CustomerAction { ]]>"
 msgstr ""
+"<![CDATA[@Name(\"customerAction\")\n"
+"public class CustomerAction { ]]>"
 
 #. Tag: para
 #: Security.xml:3679
 #, no-c-format
-msgid ""
-"Finally, the identifier for the following class will be \"<literal>Customer</"
-"literal>\":"
+msgid "Finally, the identifier for the following class will be \"<literal>Customer</literal>\":"
 msgstr ""
 
 #. Tag: programlisting
 #: Security.xml:3683
 #, no-c-format
 msgid "<![CDATA[public class Customer { ]]>"
-msgstr ""
+msgstr "<![CDATA[public class Customer { ]]>"
 
 #. Tag: title
 #: Security.xml:3688
 #, no-c-format
 msgid "EntityIdentifierStrategy"
-msgstr ""
+msgstr "EntityIdentifierStrategy"
 
 #. Tag: para
 #: Security.xml:3690
 #, no-c-format
-msgid ""
-"This identifier strategy is used to generate unique identifiers for entity "
-"beans. It does so by concatenating the entity name (or otherwise configured "
-"name) with a string representation of the primary key value of the entity. "
-"The rules for generating the name section of the identifier are similar to "
-"<literal>ClassIdentifierStrategy</literal>. The primary key value (i.e. the "
-"<emphasis>id</emphasis> of the entity) is obtained using the "
-"<literal>PersistenceProvider</literal> component, which is able to correctly "
-"determine the value regardless of which persistence implementation is used "
-"within the Seam application. For entities not annotated with "
-"<literal>@Entity</literal>, it is necessary to explicitly configure the "
-"identifier strategy on the entity class itself, for example:"
+msgid "This identifier strategy is used to generate unique identifiers for entity beans. It does so by concatenating the entity name (or otherwise configured name) with a string representation of the primary key value of the entity. The rules for generating the name section of the identifier are similar to <literal>ClassIdentifierStrategy</literal>. The primary key value (i.e. the <emphasis>id</emphasis> of the entity) is obtained using the <literal>PersistenceProvider</literal> component, which is able to correctly determine the value regardless of which persistence implementation is used within the Seam application. For entities not annotated with <literal>@Entity</literal>, it is necessary to explicitly configure the identifier strategy on the entity class itself, for example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -5138,13 +4598,13 @@
 "<![CDATA[@Identifier(value = EntityIdentifierStrategy.class)\n"
 "public class Customer { ]]>"
 msgstr ""
+"<![CDATA[@Identifier(value = EntityIdentifierStrategy.class)\n"
+"public class Customer { ]]>"
 
 #. Tag: para
 #: Security.xml:3703
 #, no-c-format
-msgid ""
-"For an example of the type of identifier values generated, assume we have "
-"the following entity class:"
+msgid "For an example of the type of identifier values generated, assume we have the following entity class:"
 msgstr ""
 
 #. Tag: programlisting
@@ -5162,22 +4622,33 @@
 "  public void setId(Integer id) { this.id = id; }\n"
 "  \n"
 "  public String getFirstName() { return firstName; }\n"
-"  public void setFirstName(String firstName) { this.firstName = "
-"firstName; }\n"
+"  public void setFirstName(String firstName) { this.firstName = firstName; }\n"
 "  \n"
 "  public String getLastName() { return lastName; }\n"
 "  public void setLastName(String lastName) { this.lastName = lastName; }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Entity\n"
+"public class Customer {\n"
+"  private Integer id;\n"
+"  private String firstName;\n"
+"  private String lastName;\n"
+"  \n"
+"  @Id \n"
+"  public Integer getId() { return id; }\n"
+"  public void setId(Integer id) { this.id = id; }\n"
+"  \n"
+"  public String getFirstName() { return firstName; }\n"
+"  public void setFirstName(String firstName) { this.firstName = firstName; }\n"
+"  \n"
+"  public String getLastName() { return lastName; }\n"
+"  public void setLastName(String lastName) { this.lastName = lastName; }\n"
+"}]]>"
 
 #. Tag: para
 #: Security.xml:3709
 #, no-c-format
-msgid ""
-"For a <literal>Customer</literal> instance with an <literal>id</literal> "
-"value of <literal>1</literal>, the value of the identifier would be "
-"\"<literal>Customer:1</literal>\". If the entity class is annotated with an "
-"explicit identifier name, like so:"
+msgid "For a <literal>Customer</literal> instance with an <literal>id</literal> value of <literal>1</literal>, the value of the identifier would be \"<literal>Customer:1</literal>\". If the entity class is annotated with an explicit identifier name, like so:"
 msgstr ""
 
 #. Tag: programlisting
@@ -5188,14 +4659,14 @@
 "@Identifier(name = \"cust\")\n"
 "public class Customer { ]]>"
 msgstr ""
+"<![CDATA[@Entity\n"
+"@Identifier(name = \"cust\")\n"
+"public class Customer { ]]>"
 
 #. Tag: para
 #: Security.xml:3717
 #, no-c-format
-msgid ""
-"Then a <literal>Customer</literal> with an <literal>id</literal> value of "
-"<literal>123</literal> would have an identifier value of "
-"\"<literal>cust:123</literal>\"."
+msgid "Then a <literal>Customer</literal> with an <literal>id</literal> value of <literal>123</literal> would have an identifier value of \"<literal>cust:123</literal>\"."
 msgstr ""
 
 #. Tag: title
@@ -5207,11 +4678,7 @@
 #. Tag: para
 #: Security.xml:3732
 #, no-c-format
-msgid ""
-"In much the same way that Seam Security provides an Identity Management API "
-"for the management of users and roles, it also provides a Permissions "
-"Management API for the management of persistent user permissions, via the "
-"<literal>PermissionManager</literal> component."
+msgid "In much the same way that Seam Security provides an Identity Management API for the management of users and roles, it also provides a Permissions Management API for the management of persistent user permissions, via the <literal>PermissionManager</literal> component."
 msgstr ""
 
 #. Tag: title
@@ -5223,14 +4690,7 @@
 #. Tag: para
 #: Security.xml:3741
 #, no-c-format
-msgid ""
-"The <literal>PermissionManager</literal> component is an application-scoped "
-"Seam component that provides a number of methods for managing permissions. "
-"Before it can be used, it must be configured with a permission store "
-"(although by default it will attempt to use <literal>JpaPermissionStore</"
-"literal> if it is available). To explicitly configure a custom permission "
-"store, specify the <literal>permission-store</literal> property in "
-"components.xml:"
+msgid "The <literal>PermissionManager</literal> component is an application-scoped Seam component that provides a number of methods for managing permissions. Before it can be used, it must be configured with a permission store (although by default it will attempt to use <literal>JpaPermissionStore</literal> if it is available). To explicitly configure a custom permission store, specify the <literal>permission-store</literal> property in components.xml:"
 msgstr ""
 
 #. Tag: programlisting
@@ -5238,17 +4698,17 @@
 #, no-c-format
 msgid ""
 "<![CDATA[\n"
-"<security:permission-manager permission-store=\"#{ldapPermissionStore}\"/"
-">      \n"
+"<security:permission-manager permission-store=\"#{ldapPermissionStore}\"/>      \n"
 "      ]]>"
 msgstr ""
+"<![CDATA[\n"
+"<security:permission-manager permission-store=\"#{ldapPermissionStore}\"/>      \n"
+"      ]]>"
 
 #. Tag: para
 #: Security.xml:3750
 #, no-c-format
-msgid ""
-"The following table describes each of the available methods provided by "
-"<literal>PermissionManager</literal>:"
+msgid "The following table describes each of the available methods provided by <literal>PermissionManager</literal>:"
 msgstr ""
 
 #. Tag: title
@@ -5258,58 +4718,46 @@
 msgstr ""
 
 #. Tag: para
-#: Security.xml:3790 Security.xml:3809
+#: Security.xml:3790
+#: Security.xml:3809
 #, no-c-format
-msgid ""
-"Returns a list of <literal>Permission</literal> objects representing all of "
-"the permissions that have been granted for the specified target and action."
+msgid "Returns a list of <literal>Permission</literal> objects representing all of the permissions that have been granted for the specified target and action."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:3824
 #, no-c-format
 msgid "grantPermission(Permission permission)"
-msgstr ""
+msgstr "grantPermission(Permission permission)"
 
 #. Tag: para
 #: Security.xml:3828
 #, no-c-format
-msgid ""
-"Persists (grants) the specified <literal>Permission</literal> to the backend "
-"permission store. Returns true if the operation was successful."
+msgid "Persists (grants) the specified <literal>Permission</literal> to the backend permission store. Returns true if the operation was successful."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3847
 #, no-c-format
-msgid ""
-"Persists (grants) the specified list of <literal>Permission</literal>s to "
-"the backend permission store. Returns true if the operation was successful."
+msgid "Persists (grants) the specified list of <literal>Permission</literal>s to the backend permission store. Returns true if the operation was successful."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3866
 #, no-c-format
-msgid ""
-"Removes (revokes) the specified <literal>Permission</literal> from the "
-"backend permission store. Returns true if the operation was successful."
+msgid "Removes (revokes) the specified <literal>Permission</literal> from the backend permission store. Returns true if the operation was successful."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3885
 #, no-c-format
-msgid ""
-"Removes (revokes) the specified list of <literal>Permission</literal>s from "
-"the backend permission store. Returns true if the operation was successful."
+msgid "Removes (revokes) the specified list of <literal>Permission</literal>s from the backend permission store. Returns true if the operation was successful."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:3904
 #, no-c-format
-msgid ""
-"Returns a list of the available actions for the specified target object. The "
-"actions that this method returns are dependent on the <literal>@Permission</"
-"literal> annotations configured on the target object's class."
+msgid "Returns a list of the available actions for the specified target object. The actions that this method returns are dependent on the <literal>@Permission</literal> annotations configured on the target object's class."
 msgstr ""
 
 #. Tag: title
@@ -5321,11 +4769,7 @@
 #. Tag: para
 #: Security.xml:3921
 #, no-c-format
-msgid ""
-"Invoking the methods of <literal>PermissionManager</literal> requires that "
-"the currently-authenticated user has the appropriate authorization to "
-"perform that management operation. The following table lists the required "
-"permissions that the current user must have."
+msgid "Invoking the methods of <literal>PermissionManager</literal> requires that the currently-authenticated user has the appropriate authorization to perform that management operation. The following table lists the required permissions that the current user must have."
 msgstr ""
 
 #. Tag: title
@@ -5338,7 +4782,7 @@
 #: Security.xml:3952
 #, no-c-format
 msgid "listPermissions()"
-msgstr ""
+msgstr "listPermissions()"
 
 #. Tag: para
 #: Security.xml:3956
@@ -5350,31 +4794,32 @@
 #: Security.xml:3962
 #, no-c-format
 msgid "seam.read-permissions"
-msgstr ""
+msgstr "seam.read-permissions"
 
 #. Tag: literal
-#: Security.xml:3970 Security.xml:3990
+#: Security.xml:3970
+#: Security.xml:3990
 #, no-c-format
 msgid "grantPermission()"
-msgstr ""
+msgstr "grantPermission()"
 
 #. Tag: para
 #: Security.xml:3974
 #, no-c-format
-msgid ""
-"The target of the specified <literal>Permission</literal>, or each of the "
-"targets for the specified list of <literal>Permission</literal>s (depending "
-"on which method is called)."
+msgid "The target of the specified <literal>Permission</literal>, or each of the targets for the specified list of <literal>Permission</literal>s (depending on which method is called)."
 msgstr ""
 
 #. Tag: literal
-#: Security.xml:3982 Security.xml:4000 Security.xml:4018
+#: Security.xml:3982
+#: Security.xml:4000
+#: Security.xml:4018
 #, no-c-format
 msgid "seam.grant-permission"
-msgstr ""
+msgstr "seam.grant-permission"
 
 #. Tag: para
-#: Security.xml:3994 Security.xml:4030
+#: Security.xml:3994
+#: Security.xml:4030
 #, no-c-format
 msgid "The target of the specified <literal>Permission</literal>."
 msgstr ""
@@ -5383,32 +4828,33 @@
 #: Security.xml:4008
 #, no-c-format
 msgid "grantPermissions()"
-msgstr ""
+msgstr "grantPermissions()"
 
 #. Tag: para
-#: Security.xml:4012 Security.xml:4048
+#: Security.xml:4012
+#: Security.xml:4048
 #, no-c-format
-msgid ""
-"Each of the targets of the specified list of <literal>Permission</literal>s."
+msgid "Each of the targets of the specified list of <literal>Permission</literal>s."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:4026
 #, no-c-format
 msgid "revokePermission()"
-msgstr ""
+msgstr "revokePermission()"
 
 #. Tag: literal
-#: Security.xml:4036 Security.xml:4054
+#: Security.xml:4036
+#: Security.xml:4054
 #, no-c-format
 msgid "seam.revoke-permission"
-msgstr ""
+msgstr "seam.revoke-permission"
 
 #. Tag: literal
 #: Security.xml:4044
 #, no-c-format
 msgid "revokePermissions()"
-msgstr ""
+msgstr "revokePermissions()"
 
 #. Tag: title
 #: Security.xml:4067
@@ -5419,99 +4865,67 @@
 #. Tag: para
 #: Security.xml:4069
 #, no-c-format
-msgid ""
-"Seam includes basic support for serving sensitive pages via the HTTPS "
-"protocol. This is easily configured by specifying a <literal>scheme</"
-"literal> for the page in <literal>pages.xml</literal>. The following example "
-"shows how the view <literal>/login.xhtml</literal> is configured to use "
-"HTTPS:"
+msgid "Seam includes basic support for serving sensitive pages via the HTTPS protocol. This is easily configured by specifying a <literal>scheme</literal> for the page in <literal>pages.xml</literal>. The following example shows how the view <literal>/login.xhtml</literal> is configured to use HTTPS:"
 msgstr ""
 
 #. Tag: programlisting
 #: Security.xml:4076
 #, no-c-format
 msgid "<![CDATA[<page view-id=\"/login.xhtml\" scheme=\"https\"/>]]>"
-msgstr ""
+msgstr "<![CDATA[<page view-id=\"/login.xhtml\" scheme=\"https\"/>]]>"
 
 #. Tag: para
 #: Security.xml:4078
 #, no-c-format
-msgid ""
-"This configuration is automatically extended to both <literal>s:link</"
-"literal> and <literal>s:button</literal> JSF controls, which (when "
-"specifying the <literal>view</literal>) will also render the link using the "
-"correct protocol. Based on the previous example, the following link will use "
-"the HTTPS protocol because <literal>/login.xhtml</literal> is configured to "
-"use it:"
+msgid "This configuration is automatically extended to both <literal>s:link</literal> and <literal>s:button</literal> JSF controls, which (when specifying the <literal>view</literal>) will also render the link using the correct protocol. Based on the previous example, the following link will use the HTTPS protocol because <literal>/login.xhtml</literal> is configured to use it:"
 msgstr ""
 
 #. Tag: programlisting
 #: Security.xml:4085
 #, no-c-format
 msgid "<![CDATA[<s:link view=\"/login.xhtml\" value=\"Login\"/>]]>"
-msgstr ""
+msgstr "<![CDATA[<s:link view=\"/login.xhtml\" value=\"Login\"/>]]>"
 
 #. Tag: para
 #: Security.xml:4087
 #, no-c-format
-msgid ""
-"Browsing directly to a view when using the <emphasis>incorrect</emphasis> "
-"protocol will cause a redirect to the same view using the <emphasis>correct</"
-"emphasis> protocol. For example, browsing to a page that has <literal>scheme="
-"\"https\"</literal> using HTTP will cause a redirect to the same page using "
-"HTTPS."
+msgid "Browsing directly to a view when using the <emphasis>incorrect</emphasis> protocol will cause a redirect to the same view using the <emphasis>correct</emphasis> protocol. For example, browsing to a page that has <literal>scheme=\"https\"</literal> using HTTP will cause a redirect to the same page using HTTPS."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:4094
 #, no-c-format
-msgid ""
-"It is also possible to configure a <emphasis>default scheme</emphasis> for "
-"all pages. This is useful if you wish to use HTTPS for a only few pages. If "
-"no default scheme is specified then the normal behavior is to continue use "
-"the current scheme. So once the user accessed a page that required HTTPS, "
-"then HTTPS would continue to be used after the user navigated away to other "
-"non-HTTPS pages. (While this is good for security, it is not so great for "
-"performance!). To define HTTP as the default <literal>scheme</literal>, add "
-"this line to <literal>pages.xml</literal>:"
+msgid "It is also possible to configure a <emphasis>default scheme</emphasis> for all pages. This is useful if you wish to use HTTPS for a only few pages. If no default scheme is specified then the normal behavior is to continue use the current scheme. So once the user accessed a page that required HTTPS, then HTTPS would continue to be used after the user navigated away to other non-HTTPS pages. (While this is good for security, it is not so great for performance!). To define HTTP as the default <literal>scheme</literal>, add this line to <literal>pages.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
 #: Security.xml:4103
 #, no-c-format
 msgid "<![CDATA[<page view-id=\"*\" scheme=\"http\" />]]>"
-msgstr ""
+msgstr "<![CDATA[<page view-id=\"*\" scheme=\"http\" />]]>"
 
 #. Tag: para
 #: Security.xml:4105
 #, no-c-format
-msgid ""
-"Of course, if <emphasis>none</emphasis> of the pages in your application use "
-"HTTPS then it is not required to specify a default scheme."
+msgid "Of course, if <emphasis>none</emphasis> of the pages in your application use HTTPS then it is not required to specify a default scheme."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:4110
 #, no-c-format
-msgid ""
-"You may configure Seam to automatically invalidate the current HTTP session "
-"each time the scheme changes. Just add this line to <literal>components.xml</"
-"literal>:"
+msgid "You may configure Seam to automatically invalidate the current HTTP session each time the scheme changes. Just add this line to <literal>components.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
 #: Security.xml:4115
 #, no-c-format
 msgid "<![CDATA[<web:session invalidate-on-scheme-change=\"true\"/>]]>"
-msgstr ""
+msgstr "<![CDATA[<web:session invalidate-on-scheme-change=\"true\"/>]]>"
 
 #. Tag: para
 #: Security.xml:4117
 #, no-c-format
-msgid ""
-"This option helps make your system less vulnerable to sniffing of the "
-"session id or leakage of sensitive data from pages using HTTPS to other "
-"pages using HTTP."
+msgid "This option helps make your system less vulnerable to sniffing of the session id or leakage of sensitive data from pages using HTTPS to other pages using HTTP."
 msgstr ""
 
 #. Tag: title
@@ -5523,11 +4937,7 @@
 #. Tag: para
 #: Security.xml:4125
 #, no-c-format
-msgid ""
-"If you wish to configure the HTTP and HTTPS ports manually, they may be "
-"configured in <literal>pages.xml</literal> by specifying the <literal>http-"
-"port</literal> and <literal>https-port</literal> attributes on the "
-"<literal>pages</literal> element:"
+msgid "If you wish to configure the HTTP and HTTPS ports manually, they may be configured in <literal>pages.xml</literal> by specifying the <literal>http-port</literal> and <literal>https-port</literal> attributes on the <literal>pages</literal> element:"
 msgstr ""
 
 #. Tag: programlisting
@@ -5537,31 +4947,33 @@
 "<![CDATA[\n"
 "<pages xmlns=\"http://jboss.com/products/seam/pages\"\n"
 "       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-"       xsi:schemaLocation=\"http://jboss.com/products/seam/pages http://"
-"jboss.com/products/seam/pages-2.1.xsd\"\n"
+"       xsi:schemaLocation=\"http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.1.xsd\"\n"
 "       no-conversation-view-id=\"/home.xhtml\"\n"
 "       login-view-id=\"/login.xhtml\"\n"
 "       http-port=\"8080\"\n"
 "       https-port=\"8443\">      \n"
 "      ]]>"
 msgstr ""
+"<![CDATA[\n"
+"<pages xmlns=\"http://jboss.com/products/seam/pages\"\n"
+"       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"       xsi:schemaLocation=\"http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.1.xsd\"\n"
+"       no-conversation-view-id=\"/home.xhtml\"\n"
+"       login-view-id=\"/login.xhtml\"\n"
+"       http-port=\"8080\"\n"
+"       https-port=\"8443\">      \n"
+"      ]]>"
 
 #. Tag: title
 #: Security.xml:4137
 #, no-c-format
 msgid "CAPTCHA"
-msgstr ""
+msgstr "CAPTCHA"
 
 #. Tag: para
 #: Security.xml:4139
 #, no-c-format
-msgid ""
-"Though strictly not part of the security API, Seam provides a built-in "
-"CAPTCHA (<emphasis>C</emphasis>ompletely <emphasis>A</emphasis>utomated "
-"<emphasis>P</emphasis>ublic <emphasis>T</emphasis>uring test to tell "
-"<emphasis>C</emphasis>omputers and <emphasis>H</emphasis>umans <emphasis>A</"
-"emphasis>part) algorithm to prevent automated processes from interacting "
-"with your application."
+msgid "Though strictly not part of the security API, Seam provides a built-in CAPTCHA (<emphasis>C</emphasis>ompletely <emphasis>A</emphasis>utomated <emphasis>P</emphasis>ublic <emphasis>T</emphasis>uring test to tell <emphasis>C</emphasis>omputers and <emphasis>H</emphasis>umans <emphasis>A</emphasis>part) algorithm to prevent automated processes from interacting with your application."
 msgstr ""
 
 #. Tag: title
@@ -5573,10 +4985,7 @@
 #. Tag: para
 #: Security.xml:4148
 #, no-c-format
-msgid ""
-"To get up and running, it is necessary to configure the Seam Resource "
-"Servlet, which will provide the Captcha challenge images to your pages. This "
-"requires the following entry in <literal>web.xml</literal>:"
+msgid "To get up and running, it is necessary to configure the Seam Resource Servlet, which will provide the Captcha challenge images to your pages. This requires the following entry in <literal>web.xml</literal>:"
 msgstr ""
 
 #. Tag: programlisting
@@ -5585,8 +4994,7 @@
 msgid ""
 "<![CDATA[<servlet>\n"
 "    <servlet-name>Seam Resource Servlet</servlet-name>\n"
-"    <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-"
-"class>\n"
+"    <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>\n"
 "</servlet>\n"
 "\n"
 "<servlet-mapping>\n"
@@ -5594,6 +5002,15 @@
 "    <url-pattern>/seam/resource/*</url-pattern>\n"
 "</servlet-mapping>]]>"
 msgstr ""
+"<![CDATA[<servlet>\n"
+"    <servlet-name>Seam Resource Servlet</servlet-name>\n"
+"    <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>\n"
+"</servlet>\n"
+"\n"
+"<servlet-mapping>\n"
+"    <servlet-name>Seam Resource Servlet</servlet-name>\n"
+"    <url-pattern>/seam/resource/*</url-pattern>\n"
+"</servlet-mapping>]]>"
 
 #. Tag: title
 #: Security.xml:4158
@@ -5604,8 +5021,7 @@
 #. Tag: para
 #: Security.xml:4160
 #, no-c-format
-msgid ""
-"Adding a CAPTCHA challenge to a form is extremely easy. Here's an example:"
+msgid "Adding a CAPTCHA challenge to a form is extremely easy. Here's an example:"
 msgstr ""
 
 #. Tag: programlisting
@@ -5613,21 +5029,21 @@
 #, no-c-format
 msgid ""
 "<![CDATA[<h:graphicImage value=\"/seam/resource/captcha\"/>\n"
-"<h:inputText id=\"verifyCaptcha\" value=\"#{captcha.response}\" required="
-"\"true\">\n"
+"<h:inputText id=\"verifyCaptcha\" value=\"#{captcha.response}\" required=\"true\">\n"
 "   <s:validate />\n"
 "</h:inputText>\n"
 "<h:message for=\"verifyCaptcha\"/>]]>"
 msgstr ""
+"<![CDATA[<h:graphicImage value=\"/seam/resource/captcha\"/>\n"
+"<h:inputText id=\"verifyCaptcha\" value=\"#{captcha.response}\" required=\"true\">\n"
+"   <s:validate />\n"
+"</h:inputText>\n"
+"<h:message for=\"verifyCaptcha\"/>]]>"
 
 #. Tag: para
 #: Security.xml:4166
 #, no-c-format
-msgid ""
-"That's all there is to it. The <literal>graphicImage</literal> control "
-"displays the CAPTCHA challenge, and the <literal>inputText</literal> "
-"receives the user's response. The response is automatically validated "
-"against the CAPTCHA when the form is submitted."
+msgid "That's all there is to it. The <literal>graphicImage</literal> control displays the CAPTCHA challenge, and the <literal>inputText</literal> receives the user's response. The response is automatically validated against the CAPTCHA when the form is submitted."
 msgstr ""
 
 #. Tag: title
@@ -5639,8 +5055,7 @@
 #. Tag: para
 #: Security.xml:4177
 #, no-c-format
-msgid ""
-"You may customize the CAPTCHA algorithm by overriding the built-in component:"
+msgid "You may customize the CAPTCHA algorithm by overriding the built-in component:"
 msgstr ""
 
 #. Tag: programlisting
@@ -5654,8 +5069,7 @@
 "   @Override @Create\n"
 "   public void init()\n"
 "   {\n"
-"      setChallenge(\"What is the answer to life, the universe and everything?"
-"\");\n"
+"      setChallenge(\"What is the answer to life, the universe and everything?\");\n"
 "      setCorrectResponse(\"42\");\n"
 "   }\n"
 "\n"
@@ -5663,15 +5077,34 @@
 "   public BufferedImage renderChallenge()\n"
 "   {\n"
 "       BufferedImage img = super.renderChallenge();\n"
-"       img.getGraphics().drawOval(5, 3, 60, 14); //add an obscuring "
-"decoration\n"
+"       img.getGraphics().drawOval(5, 3, 60, 14); //add an obscuring decoration\n"
 "       return img;\n"
 "   }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Name(\"org.jboss.seam.captcha.captcha\")\n"
+"@Scope(SESSION)\n"
+"public class HitchhikersCaptcha extends Captcha\n"
+"{\n"
+"   @Override @Create\n"
+"   public void init()\n"
+"   {\n"
+"      setChallenge(\"What is the answer to life, the universe and everything?\");\n"
+"      setCorrectResponse(\"42\");\n"
+"   }\n"
+"\n"
+"   @Override\n"
+"   public BufferedImage renderChallenge()\n"
+"   {\n"
+"       BufferedImage img = super.renderChallenge();\n"
+"       img.getGraphics().drawOval(5, 3, 60, 14); //add an obscuring decoration\n"
+"       return img;\n"
+"   }\n"
+"}]]>"
 
 #. Tag: title
-#: Security.xml:4188 Security.xml:4196
+#: Security.xml:4188
+#: Security.xml:4196
 #, no-c-format
 msgid "Security Events"
 msgstr ""
@@ -5679,9 +5112,7 @@
 #. Tag: para
 #: Security.xml:4190
 #, no-c-format
-msgid ""
-"The following table describes a number of events (see <xref linkend=\"events"
-"\"/>) raised by Seam Security in response to certain security-related events."
+msgid "The following table describes a number of events (see <xref linkend=\"events\"/>) raised by Seam Security in response to certain security-related events."
 msgstr ""
 
 #. Tag: para
@@ -5706,7 +5137,7 @@
 #: Security.xml:4230
 #, no-c-format
 msgid "org.jboss.seam.security.loginFailed"
-msgstr ""
+msgstr "org.jboss.seam.security.loginFailed"
 
 #. Tag: para
 #: Security.xml:4234
@@ -5718,20 +5149,19 @@
 #: Security.xml:4242
 #, no-c-format
 msgid "org.jboss.seam.security.alreadyLoggedIn"
-msgstr ""
+msgstr "org.jboss.seam.security.alreadyLoggedIn"
 
 #. Tag: para
 #: Security.xml:4246
 #, no-c-format
-msgid ""
-"Raised when a user that is already authenticated attempts to log in again."
+msgid "Raised when a user that is already authenticated attempts to log in again."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:4254
 #, no-c-format
 msgid "org.jboss.seam.security.notLoggedIn"
-msgstr ""
+msgstr "org.jboss.seam.security.notLoggedIn"
 
 #. Tag: para
 #: Security.xml:4258
@@ -5743,21 +5173,19 @@
 #: Security.xml:4266
 #, no-c-format
 msgid "org.jboss.seam.security.notAuthorized"
-msgstr ""
+msgstr "org.jboss.seam.security.notAuthorized"
 
 #. Tag: para
 #: Security.xml:4270
 #, no-c-format
-msgid ""
-"Raised when a security check fails when the user is logged in however "
-"doesn't have sufficient privileges."
+msgid "Raised when a security check fails when the user is logged in however doesn't have sufficient privileges."
 msgstr ""
 
 #. Tag: literal
 #: Security.xml:4278
 #, no-c-format
 msgid "org.jboss.seam.security.preAuthenticate"
-msgstr ""
+msgstr "org.jboss.seam.security.preAuthenticate"
 
 #. Tag: para
 #: Security.xml:4282
@@ -5769,7 +5197,7 @@
 #: Security.xml:4290
 #, no-c-format
 msgid "org.jboss.seam.security.postAuthenticate"
-msgstr ""
+msgstr "org.jboss.seam.security.postAuthenticate"
 
 #. Tag: para
 #: Security.xml:4294
@@ -5781,7 +5209,7 @@
 #: Security.xml:4302
 #, no-c-format
 msgid "org.jboss.seam.security.loggedOut"
-msgstr ""
+msgstr "org.jboss.seam.security.loggedOut"
 
 #. Tag: para
 #: Security.xml:4306
@@ -5793,7 +5221,7 @@
 #: Security.xml:4314
 #, no-c-format
 msgid "org.jboss.seam.security.credentialsUpdated"
-msgstr ""
+msgstr "org.jboss.seam.security.credentialsUpdated"
 
 #. Tag: para
 #: Security.xml:4318
@@ -5805,7 +5233,7 @@
 #: Security.xml:4326
 #, no-c-format
 msgid "org.jboss.seam.security.rememberMe"
-msgstr ""
+msgstr "org.jboss.seam.security.rememberMe"
 
 #. Tag: para
 #: Security.xml:4330
@@ -5822,24 +5250,13 @@
 #. Tag: para
 #: Security.xml:4345
 #, no-c-format
-msgid ""
-"Sometimes it may be necessary to perform certain operations with elevated "
-"privileges, such as creating a new user account as an unauthenticated user. "
-"Seam Security supports such a mechanism via the <literal>RunAsOperation</"
-"literal> class. This class allows either the <literal>Principal</literal> or "
-"<literal>Subject</literal>, or the user's roles to be overridden for a "
-"single set of operations."
+msgid "Sometimes it may be necessary to perform certain operations with elevated privileges, such as creating a new user account as an unauthenticated user. Seam Security supports such a mechanism via the <literal>RunAsOperation</literal> class. This class allows either the <literal>Principal</literal> or <literal>Subject</literal>, or the user's roles to be overridden for a single set of operations."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:4353
 #, no-c-format
-msgid ""
-"The following code example demonstrates how <literal>RunAsOperation</"
-"literal> is used, by calling its <literal>addRole()</literal> method to "
-"provide a set of roles to masquerade as for the duration of the operation. "
-"The <literal>execute()</literal> method contains the code that will be "
-"executed with the elevated privileges."
+msgid "The following code example demonstrates how <literal>RunAsOperation</literal> is used, by calling its <literal>addRole()</literal> method to provide a set of roles to masquerade as for the duration of the operation. The <literal>execute()</literal> method contains the code that will be executed with the elevated privileges."
 msgstr ""
 
 #. Tag: programlisting
@@ -5853,16 +5270,17 @@
 "    }.addRole(\"admin\")\n"
 "     .run();]]>"
 msgstr ""
+"<![CDATA[    new RunAsOperation() {       \n"
+"       public void execute() {\n"
+"          executePrivilegedOperation();\n"
+"       }         \n"
+"    }.addRole(\"admin\")\n"
+"     .run();]]>"
 
 #. Tag: para
 #: Security.xml:4362
 #, no-c-format
-msgid ""
-"In a similar way, the <literal>getPrincipal()</literal> or "
-"<literal>getSubject()</literal> methods can also be overriden to specify the "
-"<literal>Principal</literal> and <literal>Subject</literal> instances to use "
-"for the duration of the operation. Finally, the <literal>run()</literal> "
-"method is used to carry out the <literal>RunAsOperation</literal>."
+msgid "In a similar way, the <literal>getPrincipal()</literal> or <literal>getSubject()</literal> methods can also be overriden to specify the <literal>Principal</literal> and <literal>Subject</literal> instances to use for the duration of the operation. Finally, the <literal>run()</literal> method is used to carry out the <literal>RunAsOperation</literal>."
 msgstr ""
 
 #. Tag: title
@@ -5874,14 +5292,7 @@
 #. Tag: para
 #: Security.xml:4375
 #, no-c-format
-msgid ""
-"Sometimes it might be necessary to extend the Identity component if your "
-"application has special security requirements. The following example "
-"(contrived, as credentials would normally be handled by the "
-"<literal>Credentials</literal> component instead) shows an extended Identity "
-"component with an additional <literal>companyCode</literal> field. The "
-"install precendence of <literal>APPLICATION</literal> ensures that this "
-"extended Identity gets installed in preference to the built-in Identity."
+msgid "Sometimes it might be necessary to extend the Identity component if your application has special security requirements. The following example (contrived, as credentials would normally be handled by the <literal>Credentials</literal> component instead) shows an extended Identity component with an additional <literal>companyCode</literal> field. The install precendence of <literal>APPLICATION</literal> ensures that this extended Identity gets installed in preference to the built-in Identity."
 msgstr ""
 
 #. Tag: programlisting
@@ -5895,8 +5306,7 @@
 "@Startup\n"
 "public class CustomIdentity extends Identity\n"
 "{\n"
-"   private static final LogProvider log = Logging.getLogProvider"
-"(CustomIdentity.class);\n"
+"   private static final LogProvider log = Logging.getLogProvider(CustomIdentity.class);\n"
 "\n"
 "   private String companyCode;\n"
 "\n"
@@ -5918,64 +5328,63 @@
 "   }\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Name(\"org.jboss.seam.security.identity\")\n"
+"@Scope(SESSION)\n"
+"@Install(precedence = APPLICATION)\n"
+"@BypassInterceptors\n"
+"@Startup\n"
+"public class CustomIdentity extends Identity\n"
+"{\n"
+"   private static final LogProvider log = Logging.getLogProvider(CustomIdentity.class);\n"
+"\n"
+"   private String companyCode;\n"
+"\n"
+"   public String getCompanyCode()\n"
+"   {\n"
+"      return companyCode;\n"
+"   }\n"
+"\n"
+"   public void setCompanyCode(String companyCode)\n"
+"   {\n"
+"      this.companyCode = companyCode;\n"
+"   }\n"
+"\n"
+"   @Override\n"
+"   public String login()\n"
+"   {\n"
+"      log.info(\"###### CUSTOM LOGIN CALLED ######\");\n"
+"      return super.login();\n"
+"   }\n"
+"}]]>"
 
 #. Tag: para
 #: Security.xml:4386
 #, no-c-format
-msgid ""
-"Note that an <literal>Identity</literal> component must be marked "
-"<literal>@Startup</literal>, so that it is available immediately after the "
-"<literal>SESSION</literal> context begins. Failing to do this may render "
-"certain Seam functionality inoperable in your application."
+msgid "Note that an <literal>Identity</literal> component must be marked <literal>@Startup</literal>, so that it is available immediately after the <literal>SESSION</literal> context begins. Failing to do this may render certain Seam functionality inoperable in your application."
 msgstr ""
 
 #. Tag: title
 #: Security.xml:4398
 #, no-c-format
 msgid "OpenID"
-msgstr ""
+msgstr "OpenID"
 
 #. Tag: para
 #: Security.xml:4400
 #, no-c-format
-msgid ""
-"OpenID is a community standard for external web-based authentication. The "
-"basic idea is that any web application can supplement (or replace) its local "
-"handling of authentication by delegating responsibility to an external "
-"OpenID server of the user's chosing. This benefits the user, who no longer "
-"has to remember a name and password for every web application he uses, and "
-"the developer, who is relieved of some of the burden of maintaining a "
-"complex authentication system."
+msgid "OpenID is a community standard for external web-based authentication. The basic idea is that any web application can supplement (or replace) its local handling of authentication by delegating responsibility to an external OpenID server of the user's chosing. This benefits the user, who no longer has to remember a name and password for every web application he uses, and the developer, who is relieved of some of the burden of maintaining a complex authentication system."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:4409
 #, no-c-format
-msgid ""
-"When using OpenID, the user selects an OpenID provider, and the provider "
-"assigns the user an OpenID. The id will take the form of a URL, for example "
-"<literal>http://maximoburrito.myopenid.com</literal> however, it's "
-"acceptable to leave off the <literal>http://</literal> part of the "
-"identifier when logging into a site. The web application (known as a relying "
-"party in OpenID-speak) determines which OpenID server to contact and "
-"redirects the user to the remote site for authentication. Upon successful "
-"authentication the user is given the (cryptographically secure) token "
-"proving his identity and is redirected back to the original web application."
-"The local web application can then be sure the user accessing the "
-"application controls the OpenID he presented."
+msgid "When using OpenID, the user selects an OpenID provider, and the provider assigns the user an OpenID. The id will take the form of a URL, for example <literal>http://maximoburrito.myopenid.com</literal> however, it's acceptable to leave off the <literal>http://</literal> part of the identifier when logging into a site. The web application (known as a relying party in OpenID-speak) determines which OpenID server to contact and redirects the user to the remote site for authentication. Upon successful authentication the user is given the (cryptographically secure) token proving his identity and is redirected back to the original web application.The local web application can then be sure the user accessing the application controls the OpenID he presented."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:4418
 #, no-c-format
-msgid ""
-"It's important to realize at this point that authentication does not imply "
-"authorization. The web application still needs to make a determination of "
-"how to use that information. The web application could treat the user as "
-"instantly logged in and give full access to the system or it could try and "
-"map the presented OpenID to a local user account, prompting the user to "
-"register if he hasn't already. The choice of how to handle the OpenID is "
-"left as a design decision for the local application."
+msgid "It's important to realize at this point that authentication does not imply authorization. The web application still needs to make a determination of how to use that information. The web application could treat the user as instantly logged in and give full access to the system or it could try and map the presented OpenID to a local user account, prompting the user to register if he hasn't already. The choice of how to handle the OpenID is left as a design decision for the local application."
 msgstr ""
 
 #. Tag: title
@@ -5987,21 +5396,13 @@
 #. Tag: para
 #: Security.xml:4429
 #, no-c-format
-msgid ""
-"Seam uses the openid4java package and requires four additional JARs to make "
-"use of the Seam integration. These are: <literal>htmlparser.jar</literal>, "
-"<literal>openid4java.jar</literal>, <literal>openxri-client.jar</literal> "
-"and <literal>openxri-syntax.jar</literal>."
+msgid "Seam uses the openid4java package and requires four additional JARs to make use of the Seam integration. These are: <literal>htmlparser.jar</literal>, <literal>openid4java.jar</literal>, <literal>openxri-client.jar</literal> and <literal>openxri-syntax.jar</literal>."
 msgstr ""
 
 #. Tag: para
 #: Security.xml:4435
 #, no-c-format
-msgid ""
-"OpenID processing requires the use of the <literal>OpenIdPhaseListener</"
-"literal>, which should be added to your <literal>faces-config.xml</literal> "
-"file. The phase listener processes the callback from the OpenID provider, "
-"allowing re-entry into the local application."
+msgid "OpenID processing requires the use of the <literal>OpenIdPhaseListener</literal>, which should be added to your <literal>faces-config.xml</literal> file. The phase listener processes the callback from the OpenID provider, allowing re-entry into the local application."
 msgstr ""
 
 #. Tag: programlisting
@@ -6009,19 +5410,14 @@
 #, no-c-format
 msgid ""
 "&lt;lifecycle&gt;\n"
-"    &lt;phase-listener&gt;org.jboss.seam.security.openid."
-"OpenIdPhaseListener&lt;/phase-listener&gt;\n"
+"    &lt;phase-listener&gt;org.jboss.seam.security.openid.OpenIdPhaseListener&lt;/phase-listener&gt;\n"
 "&lt;/lifecycle&gt;"
 msgstr ""
 
 #. Tag: para
 #: Security.xml:4444
 #, no-c-format
-msgid ""
-"With this configuration, OpenID support is available to your application. "
-"The OpenID support component, <literal>org.jboss.seam.security.openid."
-"openid</literal>, is installed automatically if the openid4java classes are "
-"on the classpath."
+msgid "With this configuration, OpenID support is available to your application. The OpenID support component, <literal>org.jboss.seam.security.openid.openid</literal>, is installed automatically if the openid4java classes are on the classpath."
 msgstr ""
 
 #. Tag: title
@@ -6033,11 +5429,7 @@
 #. Tag: para
 #: Security.xml:4454
 #, no-c-format
-msgid ""
-"To initiate an OpenID login, you can present a simply form to the user "
-"asking for the user's OpenID. The <literal>#{openid.id}</literal> value "
-"accepts the user's OpenID and the <literal>#{openid.login}</literal> action "
-"initiates an authentication request."
+msgid "To initiate an OpenID login, you can present a simply form to the user asking for the user's OpenID. The <literal>#{openid.id}</literal> value accepts the user's OpenID and the <literal>#{openid.login}</literal> action initiates an authentication request."
 msgstr ""
 
 #. Tag: programlisting
@@ -6046,21 +5438,18 @@
 msgid ""
 "&lt;h:form&gt;\n"
 "    &lt;h:inputText value=&quot;#{openid.id}&quot; /&gt;\n"
-"    &lt;h:commandButton action=&quot;#{openid.login}&quot; value=&quot;"
-"OpenID Login&quot;/&gt;\n"
+"    &lt;h:commandButton action=&quot;#{openid.login}&quot; value=&quot;OpenID Login&quot;/&gt;\n"
 "&lt;/h:form&gt;"
 msgstr ""
+"&lt;h:form&gt;\n"
+"    &lt;h:inputText value=&quot;#{openid.id}&quot; /&gt;\n"
+"    &lt;h:commandButton action=&quot;#{openid.login}&quot; value=&quot;OpenID Login&quot;/&gt;\n"
+"&lt;/h:form&gt;"
 
 #. Tag: para
 #: Security.xml:4461
 #, no-c-format
-msgid ""
-"When the user submits the login form, he will be redirected to his OpenID "
-"provider. The user will eventually return to your application through the "
-"Seam pseudo-view <literal>/openid.xhtml</literal>, which is provided by the "
-"<literal>OpenIdPhaseListener</literal>. Your application can handle the "
-"OpenID response by means of a <literal>pages.xml</literal> navigation from "
-"that view, just as if the user had never left your application."
+msgid "When the user submits the login form, he will be redirected to his OpenID provider. The user will eventually return to your application through the Seam pseudo-view <literal>/openid.xhtml</literal>, which is provided by the <literal>OpenIdPhaseListener</literal>. Your application can handle the OpenID response by means of a <literal>pages.xml</literal> navigation from that view, just as if the user had never left your application."
 msgstr ""
 
 #. Tag: title
@@ -6072,10 +5461,7 @@
 #. Tag: para
 #: Security.xml:4472
 #, no-c-format
-msgid ""
-"The simplest strategy is to simply login the user immediately. The following "
-"navigation rule shows how to handle this using the <literal>#{openid."
-"loginImmediately()}</literal> action."
+msgid "The simplest strategy is to simply login the user immediately. The following navigation rule shows how to handle this using the <literal>#{openid.loginImmediately()}</literal> action."
 msgstr ""
 
 #. Tag: programlisting
@@ -6097,19 +5483,25 @@
 "    &lt;/navigation&gt;\n"
 "&lt;/page&gt;"
 msgstr ""
+"&lt;page view-id=&quot;/openid.xhtml&quot;&gt;\n"
+"    &lt;navigation evaluate=&quot;#{openid.loginImmediately()}&quot;&gt;\n"
+"        &lt;rule if-outcome=&quot;true&quot;&gt;\n"
+"            &lt;redirect view-id=&quot;/main.xhtml&quot;&gt;\n"
+"                &lt;message&gt;OpenID login successful...&lt;/message&gt;\n"
+"            &lt;/redirect&gt;\n"
+"        &lt;/rule&gt;\n"
+"        &lt;rule if-outcome=&quot;false&quot;&gt;\n"
+"            &lt;redirect view-id=&quot;/main.xhtml&quot;&gt;\n"
+"                &lt;message&gt;OpenID login rejected...&lt;/message&gt;\n"
+"            &lt;/redirect&gt;\n"
+"        &lt;/rule&gt;\n"
+"    &lt;/navigation&gt;\n"
+"&lt;/page&gt;"
 
 #. Tag: para
 #: Security.xml:4478
 #, no-c-format
-msgid ""
-"Thie <literal>loginImmediately()</literal> action checks to see if the "
-"OpenID is valid. If it is valid, it adds an OpenIDPrincipal to the identity "
-"component, marks the user as logged in (i.e. <literal>#{identity.loggedIn}</"
-"literal> will be true) and returns true. If the OpenID was not validated, "
-"the method returns false, and the user re-enters the application un-"
-"authenticated. If the user's OpenID is valid, it will be accessible using "
-"the expression <literal>#{openid.validatedId}</literal> and <literal>#"
-"{openid.valid}</literal> will be true."
+msgid "Thie <literal>loginImmediately()</literal> action checks to see if the OpenID is valid. If it is valid, it adds an OpenIDPrincipal to the identity component, marks the user as logged in (i.e. <literal>#{identity.loggedIn}</literal> will be true) and returns true. If the OpenID was not validated, the method returns false, and the user re-enters the application un-authenticated. If the user's OpenID is valid, it will be accessible using the expression <literal>#{openid.validatedId}</literal> and <literal>#{openid.valid}</literal> will be true."
 msgstr ""
 
 #. Tag: title
@@ -6121,18 +5513,7 @@
 #. Tag: para
 #: Security.xml:4491
 #, no-c-format
-msgid ""
-"You may not want the user to be immediately logged in to your application. "
-"In that case, your navigation should check the <literal>#{openid.valid}</"
-"literal> property and redirect the user to a local registration or "
-"processing page. Actions you might take would be asking for more information "
-"and creating a local user account or presenting a captcha to avoid "
-"programmatic registrations. When you are done processing, if you want to log "
-"the user in, you can call the <literal>loginImmediately</literal> method, "
-"either through EL as shown previously or by directly interaction with the "
-"<literal>org.jboss.seam.security.openid.OpenId</literal> component. Of "
-"course, nothing prevents you from writing custom code to interact with the "
-"Seam identity component on your own for even more customized behaviour."
+msgid "You may not want the user to be immediately logged in to your application. In that case, your navigation should check the <literal>#{openid.valid}</literal> property and redirect the user to a local registration or processing page. Actions you might take would be asking for more information and creating a local user account or presenting a captcha to avoid programmatic registrations. When you are done processing, if you want to log the user in, you can call the <literal>loginImmediately</literal> method, either through EL as shown previously or by directly interaction with the <literal>org.jboss.seam.security.openid.OpenId</literal> component. Of course, nothing prevents you from writing custom code to interact with the Seam identity component on your own for even more customized behaviour."
 msgstr ""
 
 #. Tag: title
@@ -6144,12 +5525,7 @@
 #. Tag: para
 #: Security.xml:4507
 #, no-c-format
-msgid ""
-"Logging out (forgetting an OpenID association) is done by calling <literal>#"
-"{openid.logout}</literal>. If you are not using Seam security, you can call "
-"this method directly. If you are using Seam security, you should continue to "
-"use <literal>#{identity.logout}</literal> and install an event handler to "
-"capture the logout event, calling the OpenID logout method."
+msgid "Logging out (forgetting an OpenID association) is done by calling <literal>#{openid.logout}</literal>. If you are not using Seam security, you can call this method directly. If you are using Seam security, you should continue to use <literal>#{identity.logout}</literal> and install an event handler to capture the logout event, calling the OpenID logout method."
 msgstr ""
 
 #. Tag: programlisting
@@ -6160,11 +5536,13 @@
 "    &lt;action execute=&quot;#{openid.logout}&quot; /&gt;\n"
 "&lt;/event&gt;"
 msgstr ""
+"&lt;event type=&quot;org.jboss.seam.security.loggedOut&quot;&gt;\n"
+"    &lt;action execute=&quot;#{openid.logout}&quot; /&gt;\n"
+"&lt;/event&gt;"
 
 #. Tag: para
 #: Security.xml:4516
 #, no-c-format
-msgid ""
-"It's important that you do not leave this out or the user will not be able "
-"to login again in the same session."
+msgid "It's important that you do not leave this out or the user will not be able to login again in the same session."
 msgstr ""
+

Modified: trunk/doc/Seam_Reference_Guide/it-IT/Webservices.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/it-IT/Webservices.po	2008-12-17 08:13:31 UTC (rev 9793)
+++ trunk/doc/Seam_Reference_Guide/it-IT/Webservices.po	2008-12-17 10:16:42 UTC (rev 9794)
@@ -6,8 +6,8 @@
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-10-14 11:39+0000\n"
-"PO-Revision-Date: 2008-04-04 01:24+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2008-12-17 11:06+0100\n"
+"Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
 "Language-Team: none\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -17,16 +17,12 @@
 #: Webservices.xml:2
 #, no-c-format
 msgid "Web Services"
-msgstr ""
+msgstr "Web Service"
 
 #. Tag: para
 #: Webservices.xml:4
 #, no-c-format
-msgid ""
-"Seam integrates with JBossWS to allow standard JEE web services to take full "
-"advantage of Seam's contextual framework, including support for "
-"conversational web services. This chapter walks through the steps required "
-"to allow web services to run within a Seam environment."
+msgid "Seam integrates with JBossWS to allow standard JEE web services to take full advantage of Seam's contextual framework, including support for conversational web services. This chapter walks through the steps required to allow web services to run within a Seam environment."
 msgstr ""
 
 #. Tag: title
@@ -38,22 +34,13 @@
 #. Tag: para
 #: Webservices.xml:12
 #, no-c-format
-msgid ""
-"To allow Seam to intercept web service requests so that the necessary Seam "
-"contexts can be created for the request, a special SOAP handler must be "
-"configured; <literal>org.jboss.seam.webservice.SOAPRequestHandler</literal> "
-"is a <literal>SOAPHandler</literal> implementation that does the work of "
-"managing Seam's lifecycle during the scope of a web service request."
+msgid "To allow Seam to intercept web service requests so that the necessary Seam contexts can be created for the request, a special SOAP handler must be configured; <literal>org.jboss.seam.webservice.SOAPRequestHandler</literal> is a <literal>SOAPHandler</literal> implementation that does the work of managing Seam's lifecycle during the scope of a web service request."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:19
 #, no-c-format
-msgid ""
-"A special configuration file, <literal>standard-jaxws-endpoint-config.xml</"
-"literal> should be placed into the <literal>META-INF</literal> directory of "
-"the <literal>jar</literal> file that contains the web service classes. This "
-"file contains the following SOAP handler configuration:"
+msgid "A special configuration file, <literal>standard-jaxws-endpoint-config.xml</literal> should be placed into the <literal>META-INF</literal> directory of the <literal>jar</literal> file that contains the web service classes. This file contains the following SOAP handler configuration:"
 msgstr ""
 
 #. Tag: programlisting
@@ -63,53 +50,59 @@
 "<![CDATA[<jaxws-config xmlns=\"urn:jboss:jaxws-config:2.0\" \n"
 "              xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n"
 "              xmlns:javaee=\"http://java.sun.com/xml/ns/javaee\"\n"
-"              xsi:schemaLocation=\"urn:jboss:jaxws-config:2.0 jaxws-"
-"config_2_0.xsd\">\n"
+"              xsi:schemaLocation=\"urn:jboss:jaxws-config:2.0 jaxws-config_2_0.xsd\">\n"
 "   <endpoint-config>\n"
 "      <config-name>Seam WebService Endpoint</config-name>\n"
 "      <pre-handler-chains>\n"
 "         <javaee:handler-chain>\n"
-"            <javaee:protocol-bindings>##SOAP11_HTTP</javaee:protocol-"
-"bindings>\n"
+"            <javaee:protocol-bindings>##SOAP11_HTTP</javaee:protocol-bindings>\n"
 "            <javaee:handler>\n"
-"               <javaee:handler-name>SOAP Request Handler</javaee:handler-"
-"name>\n"
-"               <javaee:handler-class>org.jboss.seam.webservice."
-"SOAPRequestHandler</javaee:handler-class>\n"
+"               <javaee:handler-name>SOAP Request Handler</javaee:handler-name>\n"
+"               <javaee:handler-class>org.jboss.seam.webservice.SOAPRequestHandler</javaee:handler-class>\n"
 "            </javaee:handler>\n"
 "         </javaee:handler-chain>\n"
 "      </pre-handler-chains>\n"
 "   </endpoint-config>\n"
 "</jaxws-config>]]>"
 msgstr ""
+"<![CDATA[<jaxws-config xmlns=\"urn:jboss:jaxws-config:2.0\" \n"
+"              xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n"
+"              xmlns:javaee=\"http://java.sun.com/xml/ns/javaee\"\n"
+"              xsi:schemaLocation=\"urn:jboss:jaxws-config:2.0 jaxws-config_2_0.xsd\">\n"
+"   <endpoint-config>\n"
+"      <config-name>Seam WebService Endpoint</config-name>\n"
+"      <pre-handler-chains>\n"
+"         <javaee:handler-chain>\n"
+"            <javaee:protocol-bindings>##SOAP11_HTTP</javaee:protocol-bindings>\n"
+"            <javaee:handler>\n"
+"               <javaee:handler-name>SOAP Request Handler</javaee:handler-name>\n"
+"               <javaee:handler-class>org.jboss.seam.webservice.SOAPRequestHandler</javaee:handler-class>\n"
+"            </javaee:handler>\n"
+"         </javaee:handler-chain>\n"
+"      </pre-handler-chains>\n"
+"   </endpoint-config>\n"
+"</jaxws-config>]]>"
 
 #. Tag: title
 #: Webservices.xml:30
 #, no-c-format
 msgid "Conversational Web Services"
-msgstr ""
+msgstr "Web Service conversazionali"
 
 #. Tag: para
 #: Webservices.xml:31
 #, no-c-format
-msgid ""
-"So how are conversations propagated between web service requests? Seam uses "
-"a SOAP header element present in both the SOAP request and response messages "
-"to carry the conversation ID from the consumer to the service, and back "
-"again. Here's an example of a web service request that contains a "
-"conversation ID:"
+msgid "So how are conversations propagated between web service requests? Seam uses a SOAP header element present in both the SOAP request and response messages to carry the conversation ID from the consumer to the service, and back again. Here's an example of a web service request that contains a conversation ID:"
 msgstr ""
 
 #. Tag: programlisting
 #: Webservices.xml:37
 #, no-c-format
 msgid ""
-"<![CDATA[<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/"
-"envelope/\" \n"
+"<![CDATA[<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" \n"
 "    xmlns:seam=\"http://seambay.example.seam.jboss.org/\">\n"
 "  <soapenv:Header>\n"
-"    <seam:conversationId xmlns:seam='http://www.jboss.org/seam/"
-"webservice'>2</seam:conversationId>\n"
+"    <seam:conversationId xmlns:seam='http://www.jboss.org/seam/webservice'>2</seam:conversationId>\n"
 "  </soapenv:Header>\n"
 "  <soapenv:Body>\n"
 "    <seam:confirmAuction/>\n"
@@ -117,98 +110,87 @@
 "</soapenv:Envelope>    \n"
 "    ]]>"
 msgstr ""
+"<![CDATA[<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" \n"
+"    xmlns:seam=\"http://seambay.example.seam.jboss.org/\">\n"
+"  <soapenv:Header>\n"
+"    <seam:conversationId xmlns:seam='http://www.jboss.org/seam/webservice'>2</seam:conversationId>\n"
+"  </soapenv:Header>\n"
+"  <soapenv:Body>\n"
+"    <seam:confirmAuction/>\n"
+"  </soapenv:Body>\n"
+"</soapenv:Envelope>    \n"
+"    ]]>"
 
 #. Tag: para
 #: Webservices.xml:39
 #, no-c-format
-msgid ""
-"As you can see in the above SOAP message, there is a "
-"<literal>conversationId</literal> element within the SOAP header that "
-"contains the conversation ID for the request, in this case <literal>2</"
-"literal>. Unfortunately, because web services may be consumed by a variety "
-"of web service clients written in a variety of languages, it is up to the "
-"developer to implement conversation ID propagation between individual web "
-"services that are intended to be used within the scope of a single "
-"conversation."
+msgid "As you can see in the above SOAP message, there is a <literal>conversationId</literal> element within the SOAP header that contains the conversation ID for the request, in this case <literal>2</literal>. Unfortunately, because web services may be consumed by a variety of web service clients written in a variety of languages, it is up to the developer to implement conversation ID propagation between individual web services that are intended to be used within the scope of a single conversation."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:47
 #, no-c-format
-msgid ""
-"An important thing to note is that the <literal>conversationId</literal> "
-"header element must be qualified with a namespace of <literal>http://www."
-"jboss.org/seam/webservice</literal>, otherwise Seam will not be able to read "
-"the conversation ID from the request. Here's an example of a response to the "
-"above request message:"
+msgid "An important thing to note is that the <literal>conversationId</literal> header element must be qualified with a namespace of <literal>http://www.jboss.org/seam/webservice</literal>, otherwise Seam will not be able to read the conversation ID from the request. Here's an example of a response to the above request message:"
 msgstr ""
 
 #. Tag: programlisting
 #: Webservices.xml:53
 #, no-c-format
 msgid ""
-"<![CDATA[<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/"
-"envelope/'>\n"
+"<![CDATA[<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>\n"
 "  <env:Header>\n"
-"    <seam:conversationId xmlns:seam='http://www.jboss.org/seam/"
-"webservice'>2</seam:conversationId>\n"
+"    <seam:conversationId xmlns:seam='http://www.jboss.org/seam/webservice'>2</seam:conversationId>\n"
 "  </env:Header>\n"
 "  <env:Body>\n"
-"    <confirmAuctionResponse xmlns=\"http://seambay.example.seam.jboss.org/\"/"
-">\n"
+"    <confirmAuctionResponse xmlns=\"http://seambay.example.seam.jboss.org/\"/>\n"
 "  </env:Body>\n"
 "</env:Envelope>    \n"
 "    ]]>"
 msgstr ""
+"<![CDATA[<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>\n"
+"  <env:Header>\n"
+"    <seam:conversationId xmlns:seam='http://www.jboss.org/seam/webservice'>2</seam:conversationId>\n"
+"  </env:Header>\n"
+"  <env:Body>\n"
+"    <confirmAuctionResponse xmlns=\"http://seambay.example.seam.jboss.org/\"/>\n"
+"  </env:Body>\n"
+"</env:Envelope>    \n"
+"    ]]>"
 
 #. Tag: para
 #: Webservices.xml:55
 #, no-c-format
-msgid ""
-"As you can see, the response message contains the same "
-"<literal>conversationId</literal> element as the request."
+msgid "As you can see, the response message contains the same <literal>conversationId</literal> element as the request."
 msgstr ""
 
 #. Tag: title
 #: Webservices.xml:60
 #, no-c-format
 msgid "A Recommended Strategy"
-msgstr ""
+msgstr "Una strategia raccomandata"
 
 #. Tag: para
 #: Webservices.xml:62
 #, no-c-format
-msgid ""
-"As web services must be implemented as either a stateless session bean or "
-"POJO, it is recommended that for conversational web services, the web "
-"service acts as a facade to a conversational Seam component."
+msgid "As web services must be implemented as either a stateless session bean or POJO, it is recommended that for conversational web services, the web service acts as a facade to a conversational Seam component."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:76
 #, no-c-format
-msgid ""
-"If the web service is written as a stateless session bean, then it is also "
-"possible to make it a Seam component by giving it a <literal>@Name</"
-"literal>. Doing this allows Seam's bijection (and other) features to be used "
-"in the web service class itself."
+msgid "If the web service is written as a stateless session bean, then it is also possible to make it a Seam component by giving it a <literal>@Name</literal>. Doing this allows Seam's bijection (and other) features to be used in the web service class itself."
 msgstr ""
 
 #. Tag: title
 #: Webservices.xml:87
 #, no-c-format
 msgid "An example web service"
-msgstr ""
+msgstr "Esempio di web service"
 
 #. Tag: para
 #: Webservices.xml:89
 #, no-c-format
-msgid ""
-"Let's walk through an example web service. The code in this section all "
-"comes from the seamBay example application in Seam's <literal>/examples</"
-"literal> directory, and follows the recommended strategy as described in the "
-"previous section. Let's first take a look at the web service class and one "
-"of its web service methods:"
+msgid "Let's walk through an example web service. The code in this section all comes from the seamBay example application in Seam's <literal>/examples</literal> directory, and follows the recommended strategy as described in the previous section. Let's first take a look at the web service class and one of its web service methods:"
 msgstr ""
 
 #. Tag: programlisting
@@ -231,52 +213,44 @@
 "   // snip\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Stateless\n"
+"@WebService(name = \"AuctionService\", serviceName = \"AuctionService\")\n"
+"public class AuctionService implements AuctionServiceRemote\n"
+"{\n"
+"   @WebMethod\n"
+"   public boolean login(String username, String password)\n"
+"   {\n"
+"      Identity.instance().setUsername(username);\n"
+"      Identity.instance().setPassword(password);\n"
+"      Identity.instance().login();\n"
+"      return Identity.instance().isLoggedIn();\n"
+"   }\n"
+"\n"
+"   // snip\n"
+"}]]>"
 
 #. Tag: para
 #: Webservices.xml:98
 #, no-c-format
-msgid ""
-"As you can see, our web service is a stateless session bean, and is "
-"annotated using the JWS annotations from the <literal>javax.jws</literal> "
-"package, as defined by JSR-181. The <literal>@WebService</literal> "
-"annotation tells the container that this class implements a web service, and "
-"the <literal>@WebMethod</literal> annotation on the <literal>login()</"
-"literal> method identifies the method as a web service method. The "
-"<literal>name</literal> and <literal>serviceName</literal> attributes in the "
-"<literal>@WebService</literal> annotation are optional."
+msgid "As you can see, our web service is a stateless session bean, and is annotated using the JWS annotations from the <literal>javax.jws</literal> package, as defined by JSR-181. The <literal>@WebService</literal> annotation tells the container that this class implements a web service, and the <literal>@WebMethod</literal> annotation on the <literal>login()</literal> method identifies the method as a web service method. The <literal>name</literal> and <literal>serviceName</literal> attributes in the <literal>@WebService</literal> annotation are optional."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:107
 #, no-c-format
-msgid ""
-"As is required by the specification, each method that is to be exposed as a "
-"web service method must also be declared in the remote interface of the web "
-"service class (when the web service is a stateless session bean). In the "
-"above example, the <literal>AuctionServiceRemote</literal> interface must "
-"declare the <literal>login()</literal> method as it is annotated as a "
-"<literal>@WebMethod</literal>."
+msgid "As is required by the specification, each method that is to be exposed as a web service method must also be declared in the remote interface of the web service class (when the web service is a stateless session bean). In the above example, the <literal>AuctionServiceRemote</literal> interface must declare the <literal>login()</literal> method as it is annotated as a <literal>@WebMethod</literal>."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:114
 #, no-c-format
-msgid ""
-"As you can see in the above code, the web service implements a <literal>login"
-"()</literal> method that delegates to Seam's built-in <literal>Identity</"
-"literal> component. In keeping with our recommended strategy, the web "
-"service is written as a simple facade, passing off the real work to a Seam "
-"component. This allows for the greatest reuse of business logic between web "
-"services and other clients."
+msgid "As you can see in the above code, the web service implements a <literal>login()</literal> method that delegates to Seam's built-in <literal>Identity</literal> component. In keeping with our recommended strategy, the web service is written as a simple facade, passing off the real work to a Seam component. This allows for the greatest reuse of business logic between web services and other clients."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:121
 #, no-c-format
-msgid ""
-"Let's look at another example. This web service method begins a new "
-"conversation by delegating to the <literal>AuctionAction.createAuction()</"
-"literal> method:"
+msgid "Let's look at another example. This web service method begins a new conversation by delegating to the <literal>AuctionAction.createAuction()</literal> method:"
 msgstr ""
 
 #. Tag: programlisting
@@ -284,15 +258,20 @@
 #, no-c-format
 msgid ""
 "<![CDATA[   @WebMethod\n"
-"   public void createAuction(String title, String description, int "
-"categoryId)\n"
+"   public void createAuction(String title, String description, int categoryId)\n"
 "   {\n"
-"      AuctionAction action = (AuctionAction) Component.getInstance"
-"(AuctionAction.class, true);\n"
+"      AuctionAction action = (AuctionAction) Component.getInstance(AuctionAction.class, true);\n"
 "      action.createAuction();\n"
 "      action.setDetails(title, description, categoryId);\n"
 "   }]]>"
 msgstr ""
+"<![CDATA[   @WebMethod\n"
+"   public void createAuction(String title, String description, int categoryId)\n"
+"   {\n"
+"      AuctionAction action = (AuctionAction) Component.getInstance(AuctionAction.class, true);\n"
+"      action.createAuction();\n"
+"      action.setDetails(title, description, categoryId);\n"
+"   }]]>"
 
 #. Tag: para
 #: Webservices.xml:128
@@ -313,14 +292,19 @@
 "      durationDays = DEFAULT_AUCTION_DURATION;\n"
 "   }]]>"
 msgstr ""
+"<![CDATA[   @Begin\n"
+"   public void createAuction()\n"
+"   {\n"
+"      auction = new Auction();\n"
+"      auction.setAccount(authenticatedAccount);\n"
+"      auction.setStatus(Auction.STATUS_UNLISTED);        \n"
+"      durationDays = DEFAULT_AUCTION_DURATION;\n"
+"   }]]>"
 
 #. Tag: para
 #: Webservices.xml:134
 #, no-c-format
-msgid ""
-"From this we can see how web services can participate in long running "
-"conversations, by acting as a facade and delegating the real work to a "
-"conversational Seam component."
+msgid "From this we can see how web services can participate in long running conversations, by acting as a facade and delegating the real work to a conversational Seam component."
 msgstr ""
 
 #. Tag: title
@@ -332,34 +316,25 @@
 #. Tag: para
 #: Webservices.xml:144
 #, no-c-format
-msgid ""
-"Seam integrates the RESTEasy implementation of the JAX-RS specification (JSR "
-"311). You can decide how \"deep\" the integration into your Seam application "
-"is going to be:"
+msgid "Seam integrates the RESTEasy implementation of the JAX-RS specification (JSR 311). You can decide how \"deep\" the integration into your Seam application is going to be:"
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:151
 #, no-c-format
-msgid ""
-"Seamless integration of RESTEasy bootstrap and configuration, automatic "
-"detection of resources and providers."
+msgid "Seamless integration of RESTEasy bootstrap and configuration, automatic detection of resources and providers."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:157
 #, no-c-format
-msgid ""
-"Serving HTTP/REST requests with the SeamResourceServlet, no external servlet "
-"or configuration in web.xml required."
+msgid "Serving HTTP/REST requests with the SeamResourceServlet, no external servlet or configuration in web.xml required."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:163
 #, no-c-format
-msgid ""
-"Writing resources as Seam components, with full Seam lifecycle management "
-"and interception (bijection)."
+msgid "Writing resources as Seam components, with full Seam lifecycle management and interception (bijection)."
 msgstr ""
 
 #. Tag: title
@@ -371,65 +346,37 @@
 #. Tag: para
 #: Webservices.xml:172
 #, no-c-format
-msgid ""
-"First, get the RESTEasy libraries and the <literal>jaxrs-api.jar</literal>, "
-"deploy them with the other libraries of your application. Also deploy the "
-"integration library, <literal>jboss-seam-resteasy.jar</literal>"
+msgid "First, get the RESTEasy libraries and the <literal>jaxrs-api.jar</literal>, deploy them with the other libraries of your application. Also deploy the integration library, <literal>jboss-seam-resteasy.jar</literal>"
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:178
 #, no-c-format
-msgid ""
-"On startup, all classes annotated <literal>@javax.ws.rs.Path</literal> will "
-"be discovered automatically and registered as HTTP resources. Seam "
-"automatically accepts and serves HTTP requests with its built-in "
-"<literal>SeamResourceServlet</literal>. The URI of a resource is build as "
-"follows:"
+msgid "On startup, all classes annotated <literal>@javax.ws.rs.Path</literal> will be discovered automatically and registered as HTTP resources. Seam automatically accepts and serves HTTP requests with its built-in <literal>SeamResourceServlet</literal>. The URI of a resource is build as follows:"
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:186
 #, no-c-format
-msgid ""
-"The URI starts with the pattern mapped in <literal>web.xml</literal> for the "
-"<literal>SeamResourceServlet</literal>, e.g <literal>/seam/resource</"
-"literal> if you follow the common examples. Change this setting to expose "
-"your RESTful resources under a different base. Note that this is a global "
-"change and other Seam resources (e.g. <literal>s:graphicImage</literal>) are "
-"then also served under that base path."
+msgid "The URI starts with the pattern mapped in <literal>web.xml</literal> for the <literal>SeamResourceServlet</literal>, e.g <literal>/seam/resource</literal> if you follow the common examples. Change this setting to expose your RESTful resources under a different base. Note that this is a global change and other Seam resources (e.g. <literal>s:graphicImage</literal>) are then also served under that base path."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:195
 #, no-c-format
-msgid ""
-"The RESTEasy integration for Seam then appends a configurable string to the "
-"base path, by default this is <literal>/rest</literal>. Hence, the full base "
-"path of your resources would e.g. be <literal>/seam/resource/rest</literal>. "
-"We recommend that you change this string in your application, you could for "
-"example add a version number to prepare for a future REST API upgrade of "
-"your services (old clients would keep the old URI base): <literal>/seam/"
-"resource/restv1</literal>."
+msgid "The RESTEasy integration for Seam then appends a configurable string to the base path, by default this is <literal>/rest</literal>. Hence, the full base path of your resources would e.g. be <literal>/seam/resource/rest</literal>. We recommend that you change this string in your application, you could for example add a version number to prepare for a future REST API upgrade of your services (old clients would keep the old URI base): <literal>/seam/resource/restv1</literal>."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:204
 #, no-c-format
-msgid ""
-"Finally, the actual resource is available under the defined <literal>@Path</"
-"literal>, e.g. a resource mapped with <literal>@Path(\"/customer\")</"
-"literal> would be available under <literal>/seam/resource/rest/customer</"
-"literal>."
+msgid "Finally, the actual resource is available under the defined <literal>@Path</literal>, e.g. a resource mapped with <literal>@Path(\"/customer\")</literal> would be available under <literal>/seam/resource/rest/customer</literal>."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:212
 #, no-c-format
-msgid ""
-"As an example, the following resource definition would return a plaintext "
-"representation for any GET requests using the URI <literal>http://your."
-"hostname/seam/resource/rest/customer/123</literal>:"
+msgid "As an example, the following resource definition would return a plaintext representation for any GET requests using the URI <literal>http://your.hostname/seam/resource/rest/customer/123</literal>:"
 msgstr ""
 
 #. Tag: programlisting
@@ -448,16 +395,22 @@
 "\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Path(\"/customer\")\n"
+"public class MyCustomerResource {\n"
+"\n"
+"    @GET\n"
+"    @Path(\"/{customerId}\")\n"
+"    @ProduceMime(\"text/plain\")\n"
+"    public String getCustomer(@PathParam(\"customerId\") int id) {\n"
+"         return ...;\n"
+"    }\n"
+"\n"
+"}]]>"
 
 #. Tag: para
 #: Webservices.xml:219
 #, no-c-format
-msgid ""
-"No additional configuration is required, you do not have to edit "
-"<literal>web.xml</literal> or any other setting if these defauls are "
-"acceptable. However, you can configure RESTEasy in your Seam application. "
-"First import the <literal>resteasy</literal> namespace into your XML "
-"configuration file header:"
+msgid "No additional configuration is required, you do not have to edit <literal>web.xml</literal> or any other setting if these defauls are acceptable. However, you can configure RESTEasy in your Seam application. First import the <literal>resteasy</literal> namespace into your XML configuration file header:"
 msgstr ""
 
 #. Tag: programlisting
@@ -474,63 +427,56 @@
 "     http://jboss.com/products/seam/components\n"
 "         http://jboss.com/products/seam/components-2.1.xsd\">]]>"
 msgstr ""
+"<![CDATA[<components\n"
+"   xmlns=\"http://jboss.com/products/seam/components\"\n"
+"   xmlns:resteasy=\"http://jboss.com/products/seam/resteasy\"\n"
+"   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"   xsi:schemaLocation=\n"
+"     http://jboss.com/products/seam/resteasy\n"
+"         http://jboss.com/products/seam/resteasy-2.1.xsd\n"
+"     http://jboss.com/products/seam/components\n"
+"         http://jboss.com/products/seam/components-2.1.xsd\">]]>"
 
 #. Tag: para
 #: Webservices.xml:227
 #, no-c-format
-msgid ""
-"You can then change the <literal>/rest</literal> prefix as mentioned earlier:"
+msgid "You can then change the <literal>/rest</literal> prefix as mentioned earlier:"
 msgstr ""
 
 #. Tag: programlisting
 #: Webservices.xml:231
 #, no-c-format
-msgid ""
-"<![CDATA[<resteasy:application-config resource-path-prefix=\"/restv1\"/>]]>"
-msgstr ""
+msgid "<![CDATA[<resteasy:application-config resource-path-prefix=\"/restv1\"/>]]>"
+msgstr "<![CDATA[<resteasy:application-config resource-path-prefix=\"/restv1\"/>]]>"
 
 #. Tag: para
 #: Webservices.xml:233
 #, no-c-format
-msgid ""
-"The full base path to your resources is now <literal>/seam/resource/restv1/"
-"{resource}</literal> - note that your <literal>@Path</literal> definitions "
-"and mappings do NOT change. This is an application-wide switch usually used "
-"for versioning of the HTTP API."
+msgid "The full base path to your resources is now <literal>/seam/resource/restv1/{resource}</literal> - note that your <literal>@Path</literal> definitions and mappings do NOT change. This is an application-wide switch usually used for versioning of the HTTP API."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:239
 #, no-c-format
-msgid ""
-"You can disable stripping of the base path if you'd like to map the full "
-"path in your resources:"
+msgid "You can disable stripping of the base path if you'd like to map the full path in your resources:"
 msgstr ""
 
 #. Tag: programlisting
 #: Webservices.xml:243
 #, no-c-format
-msgid ""
-"<![CDATA[<resteasy:application-config strip-seam-resource-path=\"false\"/>]]>"
-msgstr ""
+msgid "<![CDATA[<resteasy:application-config strip-seam-resource-path=\"false\"/>]]>"
+msgstr "<![CDATA[<resteasy:application-config strip-seam-resource-path=\"false\"/>]]>"
 
 #. Tag: para
 #: Webservices.xml:245
 #, no-c-format
-msgid ""
-"The path of a resource is now mapped with e.g. <literal>@Path(\"/seam/"
-"resource/rest/customer\")</literal>. We do not recommend disabling this "
-"feature, as your resource class mappings are then bound to a particular "
-"deployment scenario."
+msgid "The path of a resource is now mapped with e.g. <literal>@Path(\"/seam/resource/rest/customer\")</literal>. We do not recommend disabling this feature, as your resource class mappings are then bound to a particular deployment scenario."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:251
 #, no-c-format
-msgid ""
-"Seam will scan your classpath for any deployed <literal>@javax.ws.rs.Path</"
-"literal> resources and any <literal>@javax.ws.rs.ext.Provider</literal> "
-"classes. You can disable scanning and configure these classes manually:"
+msgid "Seam will scan your classpath for any deployed <literal>@javax.ws.rs.Path</literal> resources and any <literal>@javax.ws.rs.ext.Provider</literal> classes. You can disable scanning and configure these classes manually:"
 msgstr ""
 
 #. Tag: programlisting
@@ -553,15 +499,26 @@
 "\n"
 " </resteasy:application-config>]]>"
 msgstr ""
+"<![CDATA[<resteasy:application-config\n"
+"     scan-providers=\"false\"\n"
+"     scan-resources=\"false\"\n"
+"     use-builtin-providers=\"true\">\n"
+"\n"
+"     <resteasy:resource-class-names>\n"
+"         <value>org.foo.MyCustomerResource</value>\n"
+"         <value>org.foo.MyOrderResource</value>\n"
+"     </resteasy:resource-class-names>\n"
+"\n"
+"     <resteasy:provider-class-names>\n"
+"         <value>org.foo.MyFancyProvider</value>\n"
+"     </resteasy:provider-class-names>\n"
+"\n"
+" </resteasy:application-config>]]>"
 
 #. Tag: para
 #: Webservices.xml:259
 #, no-c-format
-msgid ""
-"The <literal>use-built-in-providers</literal> switch enables (default) or "
-"disables the RESTEasy built-in providers. We recommend you leave them "
-"enabled, as they provide plaintext, JSON, and JAXB marshalling out of the "
-"box."
+msgid "The <literal>use-built-in-providers</literal> switch enables (default) or disables the RESTEasy built-in providers. We recommend you leave them enabled, as they provide plaintext, JSON, and JAXB marshalling out of the box."
 msgstr ""
 
 #. Tag: para
@@ -586,15 +543,22 @@
 "\n"
 "</resteasy:application-config>]]>"
 msgstr ""
+"<![CDATA[<resteasy:application-config>\n"
+"\n"
+"    <resteasy:media-type-mappings>\n"
+"       <key>txt</key><value>text/plain</value>\n"
+"    </resteasy:media-type-mappings>\n"
+"\n"
+"    <resteasy:language-mappings>\n"
+"       <key>deutsch</key><value>de-DE</value>\n"
+"    </resteasy:language-mappings>\n"
+"\n"
+"</resteasy:application-config>]]>"
 
 #. Tag: para
 #: Webservices.xml:271
 #, no-c-format
-msgid ""
-"This definition would map the URI suffix of <literal>.txt.deutsch</literal> "
-"to additional <literal>Accept</literal> and <literal>Accept-Language</"
-"literal> header values <literal>text/plain</literal> and <literal>de-DE</"
-"literal>."
+msgid "This definition would map the URI suffix of <literal>.txt.deutsch</literal> to additional <literal>Accept</literal> and <literal>Accept-Language</literal> header values <literal>text/plain</literal> and <literal>de-DE</literal>."
 msgstr ""
 
 #. Tag: title
@@ -606,21 +570,13 @@
 #. Tag: para
 #: Webservices.xml:282
 #, no-c-format
-msgid ""
-"Any resource and provider instances are managed by RESTEasy by default. That "
-"means a resource class will be instantiated by RESTEasy and serve a single "
-"request, after which it will be destroyed. This is the default JAX-RS "
-"lifecycle. Providers are instantiated once for the whole application and are "
-"effectively singletons and supposed to be stateless."
+msgid "Any resource and provider instances are managed by RESTEasy by default. That means a resource class will be instantiated by RESTEasy and serve a single request, after which it will be destroyed. This is the default JAX-RS lifecycle. Providers are instantiated once for the whole application and are effectively singletons and supposed to be stateless."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:289
 #, no-c-format
-msgid ""
-"You can write resources and providers as Seam components and benefit from "
-"the richer lifecycle management of Seam, and interception for bijection, "
-"security, and so on. Simply make your resource class a Seam component:"
+msgid "You can write resources and providers as Seam components and benefit from the richer lifecycle management of Seam, and interception for bijection, security, and so on. Simply make your resource class a Seam component:"
 msgstr ""
 
 #. Tag: programlisting
@@ -643,42 +599,43 @@
 "\n"
 "}]]>"
 msgstr ""
+"<![CDATA[@Name(\"customerResource\")\n"
+"@Path(\"/customer\")\n"
+"public class MyCustomerResource {\n"
+"\n"
+"    @In\n"
+"    CustomerDAO customerDAO;\n"
+"\n"
+"    @GET\n"
+"    @Path(\"/{customerId}\")\n"
+"    @ProduceMime(\"text/plain\")\n"
+"    public String getCustomer(@PathParam(\"customerId\") int id) {\n"
+"         return customerDAO.find(id).getName();\n"
+"    }\n"
+"\n"
+"}]]>"
 
 #. Tag: para
 #: Webservices.xml:297
 #, no-c-format
-msgid ""
-"An instance of <literal>customerResource</literal> is now handled by Seam "
-"when a request hits the server. This is a Seam JavaBean component that is "
-"<literal>EVENT</literal>-scoped, hence no different than the default JAX-RS "
-"lifecycle. However, you get full Seam injection support and all other Seam "
-"components and contexts are available to you. Currently also supported are "
-"<literal>SESSION</literal>, <literal>APPLICATION</literal>, and "
-"<literal>STATELESS</literal> resource components. Remember that any HTTP "
-"request has to transmit a valid session identifier (cookie, URI path "
-"parameter) for correct handling of the server-side session context."
+msgid "An instance of <literal>customerResource</literal> is now handled by Seam when a request hits the server. This is a Seam JavaBean component that is <literal>EVENT</literal>-scoped, hence no different than the default JAX-RS lifecycle. However, you get full Seam injection support and all other Seam components and contexts are available to you. Currently also supported are <literal>SESSION</literal>, <literal>APPLICATION</literal>, and <literal>STATELESS</literal> resource components. Remember that any HTTP request has to transmit a valid session identifier (cookie, URI path parameter) for correct handling of the server-side session context."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:307
 #, no-c-format
-msgid ""
-"Conversation-scoped resource components and mapping of conversations is "
-"currently not supported but will be available soon."
+msgid "Conversation-scoped resource components and mapping of conversations is currently not supported but will be available soon."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:312
 #, no-c-format
-msgid ""
-"Provider classes can also be Seam components, they must be "
-"<literal>APPLICATION</literal>-scoped or <literal>STATELESS</literal>."
+msgid "Provider classes can also be Seam components, they must be <literal>APPLICATION</literal>-scoped or <literal>STATELESS</literal>."
 msgstr ""
 
 #. Tag: para
 #: Webservices.xml:317
 #, no-c-format
-msgid ""
-"Resources and providers can be EJBs or JavaBeans, like any other Seam "
-"component."
+msgid "Resources and providers can be EJBs or JavaBeans, like any other Seam component."
 msgstr ""
+




More information about the seam-commits mailing list