Seam SVN: r7987 - branches/Seam_2_0/seam-gen.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2008-04-20 22:10:12 -0400 (Sun, 20 Apr 2008)
New Revision: 7987
Modified:
branches/Seam_2_0/seam-gen/
Log:
ignore icefaces staging directory
Property changes on: branches/Seam_2_0/seam-gen
___________________________________________________________________
Name: svn:ignore
- build.properties
+ build.properties
icefaces-staging
16 years, 7 months
Seam SVN: r7986 - trunk/src/main/org/jboss/seam/security/permission.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2008-04-20 21:57:01 -0400 (Sun, 20 Apr 2008)
New Revision: 7986
Modified:
trunk/src/main/org/jboss/seam/security/permission/PermissionManager.java
Log:
permission checks for permission management should be based on the permission itself
Modified: trunk/src/main/org/jboss/seam/security/permission/PermissionManager.java
===================================================================
--- trunk/src/main/org/jboss/seam/security/permission/PermissionManager.java 2008-04-21 00:41:49 UTC (rev 7985)
+++ trunk/src/main/org/jboss/seam/security/permission/PermissionManager.java 2008-04-21 01:57:01 UTC (rev 7986)
@@ -118,7 +118,7 @@
public boolean grantPermission(Permission permission)
{
- Identity.instance().checkPermission(PERMISSION_PERMISSION_NAME, PERMISSION_GRANT);
+ Identity.instance().checkPermission(permission, PERMISSION_GRANT);
if (permission.getTarget() instanceof String)
{
@@ -132,7 +132,7 @@
public boolean revokePermission(Permission permission)
{
- Identity.instance().checkPermission(PERMISSION_PERMISSION_NAME, PERMISSION_REVOKE);
+ Identity.instance().checkPermission(permission, PERMISSION_REVOKE);
if (permission.getTarget() instanceof String)
{
16 years, 7 months
Seam SVN: r7985 - in branches/Seam_2_0/doc/Seam_Reference_Guide: sl-SL and 1 other directory.
by seam-commits@lists.jboss.org
Author: skittoli(a)redhat.com
Date: 2008-04-20 20:41:49 -0400 (Sun, 20 Apr 2008)
New Revision: 7985
Added:
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Annotations.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Book_Info.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Cache.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Components.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Concepts.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Configuration.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Controls.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Conversations.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Dependencies.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Drools.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Elenhancements.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Events.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Feedback.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Framework.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Getting_Started_With_JBoss_Tools.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Gettingstarted.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Groovy.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Gwt.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Hsearch.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/I18n.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Itext.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Jbpm.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Jms.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Mail.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Oc4j.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Persistence.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Preface.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Remoting.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Revision_History.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Security.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Spring.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Testing.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Text.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Tools.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Tutorial.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Validation.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Weblogic.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Webservices.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Websphere.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Xml.po
branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/master.po
Modified:
branches/Seam_2_0/doc/Seam_Reference_Guide/Makefile
Log:
added Slovenian sl-SL
Modified: branches/Seam_2_0/doc/Seam_Reference_Guide/Makefile
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/Makefile 2008-04-20 17:23:43 UTC (rev 7984)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/Makefile 2008-04-21 00:41:49 UTC (rev 7985)
@@ -8,7 +8,7 @@
BRAND = JBoss
TRANSLATIONS = $(XML_LANG)
-OTHER_LANGS = as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+OTHER_LANGS = as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK sl-SL ta-IN te-IN zh-CN zh-TW
#TRANSLATIONS = $(XML_LANG) $(OTHER_LANGS)
COMMON_CONFIG = /usr/share/publican
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Annotations.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Annotations.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Annotations.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,2167 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Annotations.xml:5
+#, no-c-format
+msgid "Seam annotations"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:7
+#, no-c-format
+msgid ""
+"When you write a Seam application, you'll use a lot of annotations. Seam "
+"lets you use annotations to achieve a declarative style of programming. Most "
+"of the annotations you'll use are defined by the EJB 3.0 specification. The "
+"annotations for data validation are defined by the Hibernate Validator "
+"package. Finally, Seam defines its own set of annotations, which we'll "
+"describe in this chapter."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:16
+#, no-c-format
+msgid ""
+"All of these annotations are defined in the package <literal>org.jboss.seam."
+"annotations</literal>."
+msgstr ""
+
+#. Tag: title
+#: Annotations.xml:22
+#, no-c-format
+msgid "Annotations for component definition"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:23
+#, no-c-format
+msgid ""
+"The first group of annotations lets you define a Seam component. These "
+"annotations appear on the component class."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:31
+#, no-c-format
+msgid "@Name"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:34
+#, no-c-format
+msgid "<![CDATA[@Name(\"componentName\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:35
+#, no-c-format
+msgid ""
+"Defines the Seam component name for a class. This annotation is required for "
+"all Seam components."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:43
+#, no-c-format
+msgid "@Scope"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:46
+#, no-c-format
+msgid "<![CDATA[(a)Scope(ScopeType.CONVERSATION)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:47
+#, no-c-format
+msgid ""
+"Defines the default context of the component. The possible values are "
+"defined by the <literal>ScopeType</literal> enumeration: <literal>EVENT, "
+"PAGE, CONVERSATION, SESSION, BUSINESS_PROCESS, APPLICATION, STATELESS</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:52
+#, no-c-format
+msgid ""
+"When no scope is explicitly specified, the default depends upon the "
+"component type. For stateless session beans, the default is "
+"<literal>STATELESS</literal>. For entity beans and stateful session beans, "
+"the default is <literal>CONVERSATION</literal>. For JavaBeans, the default "
+"is <literal>EVENT</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:64
+#, no-c-format
+msgid "@Role"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:67
+#, no-c-format
+msgid "<![CDATA[@Role(name=\"roleName\", scope=ScopeType.SESSION)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:68
+#, no-c-format
+msgid ""
+"Allows a Seam component to be bound to multiple contexts variables. The "
+"<literal>@Name</literal>/<literal>@Scope</literal> annotations define a "
+"\"default role\". Each <literal>@Role</literal> annotation defines an "
+"additional role."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:76
+#, no-c-format
+msgid "<literal>name</literal> — the context variable name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:82
+#, no-c-format
+msgid ""
+"<literal>scope</literal> — the context variable scope. When no scope "
+"is explicitly specified, the default depends upon the component type, as "
+"above."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:93
+#, no-c-format
+msgid "@Roles"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:96
+#, no-c-format
+msgid ""
+"<![CDATA[@Roles({\n"
+" @Role(name=\"user\", scope=ScopeType.CONVERSATION),\n"
+" @Role(name=\"currentUser\", scope=ScopeType.SESSION)\n"
+" })]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:97
+#, no-c-format
+msgid "Allows specification of multiple additional roles."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:104
+#, no-c-format
+msgid "@BypassInterceptors"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:107
+#, no-c-format
+msgid "<![CDATA[@BypassInterceptors]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:108
+#, no-c-format
+msgid ""
+"Disables Seam all interceptors on a particular component or method of a "
+"component."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:116
+#, no-c-format
+msgid "@JndiName"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:119
+#, no-c-format
+msgid "<![CDATA[@JndiName(\"my/jndi/name\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:120
+#, no-c-format
+msgid ""
+"Specifies the JNDI name that Seam will use to look up the EJB component. If "
+"no JNDI name is explicitly specified, Seam will use the JNDI pattern "
+"specified by <literal>org.jboss.seam.core.init.jndiPattern</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:130
+#, no-c-format
+msgid "@Conversational"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:133
+#, no-c-format
+msgid "<![CDATA[@Conversational]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:134
+#, no-c-format
+msgid ""
+"Specifies that a conversation scope component is conversational, meaning "
+"that no method of the component may be called unless a long-running "
+"conversation is active."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:143
+#, no-c-format
+msgid "@PerNestedConversation"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:146
+#, no-c-format
+msgid "<![CDATA[@PerNestedConversation]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:147
+#, no-c-format
+msgid ""
+"Limits the scope of a CONVERSATION-scoped component to just the parent "
+"conversation in which it was instantiated. The component instance will not "
+"be visible to nested child conversations, which will get their own instance."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:153
+#, no-c-format
+msgid ""
+"Warning: this is ill-defined, since it implies that a component will be "
+"visible for some part of a request cycle, and invisible after that. It is "
+"not recommended that applications use this feature!"
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:163
+#, no-c-format
+msgid "@Startup"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:166
+#, no-c-format
+msgid ""
+"<![CDATA[@Scope(APPLICATION) @Startup(depends=\"org.jboss.seam.bpm.jbpm\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:167
+#, no-c-format
+msgid ""
+"Specifies that an application scope component is started immediately at "
+"initialization time. This is mainly used for certain built-in components "
+"that bootstrap critical infrastructure such as JNDI, datasources, etc."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:173
+#, no-c-format
+msgid "<![CDATA[@Scope(SESSION) @Startup]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:174
+#, no-c-format
+msgid ""
+"Specifies that a session scope component is started immediately at session "
+"creation time."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:180
+#, no-c-format
+msgid ""
+"<literal>depends</literal> — specifies that the named components must "
+"be started first, if they are installed."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:191
+#, no-c-format
+msgid "@Install"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:194
+#, no-c-format
+msgid "<![CDATA[@Install(false)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:195
+#, no-c-format
+msgid ""
+"Specifies whether or not a component should be installed by default. The "
+"lack of an <literal>@Install</literal> annotation indicates a component "
+"should be installed."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:200
+#, no-c-format
+msgid "<![CDATA[@Install(dependencies=\"org.jboss.seam.bpm.jbpm\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:201
+#, no-c-format
+msgid ""
+"Specifies that a component should only be stalled if the components listed "
+"as dependencies are also installed."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:205
+#, no-c-format
+msgid "<![CDATA[(a)Install(genericDependencies=ManagedQueueSender.class)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:206
+#, no-c-format
+msgid ""
+"Specifies that a component should only be installed if a component that is "
+"implemented by a certain class is installed. This is useful when the "
+"dependency doesn't have a single well-known name."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:212
+#, no-c-format
+msgid "<![CDATA[@Install(classDependencies=\"org.hibernate.Session\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:213
+#, no-c-format
+msgid ""
+"Specifies that a component should only be installed if the named class is in "
+"the classpath."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:217
+#, no-c-format
+msgid "<![CDATA[@Install(precedence=BUILT_IN)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:218
+#, no-c-format
+msgid ""
+"Specifies the precedence of the component. If multiple components with the "
+"same name exist, the one with the higher precedence will be installed. The "
+"defined precendence values are (in ascending order):"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:227
+#, no-c-format
+msgid ""
+"<literal>BUILT_IN</literal> — Precedence of all built-in Seam "
+"components"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:233
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> — Precedence to use for components of "
+"frameworks which extend Seam"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:239
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> — Predence of application components "
+"(the default precedence)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:245
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> — Precedence to use for components which "
+"override application components in a particular deployment"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:252
+#, no-c-format
+msgid ""
+"<literal>MOCK</literal> — Precedence for mock objects used in testing"
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:263
+#, no-c-format
+msgid "@Synchronized"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:266
+#, no-c-format
+msgid "<![CDATA[@Synchronized(timeout=1000)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:267
+#, no-c-format
+msgid ""
+"Specifies that a component is accessed concurrently by multiple clients, and "
+"that Seam should serialize requests. If a request is not able to obtain its "
+"lock on the component in the given timeout period, an exception will be "
+"raised."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:277
+#, no-c-format
+msgid "@ReadOnly"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:280
+#, no-c-format
+msgid "<![CDATA[@ReadOnly]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:281
+#, no-c-format
+msgid ""
+"Specifies that a JavaBean component or component method does not require "
+"state replication at the end of the invocation."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:289
+#, no-c-format
+msgid "@AutoCreate"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:292
+#, no-c-format
+msgid "<![CDATA[@AutoCreate]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:293
+#, no-c-format
+msgid ""
+"Specifies that a component will be automatically created, even if the client "
+"does not specify <literal>create=true</literal>."
+msgstr ""
+
+#. Tag: title
+#: Annotations.xml:303
+#, no-c-format
+msgid "Annotations for bijection"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:304
+#, no-c-format
+msgid ""
+"The next two annotations control bijection. These attributes occur on "
+"component instance variables or property accessor methods."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:312
+#, no-c-format
+msgid "<literal>@In</literal>"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:315
+#, no-c-format
+msgid "<![CDATA[@In]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:316
+#, no-c-format
+msgid ""
+"Specifies that a component attribute is to be injected from a context "
+"variable at the beginning of each component invocation. If the context "
+"variable is null, an exception will be thrown."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:322
+#, no-c-format
+msgid "<![CDATA[@In(required=false)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:323
+#, no-c-format
+msgid ""
+"Specifies that a component attribute is to be injected from a context "
+"variable at the beginning of each component invocation. The context variable "
+"may be null."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:328
+#, no-c-format
+msgid "<![CDATA[@In(create=true)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:329
+#, no-c-format
+msgid ""
+"Specifies that a component attribute is to be injected from a context "
+"variable at the beginning of each component invocation. If the context "
+"variable is null, an instance of the component is instantiated by Seam."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:335
+#, no-c-format
+msgid "<![CDATA[@In(value=\"contextVariableName\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:336 Annotations.xml:403
+#, no-c-format
+msgid ""
+"Specifies the name of the context variable explicitly, instead of using the "
+"annotated instance variable name."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:340
+#, no-c-format
+msgid "<![CDATA[@In(value=\"#{customer.addresses['shipping']}\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:341
+#, no-c-format
+msgid ""
+"Specifies that a component attribute is to be injected by evaluating a JSF "
+"EL expression at the beginning of each component invocation."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:348
+#, no-c-format
+msgid ""
+"<literal>value</literal> — specifies the name of the context variable. "
+"Default to the name of the component attribute. Alternatively, specifies a "
+"JSF EL expression, surrounded by <literal>#{...}</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:356
+#, no-c-format
+msgid ""
+"<literal>create</literal> — specifies that Seam should instantiate the "
+"component with the same name as the context variable if the context variable "
+"is undefined (null) in all contexts. Default to false."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:364
+#, no-c-format
+msgid ""
+"<literal>required</literal> — specifies Seam should throw an exception "
+"if the context variable is undefined in all contexts."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:375
+#, no-c-format
+msgid "@Out"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:378
+#, no-c-format
+msgid "<![CDATA[@Out]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:379
+#, no-c-format
+msgid ""
+"Specifies that a component attribute that is a Seam component is to be "
+"outjected to its context variable at the end of the invocation. If the "
+"attribute is null, an exception is thrown."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:384
+#, no-c-format
+msgid "<![CDATA[@Out(required=false)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:385
+#, no-c-format
+msgid ""
+"Specifies that a component attribute that is a Seam component is to be "
+"outjected to its context variable at the end of the invocation. The "
+"attribute may be null."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:390
+#, no-c-format
+msgid "<![CDATA[(a)Out(scope=ScopeType.SESSION)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:391
+#, no-c-format
+msgid ""
+"Specifies that a component attribute that is <emphasis>not</emphasis> a Seam "
+"component type is to be outjected to a specific scope at the end of the "
+"invocation."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:396
+#, no-c-format
+msgid ""
+"Alternatively, if no scope is explicitly specified, the scope of the "
+"component with the <literal>@Out</literal> attribute is used (or the "
+"<literal>EVENT</literal> scope if the component is stateless)."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:402
+#, no-c-format
+msgid "<![CDATA[@Out(value=\"contextVariableName\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:409
+#, no-c-format
+msgid ""
+"<literal>value</literal> — specifies the name of the context variable. "
+"Default to the name of the component attribute."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:416
+#, no-c-format
+msgid ""
+"<literal>required</literal> — specifies Seam should throw an exception "
+"if the component attribute is null during outjection."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:427
+#, no-c-format
+msgid ""
+"Note that it is quite common for these annotations to occur together, for "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:432
+#, no-c-format
+msgid "<![CDATA[@In(create=true) @Out private User currentUser;]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:434
+#, no-c-format
+msgid ""
+"The next annotation supports the <emphasis>manager component</emphasis> "
+"pattern, where a Seam component that manages the lifecycle of an instance of "
+"some other class that is to be injected. It appears on a component getter "
+"method."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:444
+#, no-c-format
+msgid "@Unwrap"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:447
+#, no-c-format
+msgid "<![CDATA[@Unwrap]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:448
+#, no-c-format
+msgid ""
+"Specifies that the object returned by the annotated getter method is the "
+"thing that is injected instead of the component instance itself."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:457
+#, no-c-format
+msgid ""
+"The next annotation supports the <emphasis>factory component</emphasis> "
+"pattern, where a Seam component is responsible for initializing the value of "
+"a context variable. This is especially useful for initializing any state "
+"needed for rendering the response to a non-faces request. It appears on a "
+"component method."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:468
+#, no-c-format
+msgid "@Factory"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:471
+#, no-c-format
+msgid ""
+"<![CDATA[@Factory(\"processInstance\") public void createProcessInstance() "
+"{ ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:472
+#, no-c-format
+msgid ""
+"Specifies that the method of the component is used to initialize the value "
+"of the named context variable, when the context variable has no value. This "
+"style is used with methods that return <literal>void</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:478
+#, no-c-format
+msgid ""
+"<![CDATA[@Factory(\"processInstance\", scope=CONVERSATION) public "
+"ProcessInstance createProcessInstance() { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:479
+#, no-c-format
+msgid ""
+"Specifies that the method returns a value that Seam should use to initialize "
+"the value of the named context variable, when the context variable has no "
+"value. This style is used with methods that return a value. If no scope is "
+"explicitly specified, the scope of the component with the <literal>@Factory</"
+"literal> method is used (unless the component is stateless, in which case "
+"the <literal>EVENT</literal> context is used)."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:491
+#, no-c-format
+msgid ""
+"<literal>value</literal> — specifies the name of the context variable. "
+"If the method is a getter method, default to the JavaBeans property name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:498
+#, no-c-format
+msgid ""
+"<literal>scope</literal> — specifies the scope that Seam should bind "
+"the returned value to. Only meaningful for factory methods which return a "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:505
+#, no-c-format
+msgid ""
+"<literal>autoCreate</literal> — specifies that this factory method "
+"should be automatically called whenever the variable is asked for, even if "
+"<literal>@In</literal> does not specify <literal>create=true</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:518
+#, no-c-format
+msgid "This annotation lets you inject a <literal>Log</literal>:"
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:525
+#, no-c-format
+msgid "@Logger"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:528
+#, no-c-format
+msgid "<![CDATA[@Logger(\"categoryName\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:529
+#, no-c-format
+msgid ""
+"Specifies that a component field is to be injected with an instance of "
+"<literal>org.jboss.seam.log.Log</literal>. For entity beans, the field must "
+"be declared as static."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:536
+#, no-c-format
+msgid ""
+"<literal>value</literal> — specifies the name of the log category. "
+"Default to the name of the component class."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:547
+#, no-c-format
+msgid "The last annotation lets you inject a request parameter value:"
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:554
+#, no-c-format
+msgid "@RequestParameter"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:557
+#, no-c-format
+msgid "<![CDATA[@RequestParameter(\"parameterName\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:558
+#, no-c-format
+msgid ""
+"Specifies that a component attribute is to be injected with the value of a "
+"request parameter. Basic type conversions are performed automatically."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:565
+#, no-c-format
+msgid ""
+"<literal>value</literal> — specifies the name of the request "
+"parameter. Default to the name of the component attribute."
+msgstr ""
+
+#. Tag: title
+#: Annotations.xml:579
+#, no-c-format
+msgid "Annotations for component lifecycle methods"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:580
+#, no-c-format
+msgid ""
+"These annotations allow a component to react to its own lifecycle events. "
+"They occur on methods of the component. There may be only one of each per "
+"component class."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:589
+#, no-c-format
+msgid "@Create"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:592
+#, no-c-format
+msgid "<![CDATA[@Create]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:593
+#, no-c-format
+msgid ""
+"Specifies that the method should be called when an instance of the component "
+"is instantiated by Seam. Note that create methods are only supported for "
+"JavaBeans and stateful session beans."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:603
+#, no-c-format
+msgid "@Destroy"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:606
+#, no-c-format
+msgid "<![CDATA[@Destroy]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:607
+#, no-c-format
+msgid ""
+"Specifies that the method should be called when the context ends and its "
+"context variables are destroyed. Note that destroy methods are only "
+"supported for JavaBeans and stateful session beans."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:613
+#, no-c-format
+msgid ""
+"Destroy methods should be used only for cleanup. <emphasis>Seam catches, "
+"logs and swallows any exception that propagates out of a destroy method.</"
+"emphasis>"
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:622
+#, no-c-format
+msgid "@Observer"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:625
+#, no-c-format
+msgid "<![CDATA[@Observer(\"somethingChanged\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:626
+#, no-c-format
+msgid ""
+"Specifies that the method should be called when a component-driven event of "
+"the specified type occurs."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:630
+#, no-c-format
+msgid "<![CDATA[@Observer(value=\"somethingChanged\",create=false)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:631
+#, no-c-format
+msgid ""
+"Specifies that the method should be called when an event of the specified "
+"type occurs but that an instance should not be created if one doesn't exist. "
+"If an instance does not exist and create is false, the event will not be "
+"observed. The default value for create is true."
+msgstr ""
+
+#. Tag: title
+#: Annotations.xml:645
+#, no-c-format
+msgid "Annotations for context demarcation"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:646
+#, no-c-format
+msgid ""
+"These annotations provide declarative conversation demarcation. They appear "
+"on methods of Seam components, usually action listener methods."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:651
+#, no-c-format
+msgid ""
+"Every web request has a conversation context associated with it. Most of "
+"these conversations end at the end of the request. If you want a "
+"conversation that span multiple requests, you must \"promote\" the current "
+"conversation to a <emphasis>long-running conversation</emphasis> by calling "
+"a method marked with <literal>@Begin</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:662
+#, no-c-format
+msgid "@Begin"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:665
+#, no-c-format
+msgid "<![CDATA[@Begin]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:666
+#, no-c-format
+msgid ""
+"Specifies that a long-running conversation begins when this method returns a "
+"non-null outcome without exception."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:670
+#, no-c-format
+msgid "<![CDATA[@Begin(join=true)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:671
+#, no-c-format
+msgid ""
+"Specifies that if a long-running conversation is already in progress, the "
+"conversation context is simply propagated."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:675
+#, no-c-format
+msgid "<![CDATA[@Begin(nested=true)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:676
+#, no-c-format
+msgid ""
+"Specifies that if a long-running conversation is already in progress, a new "
+"<emphasis>nested</emphasis> conversation context begins. The nested "
+"conversation will end when the next <literal>@End</literal> is encountered, "
+"and the outer conversation will resume. It is perfectly legal for multiple "
+"nested conversations to exist concurrently in the same outer conversation."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:685
+#, no-c-format
+msgid "<![CDATA[@Begin(pageflow=\"process definition name\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:686
+#, no-c-format
+msgid ""
+"Specifies a jBPM process definition name that defines the pageflow for this "
+"conversation."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:690
+#, no-c-format
+msgid "<![CDATA[(a)Begin(flushMode=FlushModeType.MANUAL)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:691
+#, no-c-format
+msgid ""
+"Specify the flush mode of any Seam-managed persistence contexts. "
+"<literal>flushMode=FlushModeType.MANUAL</literal> supports the use of "
+"<emphasis>atomic conversations</emphasis> where all write operations are "
+"queued in the conversation context until an explicit call to <literal>flush()"
+"</literal> (which usually occurs at the end of the conversation)."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:702
+#, no-c-format
+msgid ""
+"<literal>join</literal> — determines the behavior when a long-running "
+"conversation is already in progress. If <literal>true</literal>, the context "
+"is propagated. If <literal>false</literal>, an exception is thrown. Default "
+"to <literal>false</literal>. This setting is ignored when "
+"<literal>nested=true</literal> is specified."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:713
+#, no-c-format
+msgid ""
+"<literal>nested</literal> — specifies that a nested conversation "
+"should be started if a long-running conversation is already in progress."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:720 Annotations.xml:800 Annotations.xml:847
+#, no-c-format
+msgid ""
+"<literal>flushMode</literal> — set the flush mode of any Seam-managed "
+"Hibernate sessions or JPA persistence contexts that are created during this "
+"conversation."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:728
+#, no-c-format
+msgid ""
+"<literal>pageflow</literal> — a process definition name of a jBPM "
+"process definition deployed via <literal>org.jboss.seam.bpm.jbpm."
+"pageflowDefinitions.</literal>"
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:739
+#, no-c-format
+msgid "@End"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:742
+#, no-c-format
+msgid "<![CDATA[@End]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:743
+#, no-c-format
+msgid ""
+"Specifies that a long-running conversation ends when this method returns a "
+"non-null outcome without exception."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:749 Annotations.xml:885
+#, no-c-format
+msgid ""
+"<literal>beforeRedirect</literal> — by default, the conversation will "
+"not actually be destroyed until after any redirect has occurred. Setting "
+"<literal>beforeRedirect=true</literal> specifies that the conversation "
+"should be destroyed at the end of the current request, and that the redirect "
+"will be processed in a new temporary conversation context."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:764
+#, no-c-format
+msgid "@StartTask"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:767
+#, no-c-format
+msgid "<![CDATA[@StartTask]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:768
+#, no-c-format
+msgid ""
+"\"Starts\" a jBPM task. Specifies that a long-running conversation begins "
+"when this method returns a non-null outcome without exception. This "
+"conversation is associated with the jBPM task specified in the named request "
+"parameter. Within the context of this conversation, a business process "
+"context is also defined, for the business process instance of the task "
+"instance."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:779
+#, no-c-format
+msgid ""
+"The jBPM <literal>TaskInstance</literal> will be available in a request "
+"context variable named <literal>taskInstance</literal>. The jPBM "
+"<literal>ProcessInstance</literal> will be available in a request context "
+"variable named <literal>processInstance</literal>. (Of course, these objects "
+"are available for injection via <literal>@In</literal>.)"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:791 Annotations.xml:838
+#, no-c-format
+msgid ""
+"<literal>taskIdParameter</literal> — the name of a request parameter "
+"which holds the id of the task. Default to <literal>\"taskId\"</literal>, "
+"which is also the default used by the Seam <literal>taskList</literal> JSF "
+"component."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:813
+#, no-c-format
+msgid "@BeginTask"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:816
+#, no-c-format
+msgid "<![CDATA[@BeginTask]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:817
+#, no-c-format
+msgid ""
+"Resumes work on an incomplete jBPM task. Specifies that a long-running "
+"conversation begins when this method returns a non-null outcome without "
+"exception. This conversation is associated with the jBPM task specified in "
+"the named request parameter. Within the context of this conversation, a "
+"business process context is also defined, for the business process instance "
+"of the task instance."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:828
+#, no-c-format
+msgid ""
+"The jBPM <literal>org.jbpm.taskmgmt.exe.TaskInstance</literal> will be "
+"available in a request context variable named <literal>taskInstance</"
+"literal>. The jPBM <literal>org.jbpm.graph.exe.ProcessInstance</literal> "
+"will be available in a request context variable named "
+"<literal>processInstance</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:859
+#, no-c-format
+msgid "@EndTask"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:862
+#, no-c-format
+msgid "<![CDATA[@EndTask]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:863
+#, no-c-format
+msgid ""
+"\"Ends\" a jBPM task. Specifies that a long-running conversation ends when "
+"this method returns a non-null outcome, and that the current task is "
+"complete. Triggers a jBPM transition. The actual transition triggered will "
+"be the default transition unless the application has called "
+"<literal>Transition.setName()</literal> on the built-in component named "
+"<literal>transition</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:872
+#, no-c-format
+msgid "<![CDATA[@EndTask(transition=\"transitionName\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:873
+#, no-c-format
+msgid "Triggers the given jBPM transition."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:878
+#, no-c-format
+msgid ""
+"<literal>transition</literal> — the name of the jBPM transition to be "
+"triggered when ending the task. Defaults to the default transition."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:900
+#, no-c-format
+msgid "@CreateProcess"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:903
+#, no-c-format
+msgid "<![CDATA[@CreateProcess(definition=\"process definition name\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:904
+#, no-c-format
+msgid ""
+"Creates a new jBPM process instance when the method returns a non-null "
+"outcome without exception. The <literal>ProcessInstance</literal> object "
+"will be available in a context variable named <literal>processInstance</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:913
+#, no-c-format
+msgid ""
+"<literal>definition</literal> — the name of the jBPM process "
+"definition deployed via <literal>org.jboss.seam.bpm.jbpm.processDefinitions</"
+"literal>."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:924
+#, no-c-format
+msgid "@ResumeProcess"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:927
+#, no-c-format
+msgid "<![CDATA[@ResumeProcess(processIdParameter=\"processId\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:928
+#, no-c-format
+msgid ""
+"Re-enters the scope of an existing jBPM process instance when the method "
+"returns a non-null outcome without exception. The <literal>ProcessInstance</"
+"literal> object will be available in a context variable named "
+"<literal>processInstance</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:937
+#, no-c-format
+msgid ""
+"<literal>processIdParameter</literal> — the name a request parameter "
+"holding the process id. Default to <literal>\"processId\"</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:949
+#, no-c-format
+msgid "@Transition"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:952
+#, no-c-format
+msgid "<![CDATA[@Transition(\"cancel\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:953
+#, no-c-format
+msgid ""
+"Marks a method as signalling a transition in the current jBPM process "
+"instance whenever the method returns a non-null result."
+msgstr ""
+
+#. Tag: title
+#: Annotations.xml:964
+#, no-c-format
+msgid "Annotations for use with Seam JavaBean components in a J2EE environment"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:965
+#, no-c-format
+msgid ""
+"Seam provides an annotation that lets you force a rollback of the JTA "
+"transaction for certain action listener outcomes."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:973
+#, no-c-format
+msgid "@Transactional"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:976
+#, no-c-format
+msgid "<![CDATA[@Transactional]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:977
+#, no-c-format
+msgid ""
+"Specifies that a JavaBean component should have a similar transactional "
+"behavior to the default behavior of a session bean component. ie. method "
+"invocations should take place in a transaction, and if no transaction exists "
+"when the method is called, a transaction will be started just for that "
+"method. This annotation may be applied at either class or method level."
+msgstr ""
+
+#. Tag: emphasis
+#: Annotations.xml:986
+#, no-c-format
+msgid ""
+"Do not use this annotation on EJB 3.0 components, use "
+"<literal>@TransactionAttribute</literal>!"
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:993
+#, no-c-format
+msgid "@ApplicationException"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:996
+#, no-c-format
+msgid "<![CDATA[@ApplicationException]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:997
+#, no-c-format
+msgid ""
+"Synonym for javax.ejb.ApplicationException, for use in a pre Java EE 5 "
+"environment. Applied to an exception to denote that it is an application "
+"exception and should be reported to the client directly(i.e., unwrapped)."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1003
+#, no-c-format
+msgid ""
+"<emphasis>Do not use this annotation on EJB 3.0 components, use "
+"<literal>@javax.ejb.ApplicationException</literal> instead</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1010
+#, no-c-format
+msgid ""
+"<literal>rollback</literal> — by default <literal>false</literal>, if "
+"<literal>true</literal> this exception should set the transaction to "
+"rollback only"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1018
+#, no-c-format
+msgid ""
+"<literal>end</literal> — by default <literal>false</literal>, if "
+"<literal>true</literal> this exception should end the current long-running "
+"conversation"
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1030
+#, no-c-format
+msgid "@Interceptors"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1033
+#, no-c-format
+msgid "<![CDATA[@Interceptors({DVDInterceptor, CDInterceptor})]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1034
+#, no-c-format
+msgid ""
+"Synonym for javax.interceptors.Interceptors, for use in a pre Java EE 5 "
+"environment. Note that this may only be used as a meta-annotation. Declares "
+"an ordered list of interceptors for a class or method."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1040
+#, no-c-format
+msgid ""
+"<emphasis>Do not use this annotations on EJB 3.0 components, use "
+"<literal>@javax.interceptor.Interceptors</literal> instead</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1049
+#, no-c-format
+msgid ""
+"These annotations are mostly useful for JavaBean Seam components. If you use "
+"EJB 3.0 components, you should use the standard Java EE5 annotation."
+msgstr ""
+
+#. Tag: title
+#: Annotations.xml:1057
+#, no-c-format
+msgid "Annotations for exceptions"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1059
+#, no-c-format
+msgid ""
+"These annotations let you specify how Seam should handle an exception that "
+"propagates out of a Seam component."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1067
+#, no-c-format
+msgid "@Redirect"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1070
+#, no-c-format
+msgid "<![CDATA[@Redirect(viewId=\"error.jsp\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1071
+#, no-c-format
+msgid ""
+"Specifies that the annotated exception causes a browser redirect to a "
+"specified view id."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1077
+#, no-c-format
+msgid ""
+"<literal>viewId</literal> — specifies the JSF view id to redirect to. "
+"You can use EL here."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1083
+#, no-c-format
+msgid ""
+"<literal>message</literal> — a message to be displayed, default to the "
+"exception message."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1089 Annotations.xml:1122
+#, no-c-format
+msgid ""
+"<literal>end</literal> — specifies that the long-running conversation "
+"should end, default to <literal>false</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1100
+#, no-c-format
+msgid "@HttpError"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1103
+#, no-c-format
+msgid "<![CDATA[@HttpError(errorCode=404)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1104
+#, no-c-format
+msgid "Specifies that the annotated exception causes a HTTP error to be sent."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1110
+#, no-c-format
+msgid ""
+"<literal>errorCode</literal> — the HTTP error code, default to "
+"<literal>500</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1116
+#, no-c-format
+msgid ""
+"<literal>message</literal> — a message to be sent with the HTTP error, "
+"default to the exception message."
+msgstr ""
+
+#. Tag: title
+#: Annotations.xml:1135
+#, no-c-format
+msgid "Annotations for Seam Remoting"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1136
+#, no-c-format
+msgid ""
+"Seam Remoting requires that the local interface of a session bean be "
+"annotated with the following annotation:"
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1144
+#, no-c-format
+msgid "@WebRemote"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1147
+#, no-c-format
+msgid "<![CDATA[@WebRemote(exclude=\"path.to.exclude\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1148
+#, no-c-format
+msgid ""
+"Indicates that the annotated method may be called from client-side "
+"JavaScript. The <literal>exclude</literal> property is optional and allows "
+"objects to be excluded from the result's object graph (see the Remoting "
+"chapter for more details)."
+msgstr ""
+
+#. Tag: title
+#: Annotations.xml:1162
+#, no-c-format
+msgid "Annotations for Seam interceptors"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1163
+#, no-c-format
+msgid "The following annotations appear on Seam interceptor classes."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1166
+#, no-c-format
+msgid ""
+"Please refer to the documentation for the EJB 3.0 specification for "
+"information about the annotations required for EJB interceptor definition."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1174
+#, no-c-format
+msgid "@Interceptor"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1177
+#, no-c-format
+msgid "<![CDATA[@Interceptor(stateless=true)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1178
+#, no-c-format
+msgid ""
+"Specifies that this interceptor is stateless and Seam may optimize "
+"replication."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1182
+#, no-c-format
+msgid "<![CDATA[@Interceptor(type=CLIENT)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1183
+#, no-c-format
+msgid ""
+"Specifies that this interceptor is a \"client-side\" interceptor that is "
+"called before the EJB container."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1187
+#, no-c-format
+msgid ""
+"<![CDATA[(a)Interceptor(around={SomeInterceptor.class, OtherInterceptor."
+"class})]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1188
+#, no-c-format
+msgid ""
+"Specifies that this interceptor is positioned higher in the stack than the "
+"given interceptors."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1192
+#, no-c-format
+msgid ""
+"<![CDATA[(a)Interceptor(within={SomeInterceptor.class, OtherInterceptor."
+"class})]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1193
+#, no-c-format
+msgid ""
+"Specifies that this interceptor is positioned deeper in the stack than the "
+"given interceptors."
+msgstr ""
+
+#. Tag: title
+#: Annotations.xml:1204
+#, no-c-format
+msgid "Annotations for asynchronicity"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1205
+#, no-c-format
+msgid ""
+"The following annotations are used to declare an asynchronous method, for "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1210
+#, no-c-format
+msgid ""
+"<![CDATA[@Asynchronous public void scheduleAlert(Alert alert, @Expiration "
+"Date date) { ... }]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1211
+#, no-c-format
+msgid ""
+"<![CDATA[@Asynchronous public Timer scheduleAlerts(Alert alert, \n"
+" @Expiration Date date, \n"
+" @IntervalDuration long interval) { ... }]]>"
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1216
+#, no-c-format
+msgid "@Asynchronous"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1219
+#, no-c-format
+msgid "<![CDATA[@Asynchronous]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1220
+#, no-c-format
+msgid "Specifies that the method call is processed asynchronously."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1227
+#, no-c-format
+msgid "@Duration"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1230
+#, no-c-format
+msgid "<![CDATA[@Duration]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1231
+#, no-c-format
+msgid ""
+"Specifies that a parameter of the asynchronous call is the duration before "
+"the call is processed (or first processed for recurring calls)."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1240
+#, no-c-format
+msgid "@Expiration"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1243
+#, no-c-format
+msgid "<![CDATA[@Expiration]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1244
+#, no-c-format
+msgid ""
+"Specifies that a parameter of the asynchronous call is the datetime at which "
+"the call is processed (or first processed for recurring calls)."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1253
+#, no-c-format
+msgid "@IntervalDuration"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1256
+#, no-c-format
+msgid "<![CDATA[@IntervalDuration]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1257
+#, no-c-format
+msgid ""
+"Specifies that an asynchronous method call recurs, and that the annotationed "
+"parameter is duration between recurrences."
+msgstr ""
+
+#. Tag: title
+#: Annotations.xml:1267
+#, no-c-format
+msgid "Annotations for use with JSF"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1268
+#, no-c-format
+msgid "The following annotations make working with JSF easier."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1275
+#, no-c-format
+msgid "@Converter"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1278
+#, no-c-format
+msgid ""
+"Allows a Seam component to act as a JSF converter. The annotated class must "
+"be a Seam component, and must implement <literal>javax.faces.convert."
+"Converter</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1285
+#, no-c-format
+msgid ""
+"<literal>id</literal> — the JSF converter id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1291
+#, no-c-format
+msgid ""
+"<literal>forClass</literal> — if specified, register this component as "
+"the default converter for a type."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1302
+#, no-c-format
+msgid "@Validator"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1305
+#, no-c-format
+msgid ""
+"Allows a Seam component to act as a JSF validator. The annotated class must "
+"be a Seam component, and must implement <literal>javax.faces.validator."
+"Validator</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1312
+#, no-c-format
+msgid ""
+"<literal>id</literal> — the JSF validator id. Defaults to the "
+"component name."
+msgstr ""
+
+#. Tag: title
+#: Annotations.xml:1323
+#, no-c-format
+msgid "Annotations for use with <literal>dataTable</literal>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1324
+#, no-c-format
+msgid ""
+"The following annotations make it easy to implement clickable lists backed "
+"by a stateful session bean. They appear on attributes."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1333
+#, no-c-format
+msgid "@DataModel"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1336
+#, no-c-format
+msgid "<![CDATA[@DataModel(\"variableName\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1337
+#, no-c-format
+msgid ""
+"Outjects a property of type <literal>List</literal>, <literal>Map</literal>, "
+"<literal>Set</literal> or <literal>Object[]</literal> as a JSF "
+"<literal>DataModel</literal> into the scope of the owning component (or the "
+"<literal>EVENT</literal> scope if the owning component is "
+"<literal>STATELESS</literal>). In the case of <literal>Map</literal>, each "
+"row of the <literal>DataModel</literal> is a <literal>Map.Entry</literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1350
+#, no-c-format
+msgid ""
+"<literal>value</literal> — name of the conversation context variable. "
+"Default to the attribute name."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1357
+#, no-c-format
+msgid ""
+"<literal>scope</literal> — if <literal>scope=ScopeType.PAGE</literal> "
+"is explicitly specified, the <literal>DataModel</literal> will be kept in "
+"the <literal>PAGE</literal> context."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1369
+#, no-c-format
+msgid "@DataModelSelection"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1372
+#, no-c-format
+msgid "<![CDATA[@DataModelSelection]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1373
+#, no-c-format
+msgid ""
+"Injects the selected value from the JSF <literal>DataModel</literal> (this "
+"is the element of the underlying collection, or the map value). If only one "
+"<literal>@DataModel</literal> attribute is defined for a component, the "
+"selected value from that <literal>DataModel</literal> will be injected. "
+"Otherwise, the component name of each <literal>@DataModel</literal> must be "
+"specified in the value attribute for each <literal>@DataModelSelection</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1385
+#, no-c-format
+msgid ""
+"If <literal>PAGE</literal> scope is specified on the associated "
+"<literal>@DataModel</literal>, then, in addition to the DataModel Selection "
+"being injected, the associated DataModel will also be injected. In this "
+"case, if the property annotated with <literal>@DataModel</literal> is a "
+"getter method, then a setter method for the property must also be part of "
+"the Business API of the containing Seam Component."
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1397 Annotations.xml:1427
+#, no-c-format
+msgid ""
+"<literal>value</literal> — name of the conversation context variable. "
+"Not needed if there is exactly one <literal>@DataModel</literal> in the "
+"component."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1409
+#, no-c-format
+msgid "@DataModelSelectionIndex"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1412
+#, no-c-format
+msgid "<![CDATA[@DataModelSelectionIndex]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1413
+#, no-c-format
+msgid ""
+"Exposes the selection index of the JSF <literal>DataModel</literal> as an "
+"attribute of the component (this is the row number of the underlying "
+"collection, or the map key). If only one <literal>@DataModel</literal> "
+"attribute is defined for a component, the selected value from that "
+"<literal>DataModel</literal> will be injected. Otherwise, the component name "
+"of each <literal>@DataModel</literal> must be specified in the value "
+"attribute for each <literal>@DataModelSelectionIndex</literal>."
+msgstr ""
+
+#. Tag: title
+#: Annotations.xml:1442
+#, no-c-format
+msgid "Meta-annotations for databinding"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1443
+#, no-c-format
+msgid ""
+"These meta-annotations make it possible to implement similar functionality "
+"to <literal>@DataModel</literal> and <literal>@DataModelSelection</literal> "
+"for other datastructures apart from lists."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1453
+#, no-c-format
+msgid "@DataBinderClass"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1456
+#, no-c-format
+msgid "<![CDATA[(a)DataBinderClass(DataModelBinder.class)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1457
+#, no-c-format
+msgid "Specifies that an annotation is a databinding annotation."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1464
+#, no-c-format
+msgid "@DataSelectorClass"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1467
+#, no-c-format
+msgid "<![CDATA[(a)DataSelectorClass(DataModelSelector.class)]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1468
+#, no-c-format
+msgid "Specifies that an annotation is a dataselection annotation."
+msgstr ""
+
+#. Tag: title
+#: Annotations.xml:1477
+#, no-c-format
+msgid "Annotations for packaging"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1478
+#, no-c-format
+msgid ""
+"This annotation provides a mechanism for declaring information about a set "
+"of components that are packaged together. It can be applied to any Java "
+"package."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1488
+#, no-c-format
+msgid "@Namespace"
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1491
+#, no-c-format
+msgid ""
+"<![CDATA[@Namespace(value=\"http://jboss.com/products/seam/example/seampay"
+"\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1492
+#, no-c-format
+msgid ""
+"Specifies that components in the current package are associated with the "
+"given namespace. The declared namespace can be used as an XML namespace in a "
+"<literal>components.xml</literal> file to simplify application configuration."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1498
+#, no-c-format
+msgid ""
+"<![CDATA[@Namespace(value=\"http://jboss.com/products/seam/core\", prefix="
+"\"org.jboss.seam.core\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1499
+#, no-c-format
+msgid ""
+"Specifies a namespace to associate with a given package. Additionally, it "
+"specifies a component name prefix to be applied to component names specified "
+"in the XML file. For example, an XML element named <literal>init</literal> "
+"that is associated with this namespace would be understood to actually refer "
+"to a component named <literal>org.jboss.seam.core.init</literal>."
+msgstr ""
+
+#. Tag: title
+#: Annotations.xml:1514
+#, no-c-format
+msgid "Annotations for integrating with the servlet container"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1515
+#, no-c-format
+msgid ""
+"These annotations allow you to integrate your Seam components with the "
+"servlet container."
+msgstr ""
+
+#. Tag: literal
+#: Annotations.xml:1524
+#, no-c-format
+msgid "@Filter"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1527
+#, no-c-format
+msgid ""
+"Use the Seam component (which implements <literal>javax.servlet.Filter</"
+"literal>) annotated with <literal>@Filter</literal> as a servlet filter. It "
+"will be executed by Seam's master filter."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1535
+#, no-c-format
+msgid "<![CDATA[@Filter(around={\"seamComponent\", \"otherSeamComponent\"})]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1536
+#, no-c-format
+msgid ""
+"Specifies that this filter is positioned higher in the stack than the given "
+"filters."
+msgstr ""
+
+#. Tag: programlisting
+#: Annotations.xml:1542
+#, no-c-format
+msgid "<![CDATA[@Filter(within={\"seamComponent\", \"otherSeamComponent\"})]]>"
+msgstr ""
+
+#. Tag: para
+#: Annotations.xml:1543
+#, no-c-format
+msgid ""
+"Specifies that this filter is positioned deeper in the stack than the given "
+"filters."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Book_Info.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Book_Info.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Book_Info.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,26 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:5
+#, no-c-format
+msgid "Seam - Contextual Components"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:6
+#, no-c-format
+msgid "A Framework for Enterprise Java"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Cache.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Cache.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Cache.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,327 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Cache.xml:5
+#, no-c-format
+msgid "Caching"
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:7
+#, no-c-format
+msgid ""
+"In almost all enterprise applications, the database is the primary "
+"bottleneck, and the least scalable tier of the runtime environment. People "
+"from a PHP/Ruby environment will try to tell you that so-called \"shared "
+"nothing\" architectures scale well. While that may be literally true, I "
+"don't know of many interesting multi-user applications which can be "
+"implemented with no sharing of resources between different nodes of the "
+"cluster. What these silly people are really thinking of is a \"share nothing "
+"except for the database\" architecture. Of course, sharing the database is "
+"the primary problem with scaling a multi-user application—so the claim "
+"that this architecture is highly scalable is absurd, and tells you a lot "
+"about the kind of applications that these folks spend most of their time "
+"working on."
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:22
+#, no-c-format
+msgid ""
+"Almost anything we can possibly do to share the database <emphasis>less "
+"often</emphasis> is worth doing."
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:27
+#, no-c-format
+msgid ""
+"This calls for a cache. Well, not just one cache. A well designed Seam "
+"application will feature a rich, multi-layered caching strategy that impacts "
+"every layer of the application:"
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:35
+#, no-c-format
+msgid ""
+"The database, of course, has its own cache. This is super-important, but "
+"can't scale like a cache in the application tier."
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:42
+#, no-c-format
+msgid ""
+"Your ORM solution (Hibernate, or some other JPA implementation) has a second-"
+"level cache of data from the database. This is a very powerful capability, "
+"but is often misused. In a clustered environment, keeping the data in the "
+"cache transactionally consistent across the whole cluster, and with the "
+"database, is quite expensive. It makes most sense for data which is shared "
+"between many users, and is updated rarely. In traditional stateless "
+"architectures, people often try to use the second-level cache for "
+"conversational state. This is always bad, and is especially wrong in Seam."
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:56
+#, no-c-format
+msgid ""
+"The Seam conversation context is a cache of conversational state. Components "
+"you put into the conversation context can hold and cache state relating to "
+"the current user interaction."
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:63
+#, no-c-format
+msgid ""
+"In particular, the Seam-managed persistence context (or an extended EJB "
+"container-managed persistence context associated with a conversation-scoped "
+"stateful session bean) acts as a cache of data that has been read in the "
+"current conversation. This cache tends to have a pretty high hitrate! Seam "
+"optimizes the replication of Seam-managed persistence contexts in a "
+"clustered environment, and there is no requirement for transactional "
+"consistency with the database (optimistic locking is sufficient) so you "
+"don't need to worry too much about the performance implications of this "
+"cache, unless you read thousands of objects into a single persistence "
+"context."
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:78
+#, no-c-format
+msgid ""
+"The application can cache non-transactional state in the Seam application "
+"context. State kept in the application context is of course not visible to "
+"other nodes in the cluster."
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:85
+#, no-c-format
+msgid ""
+"The application can cache transactional state using the Seam "
+"<literal>pojoCache</literal> component, which integrates JBossCache into the "
+"Seam environment. This state will be visible to other nodes if you run JBoss "
+"cache in a clustered mode."
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:93
+#, no-c-format
+msgid ""
+"Finally, Seam lets you cache rendered fragments of a JSF page. Unlike the "
+"ORM second-level cache, this cache is not automatically invalidated when "
+"data changes, so you need to write application code to perform explicit "
+"invalidation, or set appropriate expiration policies."
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:102
+#, no-c-format
+msgid ""
+"For more information about the second-level cache, you'll need to refer to "
+"the documentation of your ORM solution, since this is an extremely complex "
+"topic. In this section we'll discuss the use of JBossCache directly, via the "
+"<literal>pojoCache</literal> component, or as the page fragment cache, via "
+"the <literal><s:cache></literal> control."
+msgstr ""
+
+#. Tag: title
+#: Cache.xml:111
+#, no-c-format
+msgid "Using JBossCache in Seam"
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:113
+#, no-c-format
+msgid ""
+"The built-in <literal>pojoCache</literal> component manages an instance of "
+"<literal>org.jboss.cache.aop.PojoCache</literal>. You can safely put any "
+"immutable Java object in the cache, and it will be replicated across the "
+"cluster (assuming that replication is enabled). If you want to keep mutable "
+"objects in the cache, you'll need to run the JBossCache bytecode "
+"preprocessor to ensure that changes to the objects will be automatically "
+"detected and replicated."
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:123
+#, no-c-format
+msgid ""
+"To use <literal>pojoCache</literal>, all you need to do is put the "
+"JBossCache jars in the classpath, and provide a resource named "
+"<literal>treecache.xml</literal> with an appropriate cache configuration. "
+"JBossCache has many scary and confusing configuration settings, so we won't "
+"discuss them here. Please refer to the JBossCache documentation for more "
+"information."
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:132
+#, no-c-format
+msgid ""
+"You can find a sample <literal>treecache.xml</literal> in <literal>examples/"
+"blog/resources/treecache.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:138
+#, no-c-format
+msgid ""
+"For an EAR depoyment of Seam, we recommend that the JBossCache jars and "
+"configuration go directly into the EAR. Make sure you place both "
+"<literal>jboss-cache.jar</literal> and <literal>jgroups.jar</literal> in "
+"your EAR's lib folder."
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:145
+#, no-c-format
+msgid "Now you can inject the cache into any Seam component:"
+msgstr ""
+
+#. Tag: programlisting
+#: Cache.xml:149
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"chatroom\")\n"
+"public class Chatroom {\n"
+" @In PojoCache pojoCache;\n"
+" \n"
+" public void join(String username) {\n"
+" try\n"
+" {\n"
+" Set<String> userList = (Set<String>) pojoCache.get(\"chatroom\", "
+"\"userList\");\n"
+" if (userList==null) \n"
+" {\n"
+" userList = new HashSet<String>();\n"
+" pojoCache.put(\"chatroom\", \"userList\", userList);\n"
+" }\n"
+" userList.put(username);\n"
+" }\n"
+" catch (CacheException ce)\n"
+" {\n"
+" throw new RuntimeException(ce);\n"
+" }\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:151
+#, no-c-format
+msgid ""
+"If you want to have multiple JBossCache configurations in your application, "
+"use <literal>components.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Cache.xml:156
+#, no-c-format
+msgid ""
+"<![CDATA[<core:pojo-cache name=\"myCache\" cfg-resource-name=\"myown/cache."
+"xml\"/>]]>"
+msgstr ""
+
+#. Tag: title
+#: Cache.xml:161
+#, no-c-format
+msgid "Page fragment caching"
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:163
+#, no-c-format
+msgid ""
+"The most interesting user of JBossCache is the <literal><s:cache></"
+"literal> tag, Seam's solution to the problem of page fragment caching in "
+"JSF. <literal><s:cache></literal> uses <literal>pojoCache</literal> "
+"internally, so you need to follow the steps listed above before you can use "
+"it. (Put the jars in the EAR, wade through the scary configuration options, "
+"etc.)"
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:171
+#, no-c-format
+msgid ""
+"<literal><s:cache></literal> is used for caching some rendered content "
+"which changes rarely. For example, the welcome page of our blog displays the "
+"recent blog entries:"
+msgstr ""
+
+#. Tag: programlisting
+#: Cache.xml:177
+#, no-c-format
+msgid ""
+"<![CDATA[<s:cache key=\"recentEntries-#{blog.id}\" region="
+"\"welcomePageFragments\">\n"
+" <h:dataTable value=\"#{blog.recentEntries}\" var=\"blogEntry\">\n"
+" <h:column>\n"
+" <h3>#{blogEntry.title}</h3>\n"
+" <div>\n"
+" <s:formattedText value=\"#{blogEntry.body}\"/>\n"
+" </div>\n"
+" </h:column>\n"
+" </h:dataTable>\n"
+"</s:cache>]]>"
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:179
+#, no-c-format
+msgid ""
+"The <literal>key</literal> let's you have multiple cached versions of each "
+"page fragment. In this case, there is one cached version per blog. The "
+"<literal>region</literal> determines the JBossCache node that all version "
+"will be stored in. Different nodes may have different expiry policies. "
+"(That's the stuff you set up using the aforementioned scary configuration "
+"options.)"
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:187
+#, no-c-format
+msgid ""
+"Of course, the big problem with <literal><s:cache></literal> is that "
+"it is too stupid to know when the underlying data changes (for example, when "
+"the blogger posts a new entry). So you need to evict the cached fragment "
+"manually:"
+msgstr ""
+
+#. Tag: programlisting
+#: Cache.xml:193
+#, no-c-format
+msgid ""
+"<![CDATA[public void post() {\n"
+" ...\n"
+" entityManager.persist(blogEntry);\n"
+" pojoCache.remove(\"welcomePageFragments\", \"recentEntries-\" + blog."
+"getId() );\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Cache.xml:195
+#, no-c-format
+msgid ""
+"Alternatively, if it is not critical that changes are immediately visible to "
+"the user, you could set a short expiry time on the JbossCache node."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Components.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Components.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Components.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,2091 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Components.xml:5
+#, no-c-format
+msgid "Built-in Seam components"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:6
+#, no-c-format
+msgid ""
+"This chapter describes Seam's built-in components, and their configuration "
+"properties. The built-in components will be created even if they are not "
+"listed in your <literal>components.xml</literal> file, but if you need to "
+"override default properties or specify more than one component of a certain "
+"type, <literal>components.xml</literal> is used."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:14
+#, no-c-format
+msgid ""
+"Note that you can replace any of the built in components with your own "
+"implementations simply by specifying the name of one of the built in "
+"components on your own class using <literal>@Name</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:21
+#, no-c-format
+msgid ""
+"Note also that even though all the built in components use a qualified name, "
+"most of them are aliased to unqualified names by default. These aliases "
+"specify <literal>auto-create=\"true\"</literal>, so you do not need to use "
+"<literal>create=true</literal> when injecting built-in components by their "
+"unqualified name."
+msgstr ""
+
+#. Tag: title
+#: Components.xml:30
+#, no-c-format
+msgid "Context injection components"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:31
+#, no-c-format
+msgid ""
+"The first set of built in components exist purely to support injection of "
+"various contextual objects. For example, the following component instance "
+"variable would have the Seam session context object injected:"
+msgstr ""
+
+#. Tag: programlisting
+#: Components.xml:38
+#, no-c-format
+msgid "<![CDATA[@In private Context sessionContext;]]>"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:42
+#, no-c-format
+msgid "org.jboss.seam.core.contexts"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:44
+#, no-c-format
+msgid ""
+"Component that provides access to Seam Context objects, for example "
+"<literal>org.jboss.seam.core.contexts.sessionContext['user']</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:51
+#, no-c-format
+msgid "org.jboss.seam.faces.facesContext"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:53
+#, no-c-format
+msgid ""
+"Manager component for the <literal>FacesContext</literal> context object "
+"(not a true Seam context)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:61 Components.xml:275 Components.xml:485 Components.xml:637
+#, no-c-format
+msgid "All of these components are always installed."
+msgstr ""
+
+#. Tag: title
+#: Components.xml:68
+#, no-c-format
+msgid "Utility components"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:69
+#, no-c-format
+msgid "These components are merely useful."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:75
+#, no-c-format
+msgid "org.jboss.seam.faces.facesMessages"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:77
+#, no-c-format
+msgid "Allows faces success messages to propagate across a browser redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:82
+#, no-c-format
+msgid ""
+"<literal>add(FacesMessage facesMessage)</literal> — add a faces "
+"message, which will be displayed during the next render response phase that "
+"occurs in the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:89
+#, no-c-format
+msgid ""
+"<literal>add(String messageTemplate)</literal> — add a faces message, "
+"rendered from the given message template which may contain EL expressions."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:96
+#, no-c-format
+msgid ""
+"<literal>add(Severity severity, String messageTemplate)</literal> — "
+"add a faces message, rendered from the given message template which may "
+"contain EL expressions."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:103
+#, no-c-format
+msgid ""
+"<literal>addFromResourceBundle(String key)</literal> — add a faces "
+"message, rendered from a message template defined in the Seam resource "
+"bundle which may contain EL expressions."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:110
+#, no-c-format
+msgid ""
+"<literal>addFromResourceBundle(Severity severity, String key)</literal> "
+"— add a faces message, rendered from a message template defined in the "
+"Seam resource bundle which may contain EL expressions."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:117
+#, no-c-format
+msgid "<literal>clear()</literal> — clear all messages."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:125
+#, no-c-format
+msgid "org.jboss.seam.faces.redirect"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:127
+#, no-c-format
+msgid ""
+"A convenient API for performing redirects with parameters (this is "
+"especially useful for bookmarkable search results screens)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:133
+#, no-c-format
+msgid ""
+"<literal>redirect.viewId</literal> — the JSF view id to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:139
+#, no-c-format
+msgid ""
+"<literal>redirect.conversationPropagationEnabled</literal> — "
+"determines whether the conversation will propagate across the redirect."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:146
+#, no-c-format
+msgid ""
+"<literal>redirect.parameters</literal> — a map of request parameter "
+"name to value, to be passed in the redirect request."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:153
+#, no-c-format
+msgid "<literal>execute()</literal> — perform the redirect immediately."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:159
+#, no-c-format
+msgid ""
+"<literal>captureCurrentRequest()</literal> — stores the view id and "
+"request parameters of the current GET request (in the conversation context), "
+"for later use by calling <literal>execute()</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:170
+#, no-c-format
+msgid "org.jboss.seam.faces.httpError"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:172
+#, no-c-format
+msgid "A convenient API for sending HTTP errors."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:178
+#, no-c-format
+msgid "org.jboss.seam.core.events"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:180
+#, no-c-format
+msgid ""
+"An API for raising events that can be observed via <literal>@Observer</"
+"literal> methods, or method bindings in <literal>components.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:187
+#, no-c-format
+msgid ""
+"<literal>raiseEvent(String type)</literal> — raise an event of a "
+"particular type and distribute to all observers."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:194
+#, no-c-format
+msgid ""
+"<literal>raiseAsynchronousEvent(String type)</literal> — raise an "
+"event to be processed asynchronously by the EJB3 timer service."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:201
+#, no-c-format
+msgid ""
+"<literal>raiseTimedEvent(String type, ....)</literal> — schedule an "
+"event to be processed asynchronously by the EJB3 timer service."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:208
+#, no-c-format
+msgid ""
+"<literal>addListener(String type, String methodBinding)</literal> — "
+"add an observer for a particular event type."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:217
+#, no-c-format
+msgid "org.jboss.seam.core.interpolator"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:219
+#, no-c-format
+msgid "An API for interpolating the values of JSF EL expressions in Strings."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:225
+#, no-c-format
+msgid ""
+"<literal>interpolate(String template)</literal> — scan the template "
+"for JSF EL expressions of the form <literal>#{...}</literal> and replace "
+"them with their evaluated values."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:235
+#, no-c-format
+msgid "org.jboss.seam.core.expressions"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:237
+#, no-c-format
+msgid "An API for creating value and method bindings."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:242
+#, no-c-format
+msgid ""
+"<literal>createValueBinding(String expression)</literal> — create a "
+"value binding object."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:248
+#, no-c-format
+msgid ""
+"<literal>createMethodBinding(String expression)</literal> — create a "
+"method binding object."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:257 Components.xml:1314
+#, no-c-format
+msgid "org.jboss.seam.core.pojoCache"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:259
+#, no-c-format
+msgid ""
+"Manager component for a JBoss Cache <literal>PojoCache</literal> instance."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:265
+#, no-c-format
+msgid ""
+"<literal>pojoCache.cfgResourceName</literal> — the name of the "
+"configuration file. Default to <literal>treecache.xml</literal>."
+msgstr ""
+
+#. Tag: title
+#: Components.xml:281
+#, no-c-format
+msgid "Components for internationalization and themes"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:282
+#, no-c-format
+msgid ""
+"The next group of components make it easy to build internationalized user "
+"interfaces using Seam."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:289
+#, no-c-format
+msgid "org.jboss.seam.core.locale"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:291
+#, no-c-format
+msgid "The Seam locale."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:297
+#, no-c-format
+msgid "org.jboss.seam.international.timezone"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:299
+#, no-c-format
+msgid "The Seam timezone. The timezone is session scoped."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:305
+#, no-c-format
+msgid "org.jboss.seam.core.resourceBundle"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:307
+#, no-c-format
+msgid ""
+"The Seam resource bundle. The resource bundle is stateless. The Seam "
+"resource bundle performs a depth-first search for keys in a list of Java "
+"resource bundles."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:315
+#, no-c-format
+msgid "org.jboss.seam.core.resourceLoader"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:317
+#, no-c-format
+msgid ""
+"The resource loader provides access to application resources and resource "
+"bundles."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:322
+#, no-c-format
+msgid ""
+"<literal>resourceLoader.bundleNames</literal> — the names of the Java "
+"resource bundles to search when the Seam resource bundle is used. Default to "
+"<literal>messages</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:332
+#, no-c-format
+msgid "org.jboss.seam.international.localeSelector"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:334
+#, no-c-format
+msgid ""
+"Supports selection of the locale either at configuration time, or by the "
+"user at runtime."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:340 Components.xml:399
+#, no-c-format
+msgid "<literal>select()</literal> — select the specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:345
+#, no-c-format
+msgid ""
+"<literal>localeSelector.locale</literal> — the actual <literal>java."
+"util.Locale</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:351
+#, no-c-format
+msgid ""
+"<literal>localeSelector.localeString</literal> — the stringified "
+"representation of the locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:357
+#, no-c-format
+msgid ""
+"<literal>localeSelector.language</literal> — the language for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:363
+#, no-c-format
+msgid ""
+"<literal>localeSelector.country</literal> — the country for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:369
+#, no-c-format
+msgid ""
+"<literal>localeSelector.variant</literal> — the variant for the "
+"specified locale."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:375
+#, no-c-format
+msgid ""
+"<literal>localeSelector.supportedLocales</literal> — a list of "
+"<literal>SelectItem</literal>s representing the supported locales listed in "
+"<literal>jsf-config.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:382
+#, no-c-format
+msgid ""
+"<literal>localeSelector.cookieEnabled</literal> — specifies that the "
+"locale selection should be persisted via a cookie."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:391
+#, no-c-format
+msgid "org.jboss.seam.international.timezoneSelector"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:393
+#, no-c-format
+msgid ""
+"Supports selection of the timezone either at configuration time, or by the "
+"user at runtime."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:404
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timezone</literal> — the actual "
+"<literal>java.util.TimeZone</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:410
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.timeZoneId</literal> — the stringified "
+"representation of the timezone."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:416
+#, no-c-format
+msgid ""
+"<literal>timezoneSelector.cookieEnabled</literal> — specifies that the "
+"timezone selection should be persisted via a cookie."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:425
+#, no-c-format
+msgid "org.jboss.seam.international.messages"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:427
+#, no-c-format
+msgid ""
+"A map containing internationalized messages rendered from message templates "
+"defined in the Seam resource bundle."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:434
+#, no-c-format
+msgid "org.jboss.seam.theme.themeSelector"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:436
+#, no-c-format
+msgid ""
+"Supports selection of the theme either at configuration time, or by the user "
+"at runtime."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:442
+#, no-c-format
+msgid "<literal>select()</literal> — select the specified theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:447
+#, no-c-format
+msgid ""
+"<literal>theme.availableThemes</literal> — the list of defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:453
+#, no-c-format
+msgid "<literal>themeSelector.theme</literal> — the selected theme."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:459
+#, no-c-format
+msgid ""
+"<literal>themeSelector.themes</literal> — a list of "
+"<literal>SelectItem</literal>s representing the defined themes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:466
+#, no-c-format
+msgid ""
+"<literal>themeSelector.cookieEnabled</literal> — specifies that the "
+"theme selection should be persisted via a cookie."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:475
+#, no-c-format
+msgid "org.jboss.seam.theme.theme"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:477
+#, no-c-format
+msgid "A map containing theme entries."
+msgstr ""
+
+#. Tag: title
+#: Components.xml:491
+#, no-c-format
+msgid "Components for controlling conversations"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:492
+#, no-c-format
+msgid ""
+"The next group of components allow control of conversations by the "
+"application or user interface."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:499
+#, no-c-format
+msgid "org.jboss.seam.core.conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:501
+#, no-c-format
+msgid ""
+"API for application control of attributes of the current Seam conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:506 Components.xml:523
+#, no-c-format
+msgid "<literal>getId()</literal> — returns the current conversation id"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:511
+#, no-c-format
+msgid ""
+"<literal>isNested()</literal> — is the current conversation a nested "
+"conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:517
+#, no-c-format
+msgid ""
+"<literal>isLongRunning()</literal> — is the current conversation a "
+"long-running conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:528
+#, no-c-format
+msgid ""
+"<literal>getParentId()</literal> — returns the conversation id of the "
+"parent conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:534
+#, no-c-format
+msgid ""
+"<literal>getRootId()</literal> — returns the conversation id of the "
+"root conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:540
+#, no-c-format
+msgid ""
+"<literal>setTimeout(int timeout)</literal> — sets the timeout for the "
+"current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:546
+#, no-c-format
+msgid ""
+"<literal>setViewId(String outcome)</literal> — sets the view id to be "
+"used when switching back to the current conversation from the conversation "
+"switcher, conversation list, or breadcrumbs."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:553
+#, no-c-format
+msgid ""
+"<literal>setDescription(String description)</literal> — sets the "
+"description of the current conversation to be displayed in the conversation "
+"switcher, conversation list, or breadcrumbs."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:560
+#, no-c-format
+msgid ""
+"<literal>redirect()</literal> — redirect to the last well-defined view "
+"id for this conversation (useful after login challenges)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:566
+#, no-c-format
+msgid ""
+"<literal>leave()</literal> — exit the scope of this conversation, "
+"without actually ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:572
+#, no-c-format
+msgid ""
+"<literal>begin()</literal> — begin a long-running conversation "
+"(equivalent to <literal>@Begin</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:578
+#, no-c-format
+msgid ""
+"<literal>beginPageflow(String pageflowName)</literal> — begin a long-"
+"running conversation with a pageflow (equivalent to <literal>@Begin(pageflow="
+"\"...\")</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:585
+#, no-c-format
+msgid ""
+"<literal>end()</literal> — end a long-running conversation (equivalent "
+"to <literal>@End</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:591
+#, no-c-format
+msgid ""
+"<literal>pop()</literal> — pop the conversation stack, returning to "
+"the parent conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:597
+#, no-c-format
+msgid ""
+"<literal>root()</literal> — return to the root conversation of the "
+"conversation stack."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:603
+#, no-c-format
+msgid ""
+"<literal>changeFlushMode(FlushModeType flushMode)</literal> — change "
+"the flush mode of the conversation."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:612
+#, no-c-format
+msgid "org.jboss.seam.core.conversationList"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:614
+#, no-c-format
+msgid "Manager component for the conversation list."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:620
+#, no-c-format
+msgid "org.jboss.seam.core.conversationStack"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:622
+#, no-c-format
+msgid "Manager component for the conversation stack (breadcrumbs)."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:628
+#, no-c-format
+msgid "org.jboss.seam.faces.switcher"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:630
+#, no-c-format
+msgid "The conversation switcher."
+msgstr ""
+
+#. Tag: title
+#: Components.xml:644
+#, no-c-format
+msgid "jBPM-related components"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:645
+#, no-c-format
+msgid "These components are for use with jBPM."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:651
+#, no-c-format
+msgid "org.jboss.seam.pageflow.pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:653
+#, no-c-format
+msgid "API control of Seam pageflows."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:658
+#, no-c-format
+msgid ""
+"<literal>isInProcess()</literal> — returns <literal>true</literal> if "
+"there is currently a pageflow in process"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:664
+#, no-c-format
+msgid ""
+"<literal>getProcessInstance()</literal> — returns jBPM "
+"<literal>ProcessInstance</literal> for the current pageflow"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:670
+#, no-c-format
+msgid ""
+"<literal>begin(String pageflowName)</literal> — begin a pageflow in "
+"the context of the current conversation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:676
+#, no-c-format
+msgid ""
+"<literal>reposition(String nodeName)</literal> — reposition the "
+"current pageflow to a particular node"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:685
+#, no-c-format
+msgid "org.jboss.seam.bpm.actor"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:687
+#, no-c-format
+msgid ""
+"API for application control of attributes of the jBPM actor associated with "
+"the current session."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:693
+#, no-c-format
+msgid ""
+"<literal>setId(String actorId)</literal> — sets the jBPM actor id of "
+"the current user."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:699
+#, no-c-format
+msgid ""
+"<literal>getGroupActorIds()</literal> — returns a <literal>Set</"
+"literal> to which jBPM actor ids for the current users groups may be added."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:709
+#, no-c-format
+msgid "org.jboss.seam.bpm.transition"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:711
+#, no-c-format
+msgid ""
+"API for application control of the jBPM transition for the current task."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:717
+#, no-c-format
+msgid ""
+"<literal>setName(String transitionName)</literal> — sets the jBPM "
+"transition name to be used when the current task is ended via "
+"<literal>@EndTask</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:727
+#, no-c-format
+msgid "org.jboss.seam.bpm.businessProcess"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:729
+#, no-c-format
+msgid ""
+"API for programmatic control of the association between the conversation and "
+"business process."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:735
+#, no-c-format
+msgid ""
+"<literal>businessProcess.taskId</literal> — the id of the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:741
+#, no-c-format
+msgid ""
+"<literal>businessProcess.processId</literal> — the id of the process "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:747
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentTask()</literal> — is a task "
+"instance associated with the current conversation?"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:753
+#, no-c-format
+msgid ""
+"<literal>businessProcess.hasCurrentProcess()</literal> — is a process "
+"instance associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:759
+#, no-c-format
+msgid ""
+"<literal>createProcess(String name)</literal> — create an instance of "
+"the named process definition and associate it with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:766
+#, no-c-format
+msgid ""
+"<literal>startTask()</literal> — start the task associated with the "
+"current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:772
+#, no-c-format
+msgid ""
+"<literal>endTask(String transitionName)</literal> — end the task "
+"associated with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:778
+#, no-c-format
+msgid ""
+"<literal>resumeTask(Long id)</literal> — associate the task with the "
+"given id with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:784
+#, no-c-format
+msgid ""
+"<literal>resumeProcess(Long id)</literal> — associate the process with "
+"the given id with the current conversation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:790
+#, no-c-format
+msgid ""
+"<literal>transition(String transitionName)</literal> — trigger the "
+"transition."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:799
+#, no-c-format
+msgid "org.jboss.seam.bpm.taskInstance"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:801
+#, no-c-format
+msgid "Manager component for the jBPM <literal>TaskInstance</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:807
+#, no-c-format
+msgid "org.jboss.seam.bpm.processInstance"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:809
+#, no-c-format
+msgid "Manager component for the jBPM <literal>ProcessInstance</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:815
+#, no-c-format
+msgid "org.jboss.seam.bpm.jbpmContext"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:817
+#, no-c-format
+msgid "Manager component for an event-scoped <literal>JbpmContext</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:823
+#, no-c-format
+msgid "org.jboss.seam.bpm.taskInstanceList"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:825
+#, no-c-format
+msgid "Manager component for the jBPM task list."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:831
+#, no-c-format
+msgid "org.jboss.seam.bpm.pooledTaskInstanceList"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:833
+#, no-c-format
+msgid "Manager component for the jBPM pooled task list."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:839
+#, no-c-format
+msgid "org.jboss.seam.bpm.taskInstanceListForType"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:841
+#, no-c-format
+msgid "Manager component for the jBPM task lists."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:847
+#, no-c-format
+msgid "org.jboss.seam.bpm.pooledTask"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:849
+#, no-c-format
+msgid "Action handler for pooled task assignment."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:855
+#, no-c-format
+msgid "org.jboss.seam.bpm.processInstanceFinder"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:857
+#, no-c-format
+msgid "Manager for the process instance task list."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:863
+#, no-c-format
+msgid "org.jboss.seam.bpm.processInstanceList"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:865
+#, no-c-format
+msgid "The process instance task list."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:872
+#, no-c-format
+msgid ""
+"All of these components are installed whenever the component <literal>org."
+"jboss.seam.bpm.jbpm</literal> is installed."
+msgstr ""
+
+#. Tag: title
+#: Components.xml:880
+#, no-c-format
+msgid "Security-related components"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:881
+#, no-c-format
+msgid "These components relate to web-tier security."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:887
+#, no-c-format
+msgid "org.jboss.seam.web.userPrincipal"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:889
+#, no-c-format
+msgid "Manager component for the current user <literal>Principal</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:895
+#, no-c-format
+msgid "org.jboss.seam.web.isUserInRole"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:897
+#, no-c-format
+msgid ""
+"Allows JSF pages to choose to render a control, depending upon the roles "
+"available to the current principal. <literal><h:commandButton value=\"edit"
+"\" rendered=\"#{isUserInRole['admin']}\"/></literal>."
+msgstr ""
+
+#. Tag: title
+#: Components.xml:908
+#, no-c-format
+msgid "JMS-related components"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:909
+#, no-c-format
+msgid ""
+"These components are for use with managed <literal>TopicPublisher</literal>s "
+"and <literal>QueueSender</literal>s (see below)."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:916
+#, no-c-format
+msgid "org.jboss.seam.jms.queueSession"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:918
+#, no-c-format
+msgid "Manager component for a JMS <literal>QueueSession</literal> ."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:924
+#, no-c-format
+msgid "org.jboss.seam.jms.topicSession"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:926
+#, no-c-format
+msgid "Manager component for a JMS <literal>TopicSession</literal> ."
+msgstr ""
+
+#. Tag: title
+#: Components.xml:935
+#, no-c-format
+msgid "Mail-related components"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:936
+#, no-c-format
+msgid "These components are for use with Seam's Email support"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:942
+#, no-c-format
+msgid "org.jboss.seam.mail.mailSession"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:944
+#, no-c-format
+msgid ""
+"Manager component for a JavaMail <literal>Session</literal>. The session can "
+"be either looked up in the JNDI context (by setting the "
+"<literal>sessionJndiName</literal> property) or it can created from the "
+"configuration options in which case the <literal>host</literal> is mandatory."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:953
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.host</literal> — the hostname "
+"of the SMTP server to use"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:958
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.port</literal> — the port of "
+"the SMTP server to use"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:963
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.username</literal> — the "
+"username to use to connect to the SMTP server."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:968
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.password</literal> — the "
+"password to use to connect to the SMTP server"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:973
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.debug</literal> — enable "
+"JavaMail debugging (very verbose)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:978
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.ssl</literal> — enable SSL "
+"connection to SMTP (will default to port 465)"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:981
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.tls</literal> — by default "
+"true, enable TLS support in the mail session"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:986
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.mail.mailSession.sessionJndiName</literal> — "
+"name under which a javax.mail.Session is bound to JNDI. If supplied, all "
+"other properties will be ignored."
+msgstr ""
+
+#. Tag: title
+#: Components.xml:998
+#, no-c-format
+msgid "Infrastructural components"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:999
+#, no-c-format
+msgid ""
+"These components provide critical platform infrastructure. You can install a "
+"component which isn't installed by default by setting <literal>install=\"true"
+"\"</literal> on the component in <literal>components.xml</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1007
+#, no-c-format
+msgid "org.jboss.seam.core.init"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1009
+#, no-c-format
+msgid "Initialization settings for Seam. Always installed."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1014
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.init.jndiPattern</literal> — the JNDI "
+"pattern used for looking up session beans"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1020
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.init.debug</literal> — enable Seam debug "
+"mode. This should be set to false when in production. You may see errors if "
+"the system is placed under any load and debug is enabled."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1027
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.init.clientSideConversations</literal> — "
+"if set to <literal>true</literal>, Seam will save conversation context "
+"variables in the client instead of in the <literal>HttpSession</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1034
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.init.userTransactionName</literal> — the "
+"JNDI name to use when looking up the JTA <literal>UserTransaction</literal> "
+"object."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1043
+#, no-c-format
+msgid "org.jboss.seam.core.manager"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1045
+#, no-c-format
+msgid ""
+"Internal component for Seam page and conversation context management. Always "
+"installed."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1051
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.conversationTimeout</literal> — "
+"the conversation context timeout in milliseconds."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1057
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.concurrentRequestTimeout</literal> "
+"— maximum wait time for a thread attempting to gain a lock on the long-"
+"running conversation context."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1064
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.conversationIdParameter</literal> "
+"— the request parameter used to propagate the conversation id, default "
+"to <literal>conversationId</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1071
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.core.manager.conversationIsLongRunningParameter</"
+"literal> — the request parameter used to propagate information about "
+"whether the conversation is long-running, default to "
+"<literal>conversationIsLongRunning</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1081
+#, no-c-format
+msgid "org.jboss.seam.navigation.pages"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1083
+#, no-c-format
+msgid "Internal component for Seam workspace management. Always installed."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1088
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.navigation.pages.noConversationViewId</literal> "
+"— global setting for the view id to redirect to when a conversation "
+"entry is not found on the server side."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1095
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.navigation.pages.loginViewId</literal> — "
+"global setting for the view id to redirect to when an unauthenticated user "
+"tries to access a protected view."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1102
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.navigation.pages.httpPort</literal> — global "
+"setting for the port to use when the http scheme is requested."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1109
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.navigation.pages.httpsPort</literal> — global "
+"setting for the port to use when the https scheme is requested."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1116
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.navigation.pages.resources</literal> — a list "
+"of resources to search for <literal>pages.xml</literal> style resources. "
+"Defaults to <literal>WEB-INF/pages.xml</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1126
+#, no-c-format
+msgid "org.jboss.seam.bpm.jbpm"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1128
+#, no-c-format
+msgid ""
+"Bootstraps a <literal>JbpmConfiguration</literal>. Install as class "
+"<literal>org.jboss.seam.bpm.Jbpm</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1134
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.bpm.jbpm.processDefinitions</literal> — a list "
+"of resource names of jPDL files to be used for orchestration of business "
+"processes."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1141
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.bpm.jbpm.pageflowDefinitions</literal> — a "
+"list of resource names of jPDL files to be used for orchestration of "
+"conversation page flows."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1151
+#, no-c-format
+msgid "org.jboss.seam.core.conversationEntries"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1153
+#, no-c-format
+msgid ""
+"Internal session-scoped component recording the active long-running "
+"conversations between requests."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1160
+#, no-c-format
+msgid "org.jboss.seam.faces.facesPage"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1162
+#, no-c-format
+msgid ""
+"Internal page-scoped component recording the conversation context associated "
+"with a page."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1169
+#, no-c-format
+msgid "org.jboss.seam.persistence.persistenceContexts"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1171
+#, no-c-format
+msgid ""
+"Internal component recording the persistence contexts which were used in the "
+"current conversation."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1178
+#, no-c-format
+msgid "org.jboss.seam.jms.queueConnection"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1180
+#, no-c-format
+msgid ""
+"Manages a JMS <literal>QueueConnection</literal>. Installed whenever managed "
+"managed <literal>QueueSender</literal> is installed."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1186
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.jms.queueConnection.queueConnectionFactoryJndiName</"
+"literal> — the JNDI name of a JMS <literal>QueueConnectionFactory</"
+"literal>. Default to <literal>UIL2ConnectionFactory</literal>"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1196
+#, no-c-format
+msgid "org.jboss.seam.jms.topicConnection"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1198
+#, no-c-format
+msgid ""
+"Manages a JMS <literal>TopicConnection</literal>. Installed whenever managed "
+"managed <literal>TopicPublisher</literal> is installed."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1204
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.jms.topicConnection.topicConnectionFactoryJndiName</"
+"literal> — the JNDI name of a JMS <literal>TopicConnectionFactory</"
+"literal>. Default to <literal>UIL2ConnectionFactory</literal>"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1214
+#, no-c-format
+msgid "org.jboss.seam.persistence.persistenceProvider"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1216
+#, no-c-format
+msgid "Abstraction layer for non-standardized features of JPA provider."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1222
+#, no-c-format
+msgid "org.jboss.seam.core.validators"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1224
+#, no-c-format
+msgid ""
+"Caches instances of Hibernate Validator <literal>ClassValidator</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1230
+#, no-c-format
+msgid "org.jboss.seam.faces.validation"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1232
+#, no-c-format
+msgid ""
+"Allows the application to determine whether validation failed or was "
+"successful."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1239
+#, no-c-format
+msgid "org.jboss.seam.debug.introspector"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1241 Components.xml:1249
+#, no-c-format
+msgid "Support for the Seam Debug Page."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1247
+#, no-c-format
+msgid "org.jboss.seam.debug.contexts"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1255
+#, no-c-format
+msgid "org.jboss.seam.exception.exceptions"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1257
+#, no-c-format
+msgid "Internal component for exception handling."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1263
+#, no-c-format
+msgid "org.jboss.seam.transaction.transaction"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1265
+#, no-c-format
+msgid ""
+"API for controlling transactions and abstracting the underlying transaction "
+"management implementation behind a JTA-compatible interface."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1273
+#, no-c-format
+msgid "org.jboss.seam.faces.safeActions"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1275
+#, no-c-format
+msgid ""
+"Decides if an action expression in an incoming URL is safe. This is done by "
+"checking that the action expression exists in the view."
+msgstr ""
+
+#. Tag: title
+#: Components.xml:1285
+#, no-c-format
+msgid "Miscellaneous components"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1286
+#, no-c-format
+msgid "These components don't fit into"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1292
+#, no-c-format
+msgid "org.jboss.seam.async.dispatcher"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1294
+#, no-c-format
+msgid "Dispatcher stateless session bean for asynchronous methods."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1303
+#, no-c-format
+msgid "org.jboss.seam.core.image"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1305
+#, no-c-format
+msgid "Image manipulation and interrogation."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1316
+#, no-c-format
+msgid "Manager component for a PojoCache instance."
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1325
+#, no-c-format
+msgid "org.jboss.seam.core.uiComponent"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1327
+#, no-c-format
+msgid "Manages a map of UIComponents keyed by component id."
+msgstr ""
+
+#. Tag: title
+#: Components.xml:1339
+#, no-c-format
+msgid "Special components"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1340
+#, no-c-format
+msgid ""
+"Certain special Seam component classes are installable multiple times under "
+"names specified in the Seam configuration. For example, the following lines "
+"in <literal>components.xml</literal> install and configure two Seam "
+"components:"
+msgstr ""
+
+#. Tag: programlisting
+#: Components.xml:1346
+#, no-c-format
+msgid ""
+"<![CDATA[<component name=\"bookingDatabase\"\n"
+" class=\"org.jboss.seam.persistence.ManagedPersistenceContext\">\n"
+" <property name=\"persistenceUnitJndiName\">java:/comp/emf/"
+"bookingPersistence</property>\n"
+"</component>\n"
+"\n"
+"<component name=\"userDatabase\"\n"
+" class=\"org.jboss.seam.persistence.ManagedPersistenceContext\">\n"
+" <property name=\"persistenceUnitJndiName\">java:/comp/emf/"
+"userPersistence</property>\n"
+"</component>]]>"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1348
+#, no-c-format
+msgid ""
+"The Seam component names are <literal>bookingDatabase</literal> and "
+"<literal>userDatabase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1355
+#, no-c-format
+msgid "<entityManager>"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1356
+#, no-c-format
+msgid "org.jboss.seam.persistence.ManagedPersistenceContext"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1358
+#, no-c-format
+msgid ""
+"Manager component for a conversation scoped managed <literal>EntityManager</"
+"literal> with an extended persistence context."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1364
+#, no-c-format
+msgid ""
+"<emphasis><entityManager></emphasis>.entityManagerFactory — a "
+"value binding expression that evaluates to an instance of "
+"<literal>EntityManagerFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1369
+#, no-c-format
+msgid ""
+"<emphasis><entityManager></emphasis>.persistenceUnitJndiName — "
+"the JNDI name of the entity manager factory, default to java:/<emphasis><"
+"managedPersistenceContext></emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1379
+#, no-c-format
+msgid "<entityManagerFactory>"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1380
+#, no-c-format
+msgid "org.jboss.seam.persistence.EntityManagerFactory"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1382
+#, no-c-format
+msgid ""
+"Manages a JPA <literal>EntityManagerFactory</literal>. This is most useful "
+"when using JPA outside of an EJB 3.0 supporting environment."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1388
+#, no-c-format
+msgid ""
+"<literal>entityManagerFactory.persistenceUnitName</literal> — the name "
+"of the persistence unit."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1394 Components.xml:1437
+#, no-c-format
+msgid "See the API JavaDoc for further configuration properties."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1400
+#, no-c-format
+msgid "<session>"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1401
+#, no-c-format
+msgid "org.jboss.seam.persistence.ManagedSession"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1403
+#, no-c-format
+msgid ""
+"Manager component for a conversation scoped managed Hibernate "
+"<literal>Session</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1408
+#, no-c-format
+msgid ""
+"<emphasis><session></emphasis>.sessionFactory — a value binding "
+"expression that evaluates to an instance of <literal>SessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1413
+#, no-c-format
+msgid ""
+"<emphasis><session></emphasis>.sessionFactoryJndiName — the JNDI "
+"name of the session factory, default to java:/<emphasis><"
+"managedSession></emphasis>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1423
+#, no-c-format
+msgid "<sessionFactory>"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1424
+#, no-c-format
+msgid "org.jboss.seam.persistence.HibernateSessionFactory"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1426
+#, no-c-format
+msgid "Manages a Hibernate <literal>SessionFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1431
+#, no-c-format
+msgid ""
+"<literal><sessionFactory>.cfgResourceName</literal> — the path "
+"to the configuration file. Default to <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1443
+#, no-c-format
+msgid "<managedQueueSender>"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1444
+#, no-c-format
+msgid "org.jboss.seam.jms.ManagedQueueSender"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1446
+#, no-c-format
+msgid ""
+"Manager component for an event scoped managed JMS <literal>QueueSender</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1451
+#, no-c-format
+msgid ""
+"<emphasis><managedQueueSender></emphasis>.queueJndiName — the "
+"JNDI name of the JMS queue."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1460
+#, no-c-format
+msgid "<managedTopicPublisher>"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1461
+#, no-c-format
+msgid "org.jboss.seam.jms.ManagedTopicPublisher"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1463
+#, no-c-format
+msgid ""
+"Manager component for an event scoped managed JMS <literal>TopicPublisher</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1468
+#, no-c-format
+msgid ""
+"<emphasis><managedTopicPublisher></emphasis>.topicJndiName — the "
+"JNDI name of the JMS topic."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1477
+#, no-c-format
+msgid "<managedWorkingMemory>"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1478
+#, no-c-format
+msgid "org.jboss.seam.drools.ManagedWorkingMemory"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1480
+#, no-c-format
+msgid ""
+"Manager component for a conversation scoped managed Drools "
+"<literal>WorkingMemory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1485
+#, no-c-format
+msgid ""
+"<emphasis><managedWorkingMemory></emphasis>.ruleBase — a value "
+"expression that evaluates to an instance of <literal>RuleBase</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1494
+#, no-c-format
+msgid "<ruleBase>"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1495
+#, no-c-format
+msgid "org.jboss.seam.drools.RuleBase"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1497
+#, no-c-format
+msgid ""
+"Manager component for an application scoped Drools <literal>RuleBase</"
+"literal>. <emphasis>Note that this is not really intended for production "
+"usage, since it does not support dynamic installation of new rules.</"
+"emphasis>"
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1504
+#, no-c-format
+msgid ""
+"<emphasis><ruleBase></emphasis>.ruleFiles — a list of files "
+"containing Drools rules."
+msgstr ""
+
+#. Tag: para
+#: Components.xml:1508
+#, no-c-format
+msgid ""
+"<emphasis><ruleBase></emphasis>.dslFile — a Drools DSL "
+"definition."
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1517
+#, no-c-format
+msgid "<entityHome>"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1518
+#, no-c-format
+msgid "org.jboss.seam.framework.EntityHome"
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1525
+#, no-c-format
+msgid "<hibernateEntityHome>"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1526
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityHome"
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1533
+#, no-c-format
+msgid "<entityQuery>"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1534
+#, no-c-format
+msgid "org.jboss.seam.framework.EntityQuery"
+msgstr ""
+
+#. Tag: emphasis
+#: Components.xml:1541
+#, no-c-format
+msgid "<hibernateEntityQuery>"
+msgstr ""
+
+#. Tag: literal
+#: Components.xml:1542
+#, no-c-format
+msgid "org.jboss.seam.framework.HibernateEntityQuery"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Concepts.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Concepts.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Concepts.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,2008 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Concepts.xml:5
+#, no-c-format
+msgid "The contextual component model"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:6
+#, no-c-format
+msgid ""
+"The two core concepts in Seam are the notion of a <emphasis>context</"
+"emphasis> and the notion of a <emphasis>component</emphasis>. Components are "
+"stateful objects, usually EJBs, and an instance of a component is associated "
+"with a context, and given a name in that context. <emphasis>Bijection</"
+"emphasis> provides a mechanism for aliasing internal component names "
+"(instance variables) to contextual names, allowing component trees to be "
+"dynamically assembled, and reassembled by Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:14
+#, no-c-format
+msgid "Let's start by describing the contexts built in to Seam."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:19
+#, no-c-format
+msgid "Seam contexts"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:20
+#, no-c-format
+msgid ""
+"Seam contexts are created and destroyed by the framework. The application "
+"does not control context demarcation via explicit Java API calls. Context "
+"are usually implicit. In some cases, however, contexts are demarcated via "
+"annotations."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:23
+#, no-c-format
+msgid "The basic Seam contexts are:"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:27
+#, no-c-format
+msgid "<para>Stateless context</para>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:30
+#, no-c-format
+msgid "Event (or request) context"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:33 Concepts.xml:224
+#, no-c-format
+msgid "<para>Page context</para>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:36 Concepts.xml:227
+#, no-c-format
+msgid "<para>Conversation context</para>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:39 Concepts.xml:230
+#, no-c-format
+msgid "<para>Session context</para>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:42 Concepts.xml:233
+#, no-c-format
+msgid "<para>Business process context</para>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:45 Concepts.xml:236
+#, no-c-format
+msgid "<para>Application context</para>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:49
+#, no-c-format
+msgid ""
+"You will recognize some of these contexts from servlet and related "
+"specifications. However, two of them might be new to you: "
+"<emphasis>conversation context</emphasis>, and <emphasis>business process "
+"context</emphasis>. One reason state management in web applications is so "
+"fragile and error-prone is that the three built-in contexts (request, "
+"session and application) are not especially meaningful from the point of "
+"view of the business logic. A user login session, for example, is a fairly "
+"arbitrary construct in terms of the actual application work flow. Therefore, "
+"most Seam components are scoped to the conversation or business process "
+"contexts, since they are the contexts which are most meaningful in terms of "
+"the application."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:60
+#, no-c-format
+msgid "Let's look at each context in turn."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:65
+#, no-c-format
+msgid "<title>Stateless context</title>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:66
+#, no-c-format
+msgid ""
+"Components which are truly stateless (stateless session beans, primarily) "
+"always live in the stateless context (this is really a non-context). "
+"Stateless components are not very interesting, and are arguably not very "
+"object-oriented. Nevertheless, they are important and often useful."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:74
+#, no-c-format
+msgid "<title>Event context</title>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:75
+#, no-c-format
+msgid ""
+"The event context is the \"narrowest\" stateful context, and is a "
+"generalization of the notion of the web request context to cover other kinds "
+"of events. Nevertheless, the event context associated with the lifecycle of "
+"a JSF request is the most important example of an event context, and the one "
+"you will work with most often. Components associated with the event context "
+"are destroyed at the end of the request, but their state is available and "
+"well-defined for at least the lifecycle of the request."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:82
+#, no-c-format
+msgid ""
+"When you invoke a Seam component via RMI, or Seam Remoting, the event "
+"context is created and destroyed just for the invocation."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:89
+#, no-c-format
+msgid "<title>Page context</title>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:90
+#, no-c-format
+msgid ""
+"The page context allows you to associate state with a particular instance of "
+"a rendered page. You can initialize state in your event listener, or while "
+"actually rendering the page, and then have access to it from any event that "
+"originates from that page. This is especially useful for functionality like "
+"clickable lists, where the list is backed by changing data on the server "
+"side. The state is actually serialized to the client, so this construct is "
+"extremely robust with respect to multi-window operation and the back button."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:101
+#, no-c-format
+msgid "<title>Conversation context</title>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:102
+#, no-c-format
+msgid ""
+"The conversation context is a truly central concept in Seam. A "
+"<emphasis>conversation</emphasis> is a unit of work from the point of view "
+"of the user. It might span several interactions with the user, several "
+"requests, and several database transactions. But to the user, a conversation "
+"solves a single problem. For example, \"book hotel\", \"approve contract\", "
+"\"create order\" are all conversations. You might like to think of a "
+"conversation implementing a single \"use case\" or \"user story\", but the "
+"relationship is not necessarily quite exact."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:110
+#, no-c-format
+msgid ""
+"A conversation holds state associated with \"what the user is doing now, in "
+"this window\". A single user may have multiple conversations in progress at "
+"any point in time, usually in multiple windows. The conversation context "
+"allows us to ensure that state from the different conversations does not "
+"collide and cause bugs."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:116
+#, no-c-format
+msgid ""
+"It might take you some time to get used to thinking of applications in terms "
+"of conversations. But once you get used to it, we think you'll love the "
+"notion, and never be able to not think in terms of conversations again!"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:121
+#, no-c-format
+msgid ""
+"Some conversations last for just a single request. Conversations that span "
+"multiple requests must be demarcated using annotations provided by Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:125
+#, no-c-format
+msgid ""
+"Some conversations are also <emphasis>tasks</emphasis>. A task is a "
+"conversation that is significant in terms of a long-running business "
+"process, and has the potential to trigger a business process state "
+"transition when it is successfully completed. Seam provides a special set of "
+"annotations for task demarcation."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:131
+#, no-c-format
+msgid ""
+"Conversations may be <emphasis>nested</emphasis>, with one conversation "
+"taking place \"inside\" a wider conversation. This is an advanced feature."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:135
+#, no-c-format
+msgid ""
+"Usually, conversation state is actually held by Seam in the servlet session "
+"between requests. Seam implements configurable <emphasis>conversation "
+"timeout</emphasis>, automatically destroying inactive conversations, and "
+"thus ensuring that the state held by a single user login session does not "
+"grow without bound if the user abandons conversations."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:141
+#, no-c-format
+msgid ""
+"Seam serializes processing of concurrent requests that take place in the "
+"same long-running conversation context, in the same process."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:145
+#, no-c-format
+msgid ""
+"Alternatively, Seam may be configured to keep conversational state in the "
+"client browser."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:151
+#, no-c-format
+msgid "<title>Session context</title>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:152
+#, no-c-format
+msgid ""
+"A session context holds state associated with the user login session. While "
+"there are some cases where it is useful to share state between several "
+"conversations, we generally frown on the use of session context for holding "
+"components other than global information about the logged in user."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:157
+#, no-c-format
+msgid ""
+"In a JSR-168 portal environment, the session context represents the portlet "
+"session."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:163
+#, no-c-format
+msgid "<title>Business process context</title>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:164
+#, no-c-format
+msgid ""
+"The business process context holds state associated with the long running "
+"business process. This state is managed and made persistent by the BPM "
+"engine (JBoss jBPM). The business process spans multiple interactions with "
+"multiple users, so this state is shared between multiple users, but in a "
+"well-defined manner. The current task determines the current business "
+"process instance, and the lifecycle of the business process is defined "
+"externally using a <emphasis>process definition language</emphasis>, so "
+"there are no special annotations for business process demarcation."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:175
+#, no-c-format
+msgid "<title>Application context</title>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:176
+#, no-c-format
+msgid ""
+"The application context is the familiar servlet context from the servlet "
+"spec. Application context is mainly useful for holding static information "
+"such as configuration data, reference data or metamodels. For example, Seam "
+"stores its own configuration and metamodel in the application context."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:184
+#, no-c-format
+msgid "Context variables"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:185
+#, no-c-format
+msgid ""
+"A context defines a namespace, a set of <emphasis>context variables</"
+"emphasis>. These work much the same as session or request attributes in the "
+"servlet spec. You may bind any value you like to a context variable, but "
+"usually we bind Seam component instances to context variables."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:191
+#, no-c-format
+msgid ""
+"So, within a context, a component instance is identified by the context "
+"variable name (this is usually, but not always, the same as the component "
+"name). You may programatically access a named component instance in a "
+"particular scope via the <literal>Contexts</literal> class, which provides "
+"access to several thread-bound instances of the <literal>Context</literal> "
+"interface:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:198
+#, no-c-format
+msgid ""
+"<![CDATA[User user = (User) Contexts.getSessionContext().get(\"user\");]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:200
+#, no-c-format
+msgid "You may also set or change the value associated with a name:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:204
+#, no-c-format
+msgid "<![CDATA[Contexts.getSessionContext().set(\"user\", user);]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:206
+#, no-c-format
+msgid ""
+"Usually, however, we obtain components from a context via injection, and put "
+"component instances into a context via outjection."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:213
+#, no-c-format
+msgid "Context search priority"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:214
+#, no-c-format
+msgid ""
+"Sometimes, as above, component instances are obtained from a particular "
+"known scope. Other times, all stateful scopes are searched, in "
+"<emphasis>priority order</emphasis>. The order is as follows:"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:221
+#, no-c-format
+msgid "<para>Event context</para>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:240
+#, no-c-format
+msgid ""
+"You can perform a priority search by calling <literal>Contexts."
+"lookupInStatefulContexts()</literal>. Whenever you access a component by "
+"name from a JSF page, a priority search occurs."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:248
+#, no-c-format
+msgid "Concurrency model"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:249
+#, no-c-format
+msgid ""
+"Neither the servlet nor EJB specifications define any facilities for "
+"managing concurrent requests originating from the same client. The servlet "
+"container simply lets all threads run concurrently and leaves enforcing "
+"threadsafeness to application code. The EJB container allows stateless "
+"components to be accessed concurrently, and throws an exception if multiple "
+"threads access a stateful session bean."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:255
+#, no-c-format
+msgid ""
+"This behavior might have been okay in old-style web applications which were "
+"based around fine-grained, synchronous requests. But for modern applications "
+"which make heavy use of many fine-grained, asynchronous (AJAX) requests, "
+"concurrency is a fact of life, and must be supported by the programming "
+"model. Seam weaves a concurrency management layer into its context model."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:261
+#, no-c-format
+msgid ""
+"The Seam session and application contexts are multithreaded. Seam will allow "
+"concurrent requests in a context to be processed concurrently. The event and "
+"page contexts are by nature single threaded. The business process context is "
+"strictly speaking multi-threaded, but in practice concurrency is "
+"sufficiently rare that this fact may be disregarded most of the time. "
+"Finally, Seam enforces a <emphasis>single thread per conversation per "
+"process</emphasis> model for the conversation context by serializing "
+"concurrent requests in the same long-running conversation context."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:269
+#, no-c-format
+msgid ""
+"Since the session context is multithreaded, and often contains volatile "
+"state, session scope components are always protected by Seam from concurrent "
+"access. Seam serializes requests to session scope session beans and "
+"JavaBeans by default (and detects and breaks any deadlocks that occur). This "
+"is not the default behaviour for application scoped components however, "
+"since application scoped components do not usually hold volatile state and "
+"because synchronization at the global level is <emphasis>extremely</"
+"emphasis> expensive. However, you can force a serialized threading model on "
+"any session bean or JavaBean component by adding the <literal>@Synchronized</"
+"literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:278
+#, no-c-format
+msgid ""
+"This concurrency model means that AJAX clients can safely use volatile "
+"session and conversational state, without the need for any special work on "
+"the part of the developer."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:287
+#, no-c-format
+msgid "Seam components"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:288
+#, no-c-format
+msgid ""
+"Seam components are POJOs (Plain Old Java Objects). In particular, they are "
+"JavaBeans or EJB 3.0 enterprise beans. While Seam does not require that "
+"components be EJBs and can even be used without an EJB 3.0 compliant "
+"container, Seam was designed with EJB 3.0 in mind and includes deep "
+"integration with EJB 3.0. Seam supports the following <emphasis>component "
+"types</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:297
+#, no-c-format
+msgid "EJB 3.0 stateless session beans"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:300
+#, no-c-format
+msgid "EJB 3.0 stateful session beans"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:303
+#, no-c-format
+msgid "EJB 3.0 entity beans"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:306
+#, no-c-format
+msgid "<para>JavaBeans</para>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:309
+#, no-c-format
+msgid "EJB 3.0 message-driven beans"
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:314
+#, no-c-format
+msgid "Stateless session beans"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:315
+#, no-c-format
+msgid ""
+"Stateless session bean components are not able to hold state across multiple "
+"invocations. Therefore, they usually work by operating upon the state of "
+"other components in the various Seam contexts. They may be used as JSF "
+"action listeners, but cannot provide properties to JSF components for "
+"display."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:320
+#, no-c-format
+msgid "Stateless session beans always live in the stateless context."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:323
+#, no-c-format
+msgid ""
+"Stateless session beans can be accessed concurrently as a new instance is "
+"used for each request. Assigning the instance to the request is the "
+"responsibility of the EJB3 container (normally instances will be allocated "
+"from a reusable pool meaning that you may find any instance variables "
+"contain data from previous uses of the bean)."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:329
+#, no-c-format
+msgid ""
+"Stateless session beans are the least interesting kind of Seam component."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:332
+#, no-c-format
+msgid ""
+"Seam stateless session bean components may be instantiated using "
+"<literal>Component.getInstance()</literal> or <literal>@In(create=true)</"
+"literal>. They should not be directly instantiated via JNDI lookup or the "
+"<literal>new</literal> operator."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:340
+#, no-c-format
+msgid "Stateful session beans"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:341
+#, no-c-format
+msgid ""
+"Stateful session bean components are able to hold state not only across "
+"multiple invocations of the bean, but also across multiple requests. "
+"Application state that does not belong in the database should usually be "
+"held by stateful session beans. This is a major difference between Seam and "
+"many other web application frameworks. Instead of sticking information about "
+"the current conversation directly in the <literal>HttpSession</literal>, you "
+"should keep it in instance variables of a stateful session bean that is "
+"bound to the conversation context. This allows Seam to manage the lifecycle "
+"of this state for you, and ensure that there are no collisions between state "
+"relating to different concurrent conversations."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:351
+#, no-c-format
+msgid ""
+"Stateful session beans are often used as JSF action listener, and as backing "
+"beans that provide properties to JSF components for display or form "
+"submission."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:355
+#, no-c-format
+msgid ""
+"By default, stateful session beans are bound to the conversation context. "
+"They may never be bound to the page or stateless contexts."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:359
+#, no-c-format
+msgid ""
+"Concurrent requests to session-scoped stateful session beans are always "
+"serialized by Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:362
+#, no-c-format
+msgid ""
+"Seam stateful session bean components may be instantiated using "
+"<literal>Component.getInstance()</literal> or <literal>@In(create=true)</"
+"literal>. They should not be directly instantiated via JNDI lookup or the "
+"<literal>new</literal> operator."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:370
+#, no-c-format
+msgid "Entity beans"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:371
+#, no-c-format
+msgid ""
+"Entity beans may be bound to a context variable and function as a seam "
+"component. Because entities have a persistent identity in addition to their "
+"contextual identity, entity instances are usually bound explicitly in Java "
+"code, rather than being instantiated implicitly by Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:376
+#, no-c-format
+msgid ""
+"Entity bean components do not support bijection or context demarcation. Nor "
+"does invocation of an entity bean trigger validation."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:380
+#, no-c-format
+msgid ""
+"Entity beans are not usually used as JSF action listeners, but do often "
+"function as backing beans that provide properties to JSF components for "
+"display or form submission. In particular, it is common to use an entity as "
+"a backing bean, together with a stateless session bean action listener to "
+"implement create/update/delete type functionality."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:386
+#, no-c-format
+msgid ""
+"By default, entity beans are bound to the conversation context. They may "
+"never be bound to the stateless context."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:390
+#, no-c-format
+msgid ""
+"Note that it in a clustered environment is somewhat less efficient to bind "
+"an entity bean directly to a conversation or session scoped Seam context "
+"variable than it would be to hold a reference to the entity bean in a "
+"stateful session bean. For this reason, not all Seam applications define "
+"entity beans to be Seam components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:396
+#, no-c-format
+msgid ""
+"Seam entity bean components may be instantiated using <literal>Component."
+"getInstance()</literal>, <literal>@In(create=true)</literal> or directly "
+"using the <literal>new</literal> operator."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:403
+#, no-c-format
+msgid "<title>JavaBeans</title>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:404
+#, no-c-format
+msgid ""
+"Javabeans may be used just like a stateless or stateful session bean. "
+"However, they do not provide the functionality of a session bean "
+"(declarative transaction demarcation, declarative security, efficient "
+"clustered state replication, EJB 3.0 persistence, timeout methods, etc)."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:409
+#, no-c-format
+msgid ""
+"In a later chapter, we show you how to use Seam and Hibernate without an EJB "
+"container. In this use case, components are JavaBeans instead of session "
+"beans. Note, however, that in many application servers it is somewhat less "
+"efficient to cluster conversation or session scoped Seam JavaBean components "
+"than it is to cluster stateful session bean components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:415
+#, no-c-format
+msgid "By default, JavaBeans are bound to the event context."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:418
+#, no-c-format
+msgid ""
+"Concurrent requests to session-scoped JavaBeans are always serialized by "
+"Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:421
+#, no-c-format
+msgid ""
+"Seam JavaBean components may be instantiated using <literal>Component."
+"getInstance()</literal> or <literal>@In(create=true)</literal>. They should "
+"not be directly instantiated using the <literal>new</literal> operator."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:429
+#, no-c-format
+msgid "Message-driven beans"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:430
+#, no-c-format
+msgid ""
+"Message-driven beans may function as a seam component. However, message-"
+"driven beans are called quite differently to other Seam components - instead "
+"of invoking them via the context variable, they listen for messages sent to "
+"a JMS queue or topic."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:435
+#, no-c-format
+msgid ""
+"Message-driven beans may not be bound to a Seam context. Nor do they have "
+"access to the session or conversation state of their \"caller\". However, "
+"they do support bijection and some other Seam functionality."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:440
+#, no-c-format
+msgid ""
+"Message-driven beans are never instantiated by the application. They are "
+"instantiated by the EJB container when a message is received."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:447
+#, no-c-format
+msgid "Interception"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:448
+#, no-c-format
+msgid ""
+"In order to perform its magic (bijection, context demarcation, validation, "
+"etc), Seam must intercept component invocations. For JavaBeans, Seam is in "
+"full control of instantiation of the component, and no special configuration "
+"is needed. For entity beans, interception is not required since bijection "
+"and context demarcation are not defined. For session beans, we must register "
+"an EJB interceptor for the session bean component. We could use an "
+"annotation, as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:456
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Interceptors(SeamInterceptor.class)\n"
+"public class LoginAction implements Login { \n"
+" ... \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:458
+#, no-c-format
+msgid ""
+"But a much better way is to define the interceptor in <literal>ejb-jar.xml</"
+"literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:462
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <interceptor>\n"
+" <interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-"
+"class>\n"
+" </interceptor>\n"
+"</interceptors>\n"
+" \n"
+"<assembly-descriptor>\n"
+" <interceptor-binding>\n"
+" <ejb-name>*</ejb-name>\n"
+" <interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-"
+"class>\n"
+" </interceptor-binding>\n"
+"</assembly-descriptor>]]>"
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:467
+#, no-c-format
+msgid "Component names"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:468
+#, no-c-format
+msgid ""
+"All seam components need a name. We can assign a name to a component using "
+"the <literal>@Name</literal> annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:473
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"loginAction\")\n"
+"@Stateless\n"
+"public class LoginAction implements Login { \n"
+" ... \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:475
+#, no-c-format
+msgid ""
+"This name is the <emphasis>seam component name</emphasis> and is not related "
+"to any other name defined by the EJB specification. However, seam component "
+"names work just like JSF managed bean names and you can think of the two "
+"concepts as identical."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:481
+#, no-c-format
+msgid ""
+"<literal>@Name</literal> is not the only way to define a component name, but "
+"we always need to specify the name <emphasis>somewhere</emphasis>. If we "
+"don't, then none of the other Seam annotations will function."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:487
+#, no-c-format
+msgid ""
+"Just like in JSF, a seam component instance is usually bound to a context "
+"variable with the same name as the component name. So, for example, we would "
+"access the <literal>LoginAction</literal> using <literal>Contexts."
+"getStatelessContext().get(\"loginAction\")</literal>. In particular, "
+"whenever Seam itself instantiates a component, it binds the new instance to "
+"a variable with the component name. However, again like JSF, it is possible "
+"for the application to bind a component to some other context variable by "
+"programmatic API call. This is only useful if a particular component serves "
+"more than one role in the system. For example, the currently logged in "
+"<literal>User</literal> might be bound to the <literal>currentUser</literal> "
+"session context variable, while a <literal>User</literal> that is the "
+"subject of some administration functionality might be bound to the "
+"<literal>user</literal> conversation context variable."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:500
+#, no-c-format
+msgid ""
+"For very large applications, and for built-in seam components, qualified "
+"names are often used."
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:504
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"com.jboss.myapp.loginAction\")\n"
+"@Stateless\n"
+"public class LoginAction implements Login { \n"
+" ... \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:506
+#, no-c-format
+msgid ""
+"We may use the qualified component name both in Java code and in JSF's "
+"expression language:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:510
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandButton type=\"submit\" value=\"Login\"\n"
+" action=\"#{com.jboss.myapp.loginAction.login}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:512
+#, no-c-format
+msgid ""
+"Since this is noisy, Seam also provides a means of aliasing a qualified name "
+"to a simple name. Add a line like this to the <literal>components.xml</"
+"literal> file:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:517
+#, no-c-format
+msgid ""
+"<![CDATA[<factory name=\"loginAction\" scope=\"STATELESS\" value=\"#{com."
+"jboss.myapp.loginAction}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:519
+#, no-c-format
+msgid ""
+"All of the built-in Seam components have qualified names, but most of them "
+"are aliased to a simple name by the <literal>components.xml</literal> file "
+"included in the Seam jar."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:527
+#, no-c-format
+msgid "Defining the component scope"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:528
+#, no-c-format
+msgid ""
+"We can override the default scope (context) of a component using the "
+"<literal>@Scope</literal> annotation. This lets us define what context a "
+"component instance is bound to, when it is instantiated by Seam."
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:534
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"user\")\n"
+"@Entity\n"
+"@Scope(SESSION)\n"
+"public class User { \n"
+" ... \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:536
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.ScopeType</literal> defines an enumeration of "
+"possible scopes."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:543
+#, no-c-format
+msgid "Components with multiple roles"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:544
+#, no-c-format
+msgid ""
+"Some Seam component classes can fulfill more than one role in the system. "
+"For example, we often have a <literal>User</literal> class which is usually "
+"used as a session-scoped component representing the current user but is used "
+"in user administration screens as a conversation-scoped component. The "
+"<literal>@Role</literal> annotation lets us define an additional named role "
+"for a component, with a different scope—it lets us bind the same "
+"component class to different context variables. (Any Seam component "
+"<emphasis>instance</emphasis> may be bound to multiple context variables, "
+"but this lets us do it at the class level, and take advantage of auto-"
+"instantiation.)"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:554
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"user\")\n"
+"@Entity\n"
+"@Scope(CONVERSATION)\n"
+"@Role(name=\"currentUser\", scope=SESSION)\n"
+"public class User { \n"
+" ... \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:556
+#, no-c-format
+msgid ""
+"The <literal>@Roles</literal> annotation lets us specify as many additional "
+"roles as we like."
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:560
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"user\")\n"
+"@Entity\n"
+"@Scope(CONVERSATION)\n"
+"@Roles({@Role(name=\"currentUser\", scope=SESSION),\n"
+" @Role(name=\"tempUser\", scope=EVENT)})\n"
+"public class User { \n"
+" ... \n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:565
+#, no-c-format
+msgid "Built-in components"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:566
+#, no-c-format
+msgid ""
+"Like many good frameworks, Seam eats its own dogfood and is implemented "
+"mostly as a set of built-in Seam interceptors (see later) and Seam "
+"components. This makes it easy for applications to interact with built-in "
+"components at runtime or even customize the basic functionality of Seam by "
+"replacing the built-in components with custom implementations. The built-in "
+"components are defined in the Seam namespace <literal>org.jboss.seam.core</"
+"literal> and the Java package of the same name."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:573
+#, no-c-format
+msgid ""
+"The built-in components may be injected, just like any Seam components, but "
+"they also provide convenient static <literal>instance()</literal> methods:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:577
+#, no-c-format
+msgid ""
+"<![CDATA[FacesMessages.instance().add(\"Welcome back, #{user.name}!\");]]>"
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:583
+#, no-c-format
+msgid "Bijection"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:584
+#, no-c-format
+msgid ""
+"<emphasis>Dependency injection</emphasis> or <emphasis>inversion of control</"
+"emphasis> is by now a familiar concept to most Java developers. Dependency "
+"injection allows a component to obtain a reference to another component by "
+"having the container \"inject\" the other component to a setter method or "
+"instance variable. In all dependency injection implementations that we have "
+"seen, injection occurs when the component is constructed, and the reference "
+"does not subsequently change for the lifetime of the component instance. For "
+"stateless components, this is reasonable. From the point of view of a "
+"client, all instances of a particular stateless component are "
+"interchangeable. On the other hand, Seam emphasizes the use of stateful "
+"components. So traditional dependency injection is no longer a very useful "
+"construct. Seam introduces the notion of <emphasis>bijection</emphasis> as a "
+"generalization of injection. In contrast to injection, bijection is:"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:598
+#, no-c-format
+msgid ""
+"<emphasis>contextual</emphasis> - bijection is used to assemble stateful "
+"components from various different contexts (a component from a \"wider\" "
+"context may even have a reference to a component from a \"narrower\" context)"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:605
+#, no-c-format
+msgid ""
+"<emphasis>bidirectional</emphasis> - values are injected from context "
+"variables into attributes of the component being invoked, and also "
+"<emphasis>outjected</emphasis> from the component attributes back out to the "
+"context, allowing the component being invoked to manipulate the values of "
+"contextual variables simply by setting its own instance variables"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:613
+#, no-c-format
+msgid ""
+"<emphasis>dynamic</emphasis> - since the value of contextual variables "
+"changes over time, and since Seam components are stateful, bijection takes "
+"place every time a component is invoked"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:620
+#, no-c-format
+msgid ""
+"In essence, bijection lets you alias a context variable to a component "
+"instance variable, by specifying that the value of the instance variable is "
+"injected, outjected, or both. Of course, we use annotations to enable "
+"bijection."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:626
+#, no-c-format
+msgid ""
+"The <literal>@In</literal> annotation specifies that a value should be "
+"injected, either into an instance variable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:631
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"loginAction\")\n"
+"@Stateless\n"
+"public class LoginAction implements Login { \n"
+" @In User user;\n"
+" ... \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:633
+#, no-c-format
+msgid "or into a setter method:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:637
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"loginAction\")\n"
+"@Stateless\n"
+"public class LoginAction implements Login { \n"
+" User user;\n"
+" \n"
+" @In\n"
+" public void setUser(User user) {\n"
+" this.user=user;\n"
+" }\n"
+" \n"
+" ... \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:640
+#, no-c-format
+msgid ""
+"By default, Seam will do a priority search of all contexts, using the name "
+"of the property or instance variable that is being injected. You may wish to "
+"specify the context variable name explicitly, using, for example, "
+"<literal>@In(\"currentUser\")</literal>."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:646
+#, no-c-format
+msgid ""
+"If you want Seam to create an instance of the component when there is no "
+"existing component instance bound to the named context variable, you should "
+"specify <literal>@In(create=true)</literal>. If the value is optional (it "
+"can be null), specify <literal>@In(required=false)</literal>."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:652
+#, no-c-format
+msgid ""
+"For some components, it can be repetitive to have to specify <literal>@In"
+"(create=true)</literal> everywhere they are used. In such cases, you can "
+"annotate the component <literal>@AutoCreate</literal>, and then it will "
+"always be created, whenever needed, even without the explicit use of "
+"<literal>create=true</literal>."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:658
+#, no-c-format
+msgid "You can even inject the value of an expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:662
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"loginAction\")\n"
+"@Stateless\n"
+"public class LoginAction implements Login { \n"
+" @In(\"#{user.username}\") String username;\n"
+" ... \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:664
+#, no-c-format
+msgid ""
+"Injected values are disinjected (i.e, set to <literal>null</literal>) "
+"immediately after method completion and outjection."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:669
+#, no-c-format
+msgid ""
+"(There is much more information about component lifecycle and injection in "
+"the next chapter.)"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:673
+#, no-c-format
+msgid ""
+"The <literal>@Out</literal> annotation specifies that an attribute should be "
+"outjected, either from an instance variable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:678
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"loginAction\")\n"
+"@Stateless\n"
+"public class LoginAction implements Login { \n"
+" @Out User user;\n"
+" ... \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:680
+#, no-c-format
+msgid "or from a getter method:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:684
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"loginAction\")\n"
+"@Stateless\n"
+"public class LoginAction implements Login { \n"
+" User user;\n"
+" \n"
+" @Out\n"
+" public User getUser() {\n"
+" return user;\n"
+" }\n"
+" \n"
+" ... \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:686
+#, no-c-format
+msgid "An attribute may be both injected and outjected:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:690
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"loginAction\")\n"
+"@Stateless\n"
+"public class LoginAction implements Login { \n"
+" @In @Out User user;\n"
+" ... \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:692
+#, no-c-format
+msgid "<para>or:</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:696
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"loginAction\")\n"
+"@Stateless\n"
+"public class LoginAction implements Login { \n"
+" User user;\n"
+" \n"
+" @In\n"
+" public void setUser(User user) {\n"
+" this.user=user;\n"
+" }\n"
+" \n"
+" @Out\n"
+" public User getUser() {\n"
+" return user;\n"
+" }\n"
+" \n"
+" ... \n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:701
+#, no-c-format
+msgid "Lifecycle methods"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:703
+#, no-c-format
+msgid ""
+"Session bean and entity bean Seam components support all the usual EJB 3.0 "
+"lifecycle callback (<literal>@PostConstruct</literal>, <literal>@PreDestroy</"
+"literal>, etc). But Seam also supports the use of any of these callbacks "
+"with JavaBean components. However, since these annotations are not available "
+"in a J2EE environment, Seam defines two additional component lifecycle "
+"callbacks, equivalent to <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal>."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:711
+#, no-c-format
+msgid ""
+"The <literal>@Create</literal> method is called after Seam instantiates a "
+"component. Components may define only one <literal>@Create</literal> method."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:716
+#, no-c-format
+msgid ""
+"The <literal>@Destroy</literal> method is called when the context that the "
+"Seam component is bound to ends. Components may define only one "
+"<literal>@Destroy</literal> method."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:721
+#, no-c-format
+msgid ""
+"In addition, stateful session bean components <emphasis>must</emphasis> "
+"define a method with no parameters annotated <literal>@Remove</literal>. "
+"This method is called by Seam when the context ends."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:726
+#, no-c-format
+msgid ""
+"Finally, a related annotation is the <literal>@Startup</literal> annotation, "
+"which may be applied to any application or session scoped component. The "
+"<literal>@Startup</literal> annotation tells Seam to instantiate the "
+"component immediately, when the context begins, instead of waiting until it "
+"is first referenced by a client. It is possible to control the order of "
+"instantiation of startup components by specifying <literal>@Startup(depends="
+"{....})</literal>."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:737
+#, no-c-format
+msgid "Conditional installation"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:739
+#, no-c-format
+msgid ""
+"The <literal>@Install</literal> annotation lets you control conditional "
+"installation of components that are required in some deployment scenarios "
+"and not in others. This is useful if:"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:746
+#, no-c-format
+msgid "You want to mock out some infrastructural component in tests."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:751
+#, no-c-format
+msgid ""
+"You want change the implementation of a component in certain deployment "
+"scenarios."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:757
+#, no-c-format
+msgid ""
+"You want to install some components only if their dependencies are available "
+"(useful for framework authors)."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:764
+#, no-c-format
+msgid ""
+"<literal>@Install</literal> works by letting you specify "
+"<emphasis>precedence</emphasis> and <emphasis>dependencies</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:769
+#, no-c-format
+msgid ""
+"The precedence of a component is a number that Seam uses to decide which "
+"component to install when there are multiple classes with the same component "
+"name in the classpath. Seam will choose the component with the higher "
+"precendence. There are some predefined precedence values (in ascending "
+"order):"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:778
+#, no-c-format
+msgid ""
+"<literal>BUILT_IN</literal> — the lowest precedece components are the "
+"components built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:784
+#, no-c-format
+msgid ""
+"<literal>FRAMEWORK</literal> — components defined by third-party "
+"frameworks may override built-in components, but are overridden by "
+"application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:791
+#, no-c-format
+msgid ""
+"<literal>APPLICATION</literal> — the default precedence. This is "
+"appropriate for most application components."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:797
+#, no-c-format
+msgid ""
+"<literal>DEPLOYMENT</literal> — for application components which are "
+"deployment-specific."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:803
+#, no-c-format
+msgid "<literal>MOCK</literal> — for mock objects used in testing."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:809
+#, no-c-format
+msgid ""
+"Suppose we have a component named <literal>messageSender</literal> that "
+"talks to a JMS queue."
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:814
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"messageSender\") \n"
+"public class MessageSender {\n"
+" public void sendMessage() {\n"
+" //do something with JMS\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:816
+#, no-c-format
+msgid ""
+"In our unit tests, we don't have a JMS queue available, so we would like to "
+"stub out this method. We'll create a <emphasis>mock</emphasis> component "
+"that exists in the classpath when unit tests are running, but is never "
+"deployed with the application:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:823
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"messageSender\") \n"
+"@Install(precedence=MOCK)\n"
+"public class MockMessageSender extends MessageSender {\n"
+" public void sendMessage() {\n"
+" //do nothing!\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:825
+#, no-c-format
+msgid ""
+"The <literal>precedence</literal> helps Seam decide which version to use "
+"when it finds both components in the classpath."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:830
+#, no-c-format
+msgid ""
+"This is nice if we are able to control exactly which classes are in the "
+"classpath. But if I'm writing a reusable framework with many dependecies, I "
+"don't want to have to break that framework across many jars. I want to be "
+"able to decide which components to install depending upon what other "
+"components are installed, and upon what classes are available in the "
+"classpath. The <literal>@Install</literal> annotation also controls this "
+"functionality. Seam uses this mechanism internally to enable conditional "
+"installation of many of the built-in components. However, you probably won't "
+"need to use it in your application."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:844
+#, no-c-format
+msgid "Logging"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:846
+#, no-c-format
+msgid "Who is not totally fed up with seeing noisy code like this?"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:850
+#, no-c-format
+msgid ""
+"<![CDATA[private static final Log log = LogFactory.getLog(CreateOrderAction."
+"class);\n"
+" \n"
+"public Order createOrder(User user, Product product, int quantity) {\n"
+" if ( log.isDebugEnabled() ) {\n"
+" log.debug(\"Creating new order for user: \" + user.username() + \n"
+" \" product: \" + product.name() \n"
+" + \" quantity: \" + quantity);\n"
+" }\n"
+" return new Order(user, product, quantity);\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:852
+#, no-c-format
+msgid ""
+"It is difficult to imagine how the code for a simple log message could "
+"possibly be more verbose. There is more lines of code tied up in logging "
+"than in the actual business logic! I remain totally astonished that the Java "
+"community has not come up with anything better in 10 years."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:858
+#, no-c-format
+msgid "Seam provides a logging API that simplifies this code significantly:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:862
+#, no-c-format
+msgid ""
+"<![CDATA[@Logger private Log log;\n"
+" \n"
+"public Order createOrder(User user, Product product, int quantity) {\n"
+" log.debug(\"Creating new order for user: #0 product: #1 quantity: #2\", "
+"user.username(), product.name(), quantity);\n"
+" return new Order(user, product, quantity);\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:864
+#, no-c-format
+msgid ""
+"It doesn't matter if you declare the <literal>log</literal> variable static "
+"or not—it will work either way, except for entity bean components "
+"which require the <literal>log</literal> variable to be static."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:870
+#, no-c-format
+msgid ""
+"Note that we don't need the noisy <literal>if ( log.isDebugEnabled() )</"
+"literal> guard, since string concatenation happens <emphasis>inside</"
+"emphasis> the <literal>debug()</literal> method. Note also that we don't "
+"usually need to specify the log category explicitly, since Seam knows what "
+"component it is injecting the <literal>Log</literal> into."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:885
+#, no-c-format
+msgid ""
+"If <literal>User</literal> and <literal>Product</literal> are Seam "
+"components available in the current contexts, it gets even better:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:890
+#, no-c-format
+msgid ""
+"<![CDATA[@Logger private Log log;\n"
+" \n"
+"public Order createOrder(User user, Product product, int quantity) {\n"
+" log.debug(\"Creating new order for user: #{user.username} product: #"
+"{product.name} quantity: #0\", quantity);\n"
+" return new Order(user, product, quantity);\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:892
+#, no-c-format
+msgid ""
+"Seam logging automagically chooses whether to send output to log4j or JDK "
+"logging. If log4j is in the classpath, Seam with use it. If it is not, Seam "
+"will use JDK logging."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:900
+#, no-c-format
+msgid ""
+"The <literal>Mutable</literal> interface and <literal>@ReadOnly</literal>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:901
+#, no-c-format
+msgid ""
+"Many application servers feature an amazingly broken implementation of "
+"<literal>HttpSession</literal> clustering, where changes to the state of "
+"mutable objects bound to the session are only replicated when the "
+"application calls <literal>setAttribute()</literal> explicitly. This is a "
+"source of bugs that can not effectively be tested for at development time, "
+"since they will only manifest when failover occurs. Furthermore, the actual "
+"replication message contains the entire serialized object graph bound to the "
+"session attribute, which is inefficient."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:910
+#, no-c-format
+msgid ""
+"Of course, EJB stateful session beans must perform automatic dirty checking "
+"and replication of mutable state and a sophisticated EJB container can "
+"introduce optimizations such as attribute-level replication. Unfortunately, "
+"not all Seam users have the good fortune to be working in an environment "
+"that supports EJB 3.0. So, for session and conversation scoped JavaBean and "
+"entity bean components, Seam provides an extra layer of cluster-safe state "
+"management over the top of the web container session clustering."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:918
+#, no-c-format
+msgid ""
+"For session or conversation scoped JavaBean components, Seam automatically "
+"forces replication to occur by calling <literal>setAttribute()</literal> "
+"once in every request that the component was invoked by the application. Of "
+"course, this strategy is inefficient for read-mostly components. You can "
+"control this behavior by implementing the <literal>org.jboss.seam.core."
+"Mutable</literal> interface, or by extending <literal>org.jboss.seam.core."
+"AbstractMutable</literal>, and writing your own dirty-checking logic inside "
+"the component. For example,"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:927
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"account\")\n"
+"public class Account extends AbstractMutable\n"
+"{\n"
+" private BigDecimal balance;\n"
+" \n"
+" public void setBalance(BigDecimal balance)\n"
+" {\n"
+" setDirty(this.balance, balance);\n"
+" this.balance = balance;\n"
+" }\n"
+" \n"
+" public BigDecimal getBalance()\n"
+" {\n"
+" return balance;\n"
+" }\n"
+" \n"
+" ...\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:929
+#, no-c-format
+msgid ""
+"Or, you can use the <literal>@ReadOnly</literal> annotation to achieve a "
+"similar effect:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:933
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"account\")\n"
+"public class Account\n"
+"{\n"
+" private BigDecimal balance;\n"
+" \n"
+" public void setBalance(BigDecimal balance)\n"
+" {\n"
+" this.balance = balance;\n"
+" }\n"
+" \n"
+" @ReadOnly\n"
+" public BigDecimal getBalance()\n"
+" {\n"
+" return balance;\n"
+" }\n"
+" \n"
+" ...\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:935
+#, no-c-format
+msgid ""
+"For session or conversation scoped entity bean components, Seam "
+"automatically forces replication to occur by calling <literal>setAttribute()"
+"</literal> once in every request, <emphasis>unless the (conversation-scoped) "
+"entity is currently associated with a Seam-managed persistence context, in "
+"which case no replication is needed</emphasis>. This strategy is not "
+"necessarily efficient, so session or conversation scope entity beans should "
+"be used with care. You can always write a stateful session bean or JavaBean "
+"component to \"manage\" the entity bean instance. For example,"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:944
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"account\")\n"
+"public class AccountManager extends AbstractMutable\n"
+"{\n"
+" private Account account; // an entity bean\n"
+" \n"
+" @Unwrap\n"
+" public void getAccount()\n"
+" {\n"
+" return account;\n"
+" }\n"
+" \n"
+" ...\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:946
+#, no-c-format
+msgid ""
+"Note that the <literal>EntityHome</literal> class in the Seam Application "
+"Framework provides a great example of managing an entity bean instance using "
+"a Seam component."
+msgstr ""
+
+#. Tag: title
+#: Concepts.xml:954
+#, no-c-format
+msgid "Factory and manager components"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:955
+#, no-c-format
+msgid ""
+"We often need to work with objects that are not Seam components. But we "
+"still want to be able to inject them into our components using <literal>@In</"
+"literal> and use them in value and method binding expressions, etc. "
+"Sometimes, we even need to tie them into the Seam context lifecycle "
+"(<literal>@Destroy</literal>, for example). So the Seam contexts can contain "
+"objects which are not Seam components, and Seam provides a couple of nice "
+"features that make it easier to work with non-component objects bound to "
+"contexts."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:963
+#, no-c-format
+msgid ""
+"The <emphasis>factory component pattern</emphasis> lets a Seam component act "
+"as the instantiator for a non-component object. A <emphasis>factory method</"
+"emphasis> will be called when a context variable is referenced but has no "
+"value bound to it. We define factory methods using the <literal>@Factory</"
+"literal> annotation. The factory method binds a value to the context "
+"variable, and determines the scope of the bound value. There are two styles "
+"of factory method. The first style returns a value, which is bound to the "
+"context by Seam:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:972
+#, no-c-format
+msgid ""
+"<![CDATA[@Factory(scope=CONVERSATION)\n"
+"public List<Customer> getCustomerList() { \n"
+" return ... ;\n"
+"} ]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:974
+#, no-c-format
+msgid ""
+"The second style is a method of type <literal>void</literal> which binds the "
+"value to the context variable itself:"
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:979
+#, no-c-format
+msgid ""
+"<![CDATA[@DataModel List<Customer> customerList;\n"
+"\n"
+"@Factory(\"customerList\")\n"
+"public void initCustomerList() { \n"
+" customerList = ... ;\n"
+"} ]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:981
+#, no-c-format
+msgid ""
+"In both cases, the factory method is called when we reference the "
+"<literal>customerList</literal> context variable and its value is null, and "
+"then has no further part to play in the lifecycle of the value. An even more "
+"powerful pattern is the <emphasis>manager component pattern</emphasis>. In "
+"this case, we have a Seam component that is bound to a context variable, "
+"that manages the value of the context variable, while remaining invisible to "
+"clients."
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:989
+#, no-c-format
+msgid ""
+"A manager component is any component with an <literal>@Unwrap</literal> "
+"method. This method returns the value that will be visable to clients, and "
+"is called <emphasis>every time</emphasis> a context variable is referenced."
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:997
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"customerList\")\n"
+"@Scope(CONVERSATION)\n"
+"public class CustomerListManager\n"
+"{\n"
+" ...\n"
+" \n"
+" @Unwrap\n"
+" public List<Customer> getCustomerList() { \n"
+" return ... ;\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:999
+#, no-c-format
+msgid ""
+"The manager component pattern is especially useful if we have an object "
+"where you need more control over the lifecycle of the component. For "
+"example, if you have a heavyweight object that needs a cleanup operation "
+"when the context ends you could <literal>@Unwrap</literal> the object, and "
+"perform cleanup in the <literal>@Destroy</literal> method of the manager "
+"component."
+msgstr ""
+
+#. Tag: programlisting
+#: Concepts.xml:1006
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"hens\")\n"
+"@Scope(APPLICATION) \n"
+"public class HenHouse {\n"
+" \n"
+" Set<Hen> hens;\n"
+" \n"
+" @In(required=false) Hen hen;\n"
+" \n"
+" @Unwrap\n"
+" public List<Hen> getHens() {\n"
+" if (hens == null) {\n"
+" // Setup our hens\n"
+" }\n"
+" return hens;\n"
+" }\n"
+" \n"
+" @Observer({\"chickBorn\", \"chickenBoughtAtMarket\"})\n"
+" public addHen() {\n"
+" hens.add(hen);\n"
+" }\n"
+" \n"
+" @Observer(\"chickenSoldAtMarket\")\n"
+" public removeHen() {\n"
+" hens.remove(hen);\n"
+" }\n"
+" \n"
+" @Observer(\"foxGetsIn\")\n"
+" public removeAllHens() {\n"
+" hens.clear();\n"
+" }\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Concepts.xml:1008
+#, no-c-format
+msgid ""
+"Here the managed component observes many events which change the underlying "
+"object. The component manages these actions itself, and because the object "
+"is unwrapped on every access, a consistent view is provided."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Configuration.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Configuration.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Configuration.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,1648 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Configuration.xml:5
+#, no-c-format
+msgid "Configuring Seam and packaging Seam applications"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:6
+#, no-c-format
+msgid ""
+"Configuration is a very boring topic and an extremely tedious pastime. "
+"Unfortunately, several lines of XML are required to integrate Seam into your "
+"JSF implementation and servlet container. There's no need to be too put off "
+"by the following sections; you'll never need to type any of this stuff "
+"yourself, since you can just copy and paste from the example applications!"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:12
+#, no-c-format
+msgid "Basic Seam configuration"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:14
+#, no-c-format
+msgid ""
+"First, let's look at the basic configuration that is needed whenever we use "
+"Seam with JSF."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:17
+#, no-c-format
+msgid "Integrating Seam with JSF and your servlet container"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:19
+#, no-c-format
+msgid "Of course, you need a faces servlet!"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:21
+#, no-c-format
+msgid ""
+"<![CDATA[<servlet>\n"
+" <servlet-name>Faces Servlet</servlet-name>\n"
+" <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>\n"
+" <load-on-startup>1</load-on-startup>\n"
+"</servlet>\n"
+"\n"
+"<servlet-mapping>\n"
+" <servlet-name>Faces Servlet</servlet-name>\n"
+" <url-pattern>*.seam</url-pattern>\n"
+"</servlet-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:23
+#, no-c-format
+msgid "(You can adjust the URL pattern to suit your taste.)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:25
+#, no-c-format
+msgid ""
+"In addition, Seam requires the following entry in your <literal>web.xml</"
+"literal> file:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:27
+#, no-c-format
+msgid ""
+"<![CDATA[<listener>\n"
+" <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>\n"
+"</listener>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:29
+#, no-c-format
+msgid ""
+"This listener is responsible for bootstrapping Seam, and for destroying "
+"session and application contexts."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:32
+#, no-c-format
+msgid ""
+"Some JSF implementations have a broken implementation of server-side state "
+"saving that interferes with Seam's conversation propagation. If you have "
+"problems with conversation propagation during form submissions, try "
+"switching to client-side state saving. You'll need this in <literal>web.xml</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:36
+#, no-c-format
+msgid ""
+"<![CDATA[<context-param>\n"
+" <param-name>javax.faces.STATE_SAVING_METHOD</param-name>\n"
+" <param-value>client</param-value>\n"
+"</context-param>]]>"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:41
+#, no-c-format
+msgid "Using facelets"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:43
+#, no-c-format
+msgid ""
+"If you want follow our advice and use facelets instead of JSP, add the "
+"following lines to <literal>faces-config.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:46
+#, no-c-format
+msgid ""
+"<![CDATA[<application>\n"
+" <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+"</application>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:48
+#, no-c-format
+msgid "And the following lines to <literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:50
+#, no-c-format
+msgid ""
+"<![CDATA[<context-param>\n"
+" <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+" <param-value>.xhtml</param-value>\n"
+"</context-param>]]>"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:55
+#, no-c-format
+msgid "Seam Resource Servlet"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:57
+#, no-c-format
+msgid ""
+"The Seam Resource Servlet provides resources used by Seam Remoting, captchas "
+"(see the security chapter) and some JSF UI controls. Configuring the Seam "
+"Resource Servlet requires the following entry in <literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:61
+#, no-c-format
+msgid ""
+"<![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>]]>"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:65
+#, no-c-format
+msgid "Seam servlet filters"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:67
+#, no-c-format
+msgid ""
+"Seam doesn't need any servlet filters for basic operation. However, there "
+"are several features which depend upon the use of filters. To make things "
+"easier, Seam lets you add and configure servlet filters just like you would "
+"configure other built-in Seam components. To take advantage of this feature, "
+"we must first install a master filter in <literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:72
+#, no-c-format
+msgid ""
+"<![CDATA[<filter>\n"
+" <filter-name>Seam Filter</filter-name>\n"
+" <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>\n"
+"</filter>\n"
+"\n"
+"<filter-mapping>\n"
+" <filter-name>Seam Filter</filter-name>\n"
+" <url-pattern>/*</url-pattern>\n"
+"</filter-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:74
+#, no-c-format
+msgid ""
+"The Seam master filter <emphasis>must</emphasis> be the first filter "
+"specified in <literal>web.xml</literal>. This ensures it is run first."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:77
+#, no-c-format
+msgid ""
+"The Seam filters share a number of common attributes, you can set these in "
+"<literal>components.xml</literal> in addition to any parameters discussed "
+"below:"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:85
+#, no-c-format
+msgid ""
+"<literal>url-pattern</literal> — Used to specify which requests are "
+"filtered, the default is all requests. <literal>url-pattern</literal> is a "
+"Tomcat style pattern which allows a wildcard suffix."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:92
+#, no-c-format
+msgid ""
+"<literal>regex-url-pattern</literal> — Used to specify which requests "
+"are filtered, the default is all requests. <literal>regex-url-pattern</"
+"literal> is a true regular expression match for request path. It's worth "
+"noting when composing the regular expression that the request path does not "
+"contain the server or request context path."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:100
+#, no-c-format
+msgid "<literal>disabled</literal> — Used to disable a built in filter."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:106
+#, no-c-format
+msgid "Adding the master filter enables the following built-in filters."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:109
+#, no-c-format
+msgid "Exception handling"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:110
+#, no-c-format
+msgid ""
+"This filter provides the exception mapping functionality in <literal>pages."
+"xml</literal> (almost all applications will need this). It also takes care "
+"of rolling back uncommitted transactions when uncaught exceptions occur. "
+"(According to the Java EE specification, the web container should do this "
+"automatically, but we've found that this behavior cannot be relied upon in "
+"all application servers. And it is certainly not required of plain servlet "
+"engines like Tomcat.)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:116
+#, no-c-format
+msgid ""
+"By default, the exception handling filter will process all requests, however "
+"this behavior may be adjusted by adding a <literal><web:exception-"
+"filter></literal> entry to <literal>components.xml</literal>, as shown in "
+"this example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:120
+#, no-c-format
+msgid ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+" xmlns:web=\"http://jboss.com/products/seam/web\">\n"
+"\n"
+" <web:exception-filter url-pattern=\"*.seam\"/>\n"
+"\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:126
+#, no-c-format
+msgid "Conversation propagation with redirects"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:127
+#, no-c-format
+msgid ""
+"This filter allows Seam to propagate the conversation context across browser "
+"redirects. It intercepts any browser redirects and adds a request parameter "
+"that specifies the Seam conversation identifier."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:131
+#, no-c-format
+msgid ""
+"The redirect filter will process all requests by default, but this behavior "
+"can also be adjusted in <literal>components.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:134
+#, no-c-format
+msgid "<![CDATA[<web:redirect-filter url-pattern=\"*.seam\"/>]]>"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:138
+#, no-c-format
+msgid "Multipart form submissions"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:139
+#, no-c-format
+msgid ""
+"This feature is necessary when using the Seam file upload JSF control. It "
+"detects multipart form requests and processes them according to the "
+"multipart/form-data specification (RFC-2388). To override the default "
+"settings, add the following entry to <literal>components.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:143
+#, no-c-format
+msgid ""
+"<![CDATA[<web:multipart-filter create-temp-files=\"true\" \n"
+" max-request-size=\"1000000\" \n"
+" url-pattern=\"*.seam\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:147
+#, no-c-format
+msgid ""
+"<literal>create-temp-files</literal> — If set to <literal>true</"
+"literal>, uploaded files are written to a temporary file (instead of held in "
+"memory). This may be an important consideration if large file uploads are "
+"expected. The default setting is <literal>false</literal>."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:154
+#, no-c-format
+msgid ""
+"<literal>max-request-size</literal> — If the size of a file upload "
+"request (determined by reading the <literal>Content-Length</literal> header "
+"in the request) exceeds this value, the request will be aborted. The default "
+"setting is 0 (no size limit)."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:163
+#, no-c-format
+msgid "Character encoding"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:164
+#, no-c-format
+msgid "Sets the character encoding of submitted form data."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:166 Configuration.xml:261
+#, no-c-format
+msgid ""
+"This filter is not installed by default and requires an entry in "
+"<literal>components.xml</literal> to enable it:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:169
+#, no-c-format
+msgid ""
+"<![CDATA[<web:character-encoding-filter encoding=\"UTF-16\" \n"
+" override-client=\"true\" \n"
+" url-pattern=\"*.seam\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:173
+#, no-c-format
+msgid "<literal>encoding</literal> — The encoding to use."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:177
+#, no-c-format
+msgid ""
+"<literal>override-client</literal> — If this is set to <literal>true</"
+"literal>, the request encoding will be set to whatever is specified by "
+"<literal>encoding</literal> no matter whether the request already specifies "
+"an encoding or not. If set to <literal>false</literal>, the request encoding "
+"will only be set if the request doesn't already specify an encoding. The "
+"default setting is <literal>false</literal>."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:188
+#, no-c-format
+msgid "RichFaces"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:190
+#, no-c-format
+msgid ""
+"If RichFaces is used in your project, Seam will install the RichFaces Ajax "
+"filter for you, making sure to install it before all other built-in filters. "
+"You don't need to install the RichFaces Ajax filter in <literal>web.xml</"
+"literal> yourself."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:198
+#, no-c-format
+msgid ""
+"The RichFaces Ajax filter is only installed if the RichFaces jars are "
+"present in your project."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:203
+#, no-c-format
+msgid ""
+"To override the default settings, add the following entry to "
+"<literal>components.xml</literal>. The options are the same as those "
+"specified in the RichFaces Developer Guide:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:206
+#, no-c-format
+msgid ""
+"<![CDATA[<web:ajax4jsf-filter force-parser=\"true\" \n"
+" enable-cache=\"true\" \n"
+" log4j-init-file=\"custom-log4j.xml\"\n"
+" url-pattern=\"*.seam\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:209
+#, no-c-format
+msgid ""
+"<literal>force-parser</literal> — forces all JSF pages to be validated "
+"by Richfaces's XML syntax checker. If <literal>false</literal>, only AJAX "
+"responses are validated and converted to well-formed XML. Setting "
+"<literal>force-parser</literal> to <literal>false</literal> improves "
+"performance, but can provide visual artifacts on AJAX updates."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:217
+#, no-c-format
+msgid ""
+"<literal>enable-cache</literal> — enables caching of framework-"
+"generated resources (e.g. javascript, CSS, images, etc). When developing "
+"custom javascript or CSS, setting to true prevents the browser from caching "
+"the resource."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:223
+#, no-c-format
+msgid ""
+"<literal>log4j-init-file</literal> — is used to setup per-application "
+"logging. A path, relative to web application context, to the log4j.xml "
+"configuration file should be provided."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:233
+#, no-c-format
+msgid "Identity Logging"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:235
+#, no-c-format
+msgid ""
+"This filter adds the authenticated user name to the log4j mapped diagnostic "
+"context so that it can be included in formatted log output if desired, by "
+"adding %X{username} to the pattern."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:241
+#, no-c-format
+msgid ""
+"By default, the logging filter will process all requests, however this "
+"behavior may be adjusted by adding a <literal><web:logging-filter></"
+"literal> entry to <literal>components.xml</literal>, as shown in this "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:245
+#, no-c-format
+msgid ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+" xmlns:web=\"http://jboss.com/products/seam/web\">\n"
+" <web:logging-filter url-pattern=\"*.seam\"/>\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:250
+#, no-c-format
+msgid "Context management for custom servlets"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:251
+#, no-c-format
+msgid ""
+"Requests sent direct to some servlet other than the JSF servlet are not "
+"processed through the JSF lifecycle, so Seam provides a servlet filter that "
+"can be applied to any other servlet that needs access to Seam components."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:255
+#, no-c-format
+msgid ""
+"This filter allows custom servlets to interact with the Seam contexts. It "
+"sets up the Seam contexts at the beginning of each request, and tears them "
+"down at the end of the request. You should make sure that this filter is "
+"<emphasis>never</emphasis> applied to the JSF <literal>FacesServlet</"
+"literal>. Seam uses the phase listener for context management in a JSF "
+"request."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:264
+#, no-c-format
+msgid "<![CDATA[<web:context-filter url-pattern=\"/media/*\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:266
+#, no-c-format
+msgid ""
+"The context filter expects to find the conversation id of any conversation "
+"context in a request parameter named <literal>conversationId</literal>. You "
+"are responsible for ensuring that it gets sent in the request."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:270
+#, no-c-format
+msgid ""
+"You are also responsible for ensuring propagation of any new conversation id "
+"back to the client. Seam exposes the conversation id as a property of the "
+"built in component <literal>conversation</literal>."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:277
+#, no-c-format
+msgid "Adding custom filters"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:278
+#, no-c-format
+msgid ""
+"Seam can install your filters for you, allowing you to specify "
+"<emphasis>where</emphasis> in the chain your filter is placed (the servlet "
+"specification doesn't provide a well defined order if you specify your "
+"filters in a <literal>web.xml</literal>). Just add the <literal>@Filter</"
+"literal> annotation to your Seam component (which must implement "
+"<literal>javax.servlet.Filter</literal>):"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:283
+#, no-c-format
+msgid ""
+"<![CDATA[@Startup\n"
+"@Scope(APPLICATION)\n"
+"@Name(\"org.jboss.seam.web.multipartFilter\")\n"
+"@BypassInterceptors\n"
+"@Filter(within=\"org.jboss.seam.web.ajax4jsfFilter\")\n"
+"public class MultipartFilter extends AbstractFilter {]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:285
+#, no-c-format
+msgid ""
+"Adding the <literal>@Startup</literal> annotation means thar the component "
+"is available during Seam startup; bijection isn't available here "
+"(<literal>@BypassInterceptors</literal>); and the filter should be further "
+"down the chain than the RichFaces filter (<literal>@Filter(within=\"org."
+"jboss.seam.web.ajax4jsfFilter\")</literal>)."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:294
+#, no-c-format
+msgid "Integrating Seam with your EJB container"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:296
+#, no-c-format
+msgid ""
+"We need to apply the <literal>SeamInterceptor</literal> to our Seam "
+"components. The simplest way to do this across an entire application is to "
+"add the following interceptor configuration in <literal>ejb-jar.xml</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:300
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <interceptor>\n"
+" <interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-"
+"class>\n"
+" </interceptor>\n"
+"</interceptors>\n"
+" \n"
+"<assembly-descriptor>\n"
+" <interceptor-binding>\n"
+" <ejb-name>*</ejb-name>\n"
+" <interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-"
+"class>\n"
+" </interceptor-binding>\n"
+"</assembly-descriptor>\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:302
+#, no-c-format
+msgid ""
+"Seam needs to know where to go to find session beans in JNDI. One way to do "
+"this is specify the <literal>@JndiName</literal> annotation on every session "
+"bean Seam component. However, this is quite tedious. A better approach is to "
+"specify a pattern that Seam can use to calculate the JNDI name from the EJB "
+"name. Unfortunately, there is no standard mapping to global JNDI defined in "
+"the EJB3 specification, so this mapping is vendor-specific. We usually "
+"specify this option in <literal>components.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:308
+#, no-c-format
+msgid "For JBoss AS, the following pattern is correct:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:310
+#, no-c-format
+msgid "<![CDATA[<core:init jndi-name=\"myEarName/#{ejbName}/local\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:312
+#, no-c-format
+msgid ""
+"Where <literal>myEarName</literal> is the name of the EAR in which the bean "
+"is deployed."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:314
+#, no-c-format
+msgid ""
+"Outside the context of an EAR (when using the JBoss Embeddable EJB3 "
+"container), the following pattern is the one to use:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:317
+#, no-c-format
+msgid "<![CDATA[<core:init jndi-name=\"#{ejbName}/local\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:319
+#, no-c-format
+msgid ""
+"You'll have to experiment to find the right setting for other application "
+"servers. Note that some servers (such as GlassFish) require you to specify "
+"JNDI names for all EJB components explicitly (and tediously). In this case, "
+"you can pick your own pattern ;-)"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:323
+#, no-c-format
+msgid ""
+"In an EJB3 environment, we recommend the use of a special built-in component "
+"for transaction management, that is fully aware of container transactions, "
+"and can correctly process transaction success events registered with the "
+"<literal>Events</literal> component. If you don't add this line to your "
+"<literal>components.xml</literal> file, Seam won't know when container-"
+"managed transactions end:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:330
+#, no-c-format
+msgid "<![CDATA[<transaction:ejb-transaction/>]]>"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:335
+#, no-c-format
+msgid "Don't forget!"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:337
+#, no-c-format
+msgid ""
+"There is one final item you need to know about. You must place a "
+"<literal>seam.properties</literal>, <literal>META-INF/seam.properties</"
+"literal> or <literal>META-INF/components.xml</literal> file in any archive "
+"in which your Seam components are deployed (even an empty properties file "
+"will do). At startup, Seam will scan any archives with <literal>seam."
+"properties</literal> files for seam components."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:342
+#, no-c-format
+msgid ""
+"In a web archive (WAR) file, you must place a <literal>seam.properties</"
+"literal> file in the <literal>WEB-INF/classes</literal> directory if you "
+"have any Seam components included here."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:345
+#, no-c-format
+msgid ""
+"That's why all the Seam examples have an empty <literal>seam.properties</"
+"literal> file. You can't just delete this file and expect everything to "
+"still work!"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:348
+#, no-c-format
+msgid ""
+"You might think this is silly and what kind of idiot framework designers "
+"would make an empty file affect the behavior of their software?? Well, this "
+"is a workaround for a limitation of the JVM—if we didn't use this "
+"mechanism, our next best option would be to force you to list every "
+"component explicitly in <literal>components.xml</literal>, just like some "
+"other competing frameworks do! I think you'll like our way better."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:359
+#, no-c-format
+msgid "Using Alternate JPA Providers"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:361
+#, no-c-format
+msgid ""
+"Seam comes packaged and configured with Hibernate as the default JPA "
+"provider. If you require using a different JPA provider you must tell "
+"<literal>seam</literal> about it."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:367
+#, no-c-format
+msgid "This is a workaround"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:368
+#, no-c-format
+msgid ""
+"Configuration of the JPA provider will be easier in the future and will not "
+"require configuration changes, unless you are adding a custom persistence "
+"provider implementation."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:375
+#, no-c-format
+msgid ""
+"Telling seam about a different JPA provider can be be done in one of two "
+"ways:"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:376
+#, no-c-format
+msgid ""
+"Update your application's <literal>components.xml</literal> so that the "
+"generic <literal>PersistenceProvider</literal> takes precedence over the "
+"hibernate version. Simply add the following to the file:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:381
+#, no-c-format
+msgid ""
+"<![CDATA[<component name=\"org.jboss.seam.persistence.persistenceProvider"
+"\" \n"
+" class=\"org.jboss.seam.persistence.PersistenceProvider\"\n"
+" scope=\"stateless\">\n"
+"</component>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:382
+#, no-c-format
+msgid ""
+"If you want to take advantage of your JPA provider's non-standard features "
+"you will need to write you own implementation of the "
+"<literal>PersistenceProvider</literal>. Use "
+"<literal>HibernatePersistenceProvider</literal> as a starting point (don't "
+"forget to give back to the community :). Then you will need to tell "
+"<literal>seam</literal> to use it as before."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:389
+#, no-c-format
+msgid ""
+"<![CDATA[<component name=\"org.jboss.seam.persistence.persistenceProvider"
+"\" \n"
+" class=\"org.your.package.YourPersistenceProvider\">\n"
+"</component>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:390
+#, no-c-format
+msgid ""
+"All that is left is updating the <literal>persistence.xml</literal> file "
+"with the correct provider class, and what ever properties your provider "
+"needs. Don't forget to package your new provider's jar files in the "
+"application if they are needed."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:398
+#, no-c-format
+msgid "Configuring Seam in Java EE 5"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:409
+#, no-c-format
+msgid ""
+"If you're running in a Java EE 5 environment, this is all the configuration "
+"required to start using Seam!"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:412 Configuration.xml:507 Configuration.xml:623
+#: Configuration.xml:656
+#, no-c-format
+msgid "Packaging"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:414
+#, no-c-format
+msgid ""
+"Once you've packaged all this stuff together into an EAR, the archive "
+"structure will look something like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:417
+#, no-c-format
+msgid ""
+"<![CDATA[my-application.ear/\n"
+" jboss-seam.jar\n"
+" lib/\n"
+" jboss-el.jar\n"
+" META-INF/\n"
+" MANIFEST.MF\n"
+" application.xml\n"
+" my-application.war/\n"
+" META-INF/\n"
+" MANIFEST.MF\n"
+" WEB-INF/\n"
+" web.xml\n"
+" components.xml\n"
+" faces-config.xml\n"
+" lib/\n"
+" jsf-facelets.jar\n"
+" jboss-seam-ui.jar\n"
+" login.jsp\n"
+" register.jsp\n"
+" ...\n"
+" my-application.jar/\n"
+" META-INF/\n"
+" MANIFEST.MF\n"
+" persistence.xml\n"
+" seam.properties\n"
+" org/\n"
+" jboss/\n"
+" myapplication/\n"
+" User.class\n"
+" Login.class\n"
+" LoginBean.class\n"
+" Register.class\n"
+" RegisterBean.class\n"
+" ...]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:419
+#, no-c-format
+msgid ""
+"You should declare <literal>jboss-seam.jar</literal> as an ejb module in "
+"<literal>META-INF/application.xml</literal>; <literal>jboss-el.jar</literal> "
+"should be placed in the EAR's lib directory (putting it in the EAR classpath."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:424
+#, no-c-format
+msgid ""
+"If you want to use jBPM or Drools, you must include the needed jars in the "
+"EAR's lib directory."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:426
+#, no-c-format
+msgid ""
+"If you want to use facelets (our recommendation), you must include "
+"<literal>jsf-facelets.jar</literal> in the <literal>WEB-INF/lib</literal> "
+"directory of the WAR."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:429
+#, no-c-format
+msgid ""
+"If you want to use the Seam tag library (most Seam applications do), you "
+"must include <literal>jboss-seam-ui.jar</literal> in the <literal>WEB-INF/"
+"lib</literal> directory of the WAR. If you want to use the PDF or email tag "
+"libraries, you need to put <literal>jboss-seam-pdf.jar</literal> or "
+"<literal>jboss-seam-mail.jar</literal> in <literal>WEB-INF/lib</literal>."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:434
+#, no-c-format
+msgid ""
+"If you want to use the Seam debug page (only works for applications using "
+"facelets), you must include <literal>jboss-seam-debug.jar</literal> in the "
+"<literal>WEB-INF/lib</literal> directory of the WAR."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:437
+#, no-c-format
+msgid ""
+"Seam ships with several example applications that are deployable in any Java "
+"EE container that supports EJB 3.0."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:440
+#, no-c-format
+msgid ""
+"I really wish that was all there was to say on the topic of configuration "
+"but unfortunately we're only about a third of the way there. If you're too "
+"overwhelmed by all this tedious configuration stuff, feel free to skip over "
+"the rest of this section and come back to it later."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:449
+#, no-c-format
+msgid "Configuring Seam in J2EE"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:451
+#, no-c-format
+msgid ""
+"Seam is useful even if you're not yet ready to take the plunge into EJB 3.0. "
+"In this case you would use Hibernate3 or JPA instead of EJB 3.0 persistence, "
+"and plain JavaBeans instead of session beans. You'll miss out on some of the "
+"nice features of session beans but it will be very easy to migrate to EJB "
+"3.0 when you're ready and, in the meantime, you'll be able to take advantage "
+"of Seam's unique declarative state management architecture."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:466
+#, no-c-format
+msgid ""
+"Seam JavaBean components do not provide declarative transaction demarcation "
+"like session beans do. You <emphasis>could</emphasis> manage your "
+"transactions manually using the JTA <literal>UserTransaction</literal> or "
+"declaratively using Seam's <literal>@Transactional</literal> annotation. But "
+"most applications will just use Seam managed transactions when using "
+"Hibernate with JavaBeans."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:472
+#, no-c-format
+msgid ""
+"The Seam distribution includes a version of the booking example application "
+"that uses Hibernate3 and JavaBeans instead of EJB3, and another version that "
+"uses JPA and JavaBeans. These example applications are ready to deploy into "
+"any J2EE application server."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:477
+#, no-c-format
+msgid "Boostrapping Hibernate in Seam"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:479
+#, no-c-format
+msgid ""
+"Seam will bootstrap a Hibernate <literal>SessionFactory</literal> from your "
+"<literal>hibernate.cfg.xml</literal> file if you install a built-in "
+"component:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:482
+#, no-c-format
+msgid ""
+"<![CDATA[<persistence:hibernate-session-factory name="
+"\"hibernateSessionFactory\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:484
+#, no-c-format
+msgid ""
+"You will also need to configure a <emphasis>managed session</emphasis> if "
+"you want a Seam managed Hibernate <literal>Session</literal> to be available "
+"via injection."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:487
+#, no-c-format
+msgid ""
+"<![CDATA[<persistence:managed-hibernate-session name=\"hibernateSession\"\n"
+" session-factory=\"#{hibernateSessionFactory}\"/"
+">]]>"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:492
+#, no-c-format
+msgid "Boostrapping JPA in Seam"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:494
+#, no-c-format
+msgid ""
+"Seam will bootstrap a JPA <literal>EntityManagerFactory</literal> from your "
+"<literal>persistence.xml</literal> file if you install this built-in "
+"component:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:497
+#, no-c-format
+msgid ""
+"<![CDATA[<persistence:entity-manager-factory name=\"entityManagerFactory\"/"
+">]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:499
+#, no-c-format
+msgid ""
+"You will also need to configure a <emphasis>managed persistence context</"
+"emphasis> if you want a Seam managed JPA <literal>EntityManager</literal> to "
+"be available via injection."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:502
+#, no-c-format
+msgid ""
+"<![CDATA[<persistence:managed-persistence-context name=\"entityManager\"\n"
+" entity-manager-factory=\"#{entityManagerFactory}"
+"\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:509
+#, no-c-format
+msgid "We can package our application as a WAR, in the following structure:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:511
+#, no-c-format
+msgid ""
+"<![CDATA[my-application.war/\n"
+" META-INF/\n"
+" MANIFEST.MF\n"
+" WEB-INF/\n"
+" web.xml\n"
+" components.xml\n"
+" faces-config.xml\n"
+" lib/\n"
+" jboss-seam.jar\n"
+" jboss-seam-ui.jar\n"
+" jboss-el.jar\n"
+" jsf-facelets.jar\n"
+" hibernate3.jar\n"
+" hibernate-annotations.jar\n"
+" hibernate-validator.jar\n"
+" ...\n"
+" my-application.jar/\n"
+" META-INF/\n"
+" MANIFEST.MF\n"
+" seam.properties\n"
+" hibernate.cfg.xml\n"
+" org/\n"
+" jboss/\n"
+" myapplication/\n"
+" User.class\n"
+" Login.class\n"
+" Register.class\n"
+" ...\n"
+" login.jsp\n"
+" register.jsp\n"
+" ...]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:513
+#, no-c-format
+msgid ""
+"If we want to deploy Hibernate in a non-EE environment like Tomcat or "
+"TestNG, we need to do a little bit more work."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:520
+#, no-c-format
+msgid "Configuring Seam in Java SE, without JBoss Embedded"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:522
+#, no-c-format
+msgid ""
+"It is possible to use Seam completely outside of an EE environment. In this "
+"case, you need to tell Seam how to manage transactions, since there will be "
+"no JTA available. If you're using JPA, you can tell Seam to use JPA resource-"
+"local transactions, ie. <literal>EntityTransaction</literal>, like so:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:526
+#, no-c-format
+msgid ""
+"<![CDATA[<transaction:entity-transaction entity-manager=\"#{entityManager}\"/"
+">]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:528
+#, no-c-format
+msgid ""
+"If you're using Hibernate, you can tell Seam to use the Hibernate "
+"transaction API like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:530
+#, no-c-format
+msgid "<![CDATA[<transaction:hibernate-transaction session=\"#{session}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:532
+#, no-c-format
+msgid "Of course, you'll also need to define a datasource."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:534
+#, no-c-format
+msgid ""
+"A better alternative is to use JBoss Embedded to get access to the EE APIs."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:539
+#, no-c-format
+msgid "Configuring Seam in Java SE, with JBoss Embedded"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:541
+#, no-c-format
+msgid ""
+"JBoss Embedded lets you run EJB3 components outside the context of the Java "
+"EE 5 application server. This is especially, but not only, useful for "
+"testing."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:544
+#, no-c-format
+msgid ""
+"The Seam booking example application includes a TestNG integration test "
+"suite that runs on JBoss Embedded via <literal>SeamTest</literal>."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:556
+#, no-c-format
+msgid "The booking example application may even be deployed to Tomcat."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:568
+#, no-c-format
+msgid "Installing Embedded JBoss"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:571
+#, no-c-format
+msgid ""
+"Embedded JBoss must by installed into Tomcat for Seam applications to run "
+"correctly on it. Embedded JBoss only runs on JDK 1.5 (not JDK 1.6). Embedded "
+"JBoss can be downloaded <ulink url=\"http://sourceforge.net/project/"
+"showfiles.php?group_id=22866&package_id=228977\">here</ulink>. The "
+"process for installing Embedded JBoss into Tomcat 6 is quite simple. First, "
+"you should copy the Embedded JBoss JARs and configuration files into Tomcat."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:584
+#, no-c-format
+msgid ""
+"Copy all files and directories under the Embedded JBoss <literal>bootstrap</"
+"literal> and <literal>lib</literal> directories, except for the "
+"<literal>jndi.properties</literal> file, into the Tomcat <literal>lib</"
+"literal> directory."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:591
+#, no-c-format
+msgid ""
+"Remove the <literal>annotations-api.jar</literal> file from the Tomcat "
+"<literal>lib</literal> directory."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:597
+#, no-c-format
+msgid ""
+"Next, two configuration files need to be updated to add Embedded JBoss-"
+"specific functionality."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:603
+#, no-c-format
+msgid ""
+"Add the Embedded JBoss listener to <literal>conf/server.xml</literal>. It "
+"should appear after all other listeners in the file."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:606
+#, no-c-format
+msgid ""
+"<![CDATA[<Listener className=\"org.jboss.embedded.tomcat."
+"EmbeddedJBossBootstrapListener\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:610
+#, no-c-format
+msgid ""
+"WAR file scanning should be enabled by adding a listener to <literal>conf/"
+"context.xml</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:613
+#, no-c-format
+msgid ""
+"<![CDATA[<Listener className=\"org.jboss.embedded.tomcat.WebinfScanner\">]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:617
+#, no-c-format
+msgid ""
+"For more configuration options, please see the Embedded JBoss Tomcat "
+"integration <ulink url=\"http://wiki.jboss.org/wiki/Wiki.jsp?"
+"page=EmbeddedAndTomcat\">wiki entry</ulink>."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:625
+#, no-c-format
+msgid ""
+"The archive structure of a WAR-based deployment on an servlet engine like "
+"Tomcat will look something like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:628
+#, no-c-format
+msgid ""
+"<![CDATA[my-application.war/\n"
+" META-INF/\n"
+" MANIFEST.MF\n"
+" WEB-INF/\n"
+" web.xml\n"
+" components.xml\n"
+" faces-config.xml\n"
+" lib/\n"
+" jboss-seam.jar\n"
+" jboss-seam-ui.jar\n"
+" jboss-el.jar\n"
+" jsf-facelets.jar\n"
+" jsf-api.jar\n"
+" jsf-impl.jar\n"
+" ...\n"
+" my-application.jar/\n"
+" META-INF/\n"
+" MANIFEST.MF\n"
+" persistence.xml\n"
+" seam.properties\n"
+" org/\n"
+" jboss/\n"
+" myapplication/\n"
+" User.class\n"
+" Login.class\n"
+" LoginBean.class\n"
+" Register.class\n"
+" RegisterBean.class\n"
+" ...\n"
+" login.jsp\n"
+" register.jsp\n"
+" ...]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:630
+#, no-c-format
+msgid ""
+"Most of the Seam example applications may be deployed to Tomcat by running "
+"<literal>ant deploy.tomcat</literal>."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:638
+#, no-c-format
+msgid "Configuring jBPM in Seam"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:639
+#, no-c-format
+msgid ""
+"Seam's jBPM integration is not installed by default, so you'll need to "
+"enable jBPM by installing a built-in component. You'll also need to "
+"explicitly list your process and pageflow definitions. In "
+"<literal>components.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:643
+#, no-c-format
+msgid ""
+"<![CDATA[<bpm:jbpm>\n"
+" <bpm:pageflow-definitions>\n"
+" <value>createDocument.jpdl.xml</value>\n"
+" <value>editDocument.jpdl.xml</value>\n"
+" <value>approveDocument.jpdl.xml</value>\n"
+" </bpm:pageflow-definitions>\n"
+" <bpm:process-definitions>\n"
+" <value>documentLifecycle.jpdl.xml</value>\n"
+" </bpm:process-definitions>\n"
+"</bpm:jbpm>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:645
+#, no-c-format
+msgid ""
+"No further special configuration is needed if you only have pageflows. If "
+"you do have business process definitions, you need to provide a jBPM "
+"configuration, and a Hibernate configuration for jBPM. The Seam DVD Store "
+"demo includes example <literal>jbpm.cfg.xml</literal> and <literal>hibernate."
+"cfg.xml</literal> files that will work with Seam:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:650
+#, no-c-format
+msgid ""
+"<![CDATA[<jbpm-configuration>\n"
+"\n"
+" <jbpm-context>\n"
+" <service name=\"persistence\">\n"
+" <factory>\n"
+" <bean class=\"org.jbpm.persistence.db.DbPersistenceServiceFactory"
+"\">\n"
+" <field name=\"isTransactionEnabled\"><false/></field>\n"
+" </bean>\n"
+" </factory>\n"
+" </service>\n"
+" <service name=\"tx\" factory=\"org.jbpm.tx.TxServiceFactory\" />\n"
+" <service name=\"message\" factory=\"org.jbpm.msg.db."
+"DbMessageServiceFactory\" />\n"
+" <service name=\"scheduler\" factory=\"org.jbpm.scheduler.db."
+"DbSchedulerServiceFactory\" />\n"
+" <service name=\"logging\" factory=\"org.jbpm.logging.db."
+"DbLoggingServiceFactory\" />\n"
+" <service name=\"authentication\" \n"
+" factory=\"org.jbpm.security.authentication."
+"DefaultAuthenticationServiceFactory\" />\n"
+" </jbpm-context>\n"
+"\n"
+"</jbpm-configuration>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:652
+#, no-c-format
+msgid ""
+"The most important thing to notice here is that jBPM transaction control is "
+"disabled. Seam or EJB3 should control the JTA transactions."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:658
+#, no-c-format
+msgid ""
+"There is not yet any well-defined packaging format for jBPM configuration "
+"and process/pageflow definition files. In the Seam examples we've decided to "
+"simply package all these files into the root of the EAR. In future, we will "
+"probably design some other standard packaging format. So the EAR looks "
+"something like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:663
+#, no-c-format
+msgid ""
+"<![CDATA[my-application.ear/\n"
+" jboss-seam.jar\n"
+" lib/\n"
+" jboss-el.jar\n"
+" jbpm-3.1.jar\n"
+" META-INF/\n"
+" MANIFEST.MF\n"
+" application.xml\n"
+" my-application.war/\n"
+" META-INF/\n"
+" MANIFEST.MF\n"
+" WEB-INF/\n"
+" web.xml\n"
+" components.xml\n"
+" faces-config.xml\n"
+" lib/\n"
+" jsf-facelets.jar\n"
+" jboss-seam-ui.jar\n"
+" login.jsp\n"
+" register.jsp\n"
+" ...\n"
+" my-application.jar/\n"
+" META-INF/\n"
+" MANIFEST.MF\n"
+" persistence.xml\n"
+" seam.properties\n"
+" org/\n"
+" jboss/\n"
+" myapplication/\n"
+" User.class\n"
+" Login.class\n"
+" LoginBean.class\n"
+" Register.class\n"
+" RegisterBean.class\n"
+" ...\n"
+" jbpm.cfg.xml\n"
+" hibernate.cfg.xml\n"
+" createDocument.jpdl.xml\n"
+" editDocument.jpdl.xml\n"
+" approveDocument.jpdl.xml\n"
+" documentLifecycle.jpdl.xml]]>"
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:670
+#, no-c-format
+msgid "Configuring SFSB and Session Timeouts in JBoss AS"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:672
+#, no-c-format
+msgid ""
+"It is very important that the timeout for Stateful Session Beans is set "
+"higher than the timeout for HTTP Sessions, otherwise SFSB's may time out "
+"before the user's HTTP session has ended. JBoss Application Server has a "
+"default session bean timeout of 30 minutes, which is configured in "
+"<literal>server/default/conf/standardjboss.xml</literal> (replace "
+"<emphasis>default</emphasis> with your own configuration)."
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:678
+#, no-c-format
+msgid ""
+"The default SFSB timeout can be adjusted by modifying the value of "
+"<literal>max-bean-life</literal> in the "
+"<literal>LRUStatefulContextCachePolicy</literal> cache configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:681
+#, no-c-format
+msgid ""
+"<![CDATA[<container-cache-conf>\n"
+" <cache-policy>org.jboss.ejb.plugins.LRUStatefulContextCachePolicy</cache-"
+"policy>\n"
+" <cache-policy-conf>\n"
+" <min-capacity>50</min-capacity>\n"
+" <max-capacity>1000000</max-capacity>\n"
+" <remover-period>1800</remover-period>\n"
+"\n"
+" <!-- SFSB timeout in seconds; 1800 seconds == 30 minutes -->\n"
+" <max-bean-life>1800</max-bean-life> \n"
+"\n"
+" <overager-period>300</overager-period>\n"
+" <max-bean-age>600</max-bean-age>\n"
+" <resizer-period>400</resizer-period>\n"
+" <max-cache-miss-period>60</max-cache-miss-period>\n"
+" <min-cache-miss-period>1</min-cache-miss-period>\n"
+" <cache-load-factor>0.75</cache-load-factor>\n"
+" </cache-policy-conf>\n"
+"</container-cache-conf>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:683
+#, no-c-format
+msgid ""
+"The default HTTP session timeout can be modified in <literal>server/default/"
+"deploy/jbossweb-tomcat55.sar/conf/web.xml</literal> for JBoss 4.0.x, or in "
+"<literal>server/default/deploy/jboss-web.deployer/conf/web.xml</literal> for "
+"JBoss 4.2.x. The following entry in this file controls the default session "
+"timeout for all web applications:"
+msgstr ""
+
+#. Tag: programlisting
+#: Configuration.xml:688
+#, no-c-format
+msgid ""
+"<![CDATA[<session-config>\n"
+" <!-- HTTP Session timeout, in minutes -->\n"
+" <session-timeout>30</session-timeout>\n"
+"</session-config>]]>"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:690
+#, no-c-format
+msgid ""
+"To override this value for your own application, simply include this entry "
+"in your application's own <literal>web.xml</literal>."
+msgstr ""
+
+#. Tag: title
+#: Configuration.xml:696
+#, no-c-format
+msgid "Running Seam in a Portlet"
+msgstr ""
+
+#. Tag: para
+#: Configuration.xml:698
+#, no-c-format
+msgid ""
+"If you want to run your Seam application in a portlet, take a look at the "
+"JBoss Portlet Bridge, an implementation of JSR-301 that supports JSF within "
+"a portlet, with extensions for Seam and RichFaces. See <ulink url=\"http://"
+"labs.jboss.com/portletbridge\">http://labs.jboss.com/portletbridge</ulink> "
+"for more."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Controls.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Controls.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Controls.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,1441 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Controls.xml:5
+#, no-c-format
+msgid "Seam JSF controls"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:6
+#, no-c-format
+msgid ""
+"Seam includes a number of JSF controls that are useful for working with "
+"Seam. These are intended to complement the built-in JSF controls, and "
+"controls from other third-party libraries. We recommend JBoss RichFaces, and "
+"Apache MyFaces Trinidad tag libraries for use with Seam. We do not recommend "
+"the use of the Tomahawk tag library."
+msgstr ""
+
+#. Tag: title
+#: Controls.xml:15
+#, no-c-format
+msgid "Tags"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:17
+#, no-c-format
+msgid ""
+"To use these tags, define the \"<literal>s</literal>\" namespace in your "
+"page as follows (facelets only):"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:22
+#, no-c-format
+msgid ""
+"<![CDATA[<html xmlns=\"http://www.w3.org/1999/xhtml\"\n"
+" xmlns:s=\"http://jboss.com/products/seam/taglib\">]]>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:24
+#, no-c-format
+msgid "The ui example demonstrates the use of a number of these tags."
+msgstr ""
+
+#. Tag: title
+#: Controls.xml:29
+#, no-c-format
+msgid "Navigation Controls"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:32
+#, no-c-format
+msgid "<s:button>"
+msgstr ""
+
+#. Tag: emphasis
+#: Controls.xml:34 Controls.xml:105 Controls.xml:122 Controls.xml:138
+#: Controls.xml:206 Controls.xml:241 Controls.xml:275 Controls.xml:289
+#: Controls.xml:342 Controls.xml:358 Controls.xml:376 Controls.xml:400
+#: Controls.xml:432 Controls.xml:449 Controls.xml:467 Controls.xml:486
+#: Controls.xml:514 Controls.xml:537 Controls.xml:551 Controls.xml:591
+#: Controls.xml:619 Controls.xml:691 Controls.xml:730 Controls.xml:831
+#: Controls.xml:963
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:36
+#, no-c-format
+msgid ""
+"A button that supports invocation of an action with control over "
+"conversation propagation. <emphasis>Does not submit the form.</emphasis>"
+msgstr ""
+
+#. Tag: emphasis
+#: Controls.xml:41 Controls.xml:113 Controls.xml:128 Controls.xml:145
+#: Controls.xml:212 Controls.xml:259 Controls.xml:278 Controls.xml:301
+#: Controls.xml:348 Controls.xml:364 Controls.xml:382 Controls.xml:406
+#: Controls.xml:437 Controls.xml:454 Controls.xml:473 Controls.xml:493
+#: Controls.xml:519 Controls.xml:542 Controls.xml:558 Controls.xml:596
+#: Controls.xml:624 Controls.xml:698 Controls.xml:775 Controls.xml:842
+#: Controls.xml:968
+#, no-c-format
+msgid "Attributes"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:45 Controls.xml:148
+#, no-c-format
+msgid "<literal>value</literal> — the label."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:50 Controls.xml:153
+#, no-c-format
+msgid ""
+"<literal>action</literal> — a method binding that specified the action "
+"listener."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:57 Controls.xml:159
+#, no-c-format
+msgid "<literal>view</literal> — the JSF view id to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:62 Controls.xml:164
+#, no-c-format
+msgid "<literal>fragment</literal> — the fragment identifier to link to."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:68 Controls.xml:170
+#, no-c-format
+msgid "<literal>disabled</literal> — is the link disabled?"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:73 Controls.xml:175
+#, no-c-format
+msgid ""
+"<literal>propagation</literal> — determines the conversation "
+"propagation style: <literal>begin</literal>, <literal>join</literal>, "
+"<literal>nest</literal>, <literal>none</literal> or <literal>end</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:81
+#, no-c-format
+msgid ""
+"<literal>pageflow</literal> — a pageflow definition to begin. (This is "
+"only useful when <literal>propagation=\"begin\"</literal> or "
+"<literal>propagation=\"join\"</literal> is used)."
+msgstr ""
+
+#. Tag: emphasis
+#: Controls.xml:90 Controls.xml:192 Controls.xml:231 Controls.xml:263
+#: Controls.xml:281 Controls.xml:335 Controls.xml:351 Controls.xml:369
+#: Controls.xml:387 Controls.xml:424 Controls.xml:442 Controls.xml:459
+#: Controls.xml:478 Controls.xml:507 Controls.xml:524 Controls.xml:568
+#: Controls.xml:612 Controls.xml:679 Controls.xml:722 Controls.xml:823
+#: Controls.xml:956 Controls.xml:980
+#, no-c-format
+msgid "Usage"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:92
+#, no-c-format
+msgid ""
+"<![CDATA[<s:button id=\"cancel\" \n"
+" value=\"Cancel\" \n"
+" action=\"#{hotelBooking.cancel}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:93
+#, no-c-format
+msgid ""
+"You can specify both <literal>view</literal> and <literal>action</literal> "
+"on <literal><s:link /></literal>. In this case, the action wil be "
+"called once the redirect to the specified view has occured."
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:103
+#, no-c-format
+msgid "<s:conversationId>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:107
+#, no-c-format
+msgid ""
+"Add the conversation id to JSF link or button (e.g. <literal><h:"
+"commandLink /></literal> , <literal><s:button /></literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:115
+#, no-c-format
+msgid "None"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:120
+#, no-c-format
+msgid "<s:taskId>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:123
+#, no-c-format
+msgid ""
+"Add the task id to an output link (or similar JSF control), when the task is "
+"available via <literal>#{task}</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:129 Controls.xml:261 Controls.xml:279 Controls.xml:302
+#: Controls.xml:349 Controls.xml:365 Controls.xml:383 Controls.xml:438
+#: Controls.xml:455 Controls.xml:474 Controls.xml:520 Controls.xml:543
+#, no-c-format
+msgid "None."
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:136
+#, no-c-format
+msgid "<s:link>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:139
+#, no-c-format
+msgid ""
+"A link that supports invocation of an action with control over conversation "
+"propagation. <emphasis>Does not submit the form.</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:183 Controls.xml:223
+#, no-c-format
+msgid ""
+"<literal>pageflow</literal> — a pageflow definition to begin. (This is "
+"only useful when using <literal>propagation=\"begin\"</literal> or "
+"<literal>propagation=\"join\"</literal>.)"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:193
+#, no-c-format
+msgid ""
+"<![CDATA[<s:link id=\"register\" view=\"/register.xhtml\" \n"
+" value=\"Register New User\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:194
+#, no-c-format
+msgid ""
+"You can specify both <literal>view</literal> and <literal>action</literal> "
+"on <literal><s:link /></literal>. In this case, the action will be "
+"called once the redirect to the specified view has occured."
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:204
+#, no-c-format
+msgid "<s:conversationPropagation>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:207
+#, no-c-format
+msgid ""
+"Customize the conversation propagation for a command link or button (or "
+"similar JSF control). <emphasis>Facelets only.</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:215
+#, no-c-format
+msgid ""
+"<literal>type</literal> — determines the conversation propagation "
+"style: <literal>begin</literal>, <literal>join</literal>, <literal>nest</"
+"literal>, <literal>none</literal> or <literal>end</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:232
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandButton value=\"Apply\" action=\"#{personHome.update}\">\n"
+" <s:conversationPropagation type=\"join\" />\n"
+"</h:commandButton>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:237
+#, no-c-format
+msgid "<s:defaultAction>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:243
+#, no-c-format
+msgid ""
+"Specify the default action to run when the form is submitted using the enter "
+"key."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:247
+#, no-c-format
+msgid ""
+"Currently you can only nest it inside buttons (e.g. <literal><h:"
+"commandButton /></literal>, <literal><a:commandButton /></literal> "
+"or <literal><tr:commandButton /></literal>)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:253
+#, no-c-format
+msgid ""
+"You must specify an id on the action source. You can only have one default "
+"action per form."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:264
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandButton id=\"foo\" value=\"Foo\" action=\"#{manager.foo}"
+"\">\n"
+" <s:defaultAction />\n"
+"</h:commandButton>]]>"
+msgstr ""
+
+#. Tag: title
+#: Controls.xml:270
+#, no-c-format
+msgid "Converters and Validators"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:273
+#, no-c-format
+msgid "<s:convertDateTime>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:276
+#, no-c-format
+msgid "Perform date or time conversions in the Seam timezone."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:282
+#, no-c-format
+msgid ""
+"<![CDATA[<h:outputText value=\"#{item.orderDate}\">\n"
+" <s:convertDateTime type=\"both\" dateStyle=\"full\"/>\n"
+"</h:outputText>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:287
+#, no-c-format
+msgid "<s:convertEntity>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:290
+#, no-c-format
+msgid ""
+"Assigns an entity converter to the current component. This is primarily "
+"useful for radio button and dropdown controls."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:295
+#, no-c-format
+msgid ""
+"The converter works with any managed entity which has an <literal>@Id</"
+"literal> annotation - either simple or composite."
+msgstr ""
+
+#. Tag: emphasis
+#: Controls.xml:304 Controls.xml:746
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:306
+#, no-c-format
+msgid ""
+"You must use <emphasis>Seam managed transactions</emphasis> (see <xref "
+"linkend=\"persistence.seam-managed-transactions\"/>) with <literal><s:"
+"convertEntity /></literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:312
+#, no-c-format
+msgid ""
+"If your <emphasis>Managed Persistence Context</emphasis> isn't called "
+"<literal>entityManager</literal>, then you need to set it in components.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:317
+#, no-c-format
+msgid ""
+"<![CDATA[<component name=\"org.jboss.seam.ui.EntityConverter\">\n"
+" <property name=\"entityManager\">#{em}</property>\n"
+"</component>]]>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:319
+#, no-c-format
+msgid ""
+"If you are using a <emphasis>Managed Hibernate Session</emphasis> then you "
+"need to set it in components.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:323
+#, no-c-format
+msgid ""
+"<![CDATA[<component name=\"org.jboss.seam.ui.EntityConverter\">\n"
+" <property name=\"session\">#{hibernateSession}</property>\n"
+"</component>]]>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:325
+#, no-c-format
+msgid ""
+"If you want to use more than one entity manager with the entity converter, "
+"you can create a copy of the entity converter for each entity manager in "
+"components.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:331
+#, no-c-format
+msgid ""
+"<![CDATA[<component name=\"myEntityConverter\" class=\"org.jboss.seam.ui."
+"converter.EntityConverter\">\n"
+" <property name=\"entityManager\">#{em}</property>\n"
+"</component>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:333
+#, no-c-format
+msgid ""
+"<![CDATA[<h:selectOneMenu value=\"#{person.continent}\">\n"
+" <s:selectItems value=\"#{continents.resultList}\" var=\"continent\" \n"
+" label=\"#{continent.name}\" />\n"
+" <f:converter converterId=\"myEntityConverter\" />\n"
+"</h:selectOneMenu>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:336
+#, no-c-format
+msgid ""
+"<![CDATA[<h:selectOneMenu value=\"#{person.continent}\" required=\"true\">\n"
+" <s:selectItems value=\"#{continents.resultList}\" var=\"continent\" \n"
+" label=\"#{continent.name}\" \n"
+" noSelectionLabel=\"Please Select...\"/>\n"
+" <s:convertEntity />\n"
+"</h:selectOneMenu>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:340
+#, no-c-format
+msgid "<s:convertEnum>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:343
+#, no-c-format
+msgid ""
+"Assigns an enum converter to the current component. This is primarily useful "
+"for radio button and dropdown controls."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:352
+#, no-c-format
+msgid ""
+"<![CDATA[<h:selectOneMenu value=\"#{person.honorific}\">\n"
+" <s:selectItems value=\"#{honorifics}\" var=\"honorific\" \n"
+" label=\"#{honorific.label}\"\n"
+" noSelectionLabel=\"Please select\" />\n"
+" <s:convertEnum />\n"
+"</h:selectOneMenu>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:356
+#, no-c-format
+msgid "<s:validate>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:359
+#, no-c-format
+msgid ""
+"A non-visual control, validates a JSF input field against the bound property "
+"using Hibernate Validator."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:370
+#, no-c-format
+msgid ""
+"<![CDATA[<h:inputText id=\"userName\" required=\"true\" \n"
+" value=\"#{customer.userName}\">\n"
+" <s:validate />\n"
+"</h:inputText>\n"
+"<h:message for=\"userName\" styleClass=\"error\" />]]>"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:374
+#, no-c-format
+msgid "<s:validateAll>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:377
+#, no-c-format
+msgid ""
+"A non-visual control, validates all child JSF input fields against their "
+"bound properties using Hibernate Validator."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:388
+#, no-c-format
+msgid ""
+"<![CDATA[<s:validateAll>\n"
+" <div class=\"entry\">\n"
+" <h:outputLabel for=\"username\">Username:</h:outputLabel>\n"
+" <h:inputText id=\"username\" value=\"#{user.username}\" \n"
+" required=\"true\"/>\n"
+" <h:message for=\"username\" styleClass=\"error\" />\n"
+" </div>\n"
+" <div class=\"entry\">\n"
+" <h:outputLabel for=\"password\">Password:</h:outputLabel>\n"
+" <h:inputSecret id=\"password\" value=\"#{user.password}\" \n"
+" required=\"true\"/>\n"
+" <h:message for=\"password\" styleClass=\"error\" />\n"
+" </div>\n"
+" <div class=\"entry\">\n"
+" <h:outputLabel for=\"verify\">Verify Password:</h:outputLabel>\n"
+" <h:inputSecret id=\"verify\" value=\"#{register.verify}\" \n"
+" required=\"true\"/>\n"
+" <h:message for=\"verify\" styleClass=\"error\" />\n"
+" </div>\n"
+"</s:validateAll>]]>"
+msgstr ""
+
+#. Tag: title
+#: Controls.xml:395
+#, no-c-format
+msgid "Formatting"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:398
+#, no-c-format
+msgid "<s:decorate>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:401
+#, no-c-format
+msgid ""
+"\"Decorate\" a JSF input field when validation fails or when "
+"<literal>required=\"true\"</literal> is set."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:409
+#, no-c-format
+msgid ""
+"<literal>template</literal> — the facelets template to use to decorate "
+"the component"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:415
+#, no-c-format
+msgid ""
+"<literal>#{invalid}</literal> and <literal>#{required}</literal> are "
+"available inside <literal>s:decorate</literal>; <literal>#{required}</"
+"literal> evaluates to <literal>true</literal> if you have set the input "
+"component being decorated as required, and <literal>#{invalid}</literal> "
+"evaluates to <literal>true</literal> if a validation error occurs."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:425
+#, no-c-format
+msgid ""
+"<![CDATA[<s:decorate template=\"edit.xhtml\">\n"
+" <ui:define name=\"label\">Country:</ui:define>\n"
+" <h:inputText value=\"#{location.country}\" required=\"true\"/>\n"
+" </s:decorate>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:426
+#, no-c-format
+msgid ""
+"<![CDATA[<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"\n"
+" xmlns:ui=\"http://java.sun.com/jsf/facelets\"\n"
+" xmlns:h=\"http://java.sun.com/jsf/html\"\n"
+" xmlns:f=\"http://java.sun.com/jsf/core\"\n"
+" xmlns:s=\"http://jboss.com/products/seam/taglib\">\n"
+" \n"
+" <div> \n"
+" \n"
+" <s:label styleClass=\"#{invalid?'error':''}\">\n"
+" <ui:insert name=\"label\"/>\n"
+" <s:span styleClass=\"required\" rendered=\"#{required}\">*</s:"
+"span>\n"
+" </s:label>\n"
+" \n"
+" <span class=\"#{invalid?'error':''}\">\n"
+" <s:validateAll>\n"
+" <ui:insert/>\n"
+" </s:validateAll>\n"
+" </span>\n"
+" \n"
+" <s:message styleClass=\"error\"/> \n"
+" \n"
+" </div> \n"
+" \n"
+"</ui:composition>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:430
+#, no-c-format
+msgid "<s:div>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:433
+#, no-c-format
+msgid "Render a HTML <literal><div></literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:443
+#, no-c-format
+msgid ""
+"<![CDATA[<s:div rendered=\"#{selectedMember == null}\">\n"
+" Sorry, but this member does not exist.\n"
+"</s:div>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:447
+#, no-c-format
+msgid "<s:span>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:450
+#, no-c-format
+msgid "Render a HTML <literal><span></literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:460
+#, no-c-format
+msgid ""
+"<![CDATA[<s:span styleClass=\"required\" rendered=\"#{required}\">*</s:"
+"span>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:465
+#, no-c-format
+msgid "<s:fragment>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:468
+#, no-c-format
+msgid ""
+"A non-rendering component useful for enabling/disabling rendering of it's "
+"children."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:479
+#, no-c-format
+msgid ""
+"<![CDATA[<s:fragment rendered=\"#{auction.highBidder ne null}\">\n"
+" Current bid:\n"
+"</s:fragment>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:484
+#, no-c-format
+msgid "<s:label>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:487
+#, no-c-format
+msgid ""
+"\"Decorate\" a JSF input field with the label. The label is placed inside "
+"the HTML <literal><label></literal> tag, and is associated with the "
+"nearest JSF input component. It is often used with <literal><s:"
+"decorate></literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:496 Controls.xml:812
+#, no-c-format
+msgid "<literal>style</literal> — The control's style"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:501 Controls.xml:817
+#, no-c-format
+msgid "<literal>styleClass</literal> — The control's style class"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:508
+#, no-c-format
+msgid ""
+"<![CDATA[<s:label styleClass=\"label\">\n"
+" Country:\n"
+"</s:label>\n"
+"<h:inputText value=\"#{location.country}\" required=\"true\"/>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:512
+#, no-c-format
+msgid "<s:message>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:515
+#, no-c-format
+msgid "\"Decorate\" a JSF input field with the validation error message."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:525
+#, no-c-format
+msgid ""
+"<![CDATA[<f:facet name=\"afterInvalidField\">\n"
+" <s:span>\n"
+"  Error: \n"
+" <s:message/>\n"
+" </s:span>\n"
+"</f:facet>]]>"
+msgstr ""
+
+#. Tag: title
+#: Controls.xml:532
+#, no-c-format
+msgid "Seam Text"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:535
+#, no-c-format
+msgid "<s:validateFormattedText>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:538
+#, no-c-format
+msgid "Checks that the submitted value is valid Seam Text"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:549
+#, no-c-format
+msgid "<s:formattedText>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:552
+#, no-c-format
+msgid ""
+"Outputs <emphasis>Seam Text</emphasis>, a rich text markup useful for blogs, "
+"wikis and other applications that might use rich text. See the Seam Text "
+"chapter for full usage."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:561
+#, no-c-format
+msgid ""
+"<literal>value</literal> — an EL expression specifying the rich text "
+"markup to render."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:569
+#, no-c-format
+msgid "<![CDATA[<s:formattedText value=\"#{blog.text}\"/>]]>"
+msgstr ""
+
+#. Tag: emphasis
+#: Controls.xml:571
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: title
+#: Controls.xml:586
+#, no-c-format
+msgid "Dropdowns"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:589
+#, no-c-format
+msgid "<s:enumItem>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:592
+#, no-c-format
+msgid "Creates a <literal>SelectItem</literal> from an enum value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:599
+#, no-c-format
+msgid ""
+"<literal>enumValue</literal> — the string representation of the enum "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:605
+#, no-c-format
+msgid ""
+"<literal>label</literal> — the label to be used when rendering the "
+"<literal>SelectItem</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:613
+#, no-c-format
+msgid ""
+"<![CDATA[<h:selectOneRadio id=\"radioList\"\n"
+" layout=\"lineDirection\"\n"
+" value=\"#{newPayment.paymentFrequency}\">\n"
+" <s:convertEnum />\n"
+" <s:enumItem enumValue=\"ONCE\" label=\"Only Once\" />\n"
+" <s:enumItem enumValue=\"EVERY_MINUTE\" label=\"Every Minute\" />\n"
+" <s:enumItem enumValue=\"HOURLY\" label=\"Every Hour\" />\n"
+" <s:enumItem enumValue=\"DAILY\" label=\"Every Day\" />\n"
+" <s:enumItem enumValue=\"WEEKLY\" label=\"Every Week\" />\n"
+"</h:selectOneRadio>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:617
+#, no-c-format
+msgid "<s:selectItems>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:620
+#, no-c-format
+msgid ""
+"Creates a <literal>List<SelectItem></literal> from a List, Set, "
+"DataModel or Array."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:627
+#, no-c-format
+msgid ""
+"<literal>value</literal> — an EL expression specifying the data that "
+"backs the <literal>List<SelectItem></literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:634
+#, no-c-format
+msgid ""
+"<literal>var</literal>— defines the name of the local variable that "
+"holds the current object during iteration"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:640
+#, no-c-format
+msgid ""
+"<literal>label</literal> — the label to be used when rendering the "
+"<literal>SelectItem</literal>. Can reference the <literal>var</literal> "
+"variable."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:647
+#, no-c-format
+msgid ""
+"<literal>itemValue</literal> — Value to return to the server if this "
+"option is selected. Optional, by default the <literal>var</literal> object "
+"is used. Can reference the <literal>var</literal> variable."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:656
+#, no-c-format
+msgid ""
+"<literal>disabled</literal> — if true the <literal>SelectItem</"
+"literal> will be rendered disabled. Can reference the <literal>var</literal> "
+"variable."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:664
+#, no-c-format
+msgid ""
+"<literal>noSelectionLabel</literal> — specifies the (optional) label "
+"to place at the top of list (if <literal>required=\"true\"</literal> is also "
+"specified then selecting this value will cause a validation error)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:672
+#, no-c-format
+msgid ""
+"<literal>hideNoSelectionLabel</literal> — if true, the "
+"<literal>noSelectionLabel</literal> will be hidden when a value is selected"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:680
+#, no-c-format
+msgid ""
+"<![CDATA[<h:selectOneMenu value=\"#{person.age}\" \n"
+" converter=\"ageConverter\">\n"
+" <s:selectItems value=\"#{ages}\" var=\"age\" label=\"#{age}\" />\n"
+"</h:selectOneMenu>]]>"
+msgstr ""
+
+#. Tag: title
+#: Controls.xml:686
+#, no-c-format
+msgid "Other"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:689
+#, no-c-format
+msgid "<s:cache>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:692
+#, no-c-format
+msgid ""
+"Cache the rendered page fragment using JBoss Cache. Note that <literal><s:"
+"cache></literal> actually uses the instance of JBoss Cache managed by the "
+"built-in <literal>pojoCache</literal> component."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:701
+#, no-c-format
+msgid ""
+"<literal>key</literal> — the key to cache rendered content, often a "
+"value expression. For example, if we were caching a page fragment that "
+"displays a document, we might use <literal>key=\"Document-#{document.id}\"</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:709
+#, no-c-format
+msgid ""
+"<literal>enabled</literal> — a value expression that determines if the "
+"cache should be used."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:715
+#, no-c-format
+msgid ""
+"<literal>region</literal> — a JBoss Cache node to use (different nodes "
+"can have different expiry policies)."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:723
+#, no-c-format
+msgid ""
+"<![CDATA[<s:cache key=\"entry-#{blogEntry.id}\" region=\"pageFragments\">\n"
+" <div class=\"blogEntry\">\n"
+" <h3>#{blogEntry.title}</h3>\n"
+" <div>\n"
+" <s:formattedText value=\"#{blogEntry.body}\"/>\n"
+" </div>\n"
+" <p>\n"
+" [Posted on \n"
+" <h:outputText value=\"#{blogEntry.date}\">\n"
+" <f:convertDateTime timezone=\"#{blog.timeZone}\" locale=\"#{blog."
+"locale}\" \n"
+" type=\"both\"/>\n"
+" </h:outputText>]\n"
+" </p>\n"
+" </div>\n"
+"</s:cache>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:728
+#, no-c-format
+msgid "<s:fileUpload>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:731
+#, no-c-format
+msgid ""
+"Renders a file upload control. This control must be used within a form with "
+"an encoding type of <literal>multipart/form-data</literal>, i.e:"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:737
+#, no-c-format
+msgid "<![CDATA[<h:form enctype=\"multipart/form-data\">]]>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:739
+#, no-c-format
+msgid ""
+"For multipart requests, the Seam Multipart servlet filter must also be "
+"configured in <literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:744
+#, no-c-format
+msgid ""
+"<![CDATA[<filter>\n"
+" <filter-name>Seam Filter</filter-name>\n"
+" <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>\n"
+"</filter>\n"
+"\n"
+"<filter-mapping>\n"
+" <filter-name>Seam Filter</filter-name>\n"
+" <url-pattern>/*</url-pattern>\n"
+"</filter-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:748
+#, no-c-format
+msgid ""
+"The following configuration options for multipart requests may be configured "
+"in components.xml:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:755
+#, no-c-format
+msgid ""
+"<literal>createTempFiles</literal> — if this option is set to true, "
+"uploaded files are streamed to a temporary file instead of in memory."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:762
+#, no-c-format
+msgid ""
+"<literal>maxRequestSize</literal> — the maximum size of a file upload "
+"request, in bytes."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:769
+#, no-c-format
+msgid "Here's an example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:773
+#, no-c-format
+msgid ""
+"<![CDATA[<component class=\"org.jboss.seam.web.MultipartFilter\">\n"
+" <property name=\"createTempFiles\">true</property>\n"
+" <property name=\"maxRequestSize\">1000000</property>\n"
+"</component>]]>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:778
+#, no-c-format
+msgid ""
+"<literal>data</literal> — this value binding receives the binary file "
+"data. The receiving field should be declared as a <literal>byte[]</literal> "
+"or <literal>InputStream</literal> (required)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:786
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> — this value binding receives the "
+"file's content type (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:792
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> — this value binding receives the filename "
+"(optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:798
+#, no-c-format
+msgid ""
+"<literal>fileSize</literal> — this value binding receives the file "
+"size (optional)."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:804
+#, no-c-format
+msgid ""
+"<literal>accept</literal> — a comma-separated list of content types to "
+"accept, may not be supported by the browser. E.g. <literal>\"images/png,"
+"images/jpg\"</literal>, <literal>\"images/*\"</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:824
+#, no-c-format
+msgid ""
+"<![CDATA[<s:fileUpload id=\"picture\" data=\"#{register.picture}\" \n"
+" accept=\"image/png\"\n"
+" contentType=\"#{register.pictureContentType}\" />]]>"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:829
+#, no-c-format
+msgid "<s:graphicImage>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:832
+#, no-c-format
+msgid ""
+"An extended <literal><h:graphicImage></literal> that allows the image "
+"to be created in a Seam Component; further transforms can be applied to the "
+"image."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:837
+#, no-c-format
+msgid ""
+"All attributes for <literal><h:graphicImage></literal> are supported, "
+"as well as:"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:845
+#, no-c-format
+msgid ""
+"<literal>value</literal> — image to display. Can be a path "
+"<literal>String</literal> (loaded from the classpath), a <literal>byte[]</"
+"literal>, a <literal>java.io.File</literal>, a <literal>java.io.InputStream</"
+"literal> or a <literal>java.net.URL</literal>. Currently supported image "
+"formats are <literal>image/png</literal>, <literal>image/jpeg</literal> and "
+"<literal>image/gif</literal>."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:858
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> — if not specified the served image will "
+"have a generated file name. If you want to name your file, you should "
+"specify it here. This name should be unique"
+msgstr ""
+
+#. Tag: emphasis
+#: Controls.xml:867
+#, no-c-format
+msgid "Transformations"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:868
+#, no-c-format
+msgid ""
+"To apply a transform to the image, you would nest a tag specifying the "
+"transform to apply. Seam currently supports these transforms:"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:876
+#, no-c-format
+msgid "<s:transformImageSize>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:881
+#, no-c-format
+msgid "<literal>width</literal> — new width of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:887
+#, no-c-format
+msgid "<literal>height</literal> — new height of the image"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:893
+#, no-c-format
+msgid ""
+"<literal>maintainRatio</literal> — if <literal>true</literal>, and "
+"<emphasis>one</emphasis> of <literal>width</literal>/<literal>height</"
+"literal> are specified, the image will be resized with the dimension not "
+"specified being calculated to maintain the aspect ratio."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:904
+#, no-c-format
+msgid "<literal>factor</literal> — scale the image by the given factor"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:914
+#, no-c-format
+msgid "<s:transformImageBlur>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:919
+#, no-c-format
+msgid ""
+"<literal>radius</literal> — perform a convolution blur with the given "
+"radius"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:929
+#, no-c-format
+msgid "<s:transformImageType>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:934
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> — alter the type of the image to either "
+"<literal>image/jpeg</literal> or <literal>image/png</literal>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:946
+#, no-c-format
+msgid ""
+"It's easy to create your own transform - create a <literal>UIComponent</"
+"literal> which implements <literal>org.jboss.seam.ui.graphicImage."
+"ImageTransform</literal>. Inside the <literal>applyTransform()</"
+"literal>method use <literal>image.getBufferedImage()</literal> to get the "
+"original image and <literal>image.setBufferedImage()</literal> to set your "
+"transformed image. Transforms are applied in the order specified in the view."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:957
+#, no-c-format
+msgid ""
+"<![CDATA[<s:graphicImage rendered=\"#{auction.image ne null}\"\n"
+" value=\"#{auction.image.data}\">\n"
+" <s:transformImageSize width=\"200\" maintainRatio=\"true\"/>\n"
+"</s:graphicImage>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:961
+#, no-c-format
+msgid "<s:remote>"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:964
+#, no-c-format
+msgid "Generates the Javascript stubs required to use Seam Remoting."
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:971
+#, no-c-format
+msgid ""
+"<literal>include</literal> — a comma-separated list of the component "
+"names (or fully qualified class names)for which to generate Seam Remoting "
+"Javascript stubs. See <xref linkend=\"remoting\"/> for more details."
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:981
+#, no-c-format
+msgid ""
+"<![CDATA[<s:remote include=\"customerAction,accountAction,com.acme.MyBean\"/"
+">]]>"
+msgstr ""
+
+#. Tag: title
+#: Controls.xml:988
+#, no-c-format
+msgid "Annotations"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:990
+#, no-c-format
+msgid ""
+"Seam also provides annotations to allow you to use Seam components as JSF "
+"converters and validators:"
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:998
+#, no-c-format
+msgid "@Converter"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:1001
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"itemConverter\") \n"
+" @BypassInterceptors \n"
+" @Converter\n"
+" public class ItemConverter implements Converter {\n"
+" \n"
+" @Transactional\n"
+" public Object getAsObject(FacesContext context, UIComponent cmp, String "
+"value) {\n"
+" EntityManager entityManager = (EntityManager) Component.getInstance"
+"(\"entityManager\");\n"
+" entityManager.joinTransaction();\n"
+" // Do the conversion\n"
+" }\n"
+" \n"
+" public String getAsString(FacesContext context, UIComponent cmp, Object "
+"value) {\n"
+" // Do the conversion\n"
+" }\n"
+" \n"
+" }]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:1003
+#, no-c-format
+msgid ""
+"<![CDATA[<h:inputText value=\"#{shop.item}\" converter=\"itemConverter\" />]]"
+">"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:1005
+#, no-c-format
+msgid ""
+"Registers the Seam component as a JSF converter. Shown here is a converter "
+"which is able to access the JPA EntityManager inside a JTA transaction, when "
+"converting the value back to it's object representation."
+msgstr ""
+
+#. Tag: literal
+#: Controls.xml:1015
+#, no-c-format
+msgid "@Validator"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:1018
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"itemValidator\") \n"
+" @BypassInterceptors \n"
+" @Validator\n"
+" public class ItemValidator implements Validator {\n"
+" \n"
+" public void validate(FacesContext context, UIComponent cmp, Object "
+"value)\n"
+" throws ValidatorException {\n"
+" ItemController ItemController = (ItemController) Component.getInstance"
+"(\"itemController\");\n"
+" return itemController.validate(value);\n"
+" }\n"
+" \n"
+" }]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Controls.xml:1020
+#, no-c-format
+msgid ""
+"<![CDATA[<h:inputText value=\"#{shop.item}\" validator=\"itemValidator\" />]]"
+">"
+msgstr ""
+
+#. Tag: para
+#: Controls.xml:1021
+#, no-c-format
+msgid ""
+"Registers the Seam component as a JSF validator. Shown here is a validator "
+"which injects another Seam component; the injected component is used to "
+"validate the value."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Conversations.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Conversations.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Conversations.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,1663 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Conversations.xml:6
+#, no-c-format
+msgid "Conversations and workspace management"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:8
+#, no-c-format
+msgid "It's time to understand Seam's conversation model in more detail."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:12
+#, no-c-format
+msgid ""
+"Historically, the notion of a Seam \"conversation\" came about as a merger "
+"of three different ideas:"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:19
+#, no-c-format
+msgid ""
+"The idea of a <emphasis>workspace</emphasis>, which I encountered in a "
+"project for the Victorian government in 2002. In this project I was forced "
+"to implement workspace management on top of Struts, an experience I pray "
+"never to repeat."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:28
+#, no-c-format
+msgid ""
+"The idea of an <emphasis>application transaction</emphasis> with optimistic "
+"semantics, and the realization that existing frameworks based around a "
+"stateless architecture could not provide effective management of extended "
+"persistence contexts. (The Hibernate team is truly fed up with copping the "
+"blame for <literal>LazyInitializationException</literal>s, which are not "
+"really Hibernate's fault, but rather the fault of the extremely limiting "
+"persistence context model supported by stateless architectures such as the "
+"Spring framework or the traditional <emphasis>stateless session facade</"
+"emphasis> (anti)pattern in J2EE.)"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:43
+#, no-c-format
+msgid "The idea of a workflow <emphasis>task</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:49
+#, no-c-format
+msgid ""
+"By unifying these ideas and providing deep support in the framework, we have "
+"a powerful construct that lets us build richer and more efficient "
+"applications with less code than before."
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:56
+#, no-c-format
+msgid "Seam's conversation model"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:58
+#, no-c-format
+msgid ""
+"The examples we have seen so far make use of a very simple conversation "
+"model that follows these rules:"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:65
+#, no-c-format
+msgid ""
+"There is always a conversation context active during the apply request "
+"values, process validations, update model values, invoke application and "
+"render response phases of the JSF request lifecycle."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:73
+#, no-c-format
+msgid ""
+"At the end of the restore view phase of the JSF request lifecycle, Seam "
+"attempts to restore any previous long-running conversation context. If none "
+"exists, Seam creates a new temporary conversation context."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:81
+#, no-c-format
+msgid ""
+"When an <literal>@Begin</literal> method is encountered, the temporary "
+"conversation context is promoted to a long running conversation."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:88
+#, no-c-format
+msgid ""
+"When an <literal>@End</literal> method is encountered, any long-running "
+"conversation context is demoted to a temporary conversation."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:95
+#, no-c-format
+msgid ""
+"At the end of the render response phase of the JSF request lifecycle, Seam "
+"stores the contents of a long running conversation context or destroys the "
+"contents of a temporary conversation context."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:103
+#, no-c-format
+msgid ""
+"Any faces request (a JSF postback) will propagate the conversation context. "
+"By default, non-faces requests (GET requests, for example) do not propagate "
+"the conversation context, but see below for more information on this."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:111
+#, no-c-format
+msgid ""
+"If the JSF request lifecycle is foreshortened by a redirect, Seam "
+"transparently stores and restores the current conversation context—"
+"unless the conversation was already ended via <literal>@End"
+"(beforeRedirect=true)</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:120
+#, no-c-format
+msgid ""
+"Seam transparently propagates the conversation context (including the "
+"temporary conversation context) across JSF postbacks and redirects. If you "
+"don't do anything special, a <emphasis>non-faces request</emphasis> (a GET "
+"request for example) will not propagate the conversation context and will be "
+"processed in a new temporary conversation. This is usually - but not always "
+"- the desired behavior."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:129
+#, no-c-format
+msgid ""
+"If you want to propagate a Seam conversation across a non-faces request, you "
+"need to explicitly code the Seam <emphasis>conversation id</emphasis> as a "
+"request parameter:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:135
+#, no-c-format
+msgid ""
+"<![CDATA[<a href=\"main.jsf?conversationId=#{conversation.id}\">Continue</"
+"a>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:137
+#, no-c-format
+msgid "Or, the more JSF-ish:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:141
+#, no-c-format
+msgid ""
+"<![CDATA[<h:outputLink value=\"main.jsf\">\n"
+" <f:param name=\"conversationId\" value=\"#{conversation.id}\"/>\n"
+" <h:outputText value=\"Continue\"/>\n"
+"</h:outputLink>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:143 Conversations.xml:156
+#, no-c-format
+msgid "If you use the Seam tag library, this is equivalent:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:147
+#, no-c-format
+msgid ""
+"<![CDATA[<h:outputLink value=\"main.jsf\">\n"
+" <s:conversationId/>\n"
+" <h:outputText value=\"Continue\"/>\n"
+"</h:outputLink>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:149
+#, no-c-format
+msgid ""
+"If you wish to disable propagation of the conversation context for a "
+"postback, a similar trick is used:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:154
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandLink action=\"main\" value=\"Exit\">\n"
+" <f:param name=\"conversationPropagation\" value=\"none\"/>\n"
+"</h:commandLink>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:160
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandLink action=\"main\" value=\"Exit\">\n"
+" <s:conversationPropagation type=\"none\"/>\n"
+"</h:commandLink>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:162
+#, no-c-format
+msgid ""
+"Note that disabling conversation context propagation is absolutely not the "
+"same thing as ending the conversation."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:167
+#, no-c-format
+msgid ""
+"The <literal>conversationPropagation</literal> request parameter, or the "
+"<literal><s:conversationPropagation></literal> tag may even be used to "
+"begin and end conversation, or begin a nested conversation."
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:174
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandLink action=\"main\" value=\"Exit\">\n"
+" <s:conversationPropagation type=\"end\"/>\n"
+"</h:commandLink>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:176
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandLink action=\"main\" value=\"Select Child\">\n"
+" <s:conversationPropagation type=\"nested\"/>\n"
+"</h:commandLink>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:178
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandLink action=\"main\" value=\"Select Hotel\">\n"
+" <s:conversationPropagation type=\"begin\"/>\n"
+"</h:commandLink>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:180
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandLink action=\"main\" value=\"Select Hotel\">\n"
+" <s:conversationPropagation type=\"join\"/>\n"
+"</h:commandLink>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:182
+#, no-c-format
+msgid ""
+"This conversation model makes it easy to build applications which behave "
+"correctly with respect to multi-window operation. For many applications, "
+"this is all that is needed. Some complex applications have either or both of "
+"the following additional requirements:"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:191
+#, no-c-format
+msgid ""
+"A conversation spans many smaller units of user interaction, which execute "
+"serially or even concurrently. The smaller <emphasis>nested conversations</"
+"emphasis> have their own isolated set of conversation state, and also have "
+"access to the state of the outer conversation."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:200
+#, no-c-format
+msgid ""
+"The user is able to switch between many conversations within the same "
+"browser window. This feature is called <emphasis>workspace management</"
+"emphasis>."
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:211
+#, no-c-format
+msgid "Nested conversations"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:213
+#, no-c-format
+msgid ""
+"A nested conversation is created by invoking a method marked <literal>@Begin"
+"(nested=true)</literal> inside the scope of an existing conversation. A "
+"nested conversation has its own conversation context, and also has read-only "
+"access to the context of the outer conversation. (It can read the outer "
+"conversation's context variables, but not write to them.) When an "
+"<literal>@End</literal> is subsequently encountered, the nested conversation "
+"will be destroyed, and the outer conversation will resume, by \"popping\" "
+"the conversation stack. Conversations may be nested to any arbitrary depth."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:226
+#, no-c-format
+msgid ""
+"Certain user activity (workspace management, or the back button) can cause "
+"the outer conversation to be resumed before the inner conversation is ended. "
+"In this case it is possible to have multiple concurrent nested conversations "
+"belonging to the same outer conversation. If the outer conversation ends "
+"before a nested conversation ends, Seam destroys all nested conversation "
+"contexts along with the outer context."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:236
+#, no-c-format
+msgid ""
+"A conversation may be thought of as a <emphasis>continuable state</"
+"emphasis>. Nested conversations allow the application to capture a "
+"consistent continuable state at various points in a user interaction, thus "
+"insuring truly correct behavior in the face of backbuttoning and workspace "
+"management."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:244
+#, no-c-format
+msgid ""
+"TODO: an example to show how a nested conversation prevents bad stuff "
+"happening when you backbutton."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:249
+#, no-c-format
+msgid ""
+"Usually, if a component exists in a parent conversation of the current "
+"nested conversation, the nested conversation will use the same instance. "
+"Occasionally, it is useful to have a different instance in each nested "
+"conversation, so that the component instance that exists in the parent "
+"conversation is invisible to its child conversations. You can achieve this "
+"behavior by annotating the component <literal>@PerNestedConversation</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:262
+#, no-c-format
+msgid "Starting conversations with GET requests"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:263
+#, no-c-format
+msgid ""
+"JSF does not define any kind of action listener that is triggered when a "
+"page is accessed via a non-faces request (for example, a HTTP GET request). "
+"This can occur if the user bookmarks the page, or if we navigate to the page "
+"via an <literal><h:outputLink></literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:270
+#, no-c-format
+msgid ""
+"Sometimes we want to begin a conversation immediately the page is accessed. "
+"Since there is no JSF action method, we can't solve the problem in the usual "
+"way, by annotating the action with <literal>@Begin</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:276
+#, no-c-format
+msgid ""
+"A further problem arises if the page needs some state to be fetched into a "
+"context variable. We've already seen two ways to solve this problem. If that "
+"state is held in a Seam component, we can fetch the state in a "
+"<literal>@Create</literal> method. If not, we can define a "
+"<literal>@Factory</literal> method for the context variable."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:284
+#, no-c-format
+msgid ""
+"If none of these options works for you, Seam lets you define a "
+"<emphasis>page action</emphasis> in the <literal>pages.xml</literal> file."
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:290
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/messageList.jsp\" action=\"#{messageManager.list}\"/>\n"
+" ...\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:292
+#, no-c-format
+msgid ""
+"This action method is called at the beginning of the render response phase, "
+"any time the page is about to be rendered. If a page action returns a non-"
+"null outcome, Seam will process any appropriate JSF and Seam navigation "
+"rules, possibly resulting in a completely different page being rendered."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:300
+#, no-c-format
+msgid ""
+"If <emphasis>all</emphasis> you want to do before rendering the page is "
+"begin a conversation, you could use a built-in action method that does just "
+"that:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:306
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/messageList.jsp\" action=\"#{conversation.begin}\"/>\n"
+" ...\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:308
+#, no-c-format
+msgid ""
+"Note that you can also call this built-in action from a JSF control, and, "
+"similarly, you can use <literal>#{conversation.end}</literal> to end "
+"conversations."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:314
+#, no-c-format
+msgid ""
+"If you want more control, to join existing conversations or begin a nested "
+"conversion, to begin a pageflow or an atomic conversation, you should use "
+"the <literal><begin-conversation></literal> element."
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:321
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/messageList.jsp\">\n"
+" <begin-conversation nested=\"true\" pageflow=\"AddItem\"/>\n"
+" <page>\n"
+" ...\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:323
+#, no-c-format
+msgid "There is also an <literal><end-conversation></literal> element."
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:328
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/home.jsp\">\n"
+" <end-conversation/>\n"
+" <page>\n"
+" ...\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:330
+#, no-c-format
+msgid "To solve the first problem, we now have five options:"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:336
+#, no-c-format
+msgid ""
+"Annotate the <literal>@Create</literal> method with <literal>@Begin</literal>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:342
+#, no-c-format
+msgid ""
+"Annotate the <literal>@Factory</literal> method with <literal>@Begin</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:348
+#, no-c-format
+msgid "Annotate the Seam page action method with <literal>@Begin</literal>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:354
+#, no-c-format
+msgid ""
+"Use <literal><begin-conversation></literal> in <literal>pages.xml</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:360
+#, no-c-format
+msgid ""
+"Use <literal>#{conversation.begin}</literal> as the Seam page action method"
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:370
+#, no-c-format
+msgid ""
+"Using <literal><s:link></literal> and <literal><s:button></"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:372
+#, no-c-format
+msgid ""
+"JSF command links always perform a form submission via JavaScript, which "
+"breaks the web browser's \"open in new window\" or \"open in new tab\" "
+"feature. In plain JSF, you need to use an <literal><h:outputLink></"
+"literal> if you need this functionality. But there are two major limitations "
+"to <literal><h:outputLink></literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:382
+#, no-c-format
+msgid ""
+"JSF provides no way to attach an action listener to an <literal><h:"
+"outputLink></literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:388
+#, no-c-format
+msgid ""
+"JSF does not propagate the selected row of a <literal>DataModel</literal> "
+"since there is no actual form submission."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:395
+#, no-c-format
+msgid ""
+"Seam provides the notion of a <emphasis>page action</emphasis> to help solve "
+"the first problem, but this does nothing to help us with the second problem. "
+"We <emphasis>could</emphasis> work around this by using the RESTful approach "
+"of passing a request parameter and requerying for the selected object on the "
+"server side. In some cases—such as the Seam blog example "
+"application—this is indeed the best approach. The RESTful style "
+"supports bookmarking, since it does not require server-side state. In other "
+"cases, where we don't care about bookmarks, the use of <literal>@DataModel</"
+"literal> and <literal>@DataModelSelection</literal> is just so convenient "
+"and transparent!"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:408
+#, no-c-format
+msgid ""
+"To fill in this missing functionality, and to make conversation propagation "
+"even simpler to manage, Seam provides the <literal><s:link></literal> "
+"JSF tag."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:414
+#, no-c-format
+msgid "The link may specify just the JSF view id:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:418
+#, no-c-format
+msgid "<![CDATA[<s:link view=\"/login.xhtml\" value=\"Login\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:420
+#, no-c-format
+msgid ""
+"Or, it may specify an action method (in which case the action outcome "
+"determines the page that results):"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:425
+#, no-c-format
+msgid "<![CDATA[<s:link action=\"#{login.logout}\" value=\"Logout\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:427
+#, no-c-format
+msgid ""
+"If you specify <emphasis>both</emphasis> a JSF view id and an action method, "
+"the 'view' will be used <emphasis>unless</emphasis> the action method "
+"returns a non-null outcome:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:433
+#, no-c-format
+msgid ""
+"<![CDATA[<s:link view=\"/loggedOut.xhtml\" action=\"#{login.logout}\" value="
+"\"Logout\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:435
+#, no-c-format
+msgid ""
+"The link automatically propagates the selected row of a <literal>DataModel</"
+"literal> using inside <literal><h:dataTable></literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:440
+#, no-c-format
+msgid ""
+"<![CDATA[<s:link view=\"/hotel.xhtml\" action=\"#{hotelSearch.selectHotel}\" "
+"value=\"#{hotel.name}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:442
+#, no-c-format
+msgid "You can leave the scope of an existing conversation:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:446
+#, no-c-format
+msgid "<![CDATA[<s:link view=\"/main.xhtml\" propagation=\"none\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:448
+#, no-c-format
+msgid "You can begin, end, or nest conversations:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:452
+#, no-c-format
+msgid ""
+"<![CDATA[<s:link action=\"#{issueEditor.viewComment}\" propagation=\"nest\"/"
+">]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:454
+#, no-c-format
+msgid ""
+"If the link begins a conversation, you can even specify a pageflow to be "
+"used:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:458
+#, no-c-format
+msgid ""
+"<![CDATA[<s:link action=\"#{documentEditor.getDocument}\" propagation=\"begin"
+"\"\n"
+" pageflow=\"EditDocument\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:460
+#, no-c-format
+msgid ""
+"The <literal>taskInstance</literal> attribute if for use in jBPM task lists:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:464
+#, no-c-format
+msgid ""
+"<![CDATA[<s:link action=\"#{documentApproval.approveOrReject}\" taskInstance="
+"\"#{task}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:466
+#, no-c-format
+msgid "(See the DVD Store demo application for examples of this.)"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:470
+#, no-c-format
+msgid ""
+"Finally, if you need the \"link\" to be rendered as a button, use "
+"<literal><s:button></literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:474
+#, no-c-format
+msgid "<![CDATA[<s:button action=\"#{login.logout}\" value=\"Logout\"/>]]>"
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:479
+#, no-c-format
+msgid "Success messages"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:480
+#, no-c-format
+msgid ""
+"It is quite common to display a message to the user indicating success or "
+"failure of an action. It is convenient to use a JSF <literal>FacesMessage</"
+"literal> for this. Unfortunately, a successful action often requires a "
+"browser redirect, and JSF does not propagate faces messages across "
+"redirects. This makes it quite difficult to display success messages in "
+"plain JSF."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:489
+#, no-c-format
+msgid ""
+"The built in conversation-scoped Seam component named "
+"<literal>facesMessages</literal> solves this problem. (You must have the "
+"Seam redirect filter installed.)"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:495
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"editDocumentAction\")\n"
+"@Stateless\n"
+"public class EditDocumentBean implements EditDocument {\n"
+" @In EntityManager em;\n"
+" @In Document document;\n"
+" @In FacesMessages facesMessages;\n"
+" \n"
+" public String update() {\n"
+" em.merge(document);\n"
+" facesMessages.add(\"Document updated\");\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:497
+#, no-c-format
+msgid ""
+"Any message added to <literal>facesMessages</literal> is used in the very "
+"next render response phase for the current conversation. This even works "
+"when there is no long-running conversation since Seam preserves even "
+"temporary conversation contexts across redirects."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:505
+#, no-c-format
+msgid "You can even include JSF EL expressions in a faces message summary:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:509
+#, no-c-format
+msgid ""
+"<![CDATA[facesMessages.add(\"Document #{document.title} was updated\");]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:511
+#, no-c-format
+msgid "You may display the messages in the usual way, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:515
+#, no-c-format
+msgid "<![CDATA[<h:messages globalOnly=\"true\"/>]]>"
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:520
+#, no-c-format
+msgid "Natural conversation ids"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:521
+#, no-c-format
+msgid ""
+"When working with conversations that deal with persistent objects, it may be "
+"desirable to use the natural business key of the object instead of the "
+"standard, \"surrogate\" conversation id:"
+msgstr ""
+
+#. Tag: emphasis
+#: Conversations.xml:528
+#, no-c-format
+msgid "Easy redirect to existing conversation"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:530
+#, no-c-format
+msgid ""
+"It can be useful to redirect to an existing conversation if the user "
+"requests the same operation twice. Take this example: <quote> You are on "
+"ebay, half way through paying for an item you just won as a Christmas "
+"present for your parents. Lets say you're sending it straight to them - you "
+"enter your payment details but you can't remember their address. You "
+"accidentally reuse the same browser window finding out their address. Now "
+"you need to return to the payment for the item. </quote>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:543
+#, no-c-format
+msgid ""
+"With a natural conversation its really easy to have the user rejoin the "
+"existing conversation, and pick up where they left off - just have them to "
+"rejoin the payForItem conversation with the itemId as the conversation id."
+msgstr ""
+
+#. Tag: emphasis
+#: Conversations.xml:551
+#, no-c-format
+msgid "User friendly URLs"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:554
+#, no-c-format
+msgid ""
+"For me this consists of a navigable hierarchy (I can navigate by editing the "
+"url) and a meaningful URL (like this Wiki uses - so don't identify things by "
+"random ids). For some applications user friendly URLs are less important, of "
+"course."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:562
+#, no-c-format
+msgid ""
+"With a natural conversations, when you are building your hotel booking "
+"system (or, of course, whatever your app is) you can generate a URL like "
+"<literal>http://seam-hotels/book.seam?hotel=BestWesternAntwerpen</literal> "
+"(of course, whatever parameter <literal>hotel</literal> maps to on your "
+"domain model must be unique) and with URLRewrite easily transform this to "
+"http://seam-hotels/book/BestWesternAntwerpen."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:573
+#, no-c-format
+msgid "Much better!"
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:579
+#, no-c-format
+msgid "Creating a natural conversation"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:580
+#, no-c-format
+msgid "Natural conversations are defined in <literal>pages.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:584
+#, no-c-format
+msgid ""
+"<![CDATA[ <conversation name=\"PlaceBid\"\n"
+" parameter-name=\"auctionId\"\n"
+" parameter-value=\"#{auction.auctionId}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:586
+#, no-c-format
+msgid ""
+"The first thing to note from the above definition is that the conversation "
+"has a name, in this case <literal>PlaceBid</literal>. This name uniquely "
+"identifies this particular named conversation, and is used by the "
+"<literal>page</literal> definition to identify a named conversation to "
+"participate in."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:594
+#, no-c-format
+msgid ""
+"The next attribute, <literal>parameter-name</literal> defines the request "
+"parameter that will contain the natural conversation id, in place of the "
+"default conversation id parameter. In this example, the <literal>parameter-"
+"name</literal> is <literal>auctionId</literal>. This means that instead of a "
+"conversation parameter like <literal>cid=123</literal> appearing in the URL "
+"for your page, it will contain <literal>auctionId=765432</literal> instead."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:603
+#, no-c-format
+msgid ""
+"The last attribute in the above configuration, <literal>parameter-value</"
+"literal>, defines an EL expression used to evaluate the value of the natural "
+"business key to use as the conversation id. In this example, the "
+"conversation id will be the primary key value of the <literal>auction</"
+"literal> instance currently in scope."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:610
+#, no-c-format
+msgid ""
+"Next, we define which pages will participate in the named conversation. This "
+"is done by specifying the <literal>conversation</literal> attribute for a "
+"<literal>page</literal> definition:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:616
+#, no-c-format
+msgid ""
+"<![CDATA[ <page view-id=\"/bid.xhtml\" conversation=\"PlaceBid\" login-"
+"required=\"true\">\n"
+" <navigation from-action=\"#{bidAction.confirmBid}\"> \n"
+" <rule if-outcome=\"success\">\n"
+" <redirect view-id=\"/auction.xhtml\">\n"
+" <param name=\"id\" value=\"#{bidAction.bid.auction."
+"auctionId}\"/>\n"
+" </redirect>\n"
+" </rule> \n"
+" </navigation>\n"
+" </page>]]>"
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:621
+#, no-c-format
+msgid "Redirecting to a natural conversation"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:623
+#, no-c-format
+msgid ""
+"When starting, or redirecting to, a natural conversation there are a number "
+"of options for specifying the natural conversation name. Let's start by "
+"looking at the following page definition:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:629
+#, no-c-format
+msgid ""
+"<![CDATA[ <page view-id=\"/auction.xhtml\">\n"
+" <param name=\"id\" value=\"#{auctionDetail.selectedAuctionId}\"/>\n"
+" \n"
+" <navigation from-action=\"#{bidAction.placeBid}\">\n"
+" <redirect view-id=\"/bid.xhtml\"/>\n"
+" </navigation>\n"
+" </page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:631
+#, no-c-format
+msgid ""
+"From here, we can see that invoking the action <literal>#{bidAction.placeBid}"
+"</literal> from our auction view (by the way, all these examples are taken "
+"from the seamBay example in Seam), that we will be redirected to <literal>/"
+"bid.xhtml</literal>, which, as we saw previously, is configured with the "
+"natural conversation <literal>PlaceBid</literal>. The declaration for our "
+"action method looks like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:639
+#, no-c-format
+msgid ""
+"<![CDATA[ @Begin(join = true)\n"
+" public void placeBid()]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:641
+#, no-c-format
+msgid ""
+"When named conversations are specified in the <literal><page/></"
+"literal> element, redirection to the named conversation occurs as part of "
+"navigation rules, after the action method has already been invoked. This is "
+"a problem when redirecting to an existing conversation, as redirection needs "
+"to be occur before the action method is invoked. Therefore it is necessary "
+"to specify the conversation name when the action is invoked. One way of "
+"doing this is by using the <literal>s:conversationName</literal> tag:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:651
+#, no-c-format
+msgid ""
+"<![CDATA[ <h:commandButton id=\"placeBidWithAmount\" styleClass=\"placeBid"
+"\" action=\"#{bidAction.placeBid}\">\n"
+" <s:conversationName value=\"PlaceBid\"/>\n"
+" </h:commandButton>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:653
+#, no-c-format
+msgid ""
+"Another alternative is to specify the <literal>conversationName</literal> "
+"attribute when using either <literal>s:link</literal> or <literal>s:button</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:658
+#, no-c-format
+msgid ""
+"<![CDATA[ <s:link value=\"Place Bid\" action=\"#{bidAction.placeBid}\" "
+"conversationName=\"PlaceBid\"/>]]>"
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:664
+#, no-c-format
+msgid "Workspace management"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:666
+#, no-c-format
+msgid ""
+"Workspace management is the ability to \"switch\" conversations in a single "
+"window. Seam makes workspace management completely transparent at the level "
+"of the Java code. To enable workspace management, all you need to do is:"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:675
+#, no-c-format
+msgid ""
+"Provide <emphasis>description</emphasis> text for each view id (when using "
+"JSF or Seam navigation rules) or page node (when using jPDL pageflows). This "
+"description text is displayed to the user by the workspace switchers."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:683
+#, no-c-format
+msgid ""
+"Include one or more of the standard workspace switcher JSP or facelets "
+"fragments in your pages. The standard fragments support workspace management "
+"via a drop down menu, a list of conversations, or breadcrumbs."
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:693
+#, no-c-format
+msgid "Workspace management and JSF navigation"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:694
+#, no-c-format
+msgid ""
+"When you use JSF or Seam navigation rules, Seam switches to a conversation "
+"by restoring the current <literal>view-id</literal> for that conversation. "
+"The descriptive text for the workspace is defined in a file called "
+"<literal>pages.xml</literal> that Seam expects to find in the <literal>WEB-"
+"INF</literal> directory, right next to <literal>faces-config.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:703
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/main.xhtml\">\n"
+" <description>Search hotels: #{hotelBooking.searchString}</"
+"description>\n"
+" </page>\n"
+" <page view-id=\"/hotel.xhtml\">\n"
+" <description>View hotel: #{hotel.name}</description>\n"
+" </page>\n"
+" <page view-id=\"/book.xhtml\">\n"
+" <description>Book hotel: #{hotel.name}</description>\n"
+" </page>\n"
+" <page view-id=\"/confirm.xhtml\">\n"
+" <description>Confirm: #{booking.description}</description>\n"
+" </page>\n"
+" </pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:705
+#, no-c-format
+msgid ""
+"Note that if this file is missing, the Seam application will continue to "
+"work perfectly! The only missing functionality will be the ability to switch "
+"workspaces."
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:714
+#, no-c-format
+msgid "Workspace management and jPDL pageflow"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:715
+#, no-c-format
+msgid ""
+"When you use a jPDL pageflow definition, Seam switches to a conversation by "
+"restoring the current jBPM process state. This is a more flexible model "
+"since it allows the same <literal>view-id</literal> to have different "
+"descriptions depending upon the current <literal><page></literal> "
+"node. The description text is defined by the <literal><page></literal> "
+"node:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:726
+#, no-c-format
+msgid ""
+"<![CDATA[<pageflow-definition name=\"shopping\">\n"
+"\n"
+" <start-state name=\"start\">\n"
+" <transition to=\"browse\"/>\n"
+" </start-state>\n"
+" \n"
+" <page name=\"browse\" view-id=\"/browse.xhtml\">\n"
+" <description>DVD Search: #{search.searchPattern}</description>\n"
+" <transition to=\"browse\"/>\n"
+" <transition name=\"checkout\" to=\"checkout\"/>\n"
+" </page>\n"
+" \n"
+" <page name=\"checkout\" view-id=\"/checkout.xhtml\">\n"
+" <description>Purchase: $#{cart.total}</description>\n"
+" <transition to=\"checkout\"/>\n"
+" <transition name=\"complete\" to=\"complete\"/>\n"
+" </page>\n"
+" \n"
+" <page name=\"complete\" view-id=\"/complete.xhtml\">\n"
+" <end-conversation />\n"
+" </page>\n"
+" \n"
+"</pageflow-definition>]]>"
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:731
+#, no-c-format
+msgid "The conversation switcher"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:733
+#, no-c-format
+msgid ""
+"Include the following fragment in your JSP or facelets page to get a drop-"
+"down menu that lets you switch to any current conversation, or to any other "
+"page of the application:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:739
+#, no-c-format
+msgid ""
+"<![CDATA[<h:selectOneMenu value=\"#{switcher.conversationIdOrOutcome}\">\n"
+" <f:selectItem itemLabel=\"Find Issues\" itemValue=\"findIssue\"/>\n"
+" <f:selectItem itemLabel=\"Create Issue\" itemValue=\"editIssue\"/>\n"
+" <f:selectItems value=\"#{switcher.selectItems}\"/>\n"
+"</h:selectOneMenu>\n"
+"<h:commandButton action=\"#{switcher.select}\" value=\"Switch\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:741
+#, no-c-format
+msgid ""
+"In this example, we have a menu that includes an item for each conversation, "
+"together with two additional items that let the user begin a new "
+"conversation."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:747
+#, no-c-format
+msgid ""
+"Only conversations with a description (specified in <literal>pages.xml</"
+"literal>) will be included in the drop-down menu."
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:765
+#, no-c-format
+msgid "The conversation list"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:767
+#, no-c-format
+msgid ""
+"The conversation list is very similar to the conversation switcher, except "
+"that it is displayed as a table:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:772
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{conversationList}\" var=\"entry\"\n"
+" rendered=\"#{not empty conversationList}\">\n"
+" <h:column>\n"
+" <f:facet name=\"header\">Workspace</f:facet>\n"
+" <h:commandLink action=\"#{entry.select}\" value=\"#{entry."
+"description}\"/>\n"
+" <h:outputText value=\"[current]\" rendered=\"#{entry.current}\"/>\n"
+" </h:column>\n"
+" <h:column>\n"
+" <f:facet name=\"header\">Activity</f:facet>\n"
+" <h:outputText value=\"#{entry.startDatetime}\">\n"
+" <f:convertDateTime type=\"time\" pattern=\"hh:mm a\"/>\n"
+" </h:outputText>\n"
+" <h:outputText value=\" - \"/>\n"
+" <h:outputText value=\"#{entry.lastDatetime}\">\n"
+" <f:convertDateTime type=\"time\" pattern=\"hh:mm a\"/>\n"
+" </h:outputText>\n"
+" </h:column>\n"
+" <h:column>\n"
+" <f:facet name=\"header\">Action</f:facet>\n"
+" <h:commandButton action=\"#{entry.select}\" value=\"#{msg.Switch}\"/"
+">\n"
+" <h:commandButton action=\"#{entry.destroy}\" value=\"#{msg.Destroy}"
+"\"/>\n"
+" </h:column>\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:774
+#, no-c-format
+msgid ""
+"We imagine that you will want to customize this for your own application."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:787
+#, no-c-format
+msgid "Only conversations with a description will be included in the list."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:792
+#, no-c-format
+msgid "Notice that the conversation list lets the user destroy workspaces."
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:799
+#, no-c-format
+msgid "Breadcrumbs"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:801
+#, no-c-format
+msgid ""
+"Breadcrumbs are useful in applications which use a nested conversation "
+"model. The breadcrumbs are a list of links to conversations in the current "
+"conversation stack:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:807
+#, no-c-format
+msgid ""
+"<![CDATA[<ui:repeat value=\"#{conversationStack}\" var=\"entry\">\n"
+" <h:outputText value=\" | \"/> \n"
+" <h:commandLink value=\"#{entry.description}\" action=\"#{entry.select}\"/"
+">\n"
+"</ui:repeat]]>"
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:822
+#, no-c-format
+msgid "Conversational components and JSF component bindings"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:824
+#, no-c-format
+msgid ""
+"Conversational components have one minor limitation: they cannot be used to "
+"hold bindings to JSF components. (We generally prefer not to use this "
+"feature of JSF unless absolutely necessary, since it creates a hard "
+"dependency from application logic to the view.) On a postback request, "
+"component bindings are updated during the Restore View phase, before the "
+"Seam conversation context has been restored."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:832
+#, no-c-format
+msgid ""
+"To work around this use an event scoped component to store the component "
+"bindings and inject it into the conversation scoped component that requires "
+"it."
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:837
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"grid\")\n"
+"@Scope(ScopeType.EVENT)\n"
+"public class Grid\n"
+"{\n"
+" private HtmlPanelGrid htmlPanelGrid;\n"
+"\n"
+" // getters and setters\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:840
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"gridEditor\")\n"
+"@Scope(ScopeType.CONVERSATION)\n"
+"public class GridEditor\n"
+"{\n"
+" @In(required=false)\n"
+" private Grid grid;\n"
+" \n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:842
+#, no-c-format
+msgid ""
+"Also, you can't inject a conversation scoped component into an event scoped "
+"component which you bind a JSF control to. This includes Seam built in "
+"components like <literal>facesMessages</literal>."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:848
+#, no-c-format
+msgid ""
+"Alternatively, you can access the JSF component tree through the implicit "
+"<literal>uiComponent</literal> handle. The following example accesses "
+"<literal>getRowIndex()</literal>of the <literal>UIData</literal> component "
+"which backs the data table during iteration, it prints the current row "
+"number:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:855
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<h:dataTable id=\"lineItemTable\" var=\"lineItem\" value=\"#{orderHome."
+"lineItems}\">\n"
+" <h:column>\n"
+" Row: #{uiComponent['lineItemTable'].rowIndex}\n"
+" </h:column>\n"
+" ...\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:857
+#, no-c-format
+msgid ""
+"JSF UI components are available with their client identifier in this map."
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:864
+#, no-c-format
+msgid "Concurrent calls to conversational components"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:866
+#, no-c-format
+msgid ""
+"A general discussion of concurrent calls to Seam components can be found in "
+"<xref linkend=\"concurrency\"/>. Here we will discuss the most common "
+"situation in which you will encounter concurrency — accessing "
+"conversational components from AJAX requests. We're going to discuss the "
+"options that a Ajax client library should provide to control events "
+"originating at the client — and we'll look at the options RichFaces "
+"gives you."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:876
+#, no-c-format
+msgid ""
+"Conversational components don't allow real concurrent access therefore Seam "
+"queues each request to process them serially. This allows each request to be "
+"executed in a deterministic fashion. However, a simple queue isn't that "
+"great — firstly, if a method is, for some reason, taking a very long "
+"time to complete, running it over and over again whenever the client "
+"generates a request is bad idea (potential for Denial of Service attacks), "
+"and, secondly, AJAX is often to used to provide a quick status update to the "
+"user, so continuing to run the action after a long time isn't useful."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:888
+#, no-c-format
+msgid ""
+"Therefore Seam queues the action event for a period of time (the concurrent "
+"request timeout); if it can't process the event in time, it creates a "
+"temporary conversation and prints out a message to the user to let them know "
+"what's going on. It's therefore very important not to flood the server with "
+"AJAX events!"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:896
+#, no-c-format
+msgid ""
+"We can set a sensible default for the concurrent request timeout (in ms) in "
+"components.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:901
+#, no-c-format
+msgid "<![CDATA[<core:manager concurrent-request-timeout=\"500\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:909
+#, no-c-format
+msgid ""
+"So far we've discussed \"synchronous\" AJAX requests - the client tells the "
+"server that an event has occur, and then rerenders part of the page based on "
+"the result. This approach is great when the AJAX request is lightweight (the "
+"methods called are simple e.g. calculating the sum of a column of numbers). "
+"But what if we need to do a complex computation?"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:916
+#, no-c-format
+msgid ""
+"For heavy computation we should use a truly asynchronous (poll based) "
+"approach — the client sends an AJAX request to the server, which "
+"causes action to be executed asynchronously on the server (so the the "
+"response to the client is immediate); the client then polls the server for "
+"updates. This is useful when you have a long-running action for which it is "
+"important that every action executes (you don't want some to be dropped as "
+"duplicates, or to timeout)."
+msgstr ""
+
+#. Tag: emphasis
+#: Conversations.xml:927
+#, no-c-format
+msgid "How should we design our conversational AJAX application?"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:930
+#, no-c-format
+msgid ""
+"Well first, you need to decide whether you want to use the simpler "
+"\"synchronous\" request or whether you want to add using a poll-style "
+"approach."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:936
+#, no-c-format
+msgid ""
+"If you go for a \"synchronous\" approach, then you need to make an estimate "
+"of how long your AJAX request will take to complete - is it much shorter "
+"than the concurrent request timeout? If not, you probably want to alter the "
+"concurrent request timeout for this method (as discussed above). Next you "
+"probably want a queue on the client side to prevent flooding the server with "
+"requests. If the event occurs often (e.g. a keypress, onblur of input "
+"fields) and immediate update of the client is not a priority you should set "
+"a request delay on the client side. When working out your request delay, "
+"factor in that the event may also be queued on the server side."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:949
+#, no-c-format
+msgid ""
+"Finally, the client library may provide an option to abort unfinished "
+"duplicate requests in favor of the most recent. You need to be careful with "
+"this option as it can lead to flooding of the server with requests if the "
+"server is not able to abort the unfinished request."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:956
+#, no-c-format
+msgid ""
+"Using a poll-style design requires less fine-tuning. You just mark your "
+"action method <literal>@Asynchronous</literal> and decide on a polling "
+"interval:"
+msgstr ""
+
+#. Tag: programlisting
+#: Conversations.xml:962
+#, no-c-format
+msgid ""
+"<![CDATA[int total;\n"
+"\n"
+"// This method is called when an event occurs on the client\n"
+"// It takes a really long time to execute\n"
+"@Asynchronous \n"
+"public void calculateTotal() {\n"
+" total = someReallyComplicatedCalculation();\n"
+"}\n"
+"\n"
+"// This method is called as the result of the poll\n"
+"// It's very quick to execute\n"
+"public int getTotal() {\n"
+" return total;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Conversations.xml:965
+#, no-c-format
+msgid "RichFaces Ajax"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:967
+#, no-c-format
+msgid ""
+"RichFaces Ajax is the AJAX library most commonly used with Seam, and "
+"provides all the controls discussed above:"
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:974
+#, no-c-format
+msgid ""
+"<literal>eventsQueue</literal> — provide a queue in which events are "
+"placed. All events are queued and requests are sent to the server serially. "
+"This is useful if the request can to the server can take some time to "
+"execute (e.g. heavy computation, retrieving information from a slow source) "
+"as the server isn't flooded."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:984
+#, no-c-format
+msgid ""
+"<literal>ignoreDupResponses</literal> — ignore the response produced "
+"by the request if a more recent 'similar' request is already in the queue. "
+"ignoreDupResponses=\"true\" does <emphasis>not cancel</emphasis> the the "
+"processing of the request on the server side — just prevents "
+"unnecessary updates on the client side."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:991
+#, no-c-format
+msgid ""
+"This option should be used with care with Seam's conversations as it allows "
+"multiple concurrent requests to be made."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:997
+#, no-c-format
+msgid ""
+"<literal>requestDelay</literal> — defines the time (in ms.) that the "
+"request will be remain on the queue. If the request has not been processed "
+"by after this time the request will be sent (regardless of whether a "
+"response has been received) or discarded (if there is a more recent similar "
+"event on the queue)."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:1004
+#, no-c-format
+msgid ""
+"This option should be used with care with Seam's conversations as it allows "
+"multiple concurrent requests to be made. You need to be sure that the delay "
+"you set (in combination with the concurrent request timeout) is longer than "
+"the action will take to execute."
+msgstr ""
+
+#. Tag: para
+#: Conversations.xml:1012
+#, no-c-format
+msgid ""
+"<literal><a:poll reRender=\"total\" interval=\"1000\" /></literal> "
+"— Polls the server, and rerenders an area as needed"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Dependencies.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Dependencies.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Dependencies.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,775 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Dependencies.xml:5
+#, no-c-format
+msgid "Dependencies"
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:8
+#, no-c-format
+msgid "Project Dependencies"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:10
+#, no-c-format
+msgid ""
+"This section both lists the compile-time and runtime dependencies for Seam. "
+"Where the type is listed as <literal>ear</literal>, the library should be "
+"included in the /lib directory of your application's ear file. Where the "
+"type is listed as <literal>war</literal>, the library should be placed in "
+"the <literal>/WEB-INF/lib</literal> directory of your application's war "
+"file. The scope of the dependency is either all, runtime or provided (by "
+"JBoss AS 4.2)."
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:20
+#, no-c-format
+msgid ""
+"Up to date version information and complete dependency information is not "
+"included in the docs, but is provided in the <literal>/dependency-report."
+"txt</literal> which is generated from the Maven POMs stored in <literal>/"
+"build</literal>. You can generate this file by running <literal>ant "
+"dependencyReport</literal>."
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:29
+#, no-c-format
+msgid "Core"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:42 Dependencies.xml:244 Dependencies.xml:328
+#: Dependencies.xml:426 Dependencies.xml:526 Dependencies.xml:653
+#: Dependencies.xml:709 Dependencies.xml:764 Dependencies.xml:819
+#, no-c-format
+msgid "Name"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:45 Dependencies.xml:247 Dependencies.xml:331
+#: Dependencies.xml:432 Dependencies.xml:529 Dependencies.xml:656
+#: Dependencies.xml:712 Dependencies.xml:767 Dependencies.xml:822
+#, no-c-format
+msgid "Scope"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:48 Dependencies.xml:250 Dependencies.xml:334
+#: Dependencies.xml:429 Dependencies.xml:532 Dependencies.xml:659
+#: Dependencies.xml:715 Dependencies.xml:770 Dependencies.xml:825
+#, no-c-format
+msgid "Type"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:51 Dependencies.xml:253 Dependencies.xml:337
+#: Dependencies.xml:435 Dependencies.xml:535 Dependencies.xml:662
+#: Dependencies.xml:718 Dependencies.xml:773 Dependencies.xml:828
+#, no-c-format
+msgid "Notes"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:60
+#, no-c-format
+msgid "jboss-seam.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:63 Dependencies.xml:265
+#, no-c-format
+msgid "<para>all</para>"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:66 Dependencies.xml:216 Dependencies.xml:268
+#: Dependencies.xml:352 Dependencies.xml:367 Dependencies.xml:550
+#: Dependencies.xml:565 Dependencies.xml:580 Dependencies.xml:595
+#: Dependencies.xml:610 Dependencies.xml:625 Dependencies.xml:677
+#: Dependencies.xml:787 Dependencies.xml:842
+#, no-c-format
+msgid "<para>ear</para>"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:69
+#, no-c-format
+msgid "The core Seam library, always required."
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:75
+#, no-c-format
+msgid "jboss-seam-debug.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:78 Dependencies.xml:93 Dependencies.xml:108
+#: Dependencies.xml:123 Dependencies.xml:138 Dependencies.xml:183
+#: Dependencies.xml:198 Dependencies.xml:213 Dependencies.xml:283
+#: Dependencies.xml:298 Dependencies.xml:349 Dependencies.xml:364
+#: Dependencies.xml:396 Dependencies.xml:447 Dependencies.xml:462
+#: Dependencies.xml:477 Dependencies.xml:492 Dependencies.xml:547
+#: Dependencies.xml:562 Dependencies.xml:577 Dependencies.xml:592
+#: Dependencies.xml:607 Dependencies.xml:622 Dependencies.xml:674
+#: Dependencies.xml:729 Dependencies.xml:784 Dependencies.xml:839
+#, no-c-format
+msgid "runtime"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:81 Dependencies.xml:96 Dependencies.xml:111
+#: Dependencies.xml:126 Dependencies.xml:141 Dependencies.xml:186
+#: Dependencies.xml:201 Dependencies.xml:286 Dependencies.xml:301
+#: Dependencies.xml:399 Dependencies.xml:450 Dependencies.xml:465
+#: Dependencies.xml:480 Dependencies.xml:495 Dependencies.xml:732
+#, no-c-format
+msgid "<para>war</para>"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:84
+#, no-c-format
+msgid "Include during development when enabling Seam's debug feature"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:90
+#, no-c-format
+msgid "jboss-seam-ioc.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:99
+#, no-c-format
+msgid "Required when using Seam with Spring"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:105 Dependencies.xml:489
+#, no-c-format
+msgid "jboss-seam-pdf.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:114
+#, no-c-format
+msgid "Required when using Seam's PDF features"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:120
+#, no-c-format
+msgid "jboss-seam-remoting.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:129
+#, no-c-format
+msgid "Required when using Seam Remoting"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:135
+#, no-c-format
+msgid "jboss-seam-ui.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:144
+#, no-c-format
+msgid "Required to use the Seam JSF controls"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:150
+#, no-c-format
+msgid "jsf-api.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:153 Dependencies.xml:168
+#, no-c-format
+msgid "provided"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:159
+#, no-c-format
+msgid "JSF API"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:165
+#, no-c-format
+msgid "jsf-impl.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:174
+#, no-c-format
+msgid "JSF Reference Implementation"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:180
+#, no-c-format
+msgid "jsf-facelets.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:189
+#, no-c-format
+msgid "Facelets"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:195
+#, no-c-format
+msgid "urlrewrite.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:204
+#, no-c-format
+msgid "URL Rewrite library"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:210
+#, no-c-format
+msgid "quartz.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:219
+#, no-c-format
+msgid "Required when you wish to use Quartz with Seam's asynchronous features"
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:230
+#, no-c-format
+msgid "RichFaces"
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:233
+#, no-c-format
+msgid "RichFaces dependencies"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:262
+#, no-c-format
+msgid "richfaces-api.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:271
+#, no-c-format
+msgid ""
+"Required to use RichFaces. Provides API classes that you may wish to use "
+"from your application e.g. to create a tree"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:280
+#, no-c-format
+msgid "richfaces-impl.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:289
+#, no-c-format
+msgid "Required to use RichFaces."
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:295
+#, no-c-format
+msgid "richfaces-ui.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:304
+#, no-c-format
+msgid "Required to use RichFaces. Provides all the UI components."
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:314
+#, no-c-format
+msgid "<title>Seam Mail</title>"
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:317
+#, no-c-format
+msgid "Seam Mail Dependencies"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:346
+#, no-c-format
+msgid "activation.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:355
+#, no-c-format
+msgid "Required for attachment support"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:361
+#, no-c-format
+msgid "mail.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:370
+#, no-c-format
+msgid "Required for outgoing mail support"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:376
+#, no-c-format
+msgid "mail-ra.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:379
+#, no-c-format
+msgid "compile only"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:385
+#, no-c-format
+msgid "Required for incoming mail support"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:386
+#, no-c-format
+msgid "mail-ra.rar should be deployed to the application server at runtime"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:393
+#, no-c-format
+msgid "jboss-seam-mail.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:402
+#, no-c-format
+msgid "<para>Seam Mail</para>"
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:412
+#, no-c-format
+msgid "Seam PDF"
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:415
+#, no-c-format
+msgid "Seam PDF Dependencies"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:444
+#, no-c-format
+msgid "itext.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:453
+#, no-c-format
+msgid "PDF Library"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:459
+#, no-c-format
+msgid "jfreechart.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:468
+#, no-c-format
+msgid "Charting library"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:474
+#, no-c-format
+msgid "jcommon.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:483
+#, no-c-format
+msgid "Required by JFreeChart"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:498
+#, no-c-format
+msgid "Seam PDF core library"
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:508
+#, no-c-format
+msgid "JBoss Rules"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:510
+#, no-c-format
+msgid ""
+"The JBoss Rules libraries can be found in the <literal>drools/lib</literal> "
+"directory in Seam."
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:515
+#, no-c-format
+msgid "JBoss Rules Dependencies"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:544
+#, no-c-format
+msgid "antlr-runtime.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:553
+#, no-c-format
+msgid "ANTLR Runtime Library"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:559
+#, no-c-format
+msgid "core.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:568
+#, no-c-format
+msgid "Eclipse JDT"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:574
+#, no-c-format
+msgid "drools-compiler.jar"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:589
+#, no-c-format
+msgid "drools-core.jar"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:604
+#, no-c-format
+msgid "janino.jar"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:619
+#, no-c-format
+msgid "mvel.jar"
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:639
+#, no-c-format
+msgid "JBPM"
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:642
+#, no-c-format
+msgid "JBPM dependencies"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:671
+#, no-c-format
+msgid "jbpm-jpdl.jar"
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:691
+#, no-c-format
+msgid "<title>GWT</title>"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:693
+#, no-c-format
+msgid ""
+"These libraries are required if you with to use the Google Web Toolkit (GWT) "
+"with your Seam application."
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:698
+#, no-c-format
+msgid "GWT dependencies"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:726
+#, no-c-format
+msgid "gwt-servlet.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:735
+#, no-c-format
+msgid "The GWT Servlet libs"
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:746
+#, no-c-format
+msgid "Spring"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:748
+#, no-c-format
+msgid ""
+"These libraries are required if you with to use the Spring Framework with "
+"your Seam application."
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:753
+#, no-c-format
+msgid "Spring Framework dependencies"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:781
+#, no-c-format
+msgid "spring.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:790
+#, no-c-format
+msgid "The Spring Framework library"
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:801
+#, no-c-format
+msgid "Groovy"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:803
+#, no-c-format
+msgid ""
+"These libraries are required if you with to use Groovy with your Seam "
+"application."
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:808
+#, no-c-format
+msgid "Groovy dependencies"
+msgstr ""
+
+#. Tag: literal
+#: Dependencies.xml:836
+#, no-c-format
+msgid "groovy-all.jar"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:845
+#, no-c-format
+msgid "The Groovy libs"
+msgstr ""
+
+#. Tag: title
+#: Dependencies.xml:857
+#, no-c-format
+msgid "Dependency Management using Maven"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:860
+#, no-c-format
+msgid ""
+"Maven offers support for transitive dependency management and can be used to "
+"manage the dependencies of your Seam project. You can use Maven Ant Tasks to "
+"integrate Maven into your Ant build, or can use Maven to build and deploy "
+"your project."
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:867
+#, no-c-format
+msgid ""
+"We aren't actually going to discuss how to use Maven here, but just run over "
+"some basic POMs you could use."
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:872
+#, no-c-format
+msgid ""
+"Released versions of Seam are available in http://repository.jboss.org/"
+"maven2 and nightly snapshots are available in http://snapshots.jboss.org/"
+"maven2."
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:877
+#, no-c-format
+msgid "All the Seam artifacts are available in Maven:"
+msgstr ""
+
+#. Tag: programlisting
+#: Dependencies.xml:881
+#, no-c-format
+msgid ""
+"<![CDATA[<dependency>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>jboss-seam</artifactId>\n"
+"</dependency>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Dependencies.xml:883
+#, no-c-format
+msgid ""
+"<![CDATA[<dependency>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>jboss-seam-ui</artifactId>\n"
+"</dependency>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Dependencies.xml:885
+#, no-c-format
+msgid ""
+"<![CDATA[<dependency>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>jboss-seam-pdf</artifactId>\n"
+"</dependency>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Dependencies.xml:887
+#, no-c-format
+msgid ""
+"<![CDATA[<dependency>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>jboss-seam-remoting</artifactId>\n"
+"</dependency>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Dependencies.xml:889 Dependencies.xml:891
+#, no-c-format
+msgid ""
+"<![CDATA[<dependency>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>jboss-seam-ioc</artifactId>\n"
+"</dependency>]]>"
+msgstr ""
+
+#. Tag: para
+#: Dependencies.xml:893
+#, no-c-format
+msgid ""
+"This sample POM will give you Seam, JPA (provided by Hibernate) and "
+"Hibernate Validator:"
+msgstr ""
+
+#. Tag: programlisting
+#: Dependencies.xml:898
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache."
+"org/maven-v4_0_0.xsd\">\n"
+" <modelVersion>4.0.0</modelVersion>\n"
+" <groupId>org.jboss.seam.example/groupId>\n"
+" <artifactId>my-project</artifactId>\n"
+" <version>1.0</version>\n"
+" <name>My Seam Project</name>\n"
+" <packaging>jar</packaging>\n"
+" <repositories>\n"
+" <repository>\n"
+" <id>repository.jboss.org</id>\n"
+" <name>JBoss Repository</name>\n"
+" <url>http://repository.jboss.org/maven2</url>\n"
+" </repository>\n"
+" </repositories>\n"
+"\n"
+" <dependencies>\n"
+"\n"
+" <dependency>\n"
+" <groupId>org.hibernate</groupId>\n"
+" <artifactId>hibernate-validator</artifactId>\n"
+" <version>3.0.0.GA</version>\n"
+" </dependency>\n"
+"\n"
+" <dependency>\n"
+" <groupId>org.hibernate</groupId>\n"
+" <artifactId>hibernate-annotations</artifactId>\n"
+" <version>3.3.0.ga</version>\n"
+" </dependency>\n"
+"\n"
+" <dependency>\n"
+" <groupId>org.hibernate</groupId>\n"
+" <artifactId>hibernate-entitymanager</artifactId>\n"
+" <version>3.3.1.ga</version>\n"
+" </dependency>\n"
+"\n"
+" <dependency>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>jboss-seam</artifactId>\n"
+" <version>2.0.0.GA</version>\n"
+" </dependency>\n"
+" \n"
+" </dependencies>\n"
+"\n"
+"</project>]]>"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Drools.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Drools.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Drools.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,340 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Drools.xml:5
+#, no-c-format
+msgid "Seam and JBoss Rules"
+msgstr ""
+
+#. Tag: para
+#: Drools.xml:7
+#, no-c-format
+msgid ""
+"Seam makes it easy to call JBoss Rules (Drools) rulebases from Seam "
+"components or jBPM process definitions."
+msgstr ""
+
+#. Tag: title
+#: Drools.xml:13
+#, no-c-format
+msgid "Installing rules"
+msgstr ""
+
+#. Tag: para
+#: Drools.xml:15
+#, no-c-format
+msgid ""
+"The first step is to make an instance of <literal>org.drools.RuleBase</"
+"literal> available in a Seam context variable. For testing purposes, Seam "
+"provides a built-in component that compiles a static set of rules from the "
+"classpath. You can install this component via <literal>components.xml</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Drools.xml:22
+#, no-c-format
+msgid ""
+"<![CDATA[<drools:rule-base name=\"policyPricingRules\">\n"
+" <drools:rule-files>\n"
+" <value>policyPricingRules.drl</value>\n"
+" </drools:rule-files>\n"
+"</drools:rule-base>]]>"
+msgstr ""
+
+#. Tag: para
+#: Drools.xml:24
+#, no-c-format
+msgid ""
+"This component compiles rules from a set of <literal>.drl</literal> files "
+"and caches an instance of <literal>org.drools.RuleBase</literal> in the Seam "
+"<literal>APPLICATION</literal> context. Note that it is quite likely that "
+"you will need to install multiple rule bases in a rule-driven application."
+msgstr ""
+
+#. Tag: para
+#: Drools.xml:32
+#, no-c-format
+msgid ""
+"If you want to use a Drools DSL, you alse need to specify the DSL definition:"
+msgstr ""
+
+#. Tag: programlisting
+#: Drools.xml:37
+#, no-c-format
+msgid ""
+"<![CDATA[<drools:rule-base name=\"policyPricingRules\" dsl-file="
+"\"policyPricing.dsl\">\n"
+" <drools:rule-files>\n"
+" <value>policyPricingRules.drl</value>\n"
+" </drools:rule-files>\n"
+"</drools:rule-base>]]>"
+msgstr ""
+
+#. Tag: para
+#: Drools.xml:39
+#, no-c-format
+msgid ""
+"In most rules-driven applications, rules need to be dynamically deployable, "
+"so a production application will want to use a Drools RuleAgent to manage "
+"the RuleBase. The RuleAgent can connect to a Drools rule server (BRMS) or "
+"hot deploy rules packages from a local file repository. The RulesAgent-"
+"managed RuleBase is also configurable in <literal>components.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Drools.xml:47
+#, no-c-format
+msgid ""
+"<![CDATA[<drools:rule-agent name=\"insuranceRules\" \n"
+" configurationFile=\"/WEB-INF/deployedrules.properties\" /"
+">]]>"
+msgstr ""
+
+#. Tag: para
+#: Drools.xml:49
+#, no-c-format
+msgid ""
+"The properties file contains properties specific to the RulesAgent. Here is "
+"an example configuration file from the Drools example distribution."
+msgstr ""
+
+#. Tag: programlisting
+#: Drools.xml:52
+#, no-c-format
+msgid ""
+"newInstance=true\n"
+"url=http://localhost:8080/drools-jbrms/org.drools.brms.JBRMS/package/org."
+"acme.insurance/fmeyer\n"
+"localCacheDir=/Users/fernandomeyer/projects/jbossrules/drools-examples/"
+"drools-examples-brms/cache\n"
+"poll=30\n"
+"name=insuranceconfig"
+msgstr ""
+
+#. Tag: para
+#: Drools.xml:55
+#, no-c-format
+msgid ""
+"It is also possible to configure the options on the component directly, "
+"bypassing the configuration file."
+msgstr ""
+
+#. Tag: programlisting
+#: Drools.xml:57
+#, no-c-format
+msgid ""
+"<![CDATA[<drools:rule-agent name=\"insuranceRules\"\n"
+" url=\"http://localhost:8080/drools-jbrms/org.drools.brms.JBRMS/package/"
+"org.acme.insurance/fmeyer\"\n"
+" local-cache-dir=\"/Users/fernandomeyer/projects/jbossrules/drools-"
+"examples/drools-examples-brms/cache\"\n"
+" poll=\"30\"\n"
+" configuration-name=\"insuranceconfig\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Drools.xml:59
+#, no-c-format
+msgid ""
+"Next, we need to make an instance of <literal>org.drools.WorkingMemory</"
+"literal> available to each conversation. (Each <literal>WorkingMemory</"
+"literal> accumulates facts relating to the current conversation.)"
+msgstr ""
+
+#. Tag: programlisting
+#: Drools.xml:65
+#, no-c-format
+msgid ""
+"<![CDATA[<drools:managed-working-memory name=\"policyPricingWorkingMemory\" "
+"auto-create=\"true\" rule-base=\"#{policyPricingRules}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Drools.xml:67
+#, no-c-format
+msgid ""
+"Notice that we gave the <literal>policyPricingWorkingMemory</literal> a "
+"reference back to our rule base via the <literal>ruleBase</literal> "
+"configuration property."
+msgstr ""
+
+#. Tag: title
+#: Drools.xml:76
+#, no-c-format
+msgid "Using rules from a Seam component"
+msgstr ""
+
+#. Tag: para
+#: Drools.xml:78
+#, no-c-format
+msgid ""
+"We can now inject our <literal>WorkingMemory</literal> into any Seam "
+"component, assert facts, and fire rules:"
+msgstr ""
+
+#. Tag: programlisting
+#: Drools.xml:83
+#, no-c-format
+msgid ""
+"<![CDATA[@In WorkingMemory policyPricingWorkingMemory;\n"
+"\n"
+"@In Policy policy;\n"
+"@In Customer customer;\n"
+"\n"
+"public void pricePolicy() throws FactException\n"
+"{\n"
+" policyPricingWorkingMemory.assertObject(policy);\n"
+" policyPricingWorkingMemory.assertObject(customer);\n"
+" policyPricingWorkingMemory.fireAllRules();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Drools.xml:88
+#, no-c-format
+msgid "Using rules from a jBPM process definition"
+msgstr ""
+
+#. Tag: para
+#: Drools.xml:90
+#, no-c-format
+msgid ""
+"You can even allow a rule base to act as a jBPM action handler, decision "
+"handler, or assignment handler—in either a pageflow or business "
+"process definition."
+msgstr ""
+
+#. Tag: programlisting
+#: Drools.xml:96
+#, no-c-format
+msgid ""
+"<![CDATA[<decision name=\"approval\">\n"
+" \n"
+" <handler class=\"org.jboss.seam.drools.DroolsDecisionHandler\">\n"
+" <workingMemoryName>orderApprovalRulesWorkingMemory</"
+"workingMemoryName>\n"
+" <assertObjects>\n"
+" <element>#{customer}</element>\n"
+" <element>#{order}</element>\n"
+" <element>#{order.lineItems}</element>\n"
+" </assertObjects>\n"
+" </handler>\n"
+" \n"
+" <transition name=\"approved\" to=\"ship\">\n"
+" <action class=\"org.jboss.seam.drools.DroolsActionHandler\">\n"
+" <workingMemoryName>shippingRulesWorkingMemory</"
+"workingMemoryName>\n"
+" <assertObjects>\n"
+" <element>#{customer}</element>\n"
+" <element>#{order}</element>\n"
+" <element>#{order.lineItems}</element>\n"
+" </assertObjects>\n"
+" </action>\n"
+" </transition>\n"
+" \n"
+" <transition name=\"rejected\" to=\"cancelled\"/>\n"
+" \n"
+"</decision>]]>"
+msgstr ""
+
+#. Tag: para
+#: Drools.xml:98
+#, no-c-format
+msgid ""
+"The <literal><assertObjects></literal> element specifies EL "
+"expressions that return an object or collection of objects to be asserted as "
+"facts into the <literal>WorkingMemory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Drools.xml:104
+#, no-c-format
+msgid "There is also support for using Drools for jBPM task assignments:"
+msgstr ""
+
+#. Tag: programlisting
+#: Drools.xml:108
+#, no-c-format
+msgid ""
+"<![CDATA[<task-node name=\"review\">\n"
+" <task name=\"review\" description=\"Review Order\">\n"
+" <assignment handler=\"org.jboss.seam.drools.DroolsAssignmentHandler"
+"\">\n"
+" <workingMemoryName>orderApprovalRulesWorkingMemory</"
+"workingMemoryName>\n"
+" <assertObjects>\n"
+" <element>#{actor}</element>\n"
+" <element>#{customer}</element>\n"
+" <element>#{order}</element>\n"
+" <element>#{order.lineItems}</element>\n"
+" </assertObjects>\n"
+" </assignment>\n"
+" </task>\n"
+" <transition name=\"rejected\" to=\"cancelled\"/>\n"
+" <transition name=\"approved\" to=\"approved\"/>\n"
+"</task-node>]]>"
+msgstr ""
+
+#. Tag: para
+#: Drools.xml:110
+#, no-c-format
+msgid ""
+"Certain objects are available to the rules as Drools globals, namely the "
+"jBPM <literal>Assignable</literal>, as <literal>assignable</literal> and a "
+"Seam <literal>Decision</literal> object, as <literal>decision</literal>. "
+"Rules which handle decisions should call <literal>decision.setOutcome"
+"(\"result\")</literal> to determine the result of the decision. Rules which "
+"perform assignments should set the actor id using the <literal>Assignable</"
+"literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Drools.xml:119
+#, no-c-format
+msgid ""
+"<![CDATA[package org.jboss.seam.examples.shop\n"
+"\n"
+"import org.jboss.seam.drools.Decision\n"
+"\n"
+"global Decision decision\n"
+"\n"
+"rule \"Approve Order For Loyal Customer\"\n"
+" when\n"
+" Customer( loyaltyStatus == \"GOLD\" )\n"
+" Order( totalAmount <= 10000 )\n"
+" then\n"
+" decision.setOutcome(\"approved\");\n"
+"end]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Drools.xml:121
+#, no-c-format
+msgid ""
+"<![CDATA[package org.jboss.seam.examples.shop\n"
+"\n"
+"import org.jbpm.taskmgmt.exe.Assignable\n"
+"\n"
+"global Assignable assignable\n"
+"\n"
+"rule \"Assign Review For Small Order\"\n"
+" when\n"
+" Order( totalAmount <= 100 )\n"
+" then\n"
+" assignable.setPooledActors( new String[] {\"reviewers\"} );\n"
+"end]]>"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Elenhancements.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Elenhancements.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Elenhancements.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,438 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Elenhancements.xml:5
+#, no-c-format
+msgid "JBoss EL"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:7
+#, no-c-format
+msgid ""
+"Seam uses JBoss EL which provides an extension to the standard Unified "
+"Expression Language (EL). JBoss EL provides a number of enhancements that "
+"increase the expressiveness and power of EL expressions."
+msgstr ""
+
+#. Tag: title
+#: Elenhancements.xml:14
+#, no-c-format
+msgid "Parameterized Expressions"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:16
+#, no-c-format
+msgid ""
+"Standard EL does not allow you to use a method with user defined parameters "
+"— of course, JSF listener methods (e.g. a "
+"<literal>valueChangeListener</literal>) take parameters provided by JSF."
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:22
+#, no-c-format
+msgid "JBoss EL removes this restriction. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:26
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandButton action=\"#{hotelBooking.bookHotel(hotel)}\" value="
+"\"Book Hotel\"/>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:28
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"hotelBooking\")\n"
+"public class HotelBooking {\n"
+" \n"
+" public String bookHotel(Hotel hotel) {\n"
+" // Book the hotel\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Elenhancements.xml:31
+#, no-c-format
+msgid "Usage"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:33
+#, no-c-format
+msgid ""
+"Just as in calls to method from Java, parameters are surrounded by "
+"parentheses, and separated by commas:"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:38
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandButton action=\"#{hotelBooking.bookHotel(hotel, user)}\" "
+"value=\"Book Hotel\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:40
+#, no-c-format
+msgid ""
+"The parameters <literal>hotel</literal> and <literal>user</literal> will be "
+"evaluated as value expressions and passed to the <literal>bookHotel()</"
+"literal> method of the component."
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:45
+#, no-c-format
+msgid "Any value expression may be used as a parameter:"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:49
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandButton \n"
+" action=\"#{hotelBooking.bookHotel(hotel.id, user.username)}\" \n"
+" value=\"Book Hotel\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:51
+#, no-c-format
+msgid ""
+"It's important to fully understand how this extension to EL works. When the "
+"page is rendered, the parameter <emphasis>names</emphasis> are stored (for "
+"example, <literal>hotel.id</literal> and <literal>user.username</literal>), "
+"and evaluated (as value expressions) when the page is submitted. You can't "
+"pass objects as parameters!"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:60
+#, no-c-format
+msgid ""
+"You must ensure that the parameters are available not only when the page is "
+"rendered, but also when it is submittedIf the arguments can not be resolved "
+"when the page is submitted the action method will be called with "
+"<literal>null</literal> arguments!"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:67
+#, no-c-format
+msgid "You can also pass literal strings using single quotes:"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:71
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandLink action=\"#{printer.println('Hello world!')}\" value="
+"\"Hello\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:73
+#, no-c-format
+msgid ""
+"Unified EL also supports value expressions, used to bind a field to a "
+"backing bean. Value expressions use JavaBean naming conventions and expect a "
+"getter/setter pair. Often JSF expects a value expression where only "
+"retrieval (get) is needed (e.g. the <literal>rendered</literal> attribute). "
+"Many objects, however, don't have appropriately named property accessors or "
+"require parameters."
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:82
+#, no-c-format
+msgid ""
+"JBoss EL removes this restriction by allowing values to be retrieved using "
+"the method syntax. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:87
+#, no-c-format
+msgid ""
+"<![CDATA[<h:outputText value=\"#{person.name}\" rendered=\"#{person.name."
+"length() > 5}\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:89
+#, no-c-format
+msgid "You can access the size of a collection in a similar manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:93
+#, no-c-format
+msgid "#{searchResults.size()}"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:95
+#, no-c-format
+msgid ""
+"In general any expression of the form #{obj.property} would be identical to "
+"the expression #{obj.getProperty()}."
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:99
+#, no-c-format
+msgid ""
+"Parameters are also allowed. The following example calls the "
+"<literal>productsByColorMethod</literal> with a literal string argument:"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:105
+#, no-c-format
+msgid "#{controller.productsByColor('blue')}"
+msgstr ""
+
+#. Tag: title
+#: Elenhancements.xml:110
+#, no-c-format
+msgid "Limitations and Hints"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:112
+#, no-c-format
+msgid "When using JBoss EL you should keep the following points in mind:"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:118
+#, no-c-format
+msgid ""
+"<emphasis>Incompatibility with JSP 2.1</emphasis> — JBoss EL can't "
+"currently be used with JSP 2.1 as the compiler rejects expressions with "
+"parameters in. So, if you want to use this extension with JSF 1.2, you will "
+"need to use Facelets. The extension works correctly with JSP 2.0."
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:127
+#, no-c-format
+msgid ""
+"<emphasis>Use inside iterative components</emphasis> — Components like "
+"<literal><c:forEach /></literal> and <literal><ui:repeat /></"
+"literal>iterate over a List or array, exposing each item in the list to "
+"nested components. This works great if you are selecting a row using a "
+"<literal><h:commandButton /></literal> or <literal><h:commandLink /"
+"></literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:136
+#, no-c-format
+msgid ""
+"<![CDATA[@Factory(\"items\")\n"
+"public List<Item> getItems() {\n"
+" return entityManager.createQuery(\"select ...\").getResultList();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:137
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{items}\" var=\"item\">\n"
+" <h:column>\n"
+" <h:commandLink value=\"Select #{item.name}\" action=\"#{itemSelector."
+"select(item})\" />\n"
+" </h:column>\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:138
+#, no-c-format
+msgid ""
+"However if you want to use <literal><s:link /></literal> or "
+"<literal><s:button /></literal> you <emphasis>must</emphasis> expose "
+"the items as a <literal>DataModel</literal>, and use a <literal><"
+"dataTable /></literal> (or equivalent from a component set like "
+"<literal><rich:dataTable /></literal> ). Neither <literal><s:link /"
+"></literal> or <literal><s:button /></literal> submit the form (and "
+"therefore produce a bookmarkable link) so a \"magic\" parameter is needed to "
+"recreate the item when the action method is called. This magic parameter can "
+"only be added when a data table backed by a <literal>DataModel</literal> is "
+"used."
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:154
+#, no-c-format
+msgid ""
+"<emphasis>Calling a <literal>MethodExpression</literal> from Java code</"
+"emphasis> — Normally, when a <literal>MethodExpression</literal> is "
+"created, the parameter types are passed in by JSF. In the case of a method "
+"binding, JSF assumes that there are no parameters to pass. With this "
+"extension, we can't know the parameter types until after the expression has "
+"been evaluated. This has two minor consequences:"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:167
+#, no-c-format
+msgid ""
+"When you invoke a <literal>MethodExpression</literal> in Java code, "
+"parameters you pass may be ignored. Parameters defined in the expression "
+"will take precedence."
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:175
+#, no-c-format
+msgid ""
+"Ordinarily, it is safe to call <literal>methodExpression.getMethodInfo()."
+"getParamTypes()</literal> at any time. For an expression with parameters, "
+"you must first invoke the <literal>MethodExpression</literal> before calling "
+"<literal>getParamTypes()</literal>."
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:185
+#, no-c-format
+msgid ""
+"Both of these cases are exceedingly rare and only apply when you want to "
+"invoke the <literal>MethodExpression</literal> by hand in Java code."
+msgstr ""
+
+#. Tag: title
+#: Elenhancements.xml:196
+#, no-c-format
+msgid "Projection"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:198
+#, no-c-format
+msgid ""
+"JBoss EL supports a limited projection syntax. A projection expression maps "
+"a sub-expression across a multi-valued (list, set, etc...) expression. For "
+"instance, the expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:204
+#, no-c-format
+msgid "#{company.departments}"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:206
+#, no-c-format
+msgid ""
+"might return a list of departments. If you only need a list of department "
+"names, your only option is to iterate over the list to retrieve the values. "
+"JBoss EL allows this with a projection expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:212
+#, no-c-format
+msgid "#{company.departments.{d|d.name}}"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:214
+#, no-c-format
+msgid ""
+"The subexpression is enclosed in braces. In this example, the expression "
+"<literal>d.name</literal> is evaluated for each department, using "
+"<literal>d</literal> as an alias to the department object. The result of "
+"this expression will be a list of String values."
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:221
+#, no-c-format
+msgid ""
+"Any valid expression can be used in an expression, so it would be perfectly "
+"valid to write the following, assuming you had a use for the lengths of all "
+"the department names in a company:"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:227
+#, no-c-format
+msgid "#{company.departments.{d|d.size()}}"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:229
+#, no-c-format
+msgid ""
+"Projections can be nested. The following expression returns the last names "
+"of every employee in every department:"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:234
+#, no-c-format
+msgid "#{company.departments.{d|d.employees.{emp|emp.lastName}}}"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:236
+#, no-c-format
+msgid ""
+"Nested projections can be slightly tricky, however. The following expression "
+"looks like it returns a list of all the employees in all the departments:"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:242
+#, no-c-format
+msgid "#{company.departments.{d|d.employees}}"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:244
+#, no-c-format
+msgid ""
+"However, it actually returns a list containing a list of the employees for "
+"each individual department. To combine the values, it is necessary to use a "
+"slightly longer expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: Elenhancements.xml:250
+#, no-c-format
+msgid "#{company.departments.{d|d.employees.{e|e}}}"
+msgstr ""
+
+#. Tag: para
+#: Elenhancements.xml:252
+#, no-c-format
+msgid ""
+"It is important to note that this syntax cannot be parsed by Facelets or JSP "
+"and thus cannot be used in xhtml or JSP files. We anticipate that the "
+"projection syntax will change in future versions of JBoss EL."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Events.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Events.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Events.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,1889 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Events.xml:6
+#, no-c-format
+msgid "Events, interceptors and exception handling"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:8
+#, no-c-format
+msgid ""
+"Complementing the contextual component model, there are two further basic "
+"concepts that facilitate the extreme loose-coupling that is the distinctive "
+"feature of Seam applications. The first is a strong event model where events "
+"may be mapped to event listeners via JSF-like method binding expressions. "
+"The second is the pervasive use of annotations and interceptors to apply "
+"cross-cutting concerns to components which implement business logic."
+msgstr ""
+
+#. Tag: title
+#: Events.xml:18
+#, no-c-format
+msgid "Seam events"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:19
+#, no-c-format
+msgid ""
+"The Seam component model was developed for use with <emphasis>event-driven "
+"applications</emphasis>, specifically to enable the development of fine-"
+"grained, loosely-coupled components in a fine-grained eventing model. Events "
+"in Seam come in several types, most of which we have already seen:"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:28
+#, no-c-format
+msgid "JSF events"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:31
+#, no-c-format
+msgid "jBPM transition events"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:34
+#, no-c-format
+msgid "Seam page actions"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:37
+#, no-c-format
+msgid "Seam component-driven events"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:40
+#, no-c-format
+msgid "Seam contextual events"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:44
+#, no-c-format
+msgid ""
+"All of these various kinds of events are mapped to Seam components via JSF "
+"EL method binding expressions. For a JSF event, this is defined in the JSF "
+"template:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:49
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandButton value=\"Click me!\" action=\"#{helloWorld.sayHello}"
+"\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:53
+#, no-c-format
+msgid ""
+"For a jBPM transition event, it is specified in the jBPM process definition "
+"or pageflow definition:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:58
+#, no-c-format
+msgid ""
+"<![CDATA[<start-page name=\"hello\" view-id=\"/hello.jsp\">\n"
+" <transition to=\"hello\">\n"
+" <action expression=\"#{helloWorld.sayHello}\"/>\n"
+" </transition>\n"
+"</start-page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:60
+#, no-c-format
+msgid ""
+"You can find out more information about JSF events and jBPM events "
+"elsewhere. Let's concentrate for now upon the two additional kinds of events "
+"defined by Seam."
+msgstr ""
+
+#. Tag: title
+#: Events.xml:67
+#, no-c-format
+msgid "Page actions"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:69
+#, no-c-format
+msgid ""
+"A Seam page action is an event that occurs just before we render a page. We "
+"declare page actions in <literal>WEB-INF/pages.xml</literal>. We can define "
+"a page action for either a particular JSF view id:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:75
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/hello.jsp\" action=\"#{helloWorld.sayHello}\"/>\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:77
+#, no-c-format
+msgid ""
+"Or we can use a <literal>*</literal> wildcard as a suffix to the "
+"<literal>view-id</literal> to specify an action that applies to all view ids "
+"that match the pattern:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:83
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/hello/*\" action=\"#{helloWorld.sayHello}\"/>\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:85
+#, no-c-format
+msgid ""
+"If multiple wildcarded page actions match the current view-id, Seam will "
+"call all the actions, in order of least-specific to most-specific."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:90
+#, no-c-format
+msgid ""
+"The page action method can return a JSF outcome. If the outcome is non-null, "
+"Seam will use the defined navigation rules to navigate to a view."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:95
+#, no-c-format
+msgid ""
+"Furthermore, the view id mentioned in the <literal><page></literal> "
+"element need not correspond to a real JSP or Facelets page! So, we can "
+"reproduce the functionality of a traditional action-oriented framework like "
+"Struts or WebWork using page actions. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:102
+#, no-c-format
+msgid "<![CDATA[TODO: translate struts action into page action]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:105
+#, no-c-format
+msgid ""
+"This is quite useful if you want to do complex things in response to non-"
+"faces requests (for example, HTTP GET requests)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:110
+#, no-c-format
+msgid ""
+"Multiple or conditional page actions my be specified using the <literal><"
+"action></literal> tag:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:115
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/hello.jsp\">\n"
+" <action execute=\"#{helloWorld.sayHello}\" if=\"#{not validation."
+"failed}\"/>\n"
+" <action execute=\"#{hitCount.increment}\"/>\n"
+" </page>\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: title
+#: Events.xml:121
+#, no-c-format
+msgid "Page parameters"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:123
+#, no-c-format
+msgid ""
+"A JSF faces request (a form submission) encapsulates both an \"action\" (a "
+"method binding) and \"parameters\" (input value bindings). A page action "
+"might also needs parameters!"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:129
+#, no-c-format
+msgid ""
+"Since GET requests are bookmarkable, page parameters are passed as human-"
+"readable request parameters. (Unlike JSF form inputs, which are anything "
+"but!)"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:135
+#, no-c-format
+msgid "You can use page parameters with or without an action method."
+msgstr ""
+
+#. Tag: title
+#: Events.xml:140
+#, no-c-format
+msgid "Mapping request parameters to the model"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:142
+#, no-c-format
+msgid ""
+"Seam lets us provide a value binding that maps a named request parameter to "
+"an attribute of a model object."
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:147
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/hello.jsp\" action=\"#{helloWorld.sayHello}\">\n"
+" <param name=\"firstName\" value=\"#{person.firstName}\"/>\n"
+" <param name=\"lastName\" value=\"#{person.lastName}\"/>\n"
+" </page>\n"
+" </pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:149
+#, no-c-format
+msgid ""
+"The <literal><param></literal> declaration is bidirectional, just like "
+"a value binding for a JSF input:"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:156
+#, no-c-format
+msgid ""
+"When a non-faces (GET) request for the view id occurs, Seam sets the value "
+"of the named request parameter onto the model object, after performing "
+"appropriate type conversions."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:163
+#, no-c-format
+msgid ""
+"Any <literal><s:link></literal> or <literal><s:button></literal> "
+"transparently includes the request parameter. The value of the parameter is "
+"determined by evaluating the value binding during the render phase (when the "
+"<literal><s:link></literal> is rendered)."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:171
+#, no-c-format
+msgid ""
+"Any navigation rule with a <literal><redirect/></literal> to the view "
+"id transparently includes the request parameter. The value of the parameter "
+"is determined by evaluating the value binding at the end of the invoke "
+"application phase."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:179
+#, no-c-format
+msgid ""
+"The value is transparently propagated with any JSF form submission for the "
+"page with the given view id. This means that view parameters behave like "
+"<literal>PAGE</literal>-scoped context variables for faces requests."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:188
+#, no-c-format
+msgid ""
+"The essential idea behind all this is that <emphasis>however</emphasis> we "
+"get from any other page to <literal>/hello.jsp</literal> (or from <literal>/"
+"hello.jsp</literal> back to <literal>/hello.jsp</literal>), the value of the "
+"model attribute referred to in the value binding is \"remembered\", without "
+"the need for a conversation (or other server-side state)."
+msgstr ""
+
+#. Tag: title
+#: Events.xml:201
+#, no-c-format
+msgid "Propagating request parameters"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:203
+#, no-c-format
+msgid ""
+"If just the <literal>name</literal> attribute is specified then the request "
+"parameter is propagated using the <literal>PAGE</literal> context (it isn't "
+"mapped to model property)."
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:209
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/hello.jsp\" action=\"#{helloWorld.sayHello}\">\n"
+" <param name=\"firstName\" />\n"
+" <param name=\"lastName\" />\n"
+" </page>\n"
+" </pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:212
+#, no-c-format
+msgid ""
+"Propagation of page parameters is especially useful if you want to build "
+"multi-layer master-detail CRUD pages. You can use it to \"remember\" which "
+"view you were previously on (e.g. when pressing the Save button), and which "
+"entity you were editing."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:219
+#, no-c-format
+msgid ""
+"Any <literal><s:link></literal> or <literal><s:button></literal> "
+"transparently propagates the request parameter if that parameter is listed "
+"as a page parameter for the view."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:226
+#, no-c-format
+msgid ""
+"The value is transparently propagated with any JSF form submission for the "
+"page with the given view id. (This means that view parameters behave like "
+"<literal>PAGE</literal>-scoped context variables for faces requests."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:235
+#, no-c-format
+msgid ""
+"This all sounds pretty complex, and you're probably wondering if such an "
+"exotic construct is really worth the effort. Actually, the idea is very "
+"natural once you \"get it\". It is definitely worth taking the time to "
+"understand this stuff. Page parameters are the most elegant way to propagate "
+"state across a non-faces request. They are especially cool for problems like "
+"search screens with bookmarkable results pages, where we would like to be "
+"able to write our application code to handle both POST and GET requests with "
+"the same code. Page parameters eliminate repetitive listing of request "
+"parameters in the view definition and make redirects much easier to code."
+msgstr ""
+
+#. Tag: title
+#: Events.xml:252
+#, no-c-format
+msgid "Conversion and Validation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:254
+#, no-c-format
+msgid "You can specify a JSF converter for complex model propreties:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:258
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/calculator.jsp\" action=\"#{calculator.calculate}\">\n"
+" <param name=\"x\" value=\"#{calculator.lhs}\"/>\n"
+" <param name=\"y\" value=\"#{calculator.rhs}\"/>\n"
+" <param name=\"op\" converterId=\"com.my.calculator.OperatorConverter\" "
+"value=\"#{calculator.op}\"/>\n"
+" </page>\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:260 Events.xml:273
+#, no-c-format
+msgid "Alternatively:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:264
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/calculator.jsp\" action=\"#{calculator.calculate}\">\n"
+" <param name=\"x\" value=\"#{calculator.lhs}\"/>\n"
+" <param name=\"y\" value=\"#{calculator.rhs}\"/>\n"
+" <param name=\"op\" converter=\"#{operatorConverter}\" value=\"#"
+"{calculator.op}\"/>\n"
+" </page>\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:267
+#, no-c-format
+msgid ""
+"JSF validators, and <literal>required=\"true\"</literal> may also be used:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:271
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/blog.xhtml\">\n"
+" <param name=\"date\" \n"
+" value=\"#{blog.date}\" \n"
+" validatorId=\"com.my.blog.PastDate\" \n"
+" required=\"true\"/>\n"
+" </page>\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:277
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/blog.xhtml\">\n"
+" <param name=\"date\" \n"
+" value=\"#{blog.date}\" \n"
+" validator=\"#{pastDateValidator}\" \n"
+" required=\"true\"/>\n"
+" </page>\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:279
+#, no-c-format
+msgid ""
+"Even better, model-based Hibernate validator annotations are automatically "
+"recognized and validated."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:284
+#, no-c-format
+msgid ""
+"When type conversion or validation fails, a global <literal>FacesMessage</"
+"literal> is added to the <literal>FacesContext</literal>."
+msgstr ""
+
+#. Tag: title
+#: Events.xml:292
+#, no-c-format
+msgid "Navigation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:294
+#, no-c-format
+msgid ""
+"You can use standard JSF navigation rules defined in <literal>faces-config."
+"xml</literal> in a Seam application. However, JSF navigation rules have a "
+"number of annoying limitations:"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:302
+#, no-c-format
+msgid ""
+"It is not possible to specify request parameters to be used when redirecting."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:307
+#, no-c-format
+msgid "It is not possible to begin or end conversations from a rule."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:312
+#, no-c-format
+msgid ""
+"Rules work by evaluating the return value of the action method; it is not "
+"possible to evaluate an arbitrary EL expression."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:319
+#, no-c-format
+msgid ""
+"A further problem is that \"orchestration\" logic gets scattered between "
+"<literal>pages.xml</literal> and <literal>faces-config.xml</literal>. It's "
+"better to unify this logic into <literal>pages.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:324
+#, no-c-format
+msgid "This JSF navigation rule:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:328
+#, no-c-format
+msgid ""
+"<![CDATA[<navigation-rule>\n"
+" <from-view-id>/editDocument.xhtml</from-view-id>\n"
+" \n"
+" <navigation-case>\n"
+" <from-action>#{documentEditor.update}</from-action>\n"
+" <from-outcome>success</from-outcome>\n"
+" <to-view-id>/viewDocument.xhtml</to-view-id>\n"
+" <redirect/>\n"
+" </navigation-case>\n"
+" \n"
+"</navigation-rule>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:330
+#, no-c-format
+msgid "Can be rewritten as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[<page view-id=\"/editDocument.xhtml\">\n"
+" \n"
+" <navigation from-action=\"#{documentEditor.update}\">\n"
+" <rule if-outcome=\"success\">\n"
+" <redirect view-id=\"/viewDocument.xhtml\"/>\n"
+" </rule>\n"
+" </navigation>\n"
+" \n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:336
+#, no-c-format
+msgid ""
+"But it would be even nicer if we didn't have to pollute our "
+"<literal>DocumentEditor</literal> component with string-valued return values "
+"(the JSF outcomes). So Seam lets us write:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:341
+#, no-c-format
+msgid ""
+"<![CDATA[<page view-id=\"/editDocument.xhtml\">\n"
+" \n"
+" <navigation from-action=\"#{documentEditor.update}\" \n"
+" evaluate=\"#{documentEditor.errors.size}\">\n"
+" <rule if-outcome=\"0\">\n"
+" <redirect view-id=\"/viewDocument.xhtml\"/>\n"
+" </rule>\n"
+" </navigation>\n"
+" \n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:343
+#, no-c-format
+msgid "Or even:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:347
+#, no-c-format
+msgid ""
+"<![CDATA[<page view-id=\"/editDocument.xhtml\">\n"
+" \n"
+" <navigation from-action=\"#{documentEditor.update}\">\n"
+" <rule if=\"#{documentEditor.errors.empty}\">\n"
+" <redirect view-id=\"/viewDocument.xhtml\"/>\n"
+" </rule>\n"
+" </navigation>\n"
+" \n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:349
+#, no-c-format
+msgid ""
+"The first form evaluates a value binding to determine the outcome value to "
+"be used by the subsequent rules. The second approach ignores the outcome and "
+"evaluates a value binding for each possible rule."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:356
+#, no-c-format
+msgid ""
+"Of course, when an update succeeds, we probably want to end the current "
+"conversation. We can do that like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:361
+#, no-c-format
+msgid ""
+"<![CDATA[<page view-id=\"/editDocument.xhtml\">\n"
+" \n"
+" <navigation from-action=\"#{documentEditor.update}\">\n"
+" <rule if=\"#{documentEditor.errors.empty}\">\n"
+" <end-conversation/>\n"
+" <redirect view-id=\"/viewDocument.xhtml\"/>\n"
+" </rule>\n"
+" </navigation>\n"
+" \n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:363
+#, no-c-format
+msgid ""
+"As we've ended conversation any subsequent requests won't know which "
+"document we are interested in. We can pass the document id as a request "
+"parameter which also makes the view bookmarkable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:369
+#, no-c-format
+msgid ""
+"<![CDATA[<page view-id=\"/editDocument.xhtml\">\n"
+" \n"
+" <navigation from-action=\"#{documentEditor.update}\">\n"
+" <rule if=\"#{documentEditor.errors.empty}\">\n"
+" <end-conversation/>\n"
+" <redirect view-id=\"/viewDocument.xhtml\">\n"
+" <param name=\"documentId\" value=\"#{documentEditor."
+"documentId}\"/>\n"
+" </redirect>\n"
+" </rule>\n"
+" </navigation>\n"
+" \n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:371
+#, no-c-format
+msgid ""
+"Null outcomes are a special case in JSF. The null outcome is interpreted to "
+"mean \"redisplay the page\". The following navigation rule matches any non-"
+"null outcome, but <emphasis>not</emphasis> the null outcome:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:377
+#, no-c-format
+msgid ""
+"<![CDATA[<page view-id=\"/editDocument.xhtml\">\n"
+" \n"
+" <navigation from-action=\"#{documentEditor.update}\">\n"
+" <rule>\n"
+" <render view-id=\"/viewDocument.xhtml\"/>\n"
+" </rule>\n"
+" </navigation>\n"
+" \n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:379
+#, no-c-format
+msgid ""
+"If you want to perform navigation when a null outcome occurs, use the "
+"following form instead:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:384
+#, no-c-format
+msgid ""
+"<![CDATA[<page view-id=\"/editDocument.xhtml\">\n"
+" \n"
+" <navigation from-action=\"#{documentEditor.update}\">\n"
+" <render view-id=\"/viewDocument.xhtml\"/>\n"
+" </navigation>\n"
+" \n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:386
+#, no-c-format
+msgid "The view-id may be given as a JSF EL expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:390
+#, no-c-format
+msgid ""
+"<![CDATA[<page view-id=\"/editDocument.xhtml\">\n"
+"\n"
+" <navigation>\n"
+" <rule if-outcome=\"success\">\n"
+" <redirect view-id=\"/#{userAgent}/displayDocument.xhtml\"/>\n"
+" </rule>\n"
+" </navigation>\n"
+" \n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: title
+#: Events.xml:395
+#, no-c-format
+msgid ""
+"Fine-grained files for definition of navigation, page actions and parameters"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:397
+#, no-c-format
+msgid ""
+"If you have a lot of different page actions and page parameters, or even "
+"just a lot of navigation rules, you will almost certainly want to split the "
+"declarations up over multiple files. You can define actions and parameters "
+"for a page with the view id <literal>/calc/calculator.jsp</literal> in a "
+"resource named <literal>calc/calculator.page.xml</literal>. The root element "
+"in this case is the <literal><page></literal> element, and the view id "
+"is implied:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:408
+#, no-c-format
+msgid ""
+"<![CDATA[<page action=\"#{calculator.calculate}\">\n"
+" <param name=\"x\" value=\"#{calculator.lhs}\"/>\n"
+" <param name=\"y\" value=\"#{calculator.rhs}\"/>\n"
+" <param name=\"op\" converter=\"#{operatorConverter}\" value=\"#"
+"{calculator.op}\"/>\n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: title
+#: Events.xml:415
+#, no-c-format
+msgid "Component-driven events"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:417
+#, no-c-format
+msgid ""
+"Seam components can interact by simply calling each others methods. Stateful "
+"components may even implement the observer/observable pattern. But to enable "
+"components to interact in a more loosely-coupled fashion than is possible "
+"when the components call each others methods directly, Seam provides "
+"<emphasis>component-driven events</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:425
+#, no-c-format
+msgid ""
+"We specify event listeners (observers) in <literal>components.xml</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:429
+#, no-c-format
+msgid ""
+"<![CDATA[<components>\n"
+" <event type=\"hello\">\n"
+" <action execute=\"#{helloListener.sayHelloBack}\"/>\n"
+" <action execute=\"#{logger.logHello}\"/>\n"
+" </event>\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:431
+#, no-c-format
+msgid "Where the <emphasis>event type</emphasis> is just an arbitrary string."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:435
+#, no-c-format
+msgid ""
+"When an event occurs, the actions registered for that event will be called "
+"in the order they appear in <literal>components.xml</literal>. How does a "
+"component raise an event? Seam provides a built-in component for this."
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:441
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"helloWorld\")\n"
+"public class HelloWorld {\n"
+" public void sayHello() {\n"
+" FacesMessages.instance().add(\"Hello World!\");\n"
+" Events.instance().raiseEvent(\"hello\");\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:443
+#, no-c-format
+msgid "Or you can use an annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:447
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"helloWorld\")\n"
+"public class HelloWorld {\n"
+" @RaiseEvent(\"hello\")\n"
+" public void sayHello() {\n"
+" FacesMessages.instance().add(\"Hello World!\");\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:449
+#, no-c-format
+msgid ""
+"Notice that this event producer has no dependency upon event consumers. The "
+"event listener may now be implemented with absolutely no dependency upon the "
+"producer:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:455
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"helloListener\")\n"
+"public class HelloListener {\n"
+" public void sayHelloBack() {\n"
+" FacesMessages.instance().add(\"Hello to you too!\");\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:457
+#, no-c-format
+msgid ""
+"The method binding defined in <literal>components.xml</literal> above takes "
+"care of mapping the event to the consumer. If you don't like futzing about "
+"in the <literal>components.xml</literal> file, you can use an annotation "
+"instead:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:464
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"helloListener\")\n"
+"public class HelloListener {\n"
+" @Observer(\"hello\")\n"
+" public void sayHelloBack() {\n"
+" FacesMessages.instance().add(\"Hello to you too!\");\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:466
+#, no-c-format
+msgid ""
+"You might wonder why I've not mentioned anything about event objects in this "
+"discussion. In Seam, there is no need for an event object to propagate state "
+"between event producer and listener. State is held in the Seam contexts, and "
+"is shared between components. However, if you really want to pass an event "
+"object, you can:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:474
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"helloWorld\")\n"
+"public class HelloWorld {\n"
+" private String name;\n"
+" public void sayHello() {\n"
+" FacesMessages.instance().add(\"Hello World, my name is #0.\", "
+"name);\n"
+" Events.instance().raiseEvent(\"hello\", name);\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:476
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"helloListener\")\n"
+"public class HelloListener {\n"
+" @Observer(\"hello\")\n"
+" public void sayHelloBack(String name) {\n"
+" FacesMessages.instance().add(\"Hello #0!\", name);\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Events.xml:481
+#, no-c-format
+msgid "Contextual events"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:482
+#, no-c-format
+msgid ""
+"Seam defines a number of built-in events that the application can use to "
+"perform special kinds of framework integration. The events are:"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:488
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.validationFailed</literal> — called when JSF "
+"validation fails"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:489
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.noConversation</literal> — called when there "
+"is no long running conversation and a long running conversation is required"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:490
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preSetVariable.<name></literal> — called "
+"when the context variable <name> is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:491
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postSetVariable.<name></literal> — "
+"called when the context variable <name> is set"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:492
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preRemoveVariable.<name></literal> — "
+"called when the context variable <name> is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:493
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postRemoveVariable.<name></literal> — "
+"called when the context variable <name> is unset"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:494
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroyContext.<SCOPE></literal> — "
+"called before the <SCOPE> context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:495
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postDestroyContext.<SCOPE></literal> — "
+"called after the <SCOPE> context is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:496
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginConversation </literal>— called whenever "
+"a long-running conversation begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:497
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endConversation </literal>— called whenever a "
+"long-running conversation ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:498
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.conversationTimeout</literal>— called when a "
+"conversation timeout occurs. The conversation id is passed as a parameter."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:499
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow </literal>— called when a "
+"pageflow begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:500
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beginPageflow.<name> </literal>— called "
+"when the pageflow <name> begins"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:501
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow </literal>— called when a pageflow "
+"ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:502
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endPageflow.<name> </literal>— called "
+"when the pageflow <name> ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:503
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.createProcess.<name> </literal>— called "
+"when the process <name> is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:504
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endProcess.<name> </literal>— called "
+"when the process <name> ends"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:505
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initProcess.<name> </literal>— called "
+"when the process <name> is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:506
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.initTask.<name> </literal>— called when "
+"the task <name> is associated with the conversation"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:507
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.startTask.<name> </literal>— called when "
+"the task <name> is started"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:508
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.endTask.<name> </literal>— called when "
+"the task <name> is ended"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:509
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postCreate.<name> </literal>— called "
+"when the component <name> is created"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:510
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preDestroy.<name> </literal>— called "
+"when the component <name> is destroyed"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:511
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.beforePhase </literal>— called before the "
+"start of a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:512
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterPhase </literal>— called after the end of "
+"a JSF phase"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:513
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postInitialization </literal>— called when "
+"Seam has initialized and started up all components"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:514
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.postAuthenticate.<name> </literal>— "
+"called after a user is authenticated"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:515
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.preAuthenticate.<name> </literal>— "
+"called before attempting to authenticate a user"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:516
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.notLoggedIn</literal> — called there is no "
+"authenticated user and authentication is required"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:517
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.rememberMe</literal> — occurs when Seam "
+"security detects the username in a cookie"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:518
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.exceptionHandled.<type></literal> — "
+"called when an uncaught exception is handled by Seam"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:519
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.exceptionHandled</literal> — called when an "
+"uncaught exception is handled by Seam"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:520
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.exceptionNotHandled</literal> — called when "
+"there was no handler for an uncaught exception"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:521
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterTransactionSuccess</literal> — called "
+"when a transaction succeeds in the Seam Application Framework"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:522
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.afterTransactionSuccess.<name></literal> "
+"— called when a transaction succeeds in the Seam Application Framework "
+"which manages an entity called <literal><name></literal>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:525
+#, no-c-format
+msgid ""
+"Seam components may observe any of these events in just the same way they "
+"observe any other component-driven events."
+msgstr ""
+
+#. Tag: title
+#: Events.xml:534
+#, no-c-format
+msgid "Seam interceptors"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:536
+#, no-c-format
+msgid ""
+"EJB 3.0 introduced a standard interceptor model for session bean components. "
+"To add an interceptor to a bean, you need to write a class with a method "
+"annotated <literal>@AroundInvoke</literal> and annotate the bean with an "
+"<literal>@Interceptors</literal> annotation that specifies the name of the "
+"interceptor class. For example, the following interceptor checks that the "
+"user is logged in before allowing invoking an action listener method:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:545
+#, no-c-format
+msgid ""
+"<![CDATA[public class LoggedInInterceptor {\n"
+"\n"
+" @AroundInvoke\n"
+" public Object checkLoggedIn(InvocationContext invocation) throws "
+"Exception {\n"
+" \n"
+" boolean isLoggedIn = Contexts.getSessionContext().get(\"loggedIn\")!"
+"=null;\n"
+" if (isLoggedIn) {\n"
+" //the user is already logged in\n"
+" return invocation.proceed();\n"
+" }\n"
+" else {\n"
+" //the user is not logged in, fwd to login page\n"
+" return \"login\";\n"
+" }\n"
+" }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:547
+#, no-c-format
+msgid ""
+"To apply this interceptor to a session bean which acts as an action "
+"listener, we must annotate the session bean <literal>@Interceptors"
+"(LoggedInInterceptor.class)</literal>. This is a somewhat ugly annotation. "
+"Seam builds upon the interceptor framework in EJB3 by allowing you to use "
+"<literal>@Interceptors</literal> as a meta-annotation for class level "
+"interceptors (those annotated <literal>@Target(TYPE)</literal>). In our "
+"example, we would create an <literal>@LoggedIn</literal> annotation, as "
+"follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:556
+#, no-c-format
+msgid ""
+"<![CDATA[@Target(TYPE)\n"
+"@Retention(RUNTIME)\n"
+"@Interceptors(LoggedInInterceptor.class)\n"
+"public @interface LoggedIn {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:558
+#, no-c-format
+msgid ""
+"We can now simply annotate our action listener bean with <literal>@LoggedIn</"
+"literal> to apply the interceptor."
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:563
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"changePasswordAction\")\n"
+"@LoggedIn\n"
+"@Interceptors(SeamInterceptor.class)\n"
+"public class ChangePasswordAction implements ChangePassword { \n"
+" \n"
+" ...\n"
+" \n"
+" public String changePassword() { ... }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:565
+#, no-c-format
+msgid ""
+"If interceptor ordering is important (it usually is), you can add "
+"<literal>@Interceptor</literal> annotations to your interceptor classes to "
+"specify a partial order of interceptors."
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:571
+#, no-c-format
+msgid ""
+"<![CDATA[(a)Interceptor(around={BijectionInterceptor.class,\n"
+" ValidationInterceptor.class,\n"
+" ConversationInterceptor.class},\n"
+" within=RemoveInterceptor.class)\n"
+"public class LoggedInInterceptor\n"
+"{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:573
+#, no-c-format
+msgid ""
+"You can even have a \"client-side\" interceptor, that runs around any of the "
+"built-in functionality of EJB3:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:578
+#, no-c-format
+msgid ""
+"<![CDATA[@Interceptor(type=CLIENT)\n"
+"public class LoggedInInterceptor\n"
+"{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:580
+#, no-c-format
+msgid ""
+"EJB interceptors are stateful, with a lifecycle that is the same as the "
+"component they intercept. For interceptors which do not need to maintain "
+"state, Seam lets you get a performance optimization by specifying "
+"<literal>@Interceptor(stateless=true)</literal>."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:587
+#, no-c-format
+msgid ""
+"Much of the functionality of Seam is implemented as a set of built-in Seam "
+"interceptors, including the interceptors named in the previous example. You "
+"don't have to explicitly specify these interceptors by annotating your "
+"components; they exist for all interceptable Seam components."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:594
+#, no-c-format
+msgid ""
+"You can even use Seam interceptors with JavaBean components, not just EJB3 "
+"beans!"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:598
+#, no-c-format
+msgid ""
+"EJB defines interception not only for business methods (using "
+"<literal>@AroundInvoke</literal>), but also for the lifecycle methods "
+"<literal>@PostConstruct</literal>, <literal>@PreDestroy</literal>, "
+"<literal>@PrePassivate</literal> and <literal>@PostActive</literal>. Seam "
+"supports all these lifecycle methods on both component and interceptor not "
+"only for EJB3 beans, but also for JavaBean components (except "
+"<literal>@PreDestroy</literal> which is not meaningful for JavaBean "
+"components)."
+msgstr ""
+
+#. Tag: title
+#: Events.xml:610
+#, no-c-format
+msgid "Managing exceptions"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:612
+#, no-c-format
+msgid ""
+"JSF is surprisingly limited when it comes to exception handling. As a "
+"partial workaround for this problem, Seam lets you define how a particular "
+"class of exception is to be treated by annotating the exception class, or "
+"declaring the exception class in an XML file. This facility is meant to be "
+"combined with the EJB 3.0-standard <literal>@ApplicationException</literal> "
+"annotation which specifies whether the exception should cause a transaction "
+"rollback."
+msgstr ""
+
+#. Tag: title
+#: Events.xml:622
+#, no-c-format
+msgid "Exceptions and transactions"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:624
+#, no-c-format
+msgid ""
+"EJB specifies well-defined rules that let us control whether an exception "
+"immediately marks the current transaction for rollback when it is thrown by "
+"a business method of the bean: <emphasis>system exceptions</emphasis> always "
+"cause a transaction rollback, <emphasis>application exceptions</emphasis> do "
+"not cause a rollback by default, but they do if "
+"<literal>@ApplicationException(rollback=true)</literal> is specified. (An "
+"application exception is any checked exception, or any unchecked exception "
+"annotated <literal>@ApplicationException</literal>. A system exception is "
+"any unchecked exception without an <literal>@ApplicationException</literal> "
+"annotation.)"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:637
+#, no-c-format
+msgid ""
+"Note that there is a difference between marking a transaction for rollback, "
+"and actually rolling it back. The exception rules say that the transaction "
+"should be marked rollback only, but it may still be active after the "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:644
+#, no-c-format
+msgid ""
+"Seam applies the EJB 3.0 exception rollback rules also to Seam JavaBean "
+"components."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:649
+#, no-c-format
+msgid ""
+"But these rules only apply in the Seam component layer. What about an "
+"exception that is uncaught and propagates out of the Seam component layer, "
+"and out of the JSF layer? Well, it is always wrong to leave a dangling "
+"transaction open, so Seam rolls back any active transaction when an "
+"exception occurs and is uncaught in the Seam component layer."
+msgstr ""
+
+#. Tag: title
+#: Events.xml:659
+#, no-c-format
+msgid "Enabling Seam exception handling"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:661
+#, no-c-format
+msgid ""
+"To enable Seam's exception handling, we need to make sure we have the master "
+"servlet filter declared in <literal>web.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:666
+#, no-c-format
+msgid ""
+"<![CDATA[<filter>\n"
+" <filter-name>Seam Filter</filter-name>\n"
+" <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>\n"
+"</filter>\n"
+"\n"
+"<filter-mapping>\n"
+" <filter-name>Seam Filter</filter-name>\n"
+" <url-pattern>*.seam</url-pattern>\n"
+"</filter-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:668
+#, no-c-format
+msgid ""
+"You may also need to disable Facelets development mode in <literal>web.xml</"
+"literal> and Seam debug mode in <literal>components.xml</literal> if you "
+"want your exception handlers to fire."
+msgstr ""
+
+#. Tag: title
+#: Events.xml:677
+#, no-c-format
+msgid "Using annotations for exception handling"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:679
+#, no-c-format
+msgid ""
+"The following exception results in a HTTP 404 error whenever it propagates "
+"out of the Seam component layer. It does not roll back the current "
+"transaction immediately when thrown, but the transaction will be rolled back "
+"if it the exception is not caught by another Seam component."
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:686
+#, no-c-format
+msgid ""
+"<![CDATA[@HttpError(errorCode=404)\n"
+"public class ApplicationException extends Exception { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:688
+#, no-c-format
+msgid ""
+"This exception results in a browser redirect whenever it propagates out of "
+"the Seam component layer. It also ends the current conversation. It causes "
+"an immediate rollback of the current transaction."
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:694
+#, no-c-format
+msgid ""
+"<![CDATA[@Redirect(viewId=\"/failure.xhtml\", end=true)\n"
+"@ApplicationException(rollback=true)\n"
+"public class UnrecoverableApplicationException extends RuntimeException "
+"{ ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:696
+#, no-c-format
+msgid ""
+"Note that <literal>@Redirect</literal> does not work for exceptions which "
+"occur during the render phase of the JSF lifecycle."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:701
+#, no-c-format
+msgid ""
+"You can also use EL to specify the <literal>viewId</literal> to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:705
+#, no-c-format
+msgid ""
+"This exception results in a redirect, along with a message to the user, when "
+"it propagates out of the Seam component layer. It also immediately rolls "
+"back the current transaction."
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:711
+#, no-c-format
+msgid ""
+"<![CDATA[@Redirect(viewId=\"/error.xhtml\", message=\"Unexpected error\")\n"
+"public class SystemException extends RuntimeException { ... }]]>"
+msgstr ""
+
+#. Tag: title
+#: Events.xml:716
+#, no-c-format
+msgid "Using XML for exception handling"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:718
+#, no-c-format
+msgid ""
+"Since we can't add annotations to all the exception classes we are "
+"interested in, Seam also lets us specify this functionality in "
+"<literal>pages.xml</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:723
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" \n"
+" <exception class=\"javax.persistence.EntityNotFoundException\">\n"
+" <http-error error-code=\"404\"/>\n"
+" </exception>\n"
+" \n"
+" <exception class=\"javax.persistence.PersistenceException\">\n"
+" <end-conversation/>\n"
+" <redirect view-id=\"/error.xhtml\">\n"
+" <message>Database access failed</message>\n"
+" </redirect>\n"
+" </exception>\n"
+" \n"
+" <exception>\n"
+" <end-conversation/>\n"
+" <redirect view-id=\"/error.xhtml\">\n"
+" <message>Unexpected failure</message>\n"
+" </redirect>\n"
+" </exception>\n"
+" \n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:725
+#, no-c-format
+msgid ""
+"The last <literal><exception></literal> declaration does not specify a "
+"class, and is a catch-all for any exception for which handling is not "
+"otherwise specified via annotations or in <literal>pages.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:731
+#, no-c-format
+msgid ""
+"You can also use EL to specify the <literal>view-id</literal> to redirect to."
+msgstr ""
+
+#. Tag: para
+#: Events.xml:735
+#, no-c-format
+msgid ""
+"You can also access the handled exception instance through EL, Seam places "
+"it in the conversation context, e.g. to access the message of the exception:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:740
+#, no-c-format
+msgid ""
+"<![CDATA[...\n"
+"throw new AuthorizationException(\"You are not allowed to do this!\");\n"
+"\n"
+"<pages>\n"
+"\n"
+" <exception class=\"org.jboss.seam.security.AuthorizationException\">\n"
+" <end-conversation/>\n"
+" <redirect view-id=\"/error.xhtml\">\n"
+" <message severity=\"WARN\">#{org.jboss.seam.handledException."
+"message}</message>\n"
+" </redirect>\n"
+" </exception>\n"
+"\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:742
+#, no-c-format
+msgid ""
+"<literal>org.jboss.seam.handledException</literal> holds the nested "
+"exception that was actually handled by an exception handler. The outermost "
+"(wrapper) exception is also available, as <literal>org.jboss.seam.exception</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: Events.xml:749
+#, no-c-format
+msgid "Suppressing exception logging"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:751
+#, no-c-format
+msgid ""
+"For the exception handlers defined in <literal>pages.xml</literal>, it is "
+"possible to declare the logging level at which the exception will be logged, "
+"or to even suppress the exception being logged altogether. The attributes "
+"<literal>log</literal> and <literal>logLevel</literal> can be used to "
+"control exception logging. By setting <literal>log=\"false\"</literal> as "
+"per the following example, then no log message will be generated when the "
+"specified exception occurs:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:760
+#, no-c-format
+msgid ""
+"<![CDATA[ <exception class=\"org.jboss.seam.security.NotLoggedInException"
+"\" log=\"false\">\n"
+" <redirect view-id=\"/register.xhtml\">\n"
+" <message severity=\"warn\">You must be a member to use this "
+"feature</message>\n"
+" </redirect>\n"
+" </exception>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:762
+#, no-c-format
+msgid ""
+"If the <literal>log</literal> attribute is not specified, then it defaults "
+"to <literal>true</literal> (i.e. the exception will be logged). "
+"Alternatively, you can specify the <literal>logLevel</literal> to control at "
+"which log level the exception will be logged:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:768
+#, no-c-format
+msgid ""
+"<![CDATA[ <exception class=\"org.jboss.seam.security.NotLoggedInException"
+"\" logLevel=\"info\">\n"
+" <redirect view-id=\"/register.xhtml\">\n"
+" <message severity=\"warn\">You must be a member to use this "
+"feature</message>\n"
+" </redirect>\n"
+" </exception>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:770
+#, no-c-format
+msgid ""
+"The acceptable values for <literal>logLevel</literal> are: <literal>fatal, "
+"error, warn, info, debug</literal> or <literal>trace</literal>. If the "
+"<literal>logLevel</literal> is not specified, or if an invalid value is "
+"configured, then it will default to <literal>error</literal>."
+msgstr ""
+
+#. Tag: title
+#: Events.xml:781
+#, no-c-format
+msgid "Some common exceptions"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:783
+#, no-c-format
+msgid "If you are using JPA:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:787
+#, no-c-format
+msgid ""
+"<![CDATA[<exception class=\"javax.persistence.EntityNotFoundException\">\n"
+" <redirect view-id=\"/error.xhtml\">\n"
+" <message>Not found</message>\n"
+" </redirect>\n"
+"</exception>\n"
+"\n"
+"<exception class=\"javax.persistence.OptimisticLockException\">\n"
+" <end-conversation/>\n"
+" <redirect view-id=\"/error.xhtml\">\n"
+" <message>Another user changed the same data, please try again</"
+"message>\n"
+" </redirect>\n"
+"</exception>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:789
+#, no-c-format
+msgid "If you are using the Seam Application Framework:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:793
+#, no-c-format
+msgid ""
+"<![CDATA[<exception class=\"org.jboss.seam.framework.EntityNotFoundException"
+"\">\n"
+" <redirect view-id=\"/error.xhtml\">\n"
+" <message>Not found</message>\n"
+" </redirect>\n"
+"</exception>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:795
+#, no-c-format
+msgid "If you are using Seam Security:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:799
+#, no-c-format
+msgid ""
+"<![CDATA[<exception class=\"org.jboss.seam.security.AuthorizationException"
+"\">\n"
+" <redirect>\n"
+" <message>You don't have permission to do this</message>\n"
+" </redirect>\n"
+"</exception>\n"
+" \n"
+"<exception class=\"org.jboss.seam.security.NotLoggedInException\">\n"
+" <redirect view-id=\"/login.xhtml\">\n"
+" <message>Please log in first</message>\n"
+" </redirect>\n"
+"</exception>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:801
+#, no-c-format
+msgid "And, for JSF:"
+msgstr ""
+
+#. Tag: programlisting
+#: Events.xml:805
+#, no-c-format
+msgid ""
+"<![CDATA[<exception class=\"javax.faces.application.ViewExpiredException\">\n"
+" <redirect view-id=\"/error.xhtml\">\n"
+" <message>Your session has timed out, please try again</message>\n"
+" </redirect>\n"
+"</exception>]]>"
+msgstr ""
+
+#. Tag: para
+#: Events.xml:807
+#, no-c-format
+msgid ""
+"A <literal>ViewExpiredException</literal> occurs if the user posts back to a "
+"page once their session has expired. <literal>no-conversation-view-id</"
+"literal> and <literal>conversation-required</literal> give you finer grained "
+"control over session expiration if you are inside a conversation."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Feedback.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Feedback.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Feedback.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,28 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Feedback.xml:6
+#, no-c-format
+msgid "Contribute to Seam"
+msgstr ""
+
+#. Tag: para
+#: Feedback.xml:7
+#, no-c-format
+msgid ""
+"Visit <ulink url=\"http://www.seamframework.org/Community/Contribute\"> "
+"SeamFramework.org </ulink> to find out how to contribute to Seam!"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Framework.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Framework.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Framework.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,870 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Framework.xml:6
+#, no-c-format
+msgid "The Seam Application Framework"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:8
+#, no-c-format
+msgid ""
+"Seam makes it really easy to create applications by writing plain Java "
+"classes with annotations, which don't need to extend any special interfaces "
+"or superclasses. But we can simplify some common programming tasks even "
+"further, by providing a set of pre-built components which can be re-used "
+"either by configuration in <literal>components.xml</literal> (for very "
+"simple cases) or extension."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:18
+#, no-c-format
+msgid ""
+"The <emphasis>Seam Application Framework</emphasis> can reduce the amount of "
+"code you need to write when doing basic database access in a web "
+"application, using either Hibernate or JPA."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:24
+#, no-c-format
+msgid ""
+"We should emphasize that the framework is extremely simple, just a handful "
+"of simple classes that are easy to understand and extend. The \"magic\" is "
+"in Seam itself—the same magic you use when creating any Seam "
+"application even without using this framework."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:33
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:35
+#, no-c-format
+msgid ""
+"The components provided by the Seam application framework may be used in one "
+"of two different approaches. The first way is to install and configure an "
+"instance of the component in <literal>components.xml</literal>, just like we "
+"have done with other kinds of built-in Seam components. For example, the "
+"following fragment from <literal>components.xml</literal> installs a "
+"component which can perform basic CRUD operations for a <literal>Person</"
+"literal> entity:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:47
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" \n"
+" entity-class=\"eg.Person\" \n"
+" entity-manager=\"#{personDatabase}\">\n"
+" <framework:id>#{param.personId}</framework:id>\n"
+"</framework:entity-home>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:49
+#, no-c-format
+msgid ""
+"If that looks a bit too much like \"programming in XML\" for your taste, you "
+"can use extension instead:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:54
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> implements "
+"LocalPersonHome {\n"
+" @RequestParameter String personId;\n"
+" @In EntityManager personDatabase;\n"
+" \n"
+" public Object getId() { return personId; }\n"
+" public EntityManager getEntityManager() { return personDatabase; }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:56
+#, no-c-format
+msgid ""
+"The second approach has one huge advantage: you can easily add extra "
+"functionality, and override the built-in functionality (the framework "
+"classes were carefully designed for extension and customization)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:63
+#, no-c-format
+msgid ""
+"A second advantage is that your classes may be EJB stateful session beans, "
+"if you like. (They do not have to be, they can be plain JavaBean components "
+"if you prefer.) If you are using JBoss AS, you'll need 4.2.2.GA or later."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:70
+#, no-c-format
+msgid ""
+"At this time, the Seam Application Framework provides four main built-in "
+"components: <literal>EntityHome</literal> and <literal>HibernateEntityHome</"
+"literal> for CRUD, along with <literal>EntityQuery</literal> and "
+"<literal>HibernateEntityQuery</literal> for queries."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:78
+#, no-c-format
+msgid ""
+"The Home and Query components are written so that they can function with a "
+"scope of session, event or conversation. Which scope you use depends upon "
+"the state model you wish to use in your application."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:84
+#, no-c-format
+msgid ""
+"The Seam Application Framework only works with Seam-managed persistence "
+"contexts. By default, the components will look for a persistence context "
+"named <literal>entityManager</literal>."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:93
+#, no-c-format
+msgid "Home objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:95
+#, no-c-format
+msgid ""
+"A Home object provides persistence operations for a particular entity class. "
+"Suppose we have our trusty <literal>Person</literal> class:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:100
+#, no-c-format
+msgid ""
+"<![CDATA[@Entity\n"
+"public class Person {\n"
+" @Id private Long id;\n"
+" private String firstName;\n"
+" private String lastName;\n"
+" private Country nationality;\n"
+" \n"
+" //getters and setters...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:102
+#, no-c-format
+msgid ""
+"We can define a <literal>personHome</literal> component either via "
+"configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:107
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-home name=\"personHome\" entity-class=\"eg.Person"
+"\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:109
+#, no-c-format
+msgid "Or via extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:113
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:115
+#, no-c-format
+msgid ""
+"A Home object provides the following operations: <literal>persist()</"
+"literal>, <literal>remove()</literal>, <literal>update()</literal> and "
+"<literal>getInstance()</literal>. Before you can call the <literal>remove()</"
+"literal>, or <literal>update()</literal> operations, you must first set the "
+"identifier of the object you are interested in, using the <literal>setId()</"
+"literal> method."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:124
+#, no-c-format
+msgid "We can use a Home directly from a JSF page, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:128
+#, no-c-format
+msgid ""
+"<![CDATA[<h1>Create Person</h1>\n"
+"<h:form>\n"
+" <div>First name: <h:inputText value=\"#{personHome.instance.firstName}\"/"
+"></div>\n"
+" <div>Last name: <h:inputText value=\"#{personHome.instance.lastName}\"/"
+"></div>\n"
+" <div>\n"
+" <h:commandButton value=\"Create Person\" action=\"#{personHome."
+"persist}\"/>\n"
+" </div>\n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:130
+#, no-c-format
+msgid ""
+"Usually, it is much nicer to be able to refer to the <literal>Person</"
+"literal> merely as <literal>person</literal>, so let's make that possible by "
+"adding a line to <literal>components.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:136
+#, no-c-format
+msgid ""
+"<![CDATA[<factory name=\"person\" \n"
+" value=\"#{personHome.instance}\"/>\n"
+"\n"
+"<framework:entity-home name=\"personHome\" \n"
+" entity-class=\"eg.Person\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:138
+#, no-c-format
+msgid ""
+"(If we are using configuration.) Or by adding a <literal>@Factory</literal> "
+"method to <literal>PersonHome</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:143
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+" \n"
+" @Factory(\"person\")\n"
+" public Person initPerson() { return getInstance(); }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:145
+#, no-c-format
+msgid ""
+"(If we are using extension.) This change simplifies our JSF page to the "
+"following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:150
+#, no-c-format
+msgid ""
+"<![CDATA[<h1>Create Person</h1>\n"
+"<h:form>\n"
+" <div>First name: <h:inputText value=\"#{person.firstName}\"/></div>\n"
+" <div>Last name: <h:inputText value=\"#{person.lastName}\"/></div>\n"
+" <div>\n"
+" <h:commandButton value=\"Create Person\" action=\"#{personHome."
+"persist}\"/>\n"
+" </div>\n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:152
+#, no-c-format
+msgid ""
+"Well, that lets us create new <literal>Person</literal> entries. Yes, that "
+"is all the code that is required! Now, if we want to be able to display, "
+"update and delete pre-existing <literal>Person</literal> entries in the "
+"database, we need to be able to pass the entry identifier to the "
+"<literal>PersonHome</literal>. Page parameters are a great way to do that:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:161
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/editPerson.jsp\">\n"
+" <param name=\"personId\" value=\"#{personHome.id}\"/>\n"
+" </page>\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:163
+#, no-c-format
+msgid "Now we can add the extra operations to our JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:167
+#, no-c-format
+msgid ""
+"<![CDATA[<h1>\n"
+" <h:outputText rendered=\"#{!personHome.managed}\" value=\"Create Person"
+"\"/>\n"
+" <h:outputText rendered=\"#{personHome.managed}\" value=\"Edit Person\"/"
+">\n"
+"</h1>\n"
+"<h:form>\n"
+" <div>First name: <h:inputText value=\"#{person.firstName}\"/></div>\n"
+" <div>Last name: <h:inputText value=\"#{person.lastName}\"/></div>\n"
+" <div>\n"
+" <h:commandButton value=\"Create Person\" action=\"#{personHome."
+"persist}\" rendered=\"#{!personHome.managed}\"/>\n"
+" <h:commandButton value=\"Update Person\" action=\"#{personHome."
+"update}\" rendered=\"#{personHome.managed}\"/>\n"
+" <h:commandButton value=\"Delete Person\" action=\"#{personHome."
+"remove}\" rendered=\"#{personHome.managed}\"/>\n"
+" </div>\n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:169
+#, no-c-format
+msgid ""
+"When we link to the page with no request parameters, the page will be "
+"displayed as a \"Create Person\" page. When we provide a value for the "
+"<literal>personId</literal> request parameter, it will be an \"Edit Person\" "
+"page."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:176
+#, no-c-format
+msgid ""
+"Suppose we need to create <literal>Person</literal> entries with their "
+"nationality initialized. We can do that easily, via configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:181
+#, no-c-format
+msgid ""
+"<![CDATA[<factory name=\"person\" \n"
+" value=\"#{personHome.instance}\"/>\n"
+"\n"
+"<framework:entity-home name=\"personHome\" \n"
+" entity-class=\"eg.Person\" \n"
+" new-instance=\"#{newPerson}\"/>\n"
+"\n"
+"<component name=\"newPerson\" \n"
+" class=\"eg.Person\">\n"
+" <property name=\"nationality\">#{country}</property>\n"
+"</component>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:183
+#, no-c-format
+msgid "Or by extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:187
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+" \n"
+" @In Country country;\n"
+" \n"
+" @Factory(\"person\")\n"
+" public Person initPerson() { return getInstance(); }\n"
+" \n"
+" protected Person createInstance() {\n"
+" return new Person(country);\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:189
+#, no-c-format
+msgid ""
+"Of course, the <literal>Country</literal> could be an object managed by "
+"another Home object, for example, <literal>CountryHome</literal>."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:194
+#, no-c-format
+msgid ""
+"To add more sophisticated operations (association management, etc), we can "
+"just add methods to <literal>PersonHome</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:199
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+" \n"
+" @In Country country;\n"
+" \n"
+" @Factory(\"person\")\n"
+" public Person initPerson() { return getInstance(); }\n"
+" \n"
+" protected Person createInstance() {\n"
+" return new Person(country);\n"
+" }\n"
+" \n"
+" public void migrate()\n"
+" {\n"
+" getInstance().setCountry(country);\n"
+" update();\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:201
+#, no-c-format
+msgid ""
+"The Home object raises an <literal>org.jboss.seam.afterTransactionSuccess</"
+"literal> event when a transaction succeeds (a call to <literal>persist()</"
+"literal>, <literal>update()</literal> or <literal>remove()</literal> "
+"succeeds). By observing this event we can refresh our queries when the "
+"underlying entities are changed. If we only want to refresh certain queries "
+"when a particular entity is persited, updated or removed we can observe the "
+"<literal>org.jboss.seam.afterTransactionSuccess.<name></literal> event "
+"(where <literal><name></literal> is the name of the entity)."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:212
+#, no-c-format
+msgid ""
+"The Home object automatically displays faces messages when an operation is "
+"successful. To customize these messages we can, again, use configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:217
+#, no-c-format
+msgid ""
+"<![CDATA[<factory name=\"person\" \n"
+" value=\"#{personHome.instance}\"/>\n"
+"\n"
+"<framework:entity-home name=\"personHome\"\n"
+" entity-class=\"eg.Person\"\n"
+" new-instance=\"#{newPerson}\">\n"
+" <framework:created-message>New person #{person.firstName} #{person."
+"lastName} created</framework:created-message>\n"
+" <framework:deleted-message>Person #{person.firstName} #{person.lastName} "
+"deleted</framework:deleted-message>\n"
+" <framework:updated-message>Person #{person.firstName} #{person.lastName} "
+"updated</framework:updated-message>\n"
+"</framework:entity-home>\n"
+"\n"
+"<component name=\"newPerson\" \n"
+" class=\"eg.Person\">\n"
+" <property name=\"nationality\">#{country}</property>\n"
+"</component>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:219
+#, no-c-format
+msgid "Or extension:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:223
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"personHome\")\n"
+"public class PersonHome extends EntityHome<Person> {\n"
+" \n"
+" @In Country country;\n"
+" \n"
+" @Factory(\"person\")\n"
+" public Person initPerson() { return getInstance(); }\n"
+" \n"
+" protected Person createInstance() {\n"
+" return new Person(country);\n"
+" }\n"
+" \n"
+" protected String getCreatedMessage() { return \"New person #{person."
+"firstName} #{person.lastName} created\"; }\n"
+" protected String getUpdatedMessage() { return \"Person #{person."
+"firstName} #{person.lastName} updated\"; }\n"
+" protected String getDeletedMessage() { return \"Person #{person."
+"firstName} #{person.lastName} deleted\"; }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:225
+#, no-c-format
+msgid ""
+"But the best way to specify the messages is to put them in a resource bundle "
+"known to Seam (the bundle named <literal>messages</literal>, by default)."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:231
+#, no-c-format
+msgid ""
+"<![CDATA[Person_created=New person #{person.firstName} #{person.lastName} "
+"created\n"
+"Person_deleted=Person #{person.firstName} #{person.lastName} deleted\n"
+"Person_updated=Person #{person.firstName} #{person.lastName} updated]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:233
+#, no-c-format
+msgid ""
+"This enables internationalization, and keeps your code and configuration "
+"clean of presentation concerns."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:238
+#, no-c-format
+msgid ""
+"The final step is to add validation functionality to the page, using "
+"<literal><s:validateAll></literal> and <literal><s:decorate></"
+"literal>, but I'll leave that for you to figure out."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:247
+#, no-c-format
+msgid "Query objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:249
+#, no-c-format
+msgid ""
+"If we need a list of all <literal>Person</literal> instance in the database, "
+"we can use a Query object. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:254
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+" ejbql=\"select p from Person p\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:256
+#, no-c-format
+msgid "We can use it from a JSF page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:260
+#, no-c-format
+msgid ""
+"<![CDATA[<h1>List of people</h1>\n"
+"<h:dataTable value=\"#{people.resultList}\" var=\"person\">\n"
+" <h:column>\n"
+" <s:link view=\"/editPerson.jsp\" value=\"#{person.firstName} #"
+"{person.lastName}\">\n"
+" <f:param name=\"personId\" value=\"#{person.id}\"/>\n"
+" </s:link>\n"
+" </h:column>\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:262
+#, no-c-format
+msgid "We probably need to support pagination:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:266
+#, no-c-format
+msgid ""
+"<![CDATA[<framework:entity-query name=\"people\" \n"
+" ejbql=\"select p from Person p\" \n"
+" order=\"lastName\" \n"
+" max-results=\"20\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:268
+#, no-c-format
+msgid "We'll use a page parameter to determine the page to display:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:273
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/searchPerson.jsp\">\n"
+" <param name=\"firstResult\" value=\"#{people.firstResult}\"/>\n"
+" </page>\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:275
+#, no-c-format
+msgid "The JSF code for a pagination control is a bit verbose, but manageable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:279
+#, no-c-format
+msgid ""
+"<![CDATA[<h1>Search for people</h1>\n"
+"<h:dataTable value=\"#{people.resultList}\" var=\"person\">\n"
+" <h:column>\n"
+" <s:link view=\"/editPerson.jsp\" value=\"#{person.firstName} #"
+"{person.lastName}\">\n"
+" <f:param name=\"personId\" value=\"#{person.id}\"/>\n"
+" </s:link>\n"
+" </h:column>\n"
+"</h:dataTable>\n"
+"\n"
+"<s:link view=\"/search.xhtml\" rendered=\"#{people.previousExists}\" value="
+"\"First Page\">\n"
+" <f:param name=\"firstResult\" value=\"0\"/>\n"
+"</s:link>\n"
+"\n"
+"<s:link view=\"/search.xhtml\" rendered=\"#{people.previousExists}\" value="
+"\"Previous Page\">\n"
+" <f:param name=\"firstResult\" value=\"#{people.previousFirstResult}\"/>\n"
+"</s:link>\n"
+"\n"
+"<s:link view=\"/search.xhtml\" rendered=\"#{people.nextExists}\" value="
+"\"Next Page\">\n"
+" <f:param name=\"firstResult\" value=\"#{people.nextFirstResult}\"/>\n"
+"</s:link>\n"
+"\n"
+"<s:link view=\"/search.xhtml\" rendered=\"#{people.nextExists}\" value="
+"\"Last Page\">\n"
+" <f:param name=\"firstResult\" value=\"#{people.lastFirstResult}\"/>\n"
+"</s:link>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:281
+#, no-c-format
+msgid ""
+"Real search screens let the user enter a bunch of optional search criteria "
+"to narrow the list of results returned. The Query object lets you specify "
+"optional \"restrictions\" to support this important usecase:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:287
+#, no-c-format
+msgid ""
+"<![CDATA[<component name=\"examplePerson\" class=\"Person\"/>\n"
+" \n"
+"<framework:entity-query name=\"people\" \n"
+" ejbql=\"select p from Person p\" \n"
+" order=\"lastName\" \n"
+" max-results=\"20\">\n"
+" <framework:restrictions>\n"
+" <value>lower(firstName) like lower( concat(#{examplePerson."
+"firstName},'%') )</value>\n"
+" <value>lower(lastName) like lower( concat(#{examplePerson."
+"lastName},'%') )</value>\n"
+" </framework:restrictions>\n"
+"</framework:entity-query>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:289
+#, no-c-format
+msgid "Notice the use of an \"example\" object."
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:293
+#, no-c-format
+msgid ""
+"<![CDATA[<h1>Search for people</h1>\n"
+"<h:form>\n"
+" <div>First name: <h:inputText value=\"#{examplePerson.firstName}\"/></"
+"div>\n"
+" <div>Last name: <h:inputText value=\"#{examplePerson.lastName}\"/></"
+"div>\n"
+" <div><h:commandButton value=\"Search\" action=\"/search.jsp\"/></div>\n"
+"</h:form>\n"
+"\n"
+"<h:dataTable value=\"#{people.resultList}\" var=\"person\">\n"
+" <h:column>\n"
+" <s:link view=\"/editPerson.jsp\" value=\"#{person.firstName} #"
+"{person.lastName}\">\n"
+" <f:param name=\"personId\" value=\"#{person.id}\"/>\n"
+" </s:link>\n"
+" </h:column>\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:295
+#, no-c-format
+msgid ""
+"To refresh the query when the underlying entities change we observe the "
+"<literal>org.jboss.seam.afterTransactionSuccess</literal> event:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:300
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess\">\n"
+" <action execute=\"#{people.refresh}\" />\n"
+"</event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:302
+#, no-c-format
+msgid ""
+"Or, to just refresh the query when the person entity is persisted, updated "
+"or removed through <literal>PersonHome</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:307
+#, no-c-format
+msgid ""
+"<![CDATA[<event type=\"org.jboss.seam.afterTransactionSuccess.Person\">\n"
+" <action execute=\"#{people.refresh}\" />\n"
+" </event>]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:309
+#, no-c-format
+msgid ""
+"Unfortunately Query objects don't work well with <emphasis>join fetch</"
+"emphasis> queries - the use of pagination with these queries is not "
+"recomended, and you'll have to implement your own method of calculating the "
+"total number of results (by overriding <literal>getCountEjbql()</literal>."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:317
+#, no-c-format
+msgid ""
+"The examples in this section have all shown reuse by configuration. However, "
+"reuse by extension is equally possible for Query objects."
+msgstr ""
+
+#. Tag: title
+#: Framework.xml:325
+#, no-c-format
+msgid "Controller objects"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:326
+#, no-c-format
+msgid ""
+"A totally optional part of the Seam Application Framework is the class "
+"<literal>Controller</literal> and its subclasses <literal>EntityController</"
+"literal> <literal>HibernateEntityController</literal> and "
+"<literal>BusinessProcessController</literal>. These classes provide nothing "
+"more than some convenience methods for access to commonly used built-in "
+"components and methods of built-in components. They help save a few "
+"keystrokes (characters can add up!) and provide a great launchpad for new "
+"users to explore the rich functionality built in to Seam."
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:338
+#, no-c-format
+msgid ""
+"For example, here is what <literal>RegisterAction</literal> from the Seam "
+"registration example would look like:"
+msgstr ""
+
+#. Tag: programlisting
+#: Framework.xml:343
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"register\")\n"
+"public class RegisterAction extends EntityController implements Register\n"
+"{\n"
+"\n"
+" @In private User user;\n"
+" \n"
+" public String register()\n"
+" {\n"
+" List existing = createQuery(\"select u.username from User u where u."
+"username=:username\")\n"
+" .setParameter(\"username\", user.getUsername())\n"
+" .getResultList();\n"
+" \n"
+" if ( existing.size()==0 )\n"
+" {\n"
+" persist(user);\n"
+" info(\"Registered new user #{user.username}\");\n"
+" return \"/registered.jspx\";\n"
+" }\n"
+" else\n"
+" {\n"
+" addFacesMessage(\"User #{user.username} already exists\");\n"
+" return null;\n"
+" }\n"
+" }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Framework.xml:345
+#, no-c-format
+msgid "As you can see, its not an earthshattering improvement..."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Getting_Started_With_JBoss_Tools.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Getting_Started_With_JBoss_Tools.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Getting_Started_With_JBoss_Tools.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,567 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Getting_Started_With_JBoss_Tools.xml:5
+#, no-c-format
+msgid "Getting started with Seam, using JBoss Tools"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:7
+#, no-c-format
+msgid ""
+"JBoss Tools is a collection of Eclipse plugins. JBoss Tools a project "
+"creation wizard for Seam, Content Assist for the Unified Expression Language "
+"(EL) in both facelets and Java code, a graphical editor for jPDL, a "
+"graphical editor for Seam configuration files, support for running Seam "
+"integration tests from within Eclipse, and much more."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:15
+#, no-c-format
+msgid "In short, if you are an Eclipse user, then you'll want JBoss Tools!"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:19
+#, no-c-format
+msgid ""
+"JBoss Tools, as with seam-gen, works best with JBoss AS, but it's possible "
+"with a few tweaks to get your app running on other application servers. The "
+"changes are much like those described for seam-gen later in this reference "
+"manual."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started_With_JBoss_Tools.xml:27
+#, no-c-format
+msgid "Before you start"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:29
+#, no-c-format
+msgid ""
+"Make sure you have JDK 5, JBoss AS 4.2, Eclipse 3.3, the JBoss Tools plugins "
+"(at least Seam Tools, the Visual Page Editor, jBPM Tools and JBoss AS Tools) "
+"and the TestNG plugin for Eclipse correctly installed before starting."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:36
+#, no-c-format
+msgid "TODO - detail where the update sites are."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started_With_JBoss_Tools.xml:41
+#, no-c-format
+msgid "Setting up a new Seam project"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:43
+#, no-c-format
+msgid "Start up Eclipse and select the <emphasis>Seam</emphasis> perspective."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:47
+#, no-c-format
+msgid ""
+"Go to <emphasis>File</emphasis> -> <emphasis>New</emphasis> -> "
+"<emphasis>Seam Web Project</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:63
+#, no-c-format
+msgid ""
+"First, enter a name for your new project. For this tutorial, we're going to "
+"use <literal>helloworld</literal> ."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:71
+#, no-c-format
+msgid ""
+"Now, we need to tell JBoss Tools about JBoss AS. This is a two stage "
+"process, first we need to define a runtime, make sure you select JBoss AS "
+"4.2:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:88
+#, no-c-format
+msgid "Enter a name for the runtime, and locate it on your hard drive:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:103
+#, no-c-format
+msgid ""
+"Next, we need to define a server JBoss Tools can deploy the project to. Make "
+"sure to again select JBoss AS 4.2, and also the runtime you just defined:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:118
+#, no-c-format
+msgid ""
+"On the next screen give the server a name, and hit <emphasis>Finish</"
+"emphasis>:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:134
+#, no-c-format
+msgid ""
+"Make sure the runtime and server you just created are selected, select "
+"<emphasis>Dynamic Web Project with Seam 2.0 (technology preview)</emphasis> "
+"and hit <emphasis>Next</emphasis>:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:151
+#, no-c-format
+msgid ""
+"The next 3 screens allow you to further customize your new project, but for "
+"us the defaults are fine. So just hit <empahsis>Next</empahsis> until you "
+"reach the final screen."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:157
+#, no-c-format
+msgid ""
+"The first step here is to tell JBoss Tools about the Seam download you want "
+"to use. <emphasis>Add</emphasis> a new <emphasis>Seam Runtime</emphasis> - "
+"make sure to give it a name, and select <emphasis>2.0</emphasis> as the "
+"version:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:175
+#, no-c-format
+msgid ""
+"The most important choice you need to make is between EAR deployment and WAR "
+"deployment of your project. EAR projects support EJB 3.0 and require Java EE "
+"5. WAR projects do not support EJB 3.0, but may be deployed to a J2EE "
+"environment. The packaging of a WAR is also simpler to understand. If you "
+"installed an EJB3-ready application server like JBoss, choose <emphasis>EAR</"
+"emphasis>. Otherwise, choose <emphasis>WAR</emphasis>. We'll assume that "
+"you've chosen a WAR deployment for the rest of the tutorial, but you can "
+"follow exactly the same steps for a EAR deployment."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:187
+#, no-c-format
+msgid ""
+"Next, select your database type. We'll assume you have MySQL installed, with "
+"an existing schema. You'll need to tell JBoss Tools about the database, "
+"select <emphasis>MySQL</emphasis> as the database, and create a new "
+"connection profile. Select <emphasis>Generic JDBC Connection</emphasis>:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:206
+#, no-c-format
+msgid "Give it a name:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:221
+#, no-c-format
+msgid ""
+"JBoss Tools doesn't come with drivers for any databases, so you need to tell "
+"JBoss Tools where the MySQL JDBC driver is. Tell it about the driver by "
+"clicking <emphasis>...</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:227
+#, no-c-format
+msgid "Locate MySQL 5, and hit <emphasis>Add...</emphasis>:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:242
+#, no-c-format
+msgid "Choose the <emphasis>MySQL JDBC Driver</emphasis> template:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:257
+#, no-c-format
+msgid ""
+"Locate the jar on your computer by choosing <emphasis>Edit Jar/Zip</"
+"emphasis>:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:273
+#, no-c-format
+msgid ""
+"Review the username and password used to connect, and if correct, hit "
+"<emphasis>Ok</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:278
+#, no-c-format
+msgid "Finally, choose the newly created driver:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:293
+#, no-c-format
+msgid ""
+"If you are working with an existing data model, make sure you tell JBoss "
+"Tools that the tables already exist in the database."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:298
+#, no-c-format
+msgid ""
+"Review the username and password used to connect, test the connection using "
+"the <emphasis>Test Connection</emphasis> button, and if it works, hit "
+"<emphasis>Finish</emphasis>:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:304
+#, no-c-format
+msgid ""
+"Finally, review the package names for your generated beans, and if you are "
+"happy, click <emphasis>Finish</emphasis>:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:320
+#, no-c-format
+msgid ""
+"JBoss has sophisticated support for hot re-deployment of WARs and EARs. "
+"Unfortunately, due to bugs in the JVM, repeated redeployment of an EAR—which "
+"is common during development—eventually causes the JVM to run out of perm "
+"gen space. For this reason, we recommend running JBoss in a JVM with a large "
+"perm gen space at development time. We suggest the following values:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started_With_JBoss_Tools.xml:329
+#, no-c-format
+msgid "-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:331
+#, no-c-format
+msgid ""
+"If you don't have so much memory available, the following is our minimum "
+"recommendation:"
+msgstr ""
+
+#. Tag: programlisting
+#: Getting_Started_With_JBoss_Tools.xml:336
+#, no-c-format
+msgid "-Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:338
+#, no-c-format
+msgid ""
+"Locate the server in the <emphasis>JBoss Server View</emphasis>, right click "
+"on the server and select <emphasis>Edit Launch Configuration</emphasis>:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:355
+#, no-c-format
+msgid "Then, alter the VM arguements:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:370
+#, no-c-format
+msgid ""
+"If you don't want to bother with this stuff now, you don't have to—come back "
+"to it later, when you get your first <literal>OutOfMemoryException</literal>."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:376
+#, no-c-format
+msgid ""
+"To start JBoss, and deploy the project, just right click on the server you "
+"created, and click <emphasis>Start</emphasis>, (or <emphasis>Debug</"
+"emphasis> to start in debug mode):"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:393
+#, no-c-format
+msgid ""
+"Don't get scared by the XML configuration documents that were generated into "
+"the project directory. They are mostly standard Java EE stuff, the stuff you "
+"need to create once and then never look at again, and they are 90% the same "
+"between all Seam projects."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started_With_JBoss_Tools.xml:403
+#, no-c-format
+msgid "Creating a new action"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:405
+#, no-c-format
+msgid ""
+"If you're used to traditional action-style web frameworks, you're probably "
+"wondering how you can create a simple web page with a stateless action "
+"method in Java."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:411
+#, no-c-format
+msgid ""
+"First, select <emphasis>New</emphasis> -> <emphasis>Seam Action</emphasis>:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:426
+#: Getting_Started_With_JBoss_Tools.xml:492
+#, no-c-format
+msgid ""
+"Now, enter the name of the Seam component. JBoss Tools selects sensible "
+"defaults for other fields:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:442
+#, no-c-format
+msgid "Finally, hit <emphasis>Finish</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:446
+#, no-c-format
+msgid ""
+"Now go to <literal>http://localhost:8080/helloworld/ping.seam</literal> and "
+"click the button. You can see the code behind this action by looking in the "
+"project <literal>src</literal> directory. Put a breakpoint in the "
+"<literal>ping()</literal> method, and click the button again."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:454
+#, no-c-format
+msgid ""
+"Finally, open the <literal>helloworld-test</literal> project, locate "
+"<literal>PingTest</literal> class, right click on it, and choose "
+"<emphasis>Run As</emphasis> -> <emphasis>TestNG Test</emphasis>:"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started_With_JBoss_Tools.xml:474
+#, no-c-format
+msgid "Creating a form with an action"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:476
+#, no-c-format
+msgid ""
+"The first step is to create a form. Select <emphasis>New</emphasis> -> "
+"<emphasis>Seam Form</emphasis>:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:508
+#, no-c-format
+msgid ""
+"Go to <literal>http://localhost:8080/helloworld/hello.seam</literal>. Then "
+"take a look at the generated code. Run the test. Try adding some new fields "
+"to the form and Seam component (note, you don't need to restart the app "
+"server each time you change the code in <literal>src/action</literal> as "
+"Seam hot reloads the component for you <xref linkend="
+"\"gettingstartedwithjbosstools.hotdeployment\"/>)."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started_With_JBoss_Tools.xml:519
+#, no-c-format
+msgid "Generating an application from an existing database"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:521
+#, no-c-format
+msgid ""
+"Manually create some tables in your database. (If you need to switch to a "
+"different database, create a new project, and select the correct database). "
+"Then, select <emphasis>New</emphasis> -> <emphasis>Seam Generate Entities</"
+"emphasis>:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:539
+#, no-c-format
+msgid ""
+"JBoss Tools gives you the option to either reverse engineer entities, "
+"components and views from a database schema or to reverse engineer "
+"components and views from existing JPA entities. We're going to do "
+"<emphasis>Reverse engieneer from database</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:546
+#, no-c-format
+msgid "Restart the deployment:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:561
+#, no-c-format
+msgid ""
+"Then go to <literal>http://localhost:8080/helloworld</literal>. You can "
+"browse the database, edit existing objects, and create new objects. If you "
+"look at the generated code, you'll probably be amazed how simple it is! Seam "
+"was designed so that data access code is easy to write by hand, even for "
+"people who don't want to cheat by using reverse engineering."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started_With_JBoss_Tools.xml:572
+#, no-c-format
+msgid "Seam and incremental hot deployment with JBoss Tools"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:574
+#, no-c-format
+msgid "JBoss Tools supports incremental hot deployment of:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:580
+#, no-c-format
+msgid "any facelets page"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:584
+#, no-c-format
+msgid "any <literal>pages.xml</literal> file"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:590
+#, no-c-format
+msgid "out of the box."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:594
+#, no-c-format
+msgid ""
+"But if we want to change any Java code, we still need to do a full restart "
+"of the application by doing a <emphasis>Full Publish</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:600
+#, no-c-format
+msgid ""
+"But if you really want a fast edit/compile/test cycle, Seam supports "
+"incremental redeployment of JavaBean components. To make use of this "
+"functionality, you must deploy the JavaBean components into the <literal>WEB-"
+"INF/dev</literal> directory, so that they will be loaded by a special Seam "
+"classloader, instead of by the WAR or EAR classloader."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:609
+#, no-c-format
+msgid "You need to be aware of the following limitations:"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:613
+#, no-c-format
+msgid ""
+"the components must be JavaBean components, they cannot be EJB3 beans (we "
+"are working on fixing this limitation)"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:620
+#, no-c-format
+msgid "entities can never be hot-deloyed"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:626
+#, no-c-format
+msgid ""
+"components deployed via <literal>components.xml</literal> may not be hot-"
+"deployed"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:633
+#, no-c-format
+msgid ""
+"the hot-deployable components will not be visible to any classes deployed "
+"outside of <literal>WEB-INF/dev</literal>"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:640
+#, no-c-format
+msgid ""
+"Seam debug mode must be enabled and <literal>jboss-seam-debug.jar</literal> "
+"must be in <literal>WEB-INF/lib</literal>"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:648
+#, no-c-format
+msgid "You must have the Seam filter installed in web.xml"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:654
+#, no-c-format
+msgid ""
+"You may see errors if the system is placed under any load and debug is "
+"enabled."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started_With_JBoss_Tools.xml:662
+#, no-c-format
+msgid ""
+"If you create a WAR project using JBoss Tools, incremental hot deployment is "
+"available out of the box for classes in the <literal>src/action</literal> "
+"source directory. However, JBoss Tools does not support incremental hot "
+"deployment for EAR projects."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Gettingstarted.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Gettingstarted.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Gettingstarted.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,870 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Gettingstarted.xml:5
+#, no-c-format
+msgid "Getting started with Seam, using seam-gen"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:7
+#, no-c-format
+msgid ""
+"The Seam distribution includes a command line utility that makes it really "
+"easy to set up an Eclipse project, generate some simple Seam skeleton code, "
+"and reverse engineer an application from a preexisting database."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:10
+#, no-c-format
+msgid ""
+"This is the easy way to get your feet wet with Seam, and gives you some "
+"ammunition for next time you find yourself trapped in an elevator with one "
+"of those tedious Ruby guys ranting about how great and wonderful his new toy "
+"is for building totally trivial applications that put things in databases."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:14
+#, no-c-format
+msgid ""
+"In this release, seam-gen works best for people with JBoss AS. You can use "
+"the generated project with other J2EE or Java EE 5 application servers by "
+"making a few manual changes to the project configuration."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:17
+#, no-c-format
+msgid ""
+"You <emphasis>can</emphasis> use seam-gen without Eclipse, but in this "
+"tutorial, we want to show you how to use it in conjunction with Eclipse for "
+"debugging and integration testing. If you don't want to install Eclipse, you "
+"can still follow along with this tutorial—all steps can be performed from "
+"the command line."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:21
+#, no-c-format
+msgid ""
+"Seam-gen is basically just a big ugly Ant script wrapped around Hibernate "
+"Tools, together with some templates. That makes it easy to customize if you "
+"need to."
+msgstr ""
+
+#. Tag: title
+#: Gettingstarted.xml:25
+#, no-c-format
+msgid "Before you start"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:27
+#, no-c-format
+msgid ""
+"Make sure you have JDK 5 or JDK 6, JBoss AS 4.2 and Ant 1.6, along with "
+"recent versions of Eclipse, the JBoss IDE plugin for Eclipse and the TestNG "
+"plugin for Eclipse correctly installed before starting. Add your JBoss "
+"installation to the JBoss Server View in Eclipse. Start JBoss in debug mode. "
+"Finally, start a command prompt in the directory where you unzipped the Seam "
+"distribution."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:32
+#, no-c-format
+msgid ""
+"JBoss has sophisticated support for hot re-deployment of WARs and EARs. "
+"Unfortunately, due to bugs in the JVM, repeated redeployment of an EAR—which "
+"is common during development—eventually causes the JVM to run out of perm "
+"gen space. For this reason, we recommend running JBoss in a JVM with a large "
+"perm gen space at development time. If you're running JBoss from JBoss IDE, "
+"you can configure this in the server launch configuration, under \"VM "
+"arguments\". We suggest the following values:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gettingstarted.xml:38
+#, no-c-format
+msgid "-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:40
+#, no-c-format
+msgid ""
+"If you don't have so much memory available, the following is our minimum "
+"recommendation:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gettingstarted.xml:42
+#, no-c-format
+msgid "-Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:44
+#, no-c-format
+msgid ""
+"If you're running JBoss from the command line, you can configure the JVM "
+"options in <literal>bin/run.conf</literal>."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:47
+#, no-c-format
+msgid ""
+"If you don't want to bother with this stuff now, you don't have to—come back "
+"to it later, when you get your first <literal>OutOfMemoryException</literal>."
+msgstr ""
+
+#. Tag: title
+#: Gettingstarted.xml:52
+#, no-c-format
+msgid "Setting up a new Eclipse project"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:54
+#, no-c-format
+msgid ""
+"The first thing we need to do is configure seam-gen for your environment: "
+"JBoss AS installation directory, Eclipse workspace, and database connection. "
+"It's easy, just type:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gettingstarted.xml:57
+#, no-c-format
+msgid ""
+"cd jboss-seam-2.0.x\n"
+"seam setup"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:59
+#, no-c-format
+msgid "And you will be prompted for the needed information:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gettingstarted.xml:61
+#, no-c-format
+msgid ""
+"~/workspace/jboss-seam$ ./seam setup\n"
+"Buildfile: build.xml\n"
+"\n"
+"init:\n"
+"\n"
+"setup:\n"
+" [echo] Welcome to seam-gen :-)\n"
+" [input] Enter your Java project workspace (the directory that contains "
+"your Seam projects) [C:/Projects] [C:/Projects]\n"
+"/Users/pmuir/workspace\n"
+" [input] Enter your JBoss home directory [C:/Program Files/jboss-4.2.2."
+"GA] [C:/Program Files/jboss-4.2.2.GA]\n"
+"/Applications/jboss-4.2.2.GA\n"
+" [input] Enter the project name [myproject] [myproject]\n"
+"helloworld\n"
+" [echo] Accepted project name as: helloworld\n"
+" [input] Select a RichFaces skin (not applicable if using ICEFaces) "
+"[blueSky] ([blueSky], classic, ruby, wine, deepMarine, emeraldTown, sakura, "
+"DEFAULT)\n"
+"\n"
+" [input] Is this project deployed as an EAR (with EJB components) or a "
+"WAR (with no EJB support) [ear] ([ear], war, )\n"
+"\n"
+" [input] Enter the Java package name for your session beans [com.mydomain."
+"helloworld] [com.mydomain.helloworld]\n"
+"org.jboss.helloworld\n"
+" [input] Enter the Java package name for your entity beans [org.jboss."
+"helloworld] [org.jboss.helloworld]\n"
+"\n"
+" [input] Enter the Java package name for your test cases [org.jboss."
+"helloworld.test] [org.jboss.helloworld.test]\n"
+"\n"
+" [input] What kind of database are you using? [hsql] ([hsql], mysql, "
+"oracle, postgres, mssql, db2, sybase, enterprisedb, h2)\n"
+"mysql\n"
+" [input] Enter the Hibernate dialect for your database [org.hibernate."
+"dialect.MySQLDialect] [org.hibernate.dialect.MySQLDialect]\n"
+"\n"
+" [input] Enter the filesystem path to the JDBC driver jar [lib/hsqldb."
+"jar] [lib/hsqldb.jar]\n"
+"/Users/pmuir/java/mysql.jar\n"
+" [input] Enter JDBC driver class for your database [com.mysql.jdbc."
+"Driver] [com.mysql.jdbc.Driver]\n"
+"\n"
+" [input] Enter the JDBC URL for your database [jdbc:mysql:///test] [jdbc:"
+"mysql:///test]\n"
+"jdbc:mysql:///helloworld\n"
+" [input] Enter database username [sa] [sa]\n"
+"pmuir\n"
+" [input] Enter database password [] []\n"
+"\n"
+" [input] skipping input as property hibernate.default_schema.new has "
+"already been set.\n"
+" [input] Enter the database catalog name (it is OK to leave this blank) "
+"[] []\n"
+"\n"
+" [input] Are you working with tables that already exist in the database? "
+"[n] (y, [n], )\n"
+"y\n"
+" [input] Do you want to drop and recreate the database tables and data in "
+"import.sql each time you deploy? [n] (y, [n], )\n"
+"n\n"
+" [input] Enter your ICEfaces home directory (leave blank to omit "
+"ICEfaces) [] []\n"
+"\n"
+"[propertyfile] Creating new property file: /Users/pmuir/workspace/jboss-seam/"
+"seam-gen/build.properties\n"
+" [echo] Installing JDBC driver jar to JBoss server\n"
+" [echo] Type 'seam create-project' to create the new project\n"
+"\n"
+"BUILD SUCCESSFUL\n"
+"Total time: 1 minute 32 seconds\n"
+"~/workspace/jboss-seam $"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:63
+#, no-c-format
+msgid ""
+"The tool provides sensible defaults, which you can accept by just pressing "
+"enter at the prompt."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:65
+#, no-c-format
+msgid ""
+"The most important choice you need to make is between EAR deployment and WAR "
+"deployment of your project. EAR projects support EJB 3.0 and require Java EE "
+"5. WAR projects do not support EJB 3.0, but may be deployed to a J2EE "
+"environment. The packaging of a WAR is also simpler to understand. If you "
+"installed an EJB3-ready application server like JBoss, choose <literal>ear</"
+"literal>. Otherwise, choose <literal>war</literal>. We'll assume that you've "
+"chosen an EAR deployment for the rest of the tutorial, but you can follow "
+"exactly the same steps for a WAR deployment."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:72
+#, no-c-format
+msgid ""
+"If you are working with an existing data model, make sure you tell seam-gen "
+"that the tables already exist in the database."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:75
+#, no-c-format
+msgid ""
+"The settings are stored in <literal>seam-gen/build.properties</literal>, but "
+"you can also modify them simply by running <literal>seam setup</literal> a "
+"second time."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:78
+#, no-c-format
+msgid ""
+"Now we can create a new project in our Eclipse workspace directory, by "
+"typing:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gettingstarted.xml:80
+#, no-c-format
+msgid "seam new-project"
+msgstr ""
+
+#. Tag: programlisting
+#: Gettingstarted.xml:82
+#, no-c-format
+msgid ""
+"C:\\Projects\\jboss-seam>seam new-project\n"
+"Buildfile: build.xml\n"
+"\n"
+"...\n"
+"\n"
+"new-project:\n"
+" [echo] A new Seam project named 'helloworld' was created in the C:"
+"\\Projects directory\n"
+" [echo] Type 'seam explode' and go to http://localhost:8080/helloworld\n"
+" [echo] Eclipse Users: Add the project into Eclipse using File > New "
+"> Project and select General > Project (not Java Project)\n"
+" [echo] NetBeans Users: Open the project in NetBeans\n"
+"\n"
+"BUILD SUCCESSFUL\n"
+"Total time: 7 seconds\n"
+"C:\\Projects\\jboss-seam>"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:84
+#, no-c-format
+msgid ""
+"This copies the Seam jars, dependent jars and the JDBC driver jar to a new "
+"Eclipse project, and generates all needed resources and configuration files, "
+"a facelets template file and stylesheet, along with Eclipse metadata and an "
+"Ant build script. The Eclipse project will be automatically deployed to an "
+"exploded directory structure in JBoss AS as soon as you add the project "
+"using <literal>New -> Project... -> General -> Project -> Next</"
+"literal>, typing the <literal>Project name</literal> (<literal>helloworld</"
+"literal> in this case), and then clicking <literal>Finish</literal>. Do not "
+"select <literal>Java Project</literal> from the New Project wizard."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:92
+#, no-c-format
+msgid ""
+"If your default JDK in Eclipse is not a Java SE 5 or Java SE 6 JDK, you will "
+"need to select a Java SE 5 compliant JDK using <literal>Project -> "
+"Properties -> Java Compiler</literal>."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:95
+#, no-c-format
+msgid ""
+"Alternatively, you can deploy the project from outside Eclipse by typing "
+"<literal>seam explode</literal>."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:97
+#, no-c-format
+msgid ""
+"Go to <literal>http://localhost:8080/helloworld</literal> to see a welcome "
+"page. This is a facelets page, <literal>view/home.xhtml</literal>, using the "
+"template <literal>view/layout/template.xhtml</literal>. You can edit this "
+"page, or the template, in eclipse, and see the results "
+"<emphasis>immediately</emphasis>, by clicking refresh in your browser."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:102
+#, no-c-format
+msgid ""
+"Don't get scared by the XML configuration documents that were generated into "
+"the project directory. They are mostly standard Java EE stuff, the stuff you "
+"need to create once and then never look at again, and they are 90% the same "
+"between all Seam projects. (They are so easy to write that even seam-gen can "
+"do it.)"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:106
+#, no-c-format
+msgid ""
+"The generated project includes three database and persistence "
+"configurations. The <literal>persistence-test.xml</literal> and "
+"<literal>import-test.sql</literal> files are used when running the TestNG "
+"unit tests against HSQLDB. The database schema and the test data in "
+"<literal>import-test.sql</literal> is always exported to the database before "
+"running tests. The <literal>myproject-dev-ds.xml</literal>, "
+"<literal>persistence-dev.xml</literal>and <literal>import-dev.sql</literal> "
+"files are for use when deploying the application to your development "
+"database. The schema might be exported automatically at deployment, "
+"depending upon whether you told seam-gen that you are working with an "
+"existing database. The <literal>myproject-prod-ds.xml</literal>, "
+"<literal>persistence-prod.xml</literal>and <literal>import-prod.sql</"
+"literal> files are for use when deploying the application to your production "
+"database. The schema is not exported automatically at deployment."
+msgstr ""
+
+#. Tag: title
+#: Gettingstarted.xml:120
+#, no-c-format
+msgid "Creating a new action"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:122
+#, no-c-format
+msgid ""
+"If you're used to traditional action-style web frameworks, you're probably "
+"wondering how you can create a simple web page with a stateless action "
+"method in Java. If you type:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gettingstarted.xml:125
+#, no-c-format
+msgid "seam new-action"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:127
+#, no-c-format
+msgid ""
+"Seam will prompt for some information, and generate a new facelets page and "
+"Seam component for your project."
+msgstr ""
+
+#. Tag: programlisting
+#: Gettingstarted.xml:130
+#, no-c-format
+msgid ""
+"C:\\Projects\\jboss-seam>seam new-action\n"
+"Buildfile: build.xml\n"
+"\n"
+"validate-workspace:\n"
+"\n"
+"validate-project:\n"
+"\n"
+"action-input:\n"
+" [input] Enter the Seam component name\n"
+"ping\n"
+" [input] Enter the local interface name [Ping]\n"
+"\n"
+" [input] Enter the bean class name [PingBean]\n"
+"\n"
+" [input] Enter the action method name [ping]\n"
+"\n"
+" [input] Enter the page name [ping]\n"
+"\n"
+"\n"
+"setup-filters:\n"
+"\n"
+"new-action:\n"
+" [echo] Creating a new stateless session bean component with an action "
+"method\n"
+" [copy] Copying 1 file to C:\\Projects\\helloworld\\src\\action\\org"
+"\\jboss\\helloworld\n"
+" [copy] Copying 1 file to C:\\Projects\\helloworld\\src\\action\\org"
+"\\jboss\\helloworld\n"
+" [copy] Copying 1 file to C:\\Projects\\helloworld\\src\\action\\org"
+"\\jboss\\helloworld\\test\n"
+" [copy] Copying 1 file to C:\\Projects\\helloworld\\src\\action\\org"
+"\\jboss\\helloworld\\test\n"
+" [copy] Copying 1 file to C:\\Projects\\helloworld\\view\n"
+" [echo] Type 'seam restart' and go to http://localhost:8080/helloworld/"
+"ping.seam\n"
+"\n"
+"BUILD SUCCESSFUL\n"
+"Total time: 13 seconds\n"
+"C:\\Projects\\jboss-seam>"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:132
+#, no-c-format
+msgid ""
+"Because we've added a new Seam component, we need to restart the exploded "
+"directory deployment. You can do this by typing <literal>seam restart</"
+"literal>, or by running the <literal>restart</literal> target in the "
+"generated project <literal>build.xml</literal> file from inside Eclipse. "
+"Another way to force a restart is to edit the file <literal>resources/META-"
+"INF/application.xml</literal> in Eclipse. <emphasis>Note that you do not "
+"need to restart JBoss each time you change the application.</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:138
+#, no-c-format
+msgid ""
+"Now go to <literal>http://localhost:8080/helloworld/ping.seam</literal> and "
+"click the button. You can see the code behind this action by looking in the "
+"project <literal>src</literal> directory. Put a breakpoint in the "
+"<literal>ping()</literal> method, and click the button again."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:142
+#, no-c-format
+msgid ""
+"Finally, locate the <literal>PingTest.xml</literal> file in the test package "
+"and run the integration tests using the TestNG plugin for Eclipse. "
+"Alternatively, run the tests using <literal>seam test</literal> or the "
+"<literal>test</literal> target of the generated build."
+msgstr ""
+
+#. Tag: title
+#: Gettingstarted.xml:148
+#, no-c-format
+msgid "Creating a form with an action"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:150
+#, no-c-format
+msgid "The next step is to create a form. Type:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gettingstarted.xml:152
+#, no-c-format
+msgid "seam new-form"
+msgstr ""
+
+#. Tag: programlisting
+#: Gettingstarted.xml:154
+#, no-c-format
+msgid ""
+"C:\\Projects\\jboss-seam>seam new-form\n"
+"Buildfile: C:\\Projects\\jboss-seam\\seam-gen\\build.xml\n"
+"\n"
+"validate-workspace:\n"
+"\n"
+"validate-project:\n"
+"\n"
+"action-input:\n"
+" [input] Enter the Seam component name\n"
+"hello\n"
+" [input] Enter the local interface name [Hello]\n"
+"\n"
+" [input] Enter the bean class name [HelloBean]\n"
+"\n"
+" [input] Enter the action method name [hello]\n"
+"\n"
+" [input] Enter the page name [hello]\n"
+"\n"
+"\n"
+"setup-filters:\n"
+"\n"
+"new-form:\n"
+" [echo] Creating a new stateful session bean component with an action "
+"method\n"
+" [copy] Copying 1 file to C:\\Projects\\hello\\src\\com\\hello\n"
+" [copy] Copying 1 file to C:\\Projects\\hello\\src\\com\\hello\n"
+" [copy] Copying 1 file to C:\\Projects\\hello\\src\\com\\hello\\test\n"
+" [copy] Copying 1 file to C:\\Projects\\hello\\view\n"
+" [copy] Copying 1 file to C:\\Projects\\hello\\src\\com\\hello\\test\n"
+" [echo] Type 'seam restart' and go to http://localhost:8080/hello/hello."
+"seam\n"
+"\n"
+"BUILD SUCCESSFUL\n"
+"Total time: 5 seconds\n"
+"C:\\Projects\\jboss-seam>"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:156
+#, no-c-format
+msgid ""
+"Restart the application again, and go to <literal>http://localhost:8080/"
+"helloworld/hello.seam</literal>. Then take a look at the generated code. Run "
+"the test. Try adding some new fields to the form and Seam component "
+"(remember to restart the deployment each time you change the Java code)."
+msgstr ""
+
+#. Tag: title
+#: Gettingstarted.xml:162
+#, no-c-format
+msgid "Generating an application from an existing database"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:164
+#, no-c-format
+msgid ""
+"Manually create some tables in your database. (If you need to switch to a "
+"different database, just run <literal>seam setup</literal> again.) Now type:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gettingstarted.xml:167
+#, no-c-format
+msgid "seam generate-entities"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:169
+#, no-c-format
+msgid ""
+"Restart the deployment, and go to <literal>http://localhost:8080/helloworld</"
+"literal>. You can browse the database, edit existing objects, and create new "
+"objects. If you look at the generated code, you'll probably be amazed how "
+"simple it is! Seam was designed so that data access code is easy to write by "
+"hand, even for people who don't want to cheat by using seam-gen."
+msgstr ""
+
+#. Tag: title
+#: Gettingstarted.xml:176
+#, no-c-format
+msgid "Generating an application from existing JPA/EJB3 entities"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:178
+#, no-c-format
+msgid ""
+"Place your existing, valid entity classes inside the <literal>src/model</"
+"literal>. Now type"
+msgstr ""
+
+#. Tag: programlisting
+#: Gettingstarted.xml:180
+#, no-c-format
+msgid "seam generate-ui"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:182
+#, no-c-format
+msgid ""
+"Restart the deployment, and go to <literal>http://localhost:8080/helloworld</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: Gettingstarted.xml:186
+#, no-c-format
+msgid "Deploying the application as an EAR"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:188
+#, no-c-format
+msgid ""
+"Finally, we want to be able to deploy the application using standard Java EE "
+"5 packaging. First, we need to remove the exploded directory by running "
+"<literal>seam unexplode</literal>. To deploy the EAR, we can type "
+"<literal>seam deploy</literal> at the command prompt, or run the "
+"<literal>deploy</literal> target of the generated project build script. You "
+"can undeploy using <literal>seam undeploy</literal> or the "
+"<literal>undeploy</literal> target."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:194
+#, no-c-format
+msgid ""
+"By default, the application will be deployed with the <emphasis>dev profile</"
+"emphasis>. The EAR will include the <literal>persistence-dev.xml</literal> "
+"and <literal>import-dev.sql</literal> files, and the <literal>myproject-dev-"
+"ds.xml</literal> file will be deployed. You can change the profile, and use "
+"the <emphasis>prod profile</emphasis>, by typing"
+msgstr ""
+
+#. Tag: programlisting
+#: Gettingstarted.xml:199
+#, no-c-format
+msgid "seam -Dprofile=prod deploy"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:201
+#, no-c-format
+msgid ""
+"You can even define new deployment profiles for your application. Just add "
+"appropriately named files to your project—for example, <literal>persistence-"
+"staging.xml</literal>, <literal>import-staging.sql</literal> and "
+"<literal>myproject-staging-ds.xml</literal>—and select the name of the "
+"profile using <literal>-Dprofile=staging</literal>."
+msgstr ""
+
+#. Tag: title
+#: Gettingstarted.xml:208
+#, no-c-format
+msgid "Seam and incremental hot deployment"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:210
+#, no-c-format
+msgid ""
+"When you deploy your Seam application as an exploded directory, you'll get "
+"some support for incremental hot deployment at development time. You need to "
+"enable debug mode in both Seam and Facelets, by adding this line to "
+"<literal>components.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gettingstarted.xml:214
+#, no-c-format
+msgid "<![CDATA[<core:init debug=\"true\">]]>"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:216
+#, no-c-format
+msgid ""
+"Now, the following files may be redeployed without requiring a full restart "
+"of the web application:"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:220
+#, no-c-format
+msgid "any facelets page"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:224
+#, no-c-format
+msgid "any <literal>pages.xml</literal> file"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:228
+#, no-c-format
+msgid ""
+"But if we want to change any Java code, we still need to do a full restart "
+"of the application. (In JBoss this may be accomplished by touching the top "
+"level deployment descriptor: <literal>application.xml</literal> for an EAR "
+"deployment, or <literal>web.xml</literal> for a WAR deployment.)"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:232
+#, no-c-format
+msgid ""
+"But if you really want a fast edit/compile/test cycle, Seam supports "
+"incremental redeployment of JavaBean components. To make use of this "
+"functionality, you must deploy the JavaBean components into the <literal>WEB-"
+"INF/dev</literal> directory, so that they will be loaded by a special Seam "
+"classloader, instead of by the WAR or EAR classloader."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:237
+#, no-c-format
+msgid "You need to be aware of the following limitations:"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:241
+#, no-c-format
+msgid ""
+"the components must be JavaBean components, they cannot be EJB3 beans (we "
+"are working on fixing this limitation)"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:246
+#, no-c-format
+msgid "entities can never be hot-deloyed"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:250
+#, no-c-format
+msgid ""
+"components deployed via <literal>components.xml</literal> may not be hot-"
+"deployed"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:254
+#, no-c-format
+msgid ""
+"the hot-deployable components will not be visible to any classes deployed "
+"outside of <literal>WEB-INF/dev</literal>"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:259
+#, no-c-format
+msgid ""
+"Seam debug mode must be enabled and <literal>jboss-seam-debug.jar</literal> "
+"must be in <literal>WEB-INF/lib</literal>"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:264
+#, no-c-format
+msgid "You must have the Seam filter installed in web.xml"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:268
+#, no-c-format
+msgid ""
+"You may see errors if the system is placed under any load and debug is "
+"enabled."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:273
+#, no-c-format
+msgid ""
+"If you create a WAR project using seam-gen, incremental hot deployment is "
+"available out of the box for classes in the <literal>src/action</literal> "
+"source directory. However, seam-gen does not support incremental hot "
+"deployment for EAR projects."
+msgstr ""
+
+#. Tag: title
+#: Gettingstarted.xml:279
+#, no-c-format
+msgid "Using Seam with JBoss 4.0"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:281
+#, no-c-format
+msgid ""
+"Seam 2.0 was developed for JavaServer Faces 1.2. When using JBoss AS, we "
+"recommend using JBoss 4.2, which bundles the JSF 1.2 reference "
+"implementation. However, it is still possible to use Seam 2.0 on the JBoss "
+"4.0 platform. There are two basic steps required to do this: install an EJB3-"
+"enabled version of JBoss 4.0 and replace MyFaces with the JSF 1.2 reference "
+"implementation. Once you complete these steps, Seam 2.0 applications can be "
+"deployed to JBoss 4.0."
+msgstr ""
+
+#. Tag: title
+#: Gettingstarted.xml:288
+#, no-c-format
+msgid "Install JBoss 4.0"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:289
+#, no-c-format
+msgid ""
+"JBoss 4.0 does not ship a default configuration compatible with Seam. To run "
+"Seam, you must install JBoss 4.0.5 using the JEMS 1.2 installer with the "
+"ejb3 profile selected. Seam will not run with an installation that doesn't "
+"include EJB3 support. The JEMS installer can be downloaded from <ulink url="
+"\"http://labs.jboss.com/jemsinstaller/downloads\">http://labs.jboss.com/"
+"jemsinstaller/downloads</ulink>."
+msgstr ""
+
+#. Tag: title
+#: Gettingstarted.xml:296
+#, no-c-format
+msgid "Install the JSF 1.2 RI"
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:298
+#, no-c-format
+msgid ""
+"The web configuration for JBoss 4.0 can be found in the <literal>server/"
+"default/deploy/jbossweb-tomcat55.sar</literal>. You'll need to delete "
+"<literal>myfaces-api.jar</literal> any <literal>myfaces-impl.jar</literal> "
+"from the <literal>jsf-libs </literal>directory. Then, you'll need to copy "
+"<literal>jsf-api.jar</literal>, <literal>jsf-impl.jar</literal>, <literal>el-"
+"api.jar</literal>, and <literal>el-ri.jar</literal> to that directory. The "
+"JSF JARs can be found in the Seam <literal>lib</literal> directory. The el "
+"JARs can be obtained from the Seam 1.2 release."
+msgstr ""
+
+#. Tag: para
+#: Gettingstarted.xml:306
+#, no-c-format
+msgid ""
+"You'll also need to edit the <literal>conf/web.xml</literal>, replacing "
+"<literal>myfaces-impl.jar</literal> with <literal>jsf-impl.jar</literal>."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Groovy.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Groovy.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Groovy.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,364 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Groovy.xml:5
+#, no-c-format
+msgid "Groovy integration"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:7
+#, no-c-format
+msgid ""
+"One aspect of JBoss Seam is its RAD (Rapid Application Development) "
+"capability. While not synonymous with RAD, one interesting tool in this "
+"space is dynamic languages. Until recently, choosing a dynamic language was "
+"required choosing a completely different development platform (a development "
+"platform with a set of APIs and a runtime so great that you would no longer "
+"want to use you old legacy Java [sic] APIs anymore, which would be lucky "
+"because you would be forced to use those proprietary APIs anyway). Dynamic "
+"languages built on top of the Java Virtual Machine, and <ulink url=\"http://"
+"groovy.codehaus.org\">Groovy</ulink> in particular broke this approach in "
+"silos."
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:15
+#, no-c-format
+msgid ""
+"JBoss Seam now unites the dynamic language world with the Java EE world by "
+"seamlessly integrating both static and dynamic languages. JBoss Seam lets "
+"the application developer use the best tool for the task, without context "
+"switching. Writing dynamic Seam components is exactly like writing regular "
+"Seam components. You use the same annotations, the same APIs, the same "
+"everything."
+msgstr ""
+
+#. Tag: title
+#: Groovy.xml:21
+#, no-c-format
+msgid "Groovy introduction"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:23
+#, no-c-format
+msgid ""
+"Groovy is an agile dynamic language based on the Java language but with "
+"additional features inspired by Python, Ruby and Smalltalk. The strengths of "
+"Groovy are twofold:"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:28
+#, no-c-format
+msgid ""
+"Java syntax is supported in Groovy: Java code is Groovy code, making the "
+"learning curve very smooth"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:33
+#, no-c-format
+msgid ""
+"Groovy objects are Java objects, and Groovy classes are Java classes: Groovy "
+"integrates smoothly with existing Java libraries and frameworks."
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:38
+#, no-c-format
+msgid "TODO: write a quick overview of the Groovy syntax add-on"
+msgstr ""
+
+#. Tag: title
+#: Groovy.xml:42
+#, no-c-format
+msgid "Writing Seam applications in Groovy"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:44
+#, no-c-format
+msgid ""
+"There is not much to say about it. Since a Groovy object is a Java object, "
+"you can virtually write any Seam component, or any class for what it worth, "
+"in Groovy and deploy it. You can also mix Groovy classes and Java classes in "
+"the same application."
+msgstr ""
+
+#. Tag: title
+#: Groovy.xml:49
+#, no-c-format
+msgid "Writing Groovy components"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:51
+#, no-c-format
+msgid ""
+"As you should have noticed by now, Seam uses annotations heavily. Be sure to "
+"use Groovy 1.1 or above for annotation support. Here are some example of "
+"groovy code used in a Seam application."
+msgstr ""
+
+#. Tag: title
+#: Groovy.xml:55
+#, no-c-format
+msgid "Entity"
+msgstr ""
+
+#. Tag: programlisting
+#: Groovy.xml:57
+#, no-c-format
+msgid ""
+"@Entity\n"
+" @Name(\"hotel\")\n"
+" class Hotel implements Serializable\n"
+" {\n"
+" @Id @GeneratedValue\n"
+" Long id\n"
+"\n"
+" @Length(max=50) @NotNull\n"
+" String name\n"
+"\n"
+" @Length(max=100) @NotNull\n"
+" String address\n"
+"\n"
+" @Length(max=40) @NotNull\n"
+" String city\n"
+"\n"
+" @Length(min=2, max=10) @NotNull\n"
+" String state\n"
+"\n"
+" @Length(min=4, max=6) @NotNull\n"
+" String zip\n"
+"\n"
+" @Length(min=2, max=40) @NotNull\n"
+" String country\n"
+"\n"
+" @Column(precision=6, scale=2)\n"
+" BigDecimal price\n"
+"\n"
+" @Override\n"
+" String toString()\n"
+" {\n"
+" return \"Hotel(${name},${address},${city},${zip})\"\n"
+" }\n"
+" }"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:59
+#, no-c-format
+msgid ""
+"Groovy natively support the notion of properties (getter/setter), so there "
+"is no need to explicitly write verbose getters and setters: in the previous "
+"example, the hotel class can be accessed from Java as <code>hotel.getCity()</"
+"code>, the getters and setters being generated by the Groovy compiler. This "
+"type of syntactic sugar makes the entity code very concise."
+msgstr ""
+
+#. Tag: title
+#: Groovy.xml:67
+#, no-c-format
+msgid "Seam component"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:69
+#, no-c-format
+msgid ""
+"Writing Seam components in Groovy is in no way different than in Java: "
+"annotations are used to mark the class as a Seam component."
+msgstr ""
+
+#. Tag: programlisting
+#: Groovy.xml:72
+#, no-c-format
+msgid ""
+"@Scope(ScopeType.SESSION)\n"
+"@Name(\"bookingList\")\n"
+"class BookingListAction implements Serializable\n"
+"{\n"
+" @In EntityManager em\n"
+" @In User user\n"
+" @DataModel List<Booking> bookings\n"
+" @DataModelSelection Booking booking\n"
+" @Logger Log log\n"
+"\n"
+" @Factory public void getBookings()\n"
+" {\n"
+" bookings = em.createQuery('''\n"
+" select b from Booking b\n"
+" where b.user.username = :username\n"
+" order by b.checkinDate''')\n"
+" .setParameter(\"username\", user.username)\n"
+" .getResultList()\n"
+" }\n"
+" \n"
+" public void cancel()\n"
+" {\n"
+" log.info(\"Cancel booking: #{bookingList.booking.id} for #{user."
+"username}\")\n"
+" Booking cancelled = em.find(Booking.class, booking.id)\n"
+" if (cancelled != null) em.remove( cancelled )\n"
+" getBookings()\n"
+" FacesMessages.instance().add(\"Booking cancelled for confirmation "
+"number #{bookingList.booking.id}\", new Object[0])\n"
+" }\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Groovy.xml:79 Groovy.xml:146
+#, no-c-format
+msgid "seam-gen"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:81
+#, no-c-format
+msgid ""
+"Seam gen has a transparent integration with Groovy. You can write Groovy "
+"code in seam-gen backed projects without any additional infrastructure "
+"requirement. When writing a Groovy entity, simply place your <filename>."
+"groovy</filename> files in <filename>src/model</filename>. Unsurprisingly, "
+"when writing an action, simply place your <filename>.groovy</filename> files "
+"in <filename>src/action</filename>."
+msgstr ""
+
+#. Tag: title
+#: Groovy.xml:90
+#, no-c-format
+msgid "Deployment"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:92
+#, no-c-format
+msgid ""
+"Deploying Groovy classes is very much like deploying Java classes "
+"(surprisingly, no need to write nor comply with a 3-letter composite "
+"specification to support a multi-language component framework)."
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:95
+#, no-c-format
+msgid ""
+"Beyond standard deployments, JBoss Seam has the ability, at development "
+"time, to redeploy JavaBeans Seam component classes without having to restart "
+"the application, saving a lot of time in the development / test cycle. The "
+"same support is provided for GroovyBeans Seam components when the <filename>."
+"groovy</filename> files are deployed."
+msgstr ""
+
+#. Tag: title
+#: Groovy.xml:101
+#, no-c-format
+msgid "Deploying Groovy code"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:103
+#, no-c-format
+msgid ""
+"A Groovy class <emphasis>is</emphasis> a Java class, with a bytecode "
+"representation just like a Java class. To deploy, a Groovy entity, a Groovy "
+"Session bean or a Groovy Seam component, a compilation step is necessary. A "
+"common approach is to use the <literal>groovyc</literal> ant task. Once "
+"compiles, a Groovy class is in no way different than a Java class and the "
+"application server will treat them equally. Note that this allow a seamless "
+"mix of Groovy and Java code."
+msgstr ""
+
+#. Tag: title
+#: Groovy.xml:111
+#, no-c-format
+msgid "Native .groovy file deployment at development time"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:113
+#, no-c-format
+msgid ""
+"JBoss Seam natively supports the deployment of <literal>.groovy</literal> "
+"files (ie without compilation) in incremental hotdeployment mode "
+"(development only). This enables a very fast edit/test cycle. To set up ."
+"groovy deployments, follow the configuration at <xref linkend="
+"\"gettingstarted-hotdeployment\"/> and deploy your Groovy code (<filename>."
+"groovy</filename> files) into the <filename>WEB-INF/dev</filename> "
+"directory. The GroovyBean components will be picked up incrementally with no "
+"need to restart the application (and obviously not the application server "
+"either)."
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:120
+#, no-c-format
+msgid ""
+"Be aware that the native .groovy file deployment suffers the same "
+"limitations as the regular Seam hotdeployment:"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:125
+#, no-c-format
+msgid ""
+"The components must be JavaBeans or GroovyBeans. They cannot be EJB3 bean"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:129
+#, no-c-format
+msgid "Entities cannot be hotdeployed"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:133
+#, no-c-format
+msgid ""
+"The hot-deployable components will not be visible to any classes deployed "
+"outside of <literal>WEB-INF/dev</literal>"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:138
+#, no-c-format
+msgid "Seam debug mode must be enabled"
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:148
+#, no-c-format
+msgid ""
+"Seam-gen transparently supports Groovy files deployment and compilation. "
+"This includes the native <filename>.groovy</filename> file deployment in "
+"development mode (compilation-less). If you create a seam-gen project of "
+"type WAR, Java and Groovy classes in <filename>src/action</filename> will "
+"automatically be candidate for the incremental hot deployment. If you are in "
+"production mode, the Groovy files will simply be compiled before deployment."
+msgstr ""
+
+#. Tag: para
+#: Groovy.xml:154
+#, no-c-format
+msgid ""
+"You will find a live example of the Booking demo written completely in "
+"Groovy and supporting incremental hot deployment in <filename>examples/"
+"groovybooking</filename>."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Gwt.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Gwt.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Gwt.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,355 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Gwt.xml:5
+#, no-c-format
+msgid "Seam and the Google Web Toolkit"
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:7
+#, no-c-format
+msgid ""
+"For those that prefer to use the Google Web Toolkit (GWT) to develop dynamic "
+"AJAX applications, Seam provides an integration layer that allows GWT "
+"widgets to interact directly with Seam components."
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:12
+#, no-c-format
+msgid ""
+"To use GWT, we assume that you are already familiar with the GWT tools - "
+"more information can be found at <ulink url=\"http://code.google.com/"
+"webtoolkit/\">http://code.google.com/webtoolkit/</ulink>. This chapter does "
+"not attempt to explain how GWT works or how to use it."
+msgstr ""
+
+#. Tag: title
+#: Gwt.xml:19
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:21
+#, no-c-format
+msgid ""
+"There is no special configuration required to use GWT in a Seam application, "
+"however the Seam resource servlet must be installed. See <xref linkend="
+"\"configuration\"/> for details."
+msgstr ""
+
+#. Tag: title
+#: Gwt.xml:29
+#, no-c-format
+msgid "Preparing your component"
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:31
+#, no-c-format
+msgid ""
+"The first step in preparing a Seam component to be called via GWT, is to "
+"create both synchronous and asynchronous service interfaces for the methods "
+"you wish to call. Both of these interfaces should extend the GWT interface "
+"<literal>com.google.gwt.user.client.rpc.RemoteService</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gwt.xml:37
+#, no-c-format
+msgid ""
+"<![CDATA[public interface MyService extends RemoteService {\n"
+" public String askIt(String question); \n"
+" }]]>"
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:39
+#, no-c-format
+msgid ""
+"The asynchronous interface should be identical, except that it also contains "
+"an additional <literal>AsyncCallback</literal> parameter for each of the "
+"methods it declares:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gwt.xml:44
+#, no-c-format
+msgid ""
+"<![CDATA[public interface MyServiceAsync extends RemoteService {\n"
+" public void askIt(String question, AsyncCallback callback);\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:46
+#, no-c-format
+msgid ""
+"The asynchronous interface, in this example <literal>MyServiceAsync</"
+"literal>, will be implemented by GWT and should never be implemented "
+"directly."
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:51
+#, no-c-format
+msgid ""
+"The next step, is to create a Seam component that implements the synchronous "
+"interface:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gwt.xml:55
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"org.jboss.seam.example.remoting.gwt.client.MyService\")\n"
+"public class ServiceImpl implements MyService {\n"
+"\n"
+" @WebRemote\n"
+" public String askIt(String question) {\n"
+" \n"
+" if (!validate(question)) {\n"
+" throw new IllegalStateException(\"Hey, this shouldn't happen, I "
+"checked on the client, \" +\n"
+" \"but its always good to double check.\");\n"
+" }\n"
+" return \"42. Its the real question that you seek now.\";\n"
+" }\n"
+" \n"
+" public boolean validate(String q) {\n"
+" ValidationUtility util = new ValidationUtility();\n"
+" return util.isValid(q);\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:57
+#, no-c-format
+msgid ""
+"The methods that should be made accessible via GWT need to be annotated with "
+"the <literal>@WebRemote</literal> annotation, which is required for all web-"
+"remoteable methods."
+msgstr ""
+
+#. Tag: title
+#: Gwt.xml:64
+#, no-c-format
+msgid "Hooking up a GWT widget to the Seam component"
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:66
+#, no-c-format
+msgid ""
+"The next step, is to write a method that returns the asynchronous interface "
+"to the component. This method can be located inside the widget class, and "
+"will be used by the widget to obtain a reference to the asynchronous client "
+"stub:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gwt.xml:72
+#, no-c-format
+msgid ""
+"<![CDATA[private MyServiceAsync getService() { \n"
+" String endpointURL = GWT.getModuleBaseURL() + \"seam/resource/gwt"
+"\"; \n"
+" \n"
+" MyServiceAsync svc = (MyServiceAsync) GWT.create(MyService.class);\n"
+" ((ServiceDefTarget) svc).setServiceEntryPoint(endpointURL);\n"
+" return svc; \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:74
+#, no-c-format
+msgid ""
+"The final step is to write the widget code that invokes the method on the "
+"client stub. The following example creates a simple user interface with a "
+"label, text input and a button:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gwt.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"public class AskQuestionWidget extends Composite {\n"
+" private AbsolutePanel panel = new AbsolutePanel();\n"
+" \n"
+" public AskQuestionWidget() { \n"
+" Label lbl = new Label(\"OK, what do you want to know?\");\n"
+" panel.add(lbl);\n"
+" final TextBox box = new TextBox();\n"
+" box.setText(\"What is the meaning of life?\");\n"
+" panel.add(box);\n"
+" Button ok = new Button(\"Ask\");\n"
+" ok.addClickListener(new ClickListener() {\n"
+" public void onClick(Widget w) {\n"
+" ValidationUtility valid = new ValidationUtility();\n"
+" if (!valid.isValid(box.getText())) {\n"
+" Window.alert(\"A question has to end with a '?'\");\n"
+" } else {\n"
+" askServer(box.getText());\n"
+" } \n"
+" }\n"
+" });\n"
+" panel.add(ok);\n"
+" \n"
+" initWidget(panel);\n"
+" }\n"
+"\n"
+" private void askServer(String text) {\n"
+" getService().askIt(text, new AsyncCallback() {\n"
+" public void onFailure(Throwable t) {\n"
+" Window.alert(t.getMessage());\n"
+" }\n"
+"\n"
+" public void onSuccess(Object data) {\n"
+" Window.alert((String) data);\n"
+" } \n"
+" }); \n"
+" }\n"
+" \n"
+" ...]]>"
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:82
+#, no-c-format
+msgid ""
+"When clicked, the button invokes the <literal>askServer()</literal> method "
+"passing the contents of the input text (in this example, validation is also "
+"performed to ensure that the input is a valid question). The "
+"<literal>askServer()</literal> method acquires a reference to the "
+"asynchronous client stub (returned by the <literal>getService()</literal> "
+"method) and invokes the <literal>askIt()</literal> method. The result (or "
+"error message if the call fails) is shown in an alert window."
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:99
+#, no-c-format
+msgid ""
+"The complete code for this example can be found in the Seam distribution in "
+"the <literal>examples/remoting/gwt</literal> directory."
+msgstr ""
+
+#. Tag: title
+#: Gwt.xml:106
+#, no-c-format
+msgid "GWT Ant Targets"
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:108
+#, no-c-format
+msgid ""
+"For deployment of GWT apps, there is a compile-to-Javascript step (which "
+"compacts and obfuscates the code). There is an ant utility which can be used "
+"instead of the command line or GUI utility that GWT provides. To use this, "
+"you will need to have the ant task jar in your ant classpath, as well as GWT "
+"downloaded (which you will need for hosted mode anyway)."
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:114
+#, no-c-format
+msgid "Then, in your ant file, place (near the top of your ant file):"
+msgstr ""
+
+#. Tag: programlisting
+#: Gwt.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[<taskdef uri=\"antlib:de.samaflost.gwttasks\"\n"
+" resource=\"de/samaflost/gwttasks/antlib.xml\"\n"
+" classpath=\"./lib/gwttasks.jar\"/>\n"
+" \n"
+" <property file=\"build.properties\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:120
+#, no-c-format
+msgid ""
+"Create a <literal>build.properties</literal> file, which has the contents:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gwt.xml:124
+#, no-c-format
+msgid "<![CDATA[gwt.home=/gwt_home_dir]]>"
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:126
+#, no-c-format
+msgid ""
+"This of course should point to the directory where GWT is installed. Then to "
+"use it, create a target:"
+msgstr ""
+
+#. Tag: programlisting
+#: Gwt.xml:130
+#, no-c-format
+msgid ""
+"<![CDATA[<!-- the following are are handy utilities for doing GWT "
+"development.\n"
+" To use GWT, you will of course need to download GWT seperately -->\n"
+" <target name=\"gwt-compile\">\n"
+" <!-- in this case, we are \"re homing\" the gwt generated stuff, so in "
+"this case\n"
+" we can only have one GWT module - we are doing this deliberately to "
+"keep the URL short -->\n"
+" <delete>\n"
+" <fileset dir=\"view\"/>\n"
+" </delete>\n"
+" <gwt:compile outDir=\"build/gwt\"\n"
+" gwtHome=\"${gwt.home}\"\n"
+" classBase=\"${gwt.module.name}\"\n"
+" sourceclasspath=\"src\"/>\n"
+" <copy todir=\"view\">\n"
+" <fileset dir=\"build/gwt/${gwt.module.name}\"/>\n"
+" </copy>\n"
+" </target>]]>"
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:132
+#, no-c-format
+msgid ""
+"This target when called will compile the GWT application, and copy it to the "
+"specified directory (which would be in the <literal>webapp</literal> part of "
+"your war - remember GWT generates HTML and Javascript artifacts). You never "
+"edit the resulting code that <literal>gwt-compile</literal> generates - you "
+"always edit in the GWT source directory."
+msgstr ""
+
+#. Tag: para
+#: Gwt.xml:139
+#, no-c-format
+msgid ""
+"Remember that GWT comes with a hosted mode browser - you should be using "
+"that if you are developing with GWT. If you aren't using that, and are just "
+"compiling it each time, you aren't getting the most out of the toolkit (in "
+"fact, if you can't or won't use the hosted mode browser, I would go far as "
+"to say you should NOT be using GWT at all - it's that valuable!)."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Hsearch.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Hsearch.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Hsearch.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,339 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Hsearch.xml:5
+#, no-c-format
+msgid "Hibernate Search"
+msgstr ""
+
+#. Tag: title
+#: Hsearch.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:10
+#, no-c-format
+msgid ""
+"Full text search engines like Apache Lucene™ are a very powerful technology "
+"that bring full text and efficient queries to applications. Hibernate "
+"Search, which uses Apache Lucene under the covers, indexes your domain model "
+"with the addition of a few annotations, takes care of the database / index "
+"synchronization and returns regular managed objects that are matched by full "
+"text queries. Keep in mind, thought, that there are mismatches that arise "
+"when dealing with an object domain model over a text index (keeping the "
+"index up to date, mismatch between the index structure and the domain model, "
+"and querying mismatch). But the benefits of speed and efficiency far "
+"outweigh these limitations."
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:21
+#, no-c-format
+msgid ""
+"Hibernate Search has been designed to integrates nicely and as naturally as "
+"possible with JPA and Hibernate. As a natural extension, JBoss Seam provides "
+"an Hibernate Search integration."
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:25
+#, no-c-format
+msgid ""
+"Please refer to the <ulink url=\"http://www.hibernate.org/hib_docs/search/"
+"reference/en/html_single/\">Hibernate Search documentation</ulink> for "
+"information specific to the Hibernate Search project."
+msgstr ""
+
+#. Tag: title
+#: Hsearch.xml:33
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:35
+#, no-c-format
+msgid ""
+"Hibernate Search is configured either in the <filename>META-INF/persistence."
+"xml</filename> or <filename>hibernate.cfg.xml</filename> file."
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:39
+#, no-c-format
+msgid ""
+"Hibernate Search configuration has sensible defaults for most configuration "
+"parameters. Here is a minimal persistence unit configuration to get started."
+msgstr ""
+
+#. Tag: programlisting
+#: Hsearch.xml:43
+#, no-c-format
+msgid ""
+"<![CDATA[<persistence-unit name=\"sample\">\n"
+" <jta-data-source>java:/DefaultDS</jta-data-source>\n"
+" <properties>\n"
+" [...]\n"
+" <!-- use a file system based index -->\n"
+" <property name=\"hibernate.search.default.directory_provider\" \n"
+" value=\"org.hibernate.search.store.FSDirectoryProvider\"/>\n"
+" <!-- directory where the indexes will be stored -->\n"
+" <property name=\"hibernate.search.default.indexBase\" \n"
+" value=\"/Users/prod/apps/dvdstore/dvdindexes\"/>\n"
+" </properties>\n"
+"</persistence-unit>]]>"
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:45
+#, no-c-format
+msgid ""
+"If you plan to target Hibernate Annotations or EntityManager 3.2.x (embedded "
+"into JBoss AS 4.2.GA), you also need to configure the appropriate event "
+"listeners."
+msgstr ""
+
+#. Tag: programlisting
+#: Hsearch.xml:49
+#, no-c-format
+msgid ""
+"<![CDATA[<persistence-unit name=\"sample\">\n"
+" <jta-data-source>java:/DefaultDS</jta-data-source>\n"
+" <properties>\n"
+" [...]\n"
+" <!-- use a file system based index -->\n"
+" <property name=\"hibernate.search.default.directory_provider\" \n"
+" value=\"org.hibernate.search.store.FSDirectoryProvider\"/>\n"
+" <!-- directory where the indexes will be stored -->\n"
+" <property name=\"hibernate.search.default.indexBase\" \n"
+" value=\"/Users/prod/apps/dvdstore/dvdindexes\"/>\n"
+"\n"
+" <property name=\"hibernate.ejb.event.post-insert\" \n"
+" value=\"org.hibernate.search.event.FullTextIndexEventListener"
+"\"/>\n"
+" <property name=\"hibernate.ejb.event.post-update\" \n"
+" value=\"org.hibernate.search.event.FullTextIndexEventListener"
+"\"/>\n"
+" <property name=\"hibernate.ejb.event.post-delete\" \n"
+" value=\"org.hibernate.search.event.FullTextIndexEventListener"
+"\"/>\n"
+"\n"
+" </properties>\n"
+"</persistence-unit>]]>"
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:52
+#, no-c-format
+msgid ""
+"This step is no longer necessary if Hibernate Annotation or EntityManager "
+"3.3.x are used."
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:56
+#, no-c-format
+msgid ""
+"In addition to the configuration file, the following jars have to be "
+"deployed:"
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:61
+#, no-c-format
+msgid "hibernate-search.jar"
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:65
+#, no-c-format
+msgid "hibernate-commons-annotations.jar"
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:69
+#, no-c-format
+msgid "lucene-core.jar"
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:74
+#, no-c-format
+msgid ""
+"If you deploy those in a EAR, don't forget to update <filename>application."
+"xml</filename>"
+msgstr ""
+
+#. Tag: title
+#: Hsearch.xml:80
+#, no-c-format
+msgid "Usage"
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:82
+#, no-c-format
+msgid ""
+"Hibernate Search uses annotations to map entities to a Lucene index, check "
+"the <ulink url=\"http://www.hibernate.org/hib_docs/search/reference/en/"
+"html_single/\">reference documentation</ulink> for more informations."
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:87
+#, no-c-format
+msgid ""
+"Hibernate Search is fully integrated with the API and semantic of JPA / "
+"Hibernate. Switching from a HQL or Criteria based query requires just a few "
+"lines of code. The main API the application interacts with is the "
+"<classname>FullTextSession</classname> API (subclass of Hibernate's "
+"<classname>Session</classname>)."
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:93
+#, no-c-format
+msgid ""
+"When Hibernate Search is present, JBoss Seam injects a "
+"<classname>FullTextSession</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Hsearch.xml:96
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"search\")\n"
+"public class FullTextSearchAction implements FullTextSearch, Serializable {\n"
+"\n"
+" @In FullTextSession session;\n"
+"\n"
+" public void search(String searchString) {\n"
+" org.apache.lucene.query.Query luceneQuery = getLuceneQuery();\n"
+" org.hibernate.Query query session.createFullTextQuery(luceneQuery, "
+"Product.class);\n"
+" searchResults = query\n"
+" .setMaxResults(pageSize + 1)\n"
+" .setFirstResult(pageSize * currentPage)\n"
+" .list();\n"
+" }\n"
+" [...]\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:99
+#, no-c-format
+msgid ""
+"<classname>FullTextSession</classname> extends <classname>org.hibernate."
+"Session</classname> so that it can be used as a regular Hibernate Session"
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:104
+#, no-c-format
+msgid ""
+"If the Java Persistence API is used, a smoother integration is proposed."
+msgstr ""
+
+#. Tag: programlisting
+#: Hsearch.xml:107
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"search\")\n"
+"public class FullTextSearchAction implements FullTextSearch, Serializable {\n"
+" \n"
+" @In FullTextEntityManager em;\n"
+"\n"
+" public void search(String searchString) {\n"
+" org.apache.lucene.query.Query luceneQuery = getLuceneQuery();\n"
+" javax.persistence.Query query = em.createFullTextQuery(luceneQuery, "
+"Product.class);\n"
+" searchResults = query\n"
+" .setMaxResults(pageSize + 1)\n"
+" .setFirstResult(pageSize * currentPage)\n"
+" .getResultList();\n"
+" }\n"
+" [...]\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:109
+#, no-c-format
+msgid ""
+"When Hibernate Search is present, a <classname>FulltextEntityManager</"
+"classname> is injected. <classname>FullTextEntityManager</classname> extends "
+"<classname>EntityManager</classname> with search specific methods, the same "
+"way <classname>FullTextSession</classname> extends <classname>Session</"
+"classname>."
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:116
+#, no-c-format
+msgid ""
+"When an EJB 3.0 Session or Message Driven Bean injection is used (i.e. via "
+"the @PersistenceContext annotation), it is not possible to replace the "
+"<classname>EntityManager</classname> interface by the "
+"<classname>FullTextEntityManager</classname> interface in the declaration "
+"statement. However, the implementation injected will be a "
+"<classname>FullTextEntityManager</classname> implementation: downcasting is "
+"then possible."
+msgstr ""
+
+#. Tag: programlisting
+#: Hsearch.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"search\")\n"
+"public class FullTextSearchAction implements FullTextSearch, Serializable {\n"
+" \n"
+" @PersistenceContext EntityManager em;\n"
+"\n"
+" public void search(String searchString) {\n"
+" org.apache.lucene.query.Query luceneQuery = getLuceneQuery();\n"
+" FullTextEntityManager ftEm = (FullTextEntityManager) em;\n"
+" javax.persistence.Query query = ftEm.createFullTextQuery(luceneQuery, "
+"Product.class);\n"
+" searchResults = query\n"
+" .setMaxResults(pageSize + 1)\n"
+" .setFirstResult(pageSize * currentPage)\n"
+" .getResultList();\n"
+" }\n"
+" [...]\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:129
+#, no-c-format
+msgid ""
+"For people accustomed to Hibernate Search out of Seam, note that using "
+"<methodname>Search.createFullTextSession</methodname> is not necessary."
+msgstr ""
+
+#. Tag: para
+#: Hsearch.xml:134
+#, no-c-format
+msgid ""
+"Check the DVDStore or the blog examples of the JBoss Seam distribution for a "
+"concrete use of Hibernate Search."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/I18n.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/I18n.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/I18n.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,552 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: I18n.xml:5
+#, no-c-format
+msgid "Internationalization and themes"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:6
+#, no-c-format
+msgid ""
+"Seam makes it easy to build internationalized applications by providing "
+"several built-in components for handling multi-language UI messages."
+msgstr ""
+
+#. Tag: title
+#: I18n.xml:13
+#, no-c-format
+msgid "Locales"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:14
+#, no-c-format
+msgid ""
+"Each user login session has an associated instance of <literal>java.util."
+"Locale</literal> (available to the application as a component named "
+"<literal>locale</literal>). Under normal circumstances, you won't need to do "
+"any special configuration to set the locale. Seam just delegates to JSF to "
+"determine the active locale:"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:26
+#, no-c-format
+msgid ""
+"If there is a locale associated with the HTTP request (the browser locale), "
+"and that locale is in the list of supported locales from <literal>faces-"
+"config.xml</literal>, use that locale for the rest of the session."
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:32
+#, no-c-format
+msgid ""
+"Otherwise, if a default locale was specified in the <literal>faces-config."
+"xml</literal>, use that locale for the rest of the session."
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:37
+#, no-c-format
+msgid "Otherwise, use the default locale of the server."
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:41
+#, no-c-format
+msgid ""
+"It is <emphasis>possible</emphasis> to set the locale manually via the Seam "
+"configuration properties <literal>org.jboss.seam.international."
+"localeSelector.language</literal>, <literal>org.jboss.seam.international."
+"localeSelector.country</literal> and <literal>org.jboss.seam.international."
+"localeSelector.variant</literal>, but we can't think of any good reason to "
+"ever do this."
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:50
+#, no-c-format
+msgid ""
+"It is, however, useful to allow the user to set the locale manually via the "
+"application user interface. Seam provides built-in functionality for "
+"overriding the locale determined by the algorithm above. All you have to do "
+"is add the following fragment to a form in your JSP or Facelets page:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:59
+#, no-c-format
+msgid ""
+"<![CDATA[<h:selectOneMenu value=\"#{localeSelector.language}\">\n"
+" <f:selectItem itemLabel=\"English\" itemValue=\"en\"/>\n"
+" <f:selectItem itemLabel=\"Deutsch\" itemValue=\"de\"/>\n"
+" <f:selectItem itemLabel=\"Francais\" itemValue=\"fr\"/>\n"
+"</h:selectOneMenu>\n"
+"<h:commandButton action=\"#{localeSelector.select}\" value=\"#{messages"
+"['ChangeLanguage']}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:61
+#, no-c-format
+msgid ""
+"Or, if you want a list of all supported locales from <literal>faces-config."
+"xml</literal>, just use:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:66
+#, no-c-format
+msgid ""
+"<![CDATA[<h:selectOneMenu value=\"#{localeSelector.localeString}\">\n"
+" <f:selectItems value=\"#{localeSelector.supportedLocales}\"/>\n"
+"</h:selectOneMenu>\n"
+"<h:commandButton action=\"#{localeSelector.select}\" value=\"#{messages"
+"['ChangeLanguage']}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:68
+#, no-c-format
+msgid ""
+"When this use selects an item from the drop-down, and clicks the button, the "
+"Seam and JSF locales will be overridden for the rest of the session."
+msgstr ""
+
+#. Tag: title
+#: I18n.xml:77
+#, no-c-format
+msgid "Labels"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:78
+#, no-c-format
+msgid ""
+"JSF supports internationalization of user interface labels and descriptive "
+"text via the use of <literal><f:loadBundle /></literal>. You can use "
+"this approach in Seam applications. Alternatively, you can take advantage of "
+"the Seam <literal>messages</literal> component to display templated labels "
+"with embedded EL expressions."
+msgstr ""
+
+#. Tag: title
+#: I18n.xml:87
+#, no-c-format
+msgid "Defining labels"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:88
+#, no-c-format
+msgid ""
+"Seam provides a <literal>java.util.ResourceBundle</literal> (available to "
+"the application as a <literal>org.jboss.seam.core.resourceBundle</literal>). "
+"You'll need to make your internationalized labels available via this special "
+"resource bundle. By default, the resource bundle used by Seam is named "
+"<literal>messages</literal> and so you'll need to define your labels in "
+"files named <literal>messages.properties</literal>, <literal>messages_en."
+"properties</literal>, <literal>messages_en_AU.properties</literal>, etc. "
+"These files usually belong in the <literal>WEB-INF/classes</literal> "
+"directory."
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:101
+#, no-c-format
+msgid "So, in <literal>messages_en.properties</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:105
+#, no-c-format
+msgid "<![CDATA[Hello=Hello]]>"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:107
+#, no-c-format
+msgid "And in <literal>messages_en_AU.properties</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:111
+#, no-c-format
+msgid "<![CDATA[Hello=G'day]]>"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:113
+#, no-c-format
+msgid ""
+"You can select a different name for the resource bundle by setting the Seam "
+"configuration property named <literal>org.jboss.seam.core.resourceLoader."
+"bundleNames</literal>. You can even specify a list of resource bundle names "
+"to be searched (depth first) for messages."
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:121
+#, no-c-format
+msgid ""
+"<![CDATA[<core:resource-loader>\n"
+" <core:bundle-names>\n"
+" <value>mycompany_messages</value>\n"
+" <value>standard_messages</value> \n"
+" </core:bundle-names>\n"
+"</core:resource-loader>]]>"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:123
+#, no-c-format
+msgid ""
+"If you want to define a message just for a particular page, you can specify "
+"it in a resource bundle with the same name as the JSF view id, with the "
+"leading <literal>/</literal> and trailing file extension removed. So we "
+"could put our message in <literal>welcome/hello_en.properties</literal> if "
+"we only needed to display the message on <literal>/welcome/hello.jsp</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:132
+#, no-c-format
+msgid ""
+"You can even specify an explicit bundle name in <literal>pages.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:136
+#, no-c-format
+msgid ""
+"<![CDATA[<page view-id=\"/welcome/hello.jsp\" bundle=\"HelloMessages\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:138
+#, no-c-format
+msgid ""
+"Then we could use messages defined in <literal>HelloMessages.properties</"
+"literal> on <literal>/welcome/hello.jsp</literal>."
+msgstr ""
+
+#. Tag: title
+#: I18n.xml:145
+#, no-c-format
+msgid "Displaying labels"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:147
+#, no-c-format
+msgid ""
+"If you define your labels using the Seam resource bundle, you'll be able to "
+"use them without having to type <literal><f:loadBundle ... /></"
+"literal> on every page. Instead, you can simply type:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:153
+#, no-c-format
+msgid "<![CDATA[<h:outputText value=\"#{messages['Hello']}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:155
+#, no-c-format
+msgid "<para>or:</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:159
+#, no-c-format
+msgid "<![CDATA[<h:outputText value=\"#{messages.Hello}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:161
+#, no-c-format
+msgid "Even better, the messages themselves may contain EL expressions:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:165
+#, no-c-format
+msgid "<![CDATA[Hello=Hello, #{user.firstName} #{user.lastName}]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:166
+#, no-c-format
+msgid "<![CDATA[Hello=G'day, #{user.firstName}]]>"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:168
+#, no-c-format
+msgid "You can even use the messages in your code:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:172
+#, no-c-format
+msgid "<![CDATA[@In private Map<String, String> messages;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:173
+#, no-c-format
+msgid "<![CDATA[@In(\"#{messages['Hello']}\") private String helloMessage;]]>"
+msgstr ""
+
+#. Tag: title
+#: I18n.xml:178
+#, no-c-format
+msgid "Faces messages"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:179
+#, no-c-format
+msgid ""
+"The <literal>facesMessages</literal> component is a super-convenient way to "
+"display success or failure messages to the user. The functionality we just "
+"described also works for faces messages:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:185
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"hello\")\n"
+"@Stateless\n"
+"public class HelloBean implements Hello {\n"
+" @In FacesMessages facesMessages;\n"
+" \n"
+" public String sayIt() {\n"
+" facesMessages.addFromResourceBundle(\"Hello\");\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:187
+#, no-c-format
+msgid ""
+"This will display <literal>Hello, Gavin King</literal> or <literal>G'day, "
+"Gavin</literal>, depending upon the user's locale."
+msgstr ""
+
+#. Tag: title
+#: I18n.xml:196
+#, no-c-format
+msgid "Timezones"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:197
+#, no-c-format
+msgid ""
+"There is also a session-scoped instance of <literal>java.util.Timezone</"
+"literal>, named <literal>org.jboss.seam.international.timezone</literal>, "
+"and a Seam component for changing the timezone named <literal>org.jboss.seam."
+"international.timezoneSelector</literal>. By default, the timezone is the "
+"default timezone of the server. Unfortunately, the JSF specification says "
+"that all dates and times should be assumed to be UTC, and displayed as UTC, "
+"unless a timezone is explicitly specified using <literal><f:"
+"convertDateTime></literal>. This is an extremely inconvenient default "
+"behavior."
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:206
+#, no-c-format
+msgid ""
+"Seam overrides this behavior, and defaults all dates and times to the Seam "
+"timezone. In addition, Seam provides the <literal><s:convertDateTime></"
+"literal> tag which always performs conversions in the Seam timezone."
+msgstr ""
+
+#. Tag: title
+#: I18n.xml:214
+#, no-c-format
+msgid "Themes"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:215
+#, no-c-format
+msgid ""
+"Seam applications are also very easily skinnable. The theme API is very "
+"similar to the localization API, but of course these two concerns are "
+"orthogonal, and some applications support both localization and themes."
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:221
+#, no-c-format
+msgid "First, configure the set of supported themes:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:225
+#, no-c-format
+msgid ""
+"<![CDATA[<theme:theme-selector cookie-enabled=\"true\">\n"
+" <theme:available-themes>\n"
+" <value>default</value>\n"
+" <value>accessible</value>\n"
+" <value>printable</value>\n"
+" </theme:available-themes>\n"
+"</theme:theme-selector>]]>"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:227
+#, no-c-format
+msgid "Note that the first theme listed is the default theme."
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:231
+#, no-c-format
+msgid ""
+"Themes are defined in a properties file with the same name as the theme. For "
+"example, the <literal>default</literal> theme is defined as a set of entries "
+"in <literal>default.properties</literal>. For example, <literal>default."
+"properties</literal> might define:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:238
+#, no-c-format
+msgid ""
+"<![CDATA[css ../screen.css\n"
+"template /template.xhtml]]>"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:240
+#, no-c-format
+msgid ""
+"Usually the entries in a theme resource bundle will be paths to CSS styles "
+"or images and names of facelets templates (unlike localization resource "
+"bundles which are usually text)."
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:246
+#, no-c-format
+msgid ""
+"Now we can use these entries in our JSP or facelets pages. For example, to "
+"theme the stylesheet in a facelets page:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:251
+#, no-c-format
+msgid ""
+"<![CDATA[<link href=\"#{theme.css}\" rel=\"stylesheet\" type=\"text/css\" /"
+">]]>"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:253
+#, no-c-format
+msgid "Or, when the page definition resides in a subdirectory:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:255
+#, no-c-format
+msgid ""
+"<![CDATA[<link href=\"#{facesContext.externalContext.requestContextPath}#"
+"{theme.css}\" \n"
+" rel=\"stylesheet\" type=\"text/css\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:257
+#, no-c-format
+msgid ""
+"Most powerfully, facelets lets us theme the template used by a <literal><"
+"ui:composition></literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:261
+#, no-c-format
+msgid ""
+"<![CDATA[<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"\n"
+" xmlns:ui=\"http://java.sun.com/jsf/facelets\"\n"
+" xmlns:h=\"http://java.sun.com/jsf/html\"\n"
+" xmlns:f=\"http://java.sun.com/jsf/core\"\n"
+" template=\"#{theme.template}\">]]>"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:263
+#, no-c-format
+msgid ""
+"Just like the locale selector, there is a built-in theme selector to allow "
+"the user to freely switch themes:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:268
+#, no-c-format
+msgid ""
+"<![CDATA[<h:selectOneMenu value=\"#{themeSelector.theme}\">\n"
+" <f:selectItems value=\"#{themeSelector.themes}\"/>\n"
+"</h:selectOneMenu>\n"
+"<h:commandButton action=\"#{themeSelector.select}\" value=\"Select Theme\"/"
+">]]>"
+msgstr ""
+
+#. Tag: title
+#: I18n.xml:273
+#, no-c-format
+msgid "Persisting locale and theme preferences via cookies"
+msgstr ""
+
+#. Tag: para
+#: I18n.xml:274
+#, no-c-format
+msgid ""
+"The locale selector, theme selector and timezone selector all support "
+"persistence of locale and theme preference to a cookie. Simply set the "
+"<literal>cookie-enabled</literal> property in <literal>components.xml</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: I18n.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[<theme:theme-selector cookie-enabled=\"true\">\n"
+" <theme:available-themes>\n"
+" <value>default</value>\n"
+" <value>accessible</value>\n"
+" <value>printable</value>\n"
+" </theme:available-themes>\n"
+"</theme:theme-selector>\n"
+"\n"
+"<international:locale-selector cookie-enabled=\"true\"/>]]>"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Itext.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Itext.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Itext.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,2353 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Itext.xml:2
+#, no-c-format
+msgid "iText PDF generation"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:3
+#, no-c-format
+msgid ""
+"Seam now includes a component set for generating documents using iText. The "
+"primary focus of Seam's iText document support is for the generation of PDF "
+"doucuments, but Seam also offers basic support for RTF document generation."
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:8
+#, no-c-format
+msgid "Using PDF Support"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:9
+#, no-c-format
+msgid ""
+"iText support is provided by <literal>jboss-seam-pdf.jar</literal>. This JAR "
+"contains the iText JSF controls, which are used to construct views that can "
+"render to PDF, and the DocumentStore component, which serves the rendered "
+"documents to the user. To include PDF support in your application, included "
+"<literal>jboss-seam-pdf.jar</literal> in your <literal>WEB-INF/lib</literal> "
+"directory along with the iText JAR file. There is no further configuration "
+"needed to use Seam's ciText supportfon."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:14
+#, no-c-format
+msgid ""
+"The Seam iText module requires the use of Facelets as the view technology. "
+"Future versions of the library may also support the use of JSP. "
+"Additionally, it requires the use of the seam-ui package."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:17
+#, no-c-format
+msgid ""
+"The <literal>examples/itext</literal> project contains an example of the PDF "
+"support in action. It demonstrates proper deployment packaging, and it "
+"contains a number examples that demonstrate the key PDF generation features "
+"current supported."
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:22
+#, no-c-format
+msgid "Creating a document"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:34
+#, no-c-format
+msgid "<p:document>"
+msgstr ""
+
+#. Tag: emphasis
+#: Itext.xml:39 Itext.xml:175 Itext.xml:247 Itext.xml:282 Itext.xml:315
+#: Itext.xml:365 Itext.xml:388 Itext.xml:519 Itext.xml:583 Itext.xml:647
+#: Itext.xml:687 Itext.xml:742 Itext.xml:845 Itext.xml:932 Itext.xml:1073
+#: Itext.xml:1324 Itext.xml:1514 Itext.xml:1704 Itext.xml:1847 Itext.xml:1918
+#: Itext.xml:1979 Itext.xml:2026 Itext.xml:2106 Itext.xml:2219
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:41
+#, no-c-format
+msgid ""
+"Documents are generated by facelet XHTML files using tags in the "
+"<literal>http://jboss.com/products/seam/pdf</literal> namespace. Documents "
+"should always have the <literal>document</literal> tag at the root of the "
+"document. The <literal>document</literal> tag prepares Seam to generate a "
+"document into the DocumentStore and renders an HTML redirect to that stored "
+"content."
+msgstr ""
+
+#. Tag: emphasis
+#: Itext.xml:48 Itext.xml:181 Itext.xml:255 Itext.xml:289 Itext.xml:321
+#: Itext.xml:406 Itext.xml:526 Itext.xml:592 Itext.xml:697 Itext.xml:789
+#: Itext.xml:850 Itext.xml:937 Itext.xml:1078 Itext.xml:1328 Itext.xml:1518
+#: Itext.xml:1708 Itext.xml:1852 Itext.xml:1922 Itext.xml:1984 Itext.xml:2030
+#: Itext.xml:2111 Itext.xml:2224
+#, no-c-format
+msgid "Attributes"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:53
+#, no-c-format
+msgid ""
+"<literal>type</literal> — The type of the document to be produced. "
+"Valid values are <literal>PDF</literal>, <literal>RTF</literal> and "
+"<literal>HTML</literal> modes. Seam defaults to PDF generation, and many of "
+"the features only work correctly when generating PDF documents."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:62
+#, no-c-format
+msgid ""
+"<literal>pageSize</literal> — The size of the page to be generate. The "
+"most commonly used values would be <literal>LETTER</literal> and "
+"<literal>A4</literal>. A full list of supported pages sizes can be found in "
+"<literal>com.lowagie.text.PageSize</literal> class. Alternatively, pageSize "
+"can provide the width and height of the page directly. The value \"612 792"
+"\", for example, is equivalent to the LETTER page size."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:71
+#, no-c-format
+msgid ""
+"<literal>orientation</literal> — The orientation of the page. Valid "
+"values are <literal>portrait</literal> and <literal>landscape</literal>. In "
+"landscape mode, the height and width page size values are reversed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:80
+#, no-c-format
+msgid ""
+"<literal>margins</literal> — The left, right, top and bottom margin "
+"values."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:85
+#, no-c-format
+msgid ""
+"<literal>marginMirroring</literal> — Indicates that margin settings "
+"should be reversed an alternating pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:91
+#, no-c-format
+msgid ""
+"<literal>disposition</literal> — When generating PDFs in a web "
+"browser, this determines the HTTP <literal>Content-Disposition</literal> of "
+"the document. Valid values are <literal>inline</literal>, which indicates "
+"the document should be displayed in the browser window if possible, and "
+"<literal>attachment</literal>, which indicates that the document should be "
+"treated as a download. The default value is <literal>inline</literal>."
+msgstr ""
+
+#. Tag: emphasis
+#: Itext.xml:102
+#, no-c-format
+msgid "Metadata Attributes"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:109
+#, no-c-format
+msgid "title"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:114
+#, no-c-format
+msgid "subject"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:119
+#, no-c-format
+msgid "keywords"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:124
+#, no-c-format
+msgid "author"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:129
+#, no-c-format
+msgid "creator"
+msgstr ""
+
+#. Tag: emphasis
+#: Itext.xml:134 Itext.xml:233 Itext.xml:267 Itext.xml:300 Itext.xml:350
+#: Itext.xml:373 Itext.xml:501 Itext.xml:549 Itext.xml:633 Itext.xml:653
+#: Itext.xml:726 Itext.xml:831 Itext.xml:892 Itext.xml:1058 Itext.xml:1234
+#: Itext.xml:1500 Itext.xml:1690 Itext.xml:1833 Itext.xml:1904 Itext.xml:1962
+#: Itext.xml:2012 Itext.xml:2072 Itext.xml:2186 Itext.xml:2244
+#, no-c-format
+msgid "Usage"
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:136
+#, no-c-format
+msgid ""
+"<![CDATA[<p:document xmlns:p=\"http://jboss.com/products/seam/pdf"
+"\"> \n"
+" The document goes "
+"here. \n"
+"</p:document>]]>"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:149
+#, no-c-format
+msgid "Basic Text Elements"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:151
+#, no-c-format
+msgid ""
+"Useful documents will need to contain more than just text; however, the "
+"standard UI components are geared towards HTML generation and are not useful "
+"for generating PDF content. Instead, Seam provides a special UI components "
+"for generating suitable PDF content. Tags like <literal><p:image></"
+"literal> and <literal><p:paragraph></literal> are the basic "
+"foundations of simple documents. Tags like <literal><p:font></literal> "
+"provide style information to all the content surrounging them."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:168
+#, no-c-format
+msgid "<p:paragraph>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:177
+#, no-c-format
+msgid ""
+"Most uses of text should be sectioned into paragraphs so that text fragments "
+"can be flowed, formatted and styled in logical groups."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:187
+#, no-c-format
+msgid "firstLineIndent"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:192 Itext.xml:1153
+#, no-c-format
+msgid "extraParagraphSpace"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:197 Itext.xml:1125
+#, no-c-format
+msgid "leading"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:202 Itext.xml:1133
+#, no-c-format
+msgid "multipliedLeading"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:206 Itext.xml:453 Itext.xml:1018
+#, no-c-format
+msgid ""
+"<literal>spacingBefore</literal> — The blank space to be inserted "
+"before the element."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:211 Itext.xml:458 Itext.xml:1024
+#, no-c-format
+msgid ""
+"<literal>spacingAfter</literal> — The blank space to be inserted after "
+"the element."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:217 Itext.xml:444
+#, no-c-format
+msgid "indentationLeft"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:222 Itext.xml:449
+#, no-c-format
+msgid "indentationRight"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:227 Itext.xml:1052
+#, no-c-format
+msgid "keepTogether"
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:235
+#, no-c-format
+msgid ""
+"<![CDATA[<p:paragraph alignment=\"justify\">\n"
+" This is a simple document. It isn't very fancy.\n"
+"</p:paragraph>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:242
+#, no-c-format
+msgid "<p:text>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:250
+#, no-c-format
+msgid ""
+"The <literal>text</literal> tag allows text fragments to be produced from "
+"application data using normal JSF converter mechanisms. It is very similar "
+"to the <literal>outputText</literal> tag used when rendering HTML documents."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:261
+#, no-c-format
+msgid ""
+"<literal>value</literal> — The value to be displayed. This will "
+"typically be a value binding expression."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:270
+#, no-c-format
+msgid ""
+"<![CDATA[<p:paragraph>\n"
+" The item costs <p:text value=\"#{product.price}\">\n"
+" <f:convertNumber type=\"currency\" currencySymbol=\"$\"/>\n"
+" </p:text>\n"
+"</p:paragraph>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:277
+#, no-c-format
+msgid "<p:html>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:285
+#, no-c-format
+msgid "The <literal>html</literal> tag renders HTML content into the PDF."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:295
+#, no-c-format
+msgid "<literal>value</literal> — The text to be displayed."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:303
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<p:html value=\"This is HTML with <b>some markup</b>.\" />\n"
+"<p:html>\n"
+" <h1>This is more complex HTML</h1>\n"
+" <ul>\n"
+" <li>one</li>\n"
+" <li>two</li>\n"
+" <li>three</li>\n"
+" </ul>\n"
+"</p:html>\n"
+"\n"
+"<p:html>\n"
+" <s:formattedText value=\"*This* is |Seam Text| as HTML. It's very^cool^."
+"\" />\n"
+"</p:html> \n"
+"]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:310
+#, no-c-format
+msgid "<p:font>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:318
+#, no-c-format
+msgid ""
+"The font tag defines the default font to be used for all text inside of it."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:327
+#, no-c-format
+msgid ""
+"<literal>name</literal> — The font name, for example: "
+"<literal>COURIER</literal>, <literal>HELVETICA</literal>, <literal>TIMES-"
+"ROMAN</literal>, <literal>SYMBOL</literal> or <literal>ZAPFDINGBATS</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:334
+#, no-c-format
+msgid "<literal>size</literal> — The point size of the font."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:338
+#, no-c-format
+msgid ""
+"<literal>style</literal> — The font styles. Any combination of : "
+"<literal>NORMAL</literal>, <literal>BOLD</literal>, <literal>ITALIC</"
+"literal>, <literal>OBLIQUE</literal>, <literal>UNDERLINE</literal>, "
+"<literal>LINE-THROUGH</literal>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:346
+#, no-c-format
+msgid "<literal>encoding</literal> — The character set encoding."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:353
+#, no-c-format
+msgid ""
+"<![CDATA[<p:font name=\"courier\" style=\"bold\" size=\"24\">\n"
+" <p:paragraph>My Title</p:paragraph>\n"
+"</p:font>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:360
+#, no-c-format
+msgid "<p:newPage>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:369
+#, no-c-format
+msgid "<literal>p:newPage</literal> inserts a page break."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:376
+#, no-c-format
+msgid "<![CDATA[<p:newPage />]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:383
+#, no-c-format
+msgid "<p:image>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:392
+#, no-c-format
+msgid ""
+"<literal>p:image</literal> inserts an image into the document. Images can be "
+"be loaded from the classpath or from the web application context using the "
+"<literal>value</literal> attribute."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:398
+#, no-c-format
+msgid ""
+"Resources can also be dynamically generated by application code. The "
+"<literal>imageData</literal> attribute can specify a value binding "
+"expression whose value is a <literal>java.awt.Image</literal> object."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:411
+#, no-c-format
+msgid ""
+"<literal>value</literal> — A resource name or a method expression "
+"binding to an application-generated image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:417
+#, no-c-format
+msgid ""
+"<literal>rotation</literal> — The rotation of the image in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:423
+#, no-c-format
+msgid "<literal>height</literal> — The height of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:427
+#, no-c-format
+msgid "<literal>width</literal> — The width of the image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:431
+#, no-c-format
+msgid ""
+"<literal>alignment</literal>— The alignment of the image. (see <xref "
+"linkend=\"itext.alignment\"/> for possible values)"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:438
+#, no-c-format
+msgid ""
+"<literal>alt</literal> — Alternative text representation for the image."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:466
+#, no-c-format
+msgid "widthPercentage"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:472
+#, no-c-format
+msgid "initialRotation"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:478
+#, no-c-format
+msgid "<literal>dpi</literal>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:482
+#, no-c-format
+msgid ""
+"<literal>scalePercent</literal> — The scaling factor (as a percentage) "
+"to use for the image. This can be expressed as a single percentage value or "
+"as two percentage values representing separate x and y scaling percentages."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:490
+#, no-c-format
+msgid "wrap"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:495
+#, no-c-format
+msgid "underlying"
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:505
+#, no-c-format
+msgid "<![CDATA[<p:image value=\"/jboss.jpg\" />]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:506
+#, no-c-format
+msgid "<![CDATA[<p:image value=\"#{images.chart}\" />]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:514
+#, no-c-format
+msgid "<p:anchor>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:521
+#, no-c-format
+msgid ""
+"<literal>p:anchor</literal> defines clickable links from a document. It "
+"supports the following attributes:"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:532
+#, no-c-format
+msgid ""
+"<literal>name</literal> — The name of an in-document anchor "
+"destination."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:539
+#, no-c-format
+msgid ""
+"<literal>reference</literal> — The destination the link refers to. "
+"Links to other points in the document should begin with a \"#\". For "
+"example, \"#link1\" to refer to an anchor postion with a <literal>name</"
+"literal> of <literal>link1</literal>. Links may also be a full URL to point "
+"to a resource outside of the document."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:551
+#, no-c-format
+msgid ""
+"<![CDATA[<p:listItem><p:anchor reference=\"#reason1\">Reason 1</p:anchor></p:"
+"listItem> \n"
+"...\n"
+"<p:paragraph>\n"
+" <p:anchor name=\"reason1\">It's the quickest way to get \"rich\"</p:"
+"anchor> \n"
+" ... \n"
+"</p:paragraph>]]>"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:562
+#, no-c-format
+msgid "Headers and Footers"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:575 Itext.xml:737
+#, no-c-format
+msgid "<p:header>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:578
+#, no-c-format
+msgid "<p:footer>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:585
+#, no-c-format
+msgid ""
+"The <literal>p:header</literal> and <literal>p:footer</literal> components "
+"provide the ability to place header and footer text on each page of a "
+"generated document, with the exception of the first page. Header and footer "
+"declarations should appear near the top of a document."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:600 Itext.xml:705 Itext.xml:858
+#, no-c-format
+msgid ""
+"<literal>alignment</literal> — The alignment of the header/footer box "
+"section. (see <xref linkend=\"itext.alignment\"/> for alignment values)"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:607
+#, no-c-format
+msgid ""
+"<literal>backgroundColor</literal> — The background color of the "
+"header/footer box. (see <xref linkend=\"itext.colors\"/> for color values)"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:616
+#, no-c-format
+msgid ""
+"<literal>borderColor</literal> — The border color of the header/footer "
+"box. Individual border sides can be set using <literal>borderColorLeft</"
+"literal>, <literal>borderColorRight</literal>, <literal>borderColorTop</"
+"literal> and <literal>borderColorBottom</literal>.(see <xref linkend=\"itext."
+"colors\"/> for color values)"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:624
+#, no-c-format
+msgid ""
+"<literal>borderWidth</literal> — The width of the border. Inidvidual "
+"border sides can be specified using <literal>borderWidthLeft</literal>, "
+"<literal>borderWidthRight</literal>, <literal>borderWidthTop</literal> and "
+"<literal>borderWidthBottom</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:635
+#, no-c-format
+msgid ""
+"<![CDATA[<p:facet name=\"header\">\n"
+" <p:font size=\"12\">\n"
+" <p:footer borderWidthTop=\"1\" borderColorTop=\"blue\" \n"
+" borderWidthBottom=\"0\" alignment=\"center\">\n"
+" Why Seam? [<p:pageNumber />]\n"
+" </p:footer>\n"
+" </p:font>\n"
+"</f:facet>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:642
+#, no-c-format
+msgid "<p:pageNumber>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:649
+#, no-c-format
+msgid ""
+"The current page number can be placed inside of a header or footer using the "
+"<literal>p:pageNumber</literal> tag. The page number tag can only be used in "
+"the context of a header or footer and can only be used once."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:655
+#, no-c-format
+msgid ""
+"<p:footer borderWidthTop="1" borderColorTop="blue" \n"
+" borderWidthBottom="0" alignment="center">\n"
+" Why Seam? [<p:pageNumber />]\n"
+"</p:footer>"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:668
+#, no-c-format
+msgid "Chapters and Sections"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:679
+#, no-c-format
+msgid "<p:chapter>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:682
+#, no-c-format
+msgid "<p:section>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:690
+#, no-c-format
+msgid ""
+"If the generated document follows a book/article structure, the <literal>p:"
+"chapter</literal> and <literal>p:section</literal> tags can be used to "
+"provide the necessary structure. Sections can only be used inside of "
+"chapters, but they may be nested arbitrarily deep. Most PDF viewers provide "
+"easy navigation between chapters and sections in a document."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:712
+#, no-c-format
+msgid ""
+"<literal>number</literal> — The chapter number. Every chapter should "
+"be assigned a chapter number."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:717
+#, no-c-format
+msgid ""
+"<literal>numberDepth</literal> — The depth of numbering for section. "
+"All sections are numbered relative to their surrounding chapter/sections. "
+"The fourth section of of the first section of chapter three would be section "
+"3.1.4, if displayed at the default number depth of three. To omit the "
+"chapter number, a number depth of 2 should be used. In that case, the "
+"section number would be displayed as 1.4."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:729
+#, no-c-format
+msgid ""
+"<![CDATA[<p:document xmlns:p=\"http://jboss.com/products/seam/pdf\"\n"
+" title=\"Hello\">\n"
+"\n"
+" <p:chapter number=\"1\">\n"
+" <p:title><p:paragraph>Hello</p:paragraph></p:title>\n"
+" <p:paragraph>Hello #{user.name}!</p:paragraph>\n"
+" </p:chapter>\n"
+"\n"
+" <p:chapter number=\"2\">\n"
+" <p:title><p:paragraph>Goodbye</p:paragraph></p:title>\n"
+" <p:paragraph>Goodbye #{user.name}.</p:paragraph>\n"
+" </p:chapter>\n"
+"\n"
+"</p:document> ]]>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:745
+#, no-c-format
+msgid ""
+"Any chapter or section can contain a <literal>p:title</literal>. The title "
+"will be displayed next to the chapter/section number. The body of the title "
+"may contain raw text or may be a <literal>p:paragraph</literal>."
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:758
+#, no-c-format
+msgid "Lists"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:760
+#, no-c-format
+msgid ""
+"List structures can be displayed using the <literal>p:list</literal> and "
+"<literal>p:listItem</literal> tags. Lists may contain arbitrarily-nested "
+"sublists. List items may not be used outside of a list. he following "
+"document uses the <literal>ui:repeat</literal> tag to to display a list of "
+"values retrieved from a Seam component."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:765
+#, no-c-format
+msgid ""
+"<![CDATA[<p:document xmlns:p=\"http://jboss.com/products/seam/pdf\"\n"
+" xmlns:ui=\"http://java.sun.com/jsf/facelets\"\n"
+" title=\"Hello\">\n"
+" <p:list style=\"numbered\">\n"
+" <ui:repeat value=\"#{documents}\" var=\"doc\">\n"
+" <p:listItem>#{doc.name}</p:listItem>\n"
+" </ui:repeat>\n"
+" </p:list>\n"
+"</p:document>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:778
+#, no-c-format
+msgid "<p:list>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:795
+#, no-c-format
+msgid ""
+"<literal>style</literal> — The ordering/bulleting style of list. One "
+"of: <literal>NUMBERED</literal>, <literal>LETTERED</literal>, "
+"<literal>GREEK</literal>, <literal>ROMAN</literal>, <literal>ZAPFDINGBATS</"
+"literal>, <literal>ZAPFDINGBATS_NUMBER</literal>. If no style is given, the "
+"list items are bulleted."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:802
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> — For bulleted lists, specifies the "
+"bullet symbol."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:807
+#, no-c-format
+msgid "<literal>indent</literal> — The indentation level of the list."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:813
+#, no-c-format
+msgid ""
+"<literal>lowerCase</literal> — For list styles using letters, "
+"indicates whether the letters should be lower case."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:819
+#, no-c-format
+msgid ""
+"<literal>charNumber</literal> — For ZAPFDINGBATS, indicates the "
+"character code of the bullet character."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:825
+#, no-c-format
+msgid ""
+"<literal>numberType</literal> — For ZAPFDINGBATS_NUMBER, indicates the "
+"numbering style."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:833
+#, no-c-format
+msgid ""
+"<![CDATA[<p:list style=\"numbered\">\n"
+" <ui:repeat value=\"#{documents}\" var=\"doc\">\n"
+" <p:listItem>#{doc.name}</p:listItem>\n"
+" </ui:repeat>\n"
+"</p:list>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:840
+#, no-c-format
+msgid "<p:listItem>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:847
+#, no-c-format
+msgid "<literal>p:listItem</literal> supports the following attributes:"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:865
+#, no-c-format
+msgid ""
+"<literal>alignment</literal> — The alignment of the list item. (See "
+"<xref linkend=\"itext.alignment\"/> for possible values)"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:871
+#, no-c-format
+msgid "<literal>indentationLeft</literal> — The left indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:878
+#, no-c-format
+msgid ""
+"<literal>indentationRight</literal> — The right indentation amount."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:885
+#, no-c-format
+msgid ""
+"<literal>listSymbol</literal> — Overrides the default list symbol for "
+"this list item."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:894
+#, no-c-format
+msgid "<programlisting>...</programlisting>"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:908
+#, no-c-format
+msgid "Tables"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:910
+#, no-c-format
+msgid ""
+"Table structures can be created using the <literal>p:table</literal> and "
+"<literal>p:cell</literal> tags. Unlike many table structures, there is no "
+"explicit row declaration. If a table has 3 columns, then every 3 cells will "
+"automatically form a row. Header and footer rows can be declared, and the "
+"headers and footers will be repeated in the event a table structure spans "
+"multiple pages."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:927
+#, no-c-format
+msgid "<p:table>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:934
+#, no-c-format
+msgid "<literal>p:table</literal> supports the following attributes."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:944
+#, no-c-format
+msgid ""
+"<literal>columns</literal> — The number of columns (cells) that make "
+"up a table row."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:951
+#, no-c-format
+msgid ""
+"<literal>widths</literal> — The relative widths of each column. There "
+"should be one value for each column. For example: widths=\"2 1 1\" would "
+"indicate that there are 3 columns and the first column should be twice the "
+"size of the second and third column."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:960
+#, no-c-format
+msgid ""
+"<literal>headerRows</literal> — The initial number of rows which are "
+"considered to be headers or footer rows and should be repeated if the table "
+"spans multiple pages."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:968
+#, no-c-format
+msgid ""
+"<literal>footerRows</literal> — The number of rows that are considered "
+"to be footer rows. This value is subtracted from the <literal>headerRows</"
+"literal> value. If document has 2 rows which make up the header and one row "
+"that makes up the footer, <literal>headerRows</literal> should be set to 3 "
+"and <literal>footerRows</literal> should be set to 1"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:979
+#, no-c-format
+msgid ""
+"<literal>widthPercentage</literal> — The percentage of the page width "
+"that the table spans."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:984
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> — The horizontal alignment of "
+"the table. (See <xref linkend=\"itext.alignment\"/> for possible values)"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:991
+#, no-c-format
+msgid "skipFirstHeader"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:997 Itext.xml:1201
+#, no-c-format
+msgid "runDirection"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1003
+#, no-c-format
+msgid "lockedWidth"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1011
+#, no-c-format
+msgid "splitRows"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1029
+#, no-c-format
+msgid "extendLastRow"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1037
+#, no-c-format
+msgid "headersInEvent"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1044
+#, no-c-format
+msgid "splitLate"
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:1060
+#, no-c-format
+msgid ""
+"<![CDATA[<p:table columns=\"3\" headerRows=\"1\">\n"
+" <p:cell>name</p:cell>\n"
+" <p:cell>owner</p:cell>\n"
+" <p:cell>size</p:cell>\n"
+" <ui:repeat value=\"#{documents}\" var=\"doc\">\n"
+" <p:cell>#{doc.name}</p:cell>\n"
+" <p:cell>#{doc.user.name}</p:cell>\n"
+" <p:cell>#{doc.size}</p:cell>\n"
+" </ui:repeat>\n"
+"</p:table>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1068
+#, no-c-format
+msgid "<p:cell>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1075
+#, no-c-format
+msgid "<literal>p:cell</literal> supports the following attributes."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1085
+#, no-c-format
+msgid ""
+"<literal>colspan</literal> — Cells can span more than one column by "
+"declaring a <literal>colspan</literal> greater than 1. Tables do not have "
+"the ability to span across multiple rows."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1094
+#, no-c-format
+msgid ""
+"<literal>horizontalAlignment</literal> — The horizontal alignment of "
+"the cell. (see <xref linkend=\"itext.alignment\"/> for possible values)"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1102
+#, no-c-format
+msgid ""
+"<literal>verticalAlignment</literal> — The vertical alignment of the "
+"cell. (see <xref linkend=\"itext.alignment\"/> for possible values)"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1109
+#, no-c-format
+msgid ""
+"<literal>padding</literal> — Padding on a given side can also be "
+"specified using <literal>paddingLeft</literal>, <literal>paddingRight</"
+"literal>, <literal>paddingTop</literal> and <literal>paddingBottom</literal>."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1119
+#, no-c-format
+msgid "useBorderPadding"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1141
+#, no-c-format
+msgid "indent"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1147
+#, no-c-format
+msgid "verticalAlignment"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1161
+#, no-c-format
+msgid "fixedHeight"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1168
+#, no-c-format
+msgid "noWrap"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1174
+#, no-c-format
+msgid "minimumHeight"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1181
+#, no-c-format
+msgid "followingIndent"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1189
+#, no-c-format
+msgid "rightIndent"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1195
+#, no-c-format
+msgid "spaceCharRatio"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1207
+#, no-c-format
+msgid "arabicOptions"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1214
+#, no-c-format
+msgid "useAscender"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1222
+#, no-c-format
+msgid "grayFill"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1228
+#, no-c-format
+msgid "rotation"
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:1236
+#, no-c-format
+msgid "<![CDATA[<p:cell>...</p:cell>]]>"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:1248
+#, no-c-format
+msgid "Document Constants"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1250
+#, no-c-format
+msgid ""
+"This section documents some of the constants shared by attributes on "
+"multiple tags."
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:1253
+#, no-c-format
+msgid "Color Values"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1254
+#, no-c-format
+msgid ""
+"Seam documents do not yet support a full color specification. Currently, "
+"only named colors are supported. They are: <literal>white</literal>, "
+"<literal>gray</literal>, <literal>lightgray</literal>, <literal>darkgray</"
+"literal>, <literal>black</literal>, <literal>red</literal>, <literal>pink</"
+"literal>, <literal>yellow</literal>, <literal>green</literal>, "
+"<literal>magenta</literal>, <literal>cyan</literal> and <literal>blue</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:1264
+#, no-c-format
+msgid "Alignment Values"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1265
+#, no-c-format
+msgid ""
+"Where alignment values are used, the Seam PDF supports the following "
+"horizontal alignment values: <literal>left</literal>, <literal>right</"
+"literal>, <literal>center</literal>, <literal>justify</literal> and "
+"<literal>justifyall</literal>. The vertical alignment values are "
+"<literal>top</literal>, <literal>middle</literal>, <literal>bottom</"
+"literal>, and <literal>baseline</literal>."
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:1275
+#, no-c-format
+msgid "Configuring iText"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1277
+#, no-c-format
+msgid ""
+"Document generation works out of the box with no additional configuration "
+"needed. However, there are a few points of configuration that are needed for "
+"more serious applications."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1280
+#, no-c-format
+msgid ""
+"The default implementation serves PDF documents from a generic URL, "
+"<literal>/seam-doc.seam</literal>. Many browsers (and users) would prefer to "
+"see URLs that contain the actual PDF name like <literal>/myDocument.pdf</"
+"literal>. This capability requires some configuration. To serve PDF files, "
+"all *.pdf resources should be mapped to the DocumentStoreServlet:"
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:1285
+#, no-c-format
+msgid ""
+"<![CDATA[<servlet>\n"
+" <servlet-name>Document Store Servlet</servlet-name>\n"
+" <servlet-class>org.jboss.seam.pdf.DocumentStoreServlet</servlet-class>\n"
+"</servlet>\n"
+"\n"
+"<servlet-mapping>\n"
+" <servlet-name>Document Store Servlet</servlet-name>\n"
+" <url-pattern>*.pdf</url-pattern>\n"
+"</servlet-mapping>]]>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1287
+#, no-c-format
+msgid ""
+"The <literal>use-extensions</literal> option on the document store component "
+"completes the functionality by instructing the document store to generate "
+"URLs with the correct filename extension for the document type being "
+"generated."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:1291
+#, no-c-format
+msgid ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+" xmlns:pdf=\"http://jboss.com/products/seam/pdf\">\n"
+" <pdf:document-store use-extensions=\"true\" />\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1293
+#, no-c-format
+msgid ""
+"Generated documents are stored in conversation scope and will expire when "
+"the conversation ends. At that point, references to the document will be "
+"invalid. To You can specify a default view to be shown when a document does "
+"not exist using the <literal>error-page</literal> property of the "
+"documentStore."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:1296
+#, no-c-format
+msgid ""
+"<![CDATA[<pdf:document-store use-extensions=\"true\" error-page=\"/"
+"pdfMissing.seam\" />]]>"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:1302
+#, no-c-format
+msgid "Charting"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1304
+#, no-c-format
+msgid ""
+"Charting support is also provided with <literal>jboss-seam-pdf.jar</"
+"literal>. Charts can be used in PDF documents or can be used as images in an "
+"HTML page. Charting requires the JFreeChart library (<literal>jfreechart."
+"jar</literal> and <literal>jcommon.jar</literal>) to be added to the "
+"<literal>WEB-INF/lib</literal> directory. Three types of charts are "
+"currently supported: pie charts, bar charts and line charts."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1319
+#, no-c-format
+msgid "<p:barchart>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1326
+#, no-c-format
+msgid "Displays a bar chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1333 Itext.xml:1523
+#, no-c-format
+msgid ""
+"<literal>borderVisible</literal> — Controls whether or not a border is "
+"displayed around the entire chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1339 Itext.xml:1529
+#, no-c-format
+msgid ""
+"<literal>borderPaint</literal> — The color of the border, if visible;"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1344 Itext.xml:1534
+#, no-c-format
+msgid ""
+"<literal>borderBackgroundPaint</literal> — The default background "
+"color of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1349 Itext.xml:1539
+#, no-c-format
+msgid "<literal>borderStroke</literal> —"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1355 Itext.xml:1545
+#, no-c-format
+msgid ""
+"<literal>domainAxisLabel</literal> — The text label for the domain "
+"axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1360 Itext.xml:1550
+#, no-c-format
+msgid ""
+"<literal>domainAxisPaint</literal> — The color of the domain axis "
+"label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1366 Itext.xml:1556
+#, no-c-format
+msgid ""
+"<literal>domainGridlinesVisible</literal>— Controls whether or not "
+"gridlines for the domain axis are shown on the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1371 Itext.xml:1561
+#, no-c-format
+msgid ""
+"<literal>domainGridlinePaint</literal>— The color of the domain "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1376 Itext.xml:1566
+#, no-c-format
+msgid ""
+"<literal>domainGridlineStroke</literal> — The stroke style of the "
+"domain gridleines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1382 Itext.xml:1572
+#, no-c-format
+msgid "<literal>height</literal> — The height of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1387 Itext.xml:1494 Itext.xml:1577 Itext.xml:1684
+#, no-c-format
+msgid "<literal>width</literal> — The width of the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1392 Itext.xml:1582
+#, no-c-format
+msgid ""
+"<literal>is3D</literal> — A boolean value indicating that the chart "
+"should be rendered in 3D instead of 2D."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1398 Itext.xml:1588
+#, no-c-format
+msgid ""
+"<literal>legend</literal> — A boolean value indicating whether or not "
+"the chart should include a legend."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1404 Itext.xml:1594
+#, no-c-format
+msgid ""
+"<literal>legendItemPaint</literal>— The default color of the text "
+"labels in the legend."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1410 Itext.xml:1600
+#, no-c-format
+msgid ""
+"<literal>legendItemBackgoundPaint</literal>— The background color for "
+"the legend, if different from the chart background color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1416 Itext.xml:1606
+#, no-c-format
+msgid ""
+"<literal>orientation</literal> — The orientation of the plot, either "
+"<code>vertical</code> (the default) or <code>horizontal</code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1422 Itext.xml:1612
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundPaint</literal>— The color of the plot "
+"background."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1428 Itext.xml:1618
+#, no-c-format
+msgid ""
+"<literal>plotBackgroundAlpha</literal>— The alpha (transparency) level "
+"of the plot background. It should be a number between 0 (completely "
+"transparent) and 1 (completely opaque)."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1435 Itext.xml:1625
+#, no-c-format
+msgid ""
+"<literal>plotForegroundAlpha</literal>— The alpha (transparency) level "
+"of the plot. It should be a number between 0 (completely transparent) and 1 "
+"(completely opaque)."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1442 Itext.xml:1632
+#, no-c-format
+msgid ""
+"<literal>plotOutlinePaint</literal>— The color of the range gridlines, "
+"if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1447 Itext.xml:1637
+#, no-c-format
+msgid ""
+"<literal>plotOutlineStroke</literal> — The stroke style of the range "
+"gridleines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1453 Itext.xml:1643
+#, no-c-format
+msgid ""
+"<literal>rangeAxisLabel</literal> — The text label for the range axis."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1458 Itext.xml:1648
+#, no-c-format
+msgid ""
+"<literal>rangeAxisPaint</literal> — The color of the range axis label."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1464 Itext.xml:1654
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinesVisible</literal>— Controls whether or not "
+"gridlines for the range axis are shown on the chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1469 Itext.xml:1659
+#, no-c-format
+msgid ""
+"<literal>rangeGridlinePaint</literal>— The color of the range "
+"gridlines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1474 Itext.xml:1664
+#, no-c-format
+msgid ""
+"<literal>rangeGridlineStroke</literal> — The stroke style of the range "
+"gridleines, if visible."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1480 Itext.xml:1670
+#, no-c-format
+msgid "<literal>title</literal> — The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1484 Itext.xml:1674
+#, no-c-format
+msgid "<literal>titlePaint</literal>— The color of the chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1489 Itext.xml:1679
+#, no-c-format
+msgid ""
+"<literal>titleBackgroundPaint</literal>— The background color around "
+"the chart title."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:1502
+#, no-c-format
+msgid ""
+"<![CDATA[<p:barchart title=\"Bar Chart\" legend=\"true\"\n"
+" width=\"500\" height=\"500\">\n"
+" <p:series key=\"Last Year\">\n"
+" <p:data columnKey=\"Joe\" value=\"100\" />\n"
+" <p:data columnKey=\"Bob\" value=\"120\" />\n"
+" </p:series> <p:series key=\"This Year\">\n"
+" <p:data columnKey=\"Joe\" value=\"125\" />\n"
+" <p:data columnKey=\"Bob\" value=\"115\" />\n"
+" </p:series>\n"
+"</p:barchart>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1509
+#, no-c-format
+msgid "<p:linechart>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1516
+#, no-c-format
+msgid "Displays a line chart."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:1692
+#, no-c-format
+msgid ""
+"<![CDATA[<p:linechart title=\"Line Chart\"\n"
+" width=\"500\" height=\"500\">\n"
+" <p:series key=\"Prices\">\n"
+" <p:data columnKey=\"2003\" value=\"7.36\" />\n"
+" <p:data columnKey=\"2004\" value=\"11.50\" />\n"
+" <p:data columnKey=\"2005\" value=\"34.625\" />\n"
+" <p:data columnKey=\"2006\" value=\"76.30\" />\n"
+" <p:data columnKey=\"2007\" value=\"85.05\" />\n"
+" </p:series>\n"
+"</p:linechart>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1699
+#, no-c-format
+msgid "<p:piechart>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1706
+#, no-c-format
+msgid "Displays a pie chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1714
+#, no-c-format
+msgid "<literal>title</literal>— The chart title text."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1718
+#, no-c-format
+msgid ""
+"<literal>label</literal>— The default label text for pie sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1723
+#, no-c-format
+msgid ""
+"<literal>legend</literal>— A boolean value indicating whether or not "
+"the chart should include a legend. Default value is true"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1728
+#, no-c-format
+msgid ""
+"<literal>is3D</literal>—A boolean value indicating that the chart "
+"should be rendered in 3D instead of 2D."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1733
+#, no-c-format
+msgid "<literal>labelLinkMargin</literal>— The link margin for labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1738
+#, no-c-format
+msgid ""
+"<literal>labelLinkPaint</literal>— The paint used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1743
+#, no-c-format
+msgid ""
+"<literal>labelLinkStroke</literal>— he stroke used for the label "
+"linking lines."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1749
+#, no-c-format
+msgid ""
+"<literal>labelLinksVisible</literal>— A flag that controls whether or "
+"not the label links are drawn."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1754
+#, no-c-format
+msgid ""
+"<literal>labelOutlinePaint</literal>— The paint used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1759
+#, no-c-format
+msgid ""
+"<literal>labelOutlineStroke</literal>— The stroke used to draw the "
+"outline of the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1764
+#, no-c-format
+msgid ""
+"<literal>labelShadowPaint</literal>— The paint used to draw the shadow "
+"for the section labels."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1769
+#, no-c-format
+msgid ""
+"<literal>labelPaint</literal>— The color used to draw the section "
+"labels"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1774
+#, no-c-format
+msgid ""
+"<literal>labelGap</literal>— The gap between the labels and the plot "
+"as a percentage of the plot width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1779
+#, no-c-format
+msgid ""
+"<literal>labelBackgroundPaint</literal>— The color used to draw the "
+"background of the section labels. If this is null, the background is not "
+"filled."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1786
+#, no-c-format
+msgid ""
+"<literal>startAngle</literal>— The starting angle of the first section."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1791
+#, no-c-format
+msgid ""
+"<literal>circular</literal>— A boolean value indicating that the chart "
+"should be drawn as a circle. If false, the chart is drawn as an ellipse. The "
+"default is true."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1797
+#, no-c-format
+msgid ""
+"<literal>direction</literal>— The direction the pie section are drawn. "
+"One of: <literal>clockwise</literal> or <literal>anticlockwise</literal>. "
+"The default is <literal>clockwise</literal>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1803
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinePaint</literal>— The outline paint for all "
+"sections."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1808
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal>— The outline stroke for all "
+"sections"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1813
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinesVisible</literal>— Indicates whether an "
+"outline is drawn for each section in the plot."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1818
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlinePaint</literal>— The base section outline "
+"paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1823
+#, no-c-format
+msgid "<literal>baseSectionPaint</literal>— The base section paint."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1827
+#, no-c-format
+msgid ""
+"<literal>baseSectionOutlineStroke</literal>— The base section outline "
+"stroke."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:1835
+#, no-c-format
+msgid ""
+"<![CDATA[<p:piechart title=\"Pie Chart\" circular=\"false\" direction="
+"\"anticlockwise\" \n"
+" startAngle=\"30\" labelGap=\"0.1\" labelLinkPaint=\"red\"> \n"
+" <p:series key=\"Prices\"> \n"
+" <p:data key=\"2003\" columnKey=\"2003\" value=\"7.36\" /> \n"
+" <p:data key=\"2004\" columnKey=\"2004\" value=\"11.50\" /> \n"
+" <p:data key=\"2005\" columnKey=\"2005\" value=\"34.625\" /> \n"
+" <p:data key=\"2006\" columnKey=\"2006\" value=\"76.30\" /> \n"
+" <p:data key=\"2007\" columnKey=\"2007\" value=\"85.05\" /> \n"
+" </p:series> \n"
+"</p:piechart>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1842
+#, no-c-format
+msgid "<p:series>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1849
+#, no-c-format
+msgid ""
+"Category data can be broken down into series. The series tag is used to "
+"categorize a set of data with a series and apply styling to the entire "
+"series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1858
+#, no-c-format
+msgid "<literal>key</literal> — The series name."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1869
+#, no-c-format
+msgid ""
+"<literal>seriesPaint</literal> — The color of each item in the series"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1875
+#, no-c-format
+msgid ""
+"<literal>seriesOutlinePaint</literal> — The outline color for each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1880
+#, no-c-format
+msgid ""
+"<literal>seriesOutlineStroke</literal> — The stroke used to draw each "
+"item in the series."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1892
+#, no-c-format
+msgid ""
+"<literal>seriesVisible</literal> — A boolean indicating if the series "
+"should be displayed."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1897
+#, no-c-format
+msgid ""
+"<literal>seriesVisibleInLegend</literal> — A boolean indiciating if "
+"the series should be listed in the legend."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:1906
+#, no-c-format
+msgid ""
+"<![CDATA[<p:series key=\"data1\">\n"
+" <ui:repeat value=\"#{data.pieData1}\" var=\"item\">\n"
+" <p:data columnKey=\"#{item.name}\" value=\"#{item.value}\" />\n"
+" </ui:repeat>\n"
+"</p:series>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1913
+#, no-c-format
+msgid "<p:data>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1920
+#, no-c-format
+msgid "The data tag describes each data point to be displayed in the graph."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1927
+#, no-c-format
+msgid "<literal>key</literal> — The name of the data item."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1931
+#, no-c-format
+msgid ""
+"<literal>series</literal> — The series name, when not embedded inside "
+"a <code><p:series></code>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1936
+#, no-c-format
+msgid "<literal>value</literal> — The numeric data value."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1940
+#, no-c-format
+msgid ""
+"<literal>explodedPercent</literal> — For pie charts, indicates how "
+"exploded a from the pie a piece is."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1946
+#, no-c-format
+msgid ""
+"<literal>sectionOutlinePaint</literal> — For bar charts, the color of "
+"the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1951
+#, no-c-format
+msgid ""
+"<literal>sectionOutlineStroke</literal> — For bar charts, the stroke "
+"type for the section outline."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1956
+#, no-c-format
+msgid ""
+"<literal>sectionPaint</literal> — For bar charts, the color of the "
+"section."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:1967
+#, no-c-format
+msgid ""
+"<![CDATA[<p:data key=\"foo\" value=\"20\" sectionPaint=\"#111111\" \n"
+" explodedPercent=\".2\" />\n"
+"<p:data key=\"bar\" value=\"30\" sectionPaint=\"#333333\" />\n"
+"<p:data key=\"baz\" value=\"40\" sectionPaint=\"#555555\" \n"
+" sectionOutlineStroke=\"my-dot-style\" />]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:1974
+#, no-c-format
+msgid "<p:color>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1981
+#, no-c-format
+msgid ""
+"The color component declares a color or gradient than can be referenced when "
+"drawing filled shapes."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1990
+#, no-c-format
+msgid ""
+"<literal>color</literal> — The color value. For gradient colors, this "
+"the starting color."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:1996
+#, no-c-format
+msgid ""
+"<literal>color2</literal> — For gradient colors, this is the color "
+"that ends the gradient."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2001
+#, no-c-format
+msgid ""
+"<literal>point</literal> — The co-ordinates where the gradient color "
+"begins."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2006
+#, no-c-format
+msgid ""
+"<literal>point2</literal> — The co-ordinates where the gradient color "
+"ends."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:2014
+#, no-c-format
+msgid ""
+"<![CDATA[<p:color id=\"foo\" color=\"#0ff00f\"/>\n"
+"<p:color id=\"bar\" color=\"#ff00ff\" color2=\"#00ff00\" \n"
+" point=\"50 50\" point2=\"300 300\"/>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:2021
+#, no-c-format
+msgid "<p:stroke>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2028
+#, no-c-format
+msgid "Describes a stroke used to draw lines in a chart."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2036
+#, no-c-format
+msgid "<literal>width</literal> — The width of the stroke."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2041
+#, no-c-format
+msgid ""
+"<literal>cap</literal> — The line cap type. Valid values are "
+"<literal>butt</literal>, <literal>round</literal> and <literal>square</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2047
+#, no-c-format
+msgid ""
+"<literal>join</literal> — The line join type. Valid values are "
+"<literal>miter</literal>, <literal>round</literal> and <literal>bevel</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2053
+#, no-c-format
+msgid ""
+"<literal>miterLimit</literal> — For miter joins, this value is the "
+"limit of the size of the join."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2059
+#, no-c-format
+msgid ""
+"<literal>dash</literal> — The dash value sets the dash pattern to be "
+"used to draw the line. The space separated integers indicate the length of "
+"each alternating drawn and undrawn segments."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2066
+#, no-c-format
+msgid ""
+"<literal>dashPhase</literal> — The dash phase indicates the offset "
+"into the dash pattern that the the line should be drawn with."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:2074
+#, no-c-format
+msgid ""
+"<![CDATA[<p:stroke id=\"dot2\" width=\"2\" cap=\"round\" join=\"bevel\" dash="
+"\"2 3\" />]]>"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:2086
+#, no-c-format
+msgid "Bar codes"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2087
+#, no-c-format
+msgid ""
+"Seam can use iText to generate barcodes in a wide variety of formats. These "
+"barcodes can be embedded in a PDF document or displayed as an image on a web "
+"page. Note that when used with HTML images, barcodes can not currently "
+"display barcode text in the barcode."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:2101
+#, no-c-format
+msgid "<p:barCode>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2108
+#, no-c-format
+msgid "Displays a barcode image."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2117
+#, no-c-format
+msgid ""
+"<literal>type</literal> — A barcode type supported by iText. Valid "
+"values include: <literal>EAN13</literal>, <literal>EAN8</literal>, "
+"<literal>UPCA</literal>, <literal>UPCE</literal>, <literal>SUPP2</literal>, "
+"<literal>SUPP5</literal>, <literal>POSTNET</literal>, <literal>PLANET</"
+"literal>, <literal>CODE128</literal>, <literal>CODE128_UCC</literal>, "
+"<literal>CODE128_RAW</literal> and <literal>CODABAR</literal>."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2127
+#, no-c-format
+msgid "<literal>code</literal>— The value to be encoded by the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2132
+#, no-c-format
+msgid ""
+"<literal>xpos</literal>— For PDFs, the absolute y position of the "
+"barcode on the page."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2137
+#, no-c-format
+msgid ""
+"<literal>ypos</literal>— For PDFs, the absolute y position of the "
+"barcode on the page."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2142
+#, no-c-format
+msgid ""
+"<literal>rotDegrees</literal> — For PDFs, the rotation factor of the "
+"barcode in degrees."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2147
+#, no-c-format
+msgid ""
+"<literal>barHeight</literal> — The height of the bars in the barCode"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2153
+#, no-c-format
+msgid "<literal>minBarWidth</literal> — The minimum bar width."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2157
+#, no-c-format
+msgid ""
+"<literal>barMultiplier</literal> — The bar multiplier for wide bars or "
+"the distance between bars for <literal>POSTNET</literal> and "
+"<literal>PLANET</literal> code."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2163
+#, no-c-format
+msgid "<literal>barColor</literal> — The color to draw the bars."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2168
+#, no-c-format
+msgid ""
+"<literal>textColor</literal> — The color of any text on the barcode."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2173
+#, no-c-format
+msgid ""
+"<literal>textSize</literal> — The size of the barcode text, if any."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2178
+#, no-c-format
+msgid ""
+"<literal>altText</literal> — The <literal>alt</literal> text for HTML "
+"image links."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:2188
+#, no-c-format
+msgid ""
+"<![CDATA[<p:barCode type=\"code128\" \n"
+" barHeight=\"80\" \n"
+" textSize=\"20\" \n"
+" code=\"(10)45566(17)040301\" \n"
+" codeType=\"code128_ucc\" \n"
+" altText=\"My BarCode\" />]]>"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:2199
+#, no-c-format
+msgid "Rendering Swing/AWT components"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2200
+#, no-c-format
+msgid ""
+"Seam now provides experimental support for rendering Swing components to "
+"into a PDF image. Some Swing look and feels supports, notably ones that use "
+"native widgets, will not render correctly."
+msgstr ""
+
+#. Tag: literal
+#: Itext.xml:2214
+#, no-c-format
+msgid "<p:swing>"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2222
+#, no-c-format
+msgid "Renders a Swing component into a PDF document."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2230
+#, no-c-format
+msgid ""
+"<literal>width</literal> — The width of the component to be rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2234
+#, no-c-format
+msgid ""
+"<literal>height</literal> — ..The height of the component to be "
+"rendered."
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2238
+#, no-c-format
+msgid ""
+"<literal>component</literal> — An expression whose value is a Swing or "
+"AWT component."
+msgstr ""
+
+#. Tag: programlisting
+#: Itext.xml:2246
+#, no-c-format
+msgid ""
+"<![CDATA[<p:swing width=\"310\" height=\"120\" component=\"#{aButton}\" />]]>"
+msgstr ""
+
+#. Tag: title
+#: Itext.xml:2257
+#, no-c-format
+msgid "Further documentation"
+msgstr ""
+
+#. Tag: para
+#: Itext.xml:2259
+#, no-c-format
+msgid "For further information on iText, see:"
+msgstr ""
+
+#. Tag: ulink
+#: Itext.xml:2264
+#, no-c-format
+msgid "iText Home Page"
+msgstr ""
+
+#. Tag: ulink
+#: Itext.xml:2269
+#, no-c-format
+msgid "iText in Action"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Jbpm.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Jbpm.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Jbpm.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,1236 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Jbpm.xml:2
+#, no-c-format
+msgid "Pageflows and business processes"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:4
+#, no-c-format
+msgid ""
+"JBoss jBPM is a business process management engine for any Java SE or EE "
+"environment. jBPM lets you represent a business process or user interaction "
+"as a graph of nodes representing wait states, decisions, tasks, web pages, "
+"etc. The graph is defined using a simple, very readable, XML dialect called "
+"jPDL, and may be edited and visualised graphically using an eclipse plugin. "
+"jPDL is an extensible language, and is suitable for a range of problems, "
+"from defining web application page flow, to traditional workflow management, "
+"all the way up to orchestration of services in a SOA environment."
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:16
+#, no-c-format
+msgid "Seam applications use jBPM for two different problems:"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:22
+#, no-c-format
+msgid ""
+"Defining the pageflow involved in complex user interactions. A jPDL process "
+"definition defines the page flow for a single conversation. A Seam "
+"conversation is considered to be a relatively short-running interaction with "
+"a single user."
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:30
+#, no-c-format
+msgid ""
+"Defining the overarching business process. The business process may span "
+"multiple conversations with multiple users. Its state is persistent in the "
+"jBPM database, so it is considered long-running. Coordination of the "
+"activities of multiple users is a much more complex problem than scripting "
+"an interaction with a single user, so jBPM offers sophisticated facilities "
+"for task management and dealing with multiple concurrent paths of execution."
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:42
+#, no-c-format
+msgid ""
+"Don't get these two things confused ! They operate at very different levels "
+"or granularity. <emphasis>Pageflow</emphasis>, <emphasis>conversation</"
+"emphasis> and <emphasis>task</emphasis> all refer to a single interaction "
+"with a single user. A business process spans many tasks. Futhermore, the two "
+"applications of jBPM are totally orthogonal. You can use them together or "
+"independently or not at all."
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:51
+#, no-c-format
+msgid ""
+"You don't have to know jDPL to use Seam. If you're perfectly happy defining "
+"pageflow using JSF or Seam navigation rules, and if your application is more "
+"data-driven that process-driven, you probably don't need jBPM. But we're "
+"finding that thinking of user interaction in terms of a well-defined "
+"graphical representation is helping us build more robust applications."
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:60
+#, no-c-format
+msgid "Pageflow in Seam"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:61
+#, no-c-format
+msgid "There are two ways to define pageflow in Seam:"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:67
+#, no-c-format
+msgid ""
+"Using JSF or Seam navigation rules - the <emphasis>stateless navigation "
+"model</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:73
+#, no-c-format
+msgid "Using jPDL - the <emphasis>stateful navigation model</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:79
+#, no-c-format
+msgid ""
+"Very simple applications will only need the stateless navigation model. Very "
+"complex applications will use both models in different places. Each model "
+"has its strengths and weaknesses!"
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:86
+#, no-c-format
+msgid "The two navigation models"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:88
+#, no-c-format
+msgid ""
+"The stateless model defines a mapping from a set of named, logical outcomes "
+"of an event directly to the resulting page of the view. The navigation rules "
+"are entirely oblivious to any state held by the application other than what "
+"page was the source of the event. This means that your action listener "
+"methods must sometimes make decisions about the page flow, since only they "
+"have access to the current state of the application."
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:98
+#, no-c-format
+msgid "Here is an example page flow definition using JSF navigation rules:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:103
+#, no-c-format
+msgid ""
+"<![CDATA[<navigation-rule>\n"
+" <from-view-id>/numberGuess.jsp</from-view-id>\n"
+" \n"
+" <navigation-case>\n"
+" <from-outcome>guess</from-outcome>\n"
+" <to-view-id>/numberGuess.jsp</to-view-id>\n"
+" <redirect/>\n"
+" </navigation-case>\n"
+"\n"
+" <navigation-case>\n"
+" <from-outcome>win</from-outcome>\n"
+" <to-view-id>/win.jsp</to-view-id>\n"
+" <redirect/>\n"
+" </navigation-case>\n"
+" \n"
+" <navigation-case>\n"
+" <from-outcome>lose</from-outcome>\n"
+" <to-view-id>/lose.jsp</to-view-id>\n"
+" <redirect/>\n"
+" </navigation-case>\n"
+"\n"
+"</navigation-rule>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:105
+#, no-c-format
+msgid ""
+"Here is the same example page flow definition using Seam navigation rules:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:110
+#, no-c-format
+msgid ""
+"<![CDATA[<page view-id=\"/numberGuess.jsp\">\n"
+" \n"
+" <navigation>\n"
+" <rule if-outcome=\"guess\">\n"
+" <redirect view-id=\"/numberGuess.jsp\"/>\n"
+" </rule>\n"
+" <rule if-outcome=\"win\">\n"
+" <redirect view-id=\"/win.jsp\"/>\n"
+" </rule>\n"
+" <rule if-outcome=\"lose\">\n"
+" <redirect view-id=\"/lose.jsp\"/>\n"
+" </rule>\n"
+" </navigation>\n"
+"\n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:112
+#, no-c-format
+msgid ""
+"If you find navigation rules overly verbose, you can return view ids "
+"directly from your action listener methods:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:117
+#, no-c-format
+msgid ""
+"<![CDATA[public String guess() {\n"
+" if (guess==randomNumber) return \"/win.jsp\";\n"
+" if (++guessCount==maxGuesses) return \"/lose.jsp\";\n"
+" return null;\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:119
+#, no-c-format
+msgid ""
+"Note that this results in a redirect. You can even specify parameters to be "
+"used in the redirect:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:124
+#, no-c-format
+msgid ""
+"<![CDATA[public String search() {\n"
+" return \"/searchResults.jsp?searchPattern=#{searchAction.searchPattern}"
+"\";\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:126
+#, no-c-format
+msgid ""
+"The stateful model defines a set of transitions between a set of named, "
+"logical application states. In this model, it is possible to express the "
+"flow of any user interaction entirely in the jPDL pageflow definition, and "
+"write action listener methods that are completely unaware of the flow of the "
+"interaction."
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:134
+#, no-c-format
+msgid "Here is an example page flow definition using jPDL:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:138
+#, no-c-format
+msgid ""
+"<![CDATA[<pageflow-definition name=\"numberGuess\">\n"
+" \n"
+" <start-page name=\"displayGuess\" view-id=\"/numberGuess.jsp\">\n"
+" <redirect/>\n"
+" <transition name=\"guess\" to=\"evaluateGuess\">\n"
+" <action expression=\"#{numberGuess.guess}\" />\n"
+" </transition>\n"
+" </start-page>\n"
+" \n"
+" <decision name=\"evaluateGuess\" expression=\"#{numberGuess.correctGuess}"
+"\">\n"
+" <transition name=\"true\" to=\"win\"/>\n"
+" <transition name=\"false\" to=\"evaluateRemainingGuesses\"/>\n"
+" </decision>\n"
+" \n"
+" <decision name=\"evaluateRemainingGuesses\" expression=\"#{numberGuess."
+"lastGuess}\">\n"
+" <transition name=\"true\" to=\"lose\"/>\n"
+" <transition name=\"false\" to=\"displayGuess\"/>\n"
+" </decision>\n"
+" \n"
+" <page name=\"win\" view-id=\"/win.jsp\">\n"
+" <redirect/>\n"
+" <end-conversation />\n"
+" </page>\n"
+" \n"
+" <page name=\"lose\" view-id=\"/lose.jsp\">\n"
+" <redirect/>\n"
+" <end-conversation />\n"
+" </page>\n"
+" \n"
+"</pageflow-definition>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:149
+#, no-c-format
+msgid "There are two things we notice immediately here:"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:155
+#, no-c-format
+msgid ""
+"The JSF/Seam navigation rules are <emphasis>much</emphasis> simpler. "
+"(However, this obscures the fact that the underlying Java code is more "
+"complex.)"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:162
+#, no-c-format
+msgid ""
+"The jPDL makes the user interaction immediately understandable, without us "
+"needing to even look at the JSP or Java code."
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:169
+#, no-c-format
+msgid ""
+"In addition, the stateful model is more <emphasis>constrained</emphasis>. "
+"For each logical state (each step in the page flow), there are a constrained "
+"set of possible transitions to other states. The stateless model is an "
+"<emphasis>ad hoc</emphasis> model which is suitable to relatively "
+"unconstrained, freeform navigation where the user decides where he/she wants "
+"to go next, not the application."
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:178
+#, no-c-format
+msgid ""
+"The stateful/stateless navigation distinction is quite similar to the "
+"traditional view of modal/modeless interaction. Now, Seam applications are "
+"not usually modal in the simple sense of the word - indeed, avoiding "
+"application modal behavior is one of the main reasons for having "
+"conversations! However, Seam applications can be, and often are, modal at "
+"the level of a particular conversation. It is well-known that modal behavior "
+"is something to avoid as much as possible; it is very difficult to predict "
+"the order in which your users are going to want to do things! However, there "
+"is no doubt that the stateful model has its place."
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:191
+#, no-c-format
+msgid ""
+"The biggest contrast between the two models is the back-button behavior."
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:199
+#, no-c-format
+msgid "Seam and the back button"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:201
+#, no-c-format
+msgid ""
+"When JSF or Seam navigation rules are used, Seam lets the user freely "
+"navigate via the back, forward and refresh buttons. It is the responsibility "
+"of the application to ensure that conversational state remains internally "
+"consistent when this occurs. Experience with the combination of web "
+"application frameworks like Struts or WebWork - that do not support a "
+"conversational model - and stateless component models like EJB stateless "
+"session beans or the Spring framework has taught many developers that this "
+"is close to impossible to do! However, our experience is that in the context "
+"of Seam, where there is a well-defined conversational model, backed by "
+"stateful session beans, it is actually quite straightforward. Usually it is "
+"as simple as combining the use of <literal>no-conversation-view-id</literal> "
+"with null checks at the beginning of action listener methods. We consider "
+"support for freeform navigation to be almost always desirable."
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:219
+#, no-c-format
+msgid ""
+"In this case, the <literal>no-conversation-view-id</literal> declaration "
+"goes in <literal>pages.xml</literal>. It tells Seam to redirect to a "
+"different page if a request originates from a page rendered during a "
+"conversation, and that conversation no longer exists:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:227
+#, no-c-format
+msgid ""
+"<![CDATA[<page view-id=\"/checkout.xhtml\" \n"
+" no-conversation-view-id=\"/main.xhtml\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:229
+#, no-c-format
+msgid ""
+"On the other hand, in the stateful model, backbuttoning is interpreted as an "
+"undefined transition back to a previous state. Since the stateful model "
+"enforces a defined set of transitions from the current state, back buttoning "
+"is by default disallowed in the stateful model! Seam transparently detects "
+"the use of the back button, and blocks any attempt to perform an action from "
+"a previous, \"stale\" page, and simply redirects the user to the \"current\" "
+"page (and displays a faces message). Whether you consider this a feature or "
+"a limitation of the stateful model depends upon your point of view: as an "
+"application developer, it is a feature; as a user, it might be frustrating! "
+"You can enable backbutton navigation from a particular page node by setting "
+"<literal>back=\"enabled\"</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:245
+#, no-c-format
+msgid ""
+"<![CDATA[<page name=\"checkout\" \n"
+" view-id=\"/checkout.xhtml\" \n"
+" back=\"enabled\">\n"
+" <redirect/>\n"
+" <transition to=\"checkout\"/>\n"
+" <transition name=\"complete\" to=\"complete\"/>\n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:247
+#, no-c-format
+msgid ""
+"This allows backbuttoning <emphasis>from</emphasis> the <literal>checkout</"
+"literal> state to <emphasis>any previous state!</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:253
+#, no-c-format
+msgid ""
+"Of course, we still need to define what happens if a request originates from "
+"a page rendered during a pageflow, and the conversation with the pageflow no "
+"longer exists. In this case, the <literal>no-conversation-view-id</literal> "
+"declaration goes into the pageflow definition:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:261
+#, no-c-format
+msgid ""
+"<![CDATA[<page name=\"checkout\" \n"
+" view-id=\"/checkout.xhtml\" \n"
+" back=\"enabled\" \n"
+" no-conversation-view-id=\"/main.xhtml\">\n"
+" <redirect/>\n"
+" <transition to=\"checkout\"/>\n"
+" <transition name=\"complete\" to=\"complete\"/>\n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:264
+#, no-c-format
+msgid ""
+"In practice, both navigation models have their place, and you'll quickly "
+"learn to recognize when to prefer one model over the other."
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:273
+#, no-c-format
+msgid "Using jPDL pageflows"
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:276
+#, no-c-format
+msgid "Installing pageflows"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:278
+#, no-c-format
+msgid ""
+"We need to install the Seam jBPM-related components, and tell them where to "
+"find our pageflow definition. We can specify this Seam configuration in "
+"<literal>components.xml</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:284
+#, no-c-format
+msgid ""
+"<![CDATA[<bpm:jbpm>\n"
+" <bpm:pageflow-definitions>\n"
+" <value>pageflow.jpdl.xml</value>\n"
+" </bpm:pageflow-definitions>\n"
+"</bpm:jbpm>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:286
+#, no-c-format
+msgid ""
+"The first line installs jBPM, the second points to a jPDL-based pageflow "
+"definition."
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:294
+#, no-c-format
+msgid "Starting pageflows"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:296
+#, no-c-format
+msgid ""
+"We \"start\" a jPDL-based pageflow by specifying the name of the process "
+"definition using a <literal>@Begin</literal>, <literal>@BeginTask</literal> "
+"or <literal>@StartTask</literal> annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:303
+#, no-c-format
+msgid ""
+"<![CDATA[@Begin(pageflow=\"numberguess\")\n"
+"public void begin() { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:305
+#, no-c-format
+msgid "Alternatively we can start a pageflow using pages.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:307
+#, no-c-format
+msgid ""
+"<![CDATA[<page>\n"
+" <begin-conversation pageflow=\"numberguess\"/>\n"
+" </page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:309
+#, no-c-format
+msgid ""
+"If we are beginning the pageflow during the <literal>RENDER_RESPONSE</"
+"literal> phase—during a <literal>@Factory</literal> or "
+"<literal>@Create</literal> method, for example—we consider ourselves "
+"to be already at the page being rendered, and use a <literal><start-"
+"page></literal> node as the first node in the pageflow, as in the example "
+"above."
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:317
+#, no-c-format
+msgid ""
+"But if the pageflow is begun as the result of an action listener invocation, "
+"the outcome of the action listener determines which is the first page to be "
+"rendered. In this case, we use a <literal><start-state></literal> as "
+"the first node in the pageflow, and declare a transition for each possible "
+"outcome:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:325
+#, no-c-format
+msgid ""
+"<![CDATA[<pageflow-definition name=\"viewEditDocument\">\n"
+"\n"
+" <start-state name=\"start\">\n"
+" <transition name=\"documentFound\" to=\"displayDocument\"/>\n"
+" <transition name=\"documentNotFound\" to=\"notFound\"/>\n"
+" </start-state>\n"
+" \n"
+" <page name=\"displayDocument\" view-id=\"/document.jsp\">\n"
+" <transition name=\"edit\" to=\"editDocument\"/>\n"
+" <transition name=\"done\" to=\"main\"/>\n"
+" </page>\n"
+" \n"
+" ...\n"
+" \n"
+" <page name=\"notFound\" view-id=\"/404.jsp\">\n"
+" <end-conversation/>\n"
+" </page>\n"
+" \n"
+"</pageflow-definition>]]>"
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:330
+#, no-c-format
+msgid "Page nodes and transitions"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:332
+#, no-c-format
+msgid ""
+"Each <literal><page></literal> node represents a state where the "
+"system is waiting for user input:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:337
+#, no-c-format
+msgid ""
+"<![CDATA[<page name=\"displayGuess\" view-id=\"/numberGuess.jsp\">\n"
+" <redirect/>\n"
+" <transition name=\"guess\" to=\"evaluateGuess\">\n"
+" <action expression=\"#{numberGuess.guess}\" />\n"
+" </transition>\n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:339
+#, no-c-format
+msgid ""
+"The <literal>view-id</literal> is the JSF view id. The <literal><redirect/"
+"></literal> element has the same effect as <literal><redirect/></"
+"literal> in a JSF navigation rule: namely, a post-then-redirect behavior, to "
+"overcome problems with the browser's refresh button. (Note that Seam "
+"propagates conversation contexts over these browser redirects. So there is "
+"no need for a Ruby on Rails style \"flash\" construct in Seam!)"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:348
+#, no-c-format
+msgid ""
+"The transition name is the name of a JSF outcome triggered by clicking a "
+"command button or command link in <literal>numberGuess.jsp</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:353
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandButton type=\"submit\" value=\"Guess\" action=\"guess\"/"
+">]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:355
+#, no-c-format
+msgid ""
+"When the transition is triggered by clicking this button, jBPM will activate "
+"the transition action by calling the <literal>guess()</literal> method of "
+"the <literal>numberGuess</literal> component. Notice that the syntax used "
+"for specifying actions in the jPDL is just a familiar JSF EL expression, and "
+"that the transition action handler is just a method of a Seam component in "
+"the current Seam contexts. So we have exactly the same event model for jBPM "
+"events that we already have for JSF events! (The <emphasis>One Kind of "
+"Stuff</emphasis> principle.)"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:366
+#, no-c-format
+msgid ""
+"In the case of a null outcome (for example, a command button with no "
+"<literal>action</literal> defined), Seam will signal the transition with no "
+"name if one exists, or else simply redisplay the page if all transitions "
+"have names. So we could slightly simplify our example pageflow and this "
+"button:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:373
+#, no-c-format
+msgid "<![CDATA[<h:commandButton type=\"submit\" value=\"Guess\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:375
+#, no-c-format
+msgid "Would fire the following un-named transition:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:379
+#, no-c-format
+msgid ""
+"<![CDATA[<page name=\"displayGuess\" view-id=\"/numberGuess.jsp\">\n"
+" <redirect/>\n"
+" <transition to=\"evaluateGuess\">\n"
+" <action expression=\"#{numberGuess.guess}\" />\n"
+" </transition>\n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:381
+#, no-c-format
+msgid ""
+"It is even possible to have the button call an action method, in which case "
+"the action outcome will determine the transition to be taken:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:386
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandButton type=\"submit\" value=\"Guess\" action=\"#"
+"{numberGuess.guess}\"/>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:388
+#, no-c-format
+msgid ""
+"<![CDATA[<page name=\"displayGuess\" view-id=\"/numberGuess.jsp\">\n"
+" <transition name=\"correctGuess\" to=\"win\"/>\n"
+" <transition name=\"incorrectGuess\" to=\"evaluateGuess\"/>\n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:390
+#, no-c-format
+msgid ""
+"However, this is considered an inferior style, since it moves responsibility "
+"for controlling the flow out of the pageflow definition and back into the "
+"other components. It is much better to centralize this concern in the "
+"pageflow itself."
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:399
+#, no-c-format
+msgid "Controlling the flow"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:401
+#, no-c-format
+msgid ""
+"Usually, we don't need the more powerful features of jPDL when defining "
+"pageflows. We do need the <literal><decision></literal> node, however:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:406
+#, no-c-format
+msgid ""
+"<![CDATA[<decision name=\"evaluateGuess\" expression=\"#{numberGuess."
+"correctGuess}\">\n"
+" <transition name=\"true\" to=\"win\"/>\n"
+" <transition name=\"false\" to=\"evaluateRemainingGuesses\"/>\n"
+"</decision>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:408
+#, no-c-format
+msgid ""
+"A decision is made by evaluating a JSF EL expression in the Seam contexts."
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:415
+#, no-c-format
+msgid "Ending the flow"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:417
+#, no-c-format
+msgid ""
+"We end the conversation using <literal><end-conversation></literal> or "
+"<literal>@End</literal>. (In fact, for readability, use of <emphasis>both</"
+"emphasis> is encouraged.)"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:423
+#, no-c-format
+msgid ""
+"<![CDATA[<page name=\"win\" view-id=\"/win.jsp\">\n"
+" <redirect/>\n"
+" <end-conversation/>\n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:425
+#, no-c-format
+msgid ""
+"Optionally, we can end a task, specify a jBPM <literal>transition</literal> "
+"name. In this case, Seam will signal the end of the current task in the "
+"overarching business process."
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:431
+#, no-c-format
+msgid ""
+"<![CDATA[<page name=\"win\" view-id=\"/win.jsp\">\n"
+" <redirect/>\n"
+" <end-task transition=\"success\"/>\n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:436
+#, no-c-format
+msgid "Pageflow composition"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:437
+#, no-c-format
+msgid ""
+"It is possible to compose pageflows and have one pageflow pause pause while "
+"another pageflow executes. The <literal><process-state></literal> node "
+"pauses the outer pageflow, and begins execution of a named pageflow:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:444
+#, no-c-format
+msgid ""
+"<![CDATA[<process-state name=\"cheat\">\n"
+" <sub-process name=\"cheat\"/>\n"
+" <transition to=\"displayGuess\"/>\n"
+"</process-state>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:446
+#, no-c-format
+msgid ""
+"The inner flow begins executing at a <literal><start-state></literal> "
+"node. When it reaches an <literal><end-state></literal> node, "
+"execution of the inner flow ends, and execution of the outer flow resumes "
+"with the transition defined by the <literal><process-state></literal> "
+"element."
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:459
+#, no-c-format
+msgid "Business process management in Seam"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:460
+#, no-c-format
+msgid ""
+"A business process is a well-defined set of tasks that must be performed by "
+"users or software systems according to well-defined rules about "
+"<emphasis>who</emphasis> can perform a task, and <emphasis>when</emphasis> "
+"it should be performed. Seam's jBPM integration makes it easy to display "
+"lists of tasks to users and let them manage their tasks. Seam also lets the "
+"application store state associated with the business process in the "
+"<literal>BUSINESS_PROCESS</literal> context, and have that state made "
+"persistent via jBPM variables."
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:472
+#, no-c-format
+msgid ""
+"A simple business process definition looks much the same as a page flow "
+"definition (<emphasis>One Kind of Stuff</emphasis>), except that instead of "
+"<literal><page></literal> nodes, we have <literal><task-node></"
+"literal> nodes. In a long-running business process, the wait states are "
+"where the system is waiting for some user to log in and perform a task."
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:481
+#, no-c-format
+msgid ""
+"<![CDATA[<process-definition name=\"todo\">\n"
+" \n"
+" <start-state name=\"start\">\n"
+" <transition to=\"todo\"/>\n"
+" </start-state>\n"
+" \n"
+" <task-node name=\"todo\">\n"
+" <task name=\"todo\" description=\"#{todoList.description}\">\n"
+" <assignment actor-id=\"#{actor.id}\"/>\n"
+" </task>\n"
+" <transition to=\"done\"/>\n"
+" </task-node>\n"
+" \n"
+" <end-state name=\"done\"/>\n"
+" \n"
+"</process-definition>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:493
+#, no-c-format
+msgid ""
+"It is perfectly possible that we might have both jPDL business process "
+"definitions and jPDL pageflow definitions in the same project. If so, the "
+"relationship between the two is that a single <literal><task></"
+"literal> in a business process corresponds to a whole pageflow <literal><"
+"pageflow-definition></literal>"
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:504
+#, no-c-format
+msgid "Using jPDL business process definitions"
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:507
+#, no-c-format
+msgid "Installing process definitions"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:509
+#, no-c-format
+msgid ""
+"We need to install jBPM, and tell it where to find the business process "
+"definitions:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:514
+#, no-c-format
+msgid ""
+"<![CDATA[<bpm:jbpm>\n"
+" <bpm:process-definitions>\n"
+" <value>todo.jpdl.xml</value>\n"
+" </bpm:process-definitions>\n"
+"</bpm:jbpm>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:516
+#, no-c-format
+msgid ""
+"As jBPM processes are persistent across application restarts, when using "
+"Seam in a production environment you won't want to install the process "
+"definition every time the application starts. Therefore, in a production "
+"environment, you'll need to deploy the process to jBPM outside of Seam. In "
+"other words, only install process definitions from <literal>components.xml</"
+"literal> when developing your application."
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:529
+#, no-c-format
+msgid "Initializing actor ids"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:531
+#, no-c-format
+msgid ""
+"We always need to know what user is currently logged in. jBPM \"knows\" "
+"users by their <emphasis>actor id</emphasis> and <emphasis>group actor ids</"
+"emphasis>. We specify the current actor ids using the built in Seam "
+"component named <literal>actor</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:539
+#, no-c-format
+msgid ""
+"<![CDATA[@In Actor actor;\n"
+"\n"
+"public String login() {\n"
+" ...\n"
+" actor.setId( user.getUserName() );\n"
+" actor.getGroupActorIds().addAll( user.getGroupNames() );\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:544
+#, no-c-format
+msgid "Initiating a business process"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:546
+#, no-c-format
+msgid ""
+"To initiate a business process instance, we use the <literal>@CreateProcess</"
+"literal> annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:551
+#, no-c-format
+msgid ""
+"<![CDATA[@CreateProcess(definition=\"todo\")\n"
+"public void createTodo() { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:553
+#, no-c-format
+msgid "Alternatively we can initiate a business process using pages.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:555
+#, no-c-format
+msgid ""
+"<![CDATA[<page>\n"
+" <create-process definition=\"todo\" />\n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:560
+#, no-c-format
+msgid "Task assignment"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:562
+#, no-c-format
+msgid ""
+"When a process reaches a task node, task instances are created. These must "
+"be assigned to users or user groups. We can either hardcode our actor ids, "
+"or delegate to a Seam component:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:568
+#, no-c-format
+msgid ""
+"<![CDATA[<task name=\"todo\" description=\"#{todoList.description}\">\n"
+" <assignment actor-id=\"#{actor.id}\"/>\n"
+"</task>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:570
+#, no-c-format
+msgid ""
+"In this case, we have simply assigned the task to the current user. We can "
+"also assign tasks to a pool:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:575
+#, no-c-format
+msgid ""
+"<![CDATA[<task name=\"todo\" description=\"#{todoList.description}\">\n"
+" <assignment pooled-actors=\"employees\"/>\n"
+"</task>]]>"
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:580
+#, no-c-format
+msgid "Task lists"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:582
+#, no-c-format
+msgid ""
+"Several built-in Seam components make it easy to display task lists. The "
+"<literal>pooledTaskInstanceList</literal> is a list of pooled tasks that "
+"users may assign to themselves:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:588
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{pooledTaskInstanceList}\" var=\"task\">\n"
+" <h:column>\n"
+" <f:facet name=\"header\">Description</f:facet>\n"
+" <h:outputText value=\"#{task.description}\"/>\n"
+" </h:column>\n"
+" <h:column>\n"
+" <s:link action=\"#{pooledTask.assignToCurrentActor}\" value=\"Assign"
+"\" taskInstance=\"#{task}\"/>\n"
+" </h:column> \n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:590
+#, no-c-format
+msgid ""
+"Note that instead of <literal><s:link></literal> we could have used a "
+"plain JSF <literal><h:commandLink></literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:595
+#, no-c-format
+msgid ""
+"<![CDATA[<h:commandLink action=\"#{pooledTask.assignToCurrentActor}\"> \n"
+" <f:param name=\"taskId\" value=\"#{task.id}\"/>\n"
+"</h:commandLink>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:597
+#, no-c-format
+msgid ""
+"The <literal>pooledTask</literal> component is a built-in component that "
+"simply assigns the task to the current user."
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:602
+#, no-c-format
+msgid ""
+"The <literal>taskInstanceListForType</literal> component includes tasks of a "
+"particular type that are assigned to the current user:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:607
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{taskInstanceListForType['todo']}\" var=\"task"
+"\">\n"
+" <h:column>\n"
+" <f:facet name=\"header\">Description</f:facet>\n"
+" <h:outputText value=\"#{task.description}\"/>\n"
+" </h:column>\n"
+" <h:column>\n"
+" <s:link action=\"#{todoList.start}\" value=\"Start Work\" "
+"taskInstance=\"#{task}\"/>\n"
+" </h:column> \n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: title
+#: Jbpm.xml:612
+#, no-c-format
+msgid "Performing a task"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:614
+#, no-c-format
+msgid ""
+"To begin work on a task, we use either <literal>@StartTask</literal> or "
+"<literal>@BeginTask</literal> on the listener method:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:619
+#, no-c-format
+msgid ""
+"<![CDATA[@StartTask\n"
+"public String start() { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:621
+#, no-c-format
+msgid "Alternatively we can begin work on a task using pages.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:623
+#, no-c-format
+msgid ""
+"<![CDATA[<page>\n"
+" <start-task />\n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:625
+#, no-c-format
+msgid ""
+"These annotations begin a special kind of conversation that has significance "
+"in terms of the overarching business process. Work done by this conversation "
+"has access to state held in the business process context."
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:632
+#, no-c-format
+msgid ""
+"If we end the conversation using <literal>@EndTask</literal>, Seam will "
+"signal the completion of the task:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:637
+#, no-c-format
+msgid ""
+"<![CDATA[@EndTask(transition=\"completed\")\n"
+"public String completed() { ... }]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:639
+#, no-c-format
+msgid "Alternatively we can use pages.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jbpm.xml:641
+#, no-c-format
+msgid ""
+"<![CDATA[<page>\n"
+" <end-task transition=\"completed\" />\n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:643
+#, no-c-format
+msgid "You can also use EL to specify the transition in pages.xml."
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:647
+#, no-c-format
+msgid ""
+"At this point, jBPM takes over and continues executing the business process "
+"definition. (In more complex processes, several tasks might need to be "
+"completed before process execution can resume.)"
+msgstr ""
+
+#. Tag: para
+#: Jbpm.xml:653
+#, no-c-format
+msgid ""
+"Please refer to the jBPM documentation for a more thorough overview of the "
+"sophisticated features that jBPM provides for managing complex business "
+"processes."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Jms.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Jms.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Jms.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,732 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Jms.xml:2
+#, no-c-format
+msgid "Asynchronicity and messaging"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:3
+#, no-c-format
+msgid ""
+"Seam makes it very easy to perform work asynchronously from a web request. "
+"When most people think of asynchronicity in Java EE, they think of using "
+"JMS. This is certainly one way to approach the problem in Seam, and is the "
+"right way when you have strict and well-defined quality of service "
+"requirements. Seam makes it easy to send and recieve JMS messages using Seam "
+"components."
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:11
+#, no-c-format
+msgid ""
+"But for many usecases, JMS is overkill. Seam layers a simple asynchronous "
+"method and event facility over your choice of <emphasis>dispatchers</"
+"emphasis>:"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:18
+#, no-c-format
+msgid ""
+"<literal>java.util.concurrent.ScheduledThreadPoolExecutor</literal> (by "
+"default)"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:23
+#, no-c-format
+msgid "the EJB timer service (for EJB 3.0 environments)"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:28
+#, no-c-format
+msgid "Quartz"
+msgstr ""
+
+#. Tag: title
+#: Jms.xml:35
+#, no-c-format
+msgid "Asynchronicity"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:37
+#, no-c-format
+msgid ""
+"Asynchronous events and method calls have the same quality of service "
+"expectations as the underlying dispatcher mechanism. The default dispatcher, "
+"based upon a <literal>ScheduledThreadPoolExecutor</literal> performs "
+"efficiently but provides no support for persistent asynchronous tasks, and "
+"hence no guarantee that a task will ever actually be executed. If you're "
+"working in an environment that supports EJB 3.0, and add the following line "
+"to <literal>components.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:46
+#, no-c-format
+msgid "<![CDATA[<async:timer-service-dispatcher/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:48
+#, no-c-format
+msgid ""
+"then your asynchronous tasks will be processed by the container's EJB timer "
+"service. If you're not familiar with the Timer service, don't worry, you "
+"don't need to interact with it directly if you want to use asynchronous "
+"methods in Seam. The important thing to know is that any good EJB 3.0 "
+"implementation will have the option of using persistent timers, which gives "
+"some guarantee that the tasks will eventually be processed."
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:56
+#, no-c-format
+msgid ""
+"Another alternative is to use the open source Quartz library to manage "
+"asynchronous method. You need to bundle the Quartz library JAR (found in the "
+"<literal>lib</literal> directory) in your EAR and declare it as a Java "
+"module in <literal>application.xml</literal>. In addition, you need to add "
+"the following line to <literal>components.xml</literal> to install the "
+"Quartz dispatcher."
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:64
+#, no-c-format
+msgid "<![CDATA[<async:quartz-dispatcher/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:66
+#, no-c-format
+msgid ""
+"The Seam API for the default <literal>ScheduledThreadPoolExecutor</literal>, "
+"the EJB3 <literal>Timer</literal>, and the Quartz <literal>Scheduler</"
+"literal> are largely the same. They can just \"plug and play\" by adding a "
+"line to <literal>components.xml</literal>."
+msgstr ""
+
+#. Tag: title
+#: Jms.xml:73
+#, no-c-format
+msgid "Asynchronous methods"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:75
+#, no-c-format
+msgid ""
+"In simplest form, an asynchronous call just lets a method call be processed "
+"asynchronously (in a different thread) from the caller. We usually use an "
+"asynchronous call when we want to return an immediate response to the "
+"client, and let some expensive work be processed in the background. This "
+"pattern works very well in applications which use AJAX, where the client can "
+"automatically poll the server for the result of the work."
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:83
+#, no-c-format
+msgid ""
+"For EJB components, we annotate the local interface to specify that a method "
+"is processed asynchronously."
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:88
+#, no-c-format
+msgid ""
+"<![CDATA[@Local\n"
+"public interface PaymentHandler\n"
+"{\n"
+" @Asynchronous\n"
+" public void processPayment(Payment payment);\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:90
+#, no-c-format
+msgid ""
+"(For JavaBean components we can annotate the component implementation class "
+"if we like.)"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:94
+#, no-c-format
+msgid "The use of asynchronicity is transparent to the bean class:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:98
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"paymentHandler\")\n"
+"public class PaymentHandlerBean implements PaymentHandler\n"
+"{\n"
+" public void processPayment(Payment payment)\n"
+" {\n"
+" //do some work!\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:100
+#, no-c-format
+msgid "And also transparent to the client:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:104
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"paymentAction\")\n"
+"public class CreatePaymentAction\n"
+"{\n"
+" @In(create=true) PaymentHandler paymentHandler;\n"
+" @In Bill bill;\n"
+" \n"
+" public String pay()\n"
+" {\n"
+" paymentHandler.processPayment( new Payment(bill) );\n"
+" return \"success\";\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:106
+#, no-c-format
+msgid ""
+"The asynchronous method is processed in a completely new event context and "
+"does not have access to the session or conversation context state of the "
+"caller. However, the business process context <emphasis>is</emphasis> "
+"propagated."
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:112
+#, no-c-format
+msgid ""
+"Asynchronous method calls may be scheduled for later execution using the "
+"<literal>@Duration</literal>, <literal>@Expiration</literal> and "
+"<literal>@IntervalDuration</literal> annotations."
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:118
+#, no-c-format
+msgid ""
+"<![CDATA[@Local\n"
+"public interface PaymentHandler\n"
+"{\n"
+" @Asynchronous\n"
+" public void processScheduledPayment(Payment payment, @Expiration Date "
+"date);\n"
+"\n"
+" @Asynchronous\n"
+" public void processRecurringPayment(Payment payment, \n"
+" @Expiration Date date, \n"
+" @IntervalDuration Long interval)'\n"
+"}]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:120
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"paymentAction\")\n"
+"public class CreatePaymentAction\n"
+"{\n"
+" @In(create=true) PaymentHandler paymentHandler;\n"
+" @In Bill bill;\n"
+" \n"
+" public String schedulePayment()\n"
+" {\n"
+" paymentHandler.processScheduledPayment( new Payment(bill), bill."
+"getDueDate() );\n"
+" return \"success\";\n"
+" }\n"
+"\n"
+" public String scheduleRecurringPayment()\n"
+" {\n"
+" paymentHandler.processRecurringPayment( new Payment(bill), bill."
+"getDueDate(), \n"
+" ONE_MONTH );\n"
+" return \"success\";\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:122
+#, no-c-format
+msgid ""
+"Both client and server may access the <literal>Timer</literal> object "
+"associated with the invocation. The <literal>Timer</literal> object shown "
+"below is the EJB3 timer when you use the EJB3 dispatcher. For the default "
+"<literal>ScheduledThreadPoolExecutor</literal>, the returned object is "
+"<literal>Future</literal> from the JDK. For the Quartz dispatcher, it "
+"returns <literal>QuartzTriggerHandle</literal>, which we will discuss in the "
+"next section."
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:127
+#, no-c-format
+msgid ""
+"<![CDATA[@Local\n"
+"public interface PaymentHandler\n"
+"{\n"
+" @Asynchronous\n"
+" public Timer processScheduledPayment(Payment payment, @Expiration Date "
+"date);\n"
+"}]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:129
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"paymentHandler\")\n"
+"public class PaymentHandlerBean implements PaymentHandler\n"
+"{\n"
+" @In Timer timer;\n"
+" \n"
+" public Timer processScheduledPayment(Payment payment, @Expiration Date "
+"date)\n"
+" {\n"
+" //do some work!\n"
+" \n"
+" return timer; //note that return value is completely ignored\n"
+" }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:131
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"paymentAction\")\n"
+"public class CreatePaymentAction\n"
+"{\n"
+" @In(create=true) PaymentHandler paymentHandler;\n"
+" @In Bill bill;\n"
+" \n"
+" public String schedulePayment()\n"
+" {\n"
+" Timer timer = paymentHandler.processScheduledPayment( new Payment"
+"(bill), \n"
+" bill.getDueDate"
+"() );\n"
+" return \"success\";\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:133
+#, no-c-format
+msgid "Asynchronous methods cannot return any other value to the caller."
+msgstr ""
+
+#. Tag: title
+#: Jms.xml:140
+#, no-c-format
+msgid "Asynchronous methods with the Quartz Dispatcher"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:142
+#, no-c-format
+msgid ""
+"The Quartz dispatcher (see earlier on how to install it) allows you to use "
+"the <literal>@Asynchronous</literal>, <literal>@Duration</literal>, "
+"<literal>@Expiration</literal>, and <literal>@IntervalDuration</literal> "
+"annotations as above. But it has some powerful additional features. The "
+"Quartz dispatcher supports three new annotations."
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:146
+#, no-c-format
+msgid ""
+"The <literal>@FinalExpiration</literal> annotation specifies an end date for "
+"the recurring task."
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:148
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" // Defines the method in the \"processor\" component\n"
+" @Asynchronous\n"
+" public QuartzTriggerHandle schedulePayment(@Expiration Date when, \n"
+" @IntervalDuration Long interval,\n"
+" @FinalExpiration Date endDate, \n"
+" Payment payment) \n"
+" { \n"
+" // do the repeating or long running task until endDate\n"
+" }\n"
+" \n"
+" ... ...\n"
+" \n"
+" // Schedule the task in the business logic processing code\n"
+" // Starts now, repeats every hour, and ends on May 10th, 2010\n"
+" Calendar cal = Calendar.getInstance ();\n"
+" cal.set (2010, Calendar.MAY, 10);\n"
+" processor.schedulePayment(new Date(), 60*60*1000, cal.getTime(), "
+"payment);\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:150
+#, no-c-format
+msgid ""
+"Note that the method returns the <literal>QuartzTriggerHandle</literal> "
+"object, which you can use later to stop, pause, and resume the scheduler. "
+"The <literal>QuartzTriggerHandle</literal> object is serializable, so you "
+"can save it into the database if you need to keep it around for extended "
+"period of time."
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:152
+#, no-c-format
+msgid ""
+"<![CDATA[QuartzTriggerHandle handle =\n"
+" processor.schedulePayment(payment.getPaymentDate(), \n"
+" payment.getPaymentCron(), \n"
+" payment);\n"
+" payment.setQuartzTriggerHandle( handle );\n"
+" // Save payment to DB\n"
+" \n"
+" // later ...\n"
+" \n"
+" // Retrieve payment from DB\n"
+" // Cancel the remaining scheduled tasks\n"
+" payment.getQuartzTriggerHandle().cancel();\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:154
+#, no-c-format
+msgid ""
+"The <literal>@IntervalCron</literal> annotation supports Unix cron job "
+"syntax for task scheduling. For instance, the following asynchronous method "
+"runs at 2:10pm and at 2:44pm every Wednesday in the month of March."
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:157
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" // Define the method\n"
+" @Asynchronous\n"
+" public QuartzTriggerHandle schedulePayment(@Expiration Date when, \n"
+" @IntervalCron String cron, \n"
+" Payment payment) \n"
+" { \n"
+" // do the repeating or long running task\n"
+" }\n"
+" \n"
+" ... ...\n"
+" \n"
+" // Schedule the task in the business logic processing code\n"
+" QuartzTriggerHandle handle = \n"
+" processor.schedulePayment(new Date(), \"0 10,44 14 ? 3 WED\", "
+"payment);\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:159
+#, no-c-format
+msgid ""
+"The <literal>@IntervalBusinessDay</literal> annotation supports invocation "
+"on the \"nth Business Day\" scenario. For instance, the following "
+"asynchronous method runs at 14:00 on the 2nd business day of each month. By "
+"default, it excludes all weekends and US federal holidays until 2010 from "
+"the business days."
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:162
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" // Define the method\n"
+" @Asynchronous\n"
+" public QuartzTriggerHandle schedulePayment(@Expiration Date when, \n"
+" @IntervalBusinessDay NthBusinessDay nth, \n"
+" Payment payment) \n"
+" { \n"
+" // do the repeating or long running task\n"
+" }\n"
+" \n"
+" ... ...\n"
+" \n"
+" // Schedule the task in the business logic processing code\n"
+" QuartzTriggerHandle handle = \n"
+" processor.schedulePayment(new Date(), \n"
+" new NthBusinessDay(2, \"14:00\", WEEKLY), payment);\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:164
+#, no-c-format
+msgid ""
+"The <literal>NthBusinessDay</literal> object contains the configuration of "
+"the invocation trigger. You can specify more holidays (e.g., company "
+"holidays, non-US holidays etc.) via the <literal>additionalHolidays</"
+"literal> property."
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:166
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"public class NthBusinessDay implements Serializable\n"
+"{\n"
+" int n;\n"
+" String fireAtTime;\n"
+" List <Date> additionalHolidays;\n"
+" BusinessDayIntervalType interval;\n"
+" boolean excludeWeekends;\n"
+" boolean excludeUsFederalHolidays;\n"
+"\n"
+" public enum BusinessDayIntervalType { WEEKLY, MONTHLY, YEARLY }\n"
+"\n"
+" public NthBusinessDay ()\n"
+" {\n"
+" n = 1;\n"
+" fireAtTime = \"12:00\";\n"
+" additionalHolidays = new ArrayList <Date> ();\n"
+" interval = BusinessDayIntervalType.WEEKLY;\n"
+" excludeWeekends = true;\n"
+" excludeUsFederalHolidays = true;\n"
+" } \n"
+" ... ...\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:168
+#, no-c-format
+msgid ""
+"The <literal>@IntervalDuration</literal>, <literal>@IntervalCron</literal>, "
+"and <literal>@IntervalNthBusinessDay</literal> annotations are mutually "
+"exclusive. If they are used in the same method, a <literal>RuntimeException</"
+"literal> will be thrown."
+msgstr ""
+
+#. Tag: title
+#: Jms.xml:173
+#, no-c-format
+msgid "Asynchronous events"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:174
+#, no-c-format
+msgid ""
+"Component-driven events may also be asynchronous. To raise an event for "
+"asynchronous processing, simply call the <literal>raiseAsynchronousEvent()</"
+"literal> method of the <literal>Events</literal> class. To schedule a timed "
+"event, call the <literal>raiseTimedEvent()</literal> method, passing a "
+"<emphasis>schedule</emphasis> object (for the default dispatcher or timer "
+"service dispatcher, use <literal>TimerSchedule</literal>). Components may "
+"observe asynchronous events in the usual way, but remember that only the "
+"business process context is propagated to the asynchronous thread."
+msgstr ""
+
+#. Tag: title
+#: Jms.xml:188
+#, no-c-format
+msgid "Messaging in Seam"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:190
+#, no-c-format
+msgid ""
+"Seam makes it easy to send and receive JMS messages to and from Seam "
+"components."
+msgstr ""
+
+#. Tag: title
+#: Jms.xml:196
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:197
+#, no-c-format
+msgid ""
+"To configure Seam's infrastructure for sending JMS messages, you need to "
+"tell Seam about any topics and queues you want to send messages to, and also "
+"tell Seam where to find the <literal>QueueConnectionFactory</literal> and/or "
+"<literal>TopicConnectionFactory</literal>."
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:205
+#, no-c-format
+msgid ""
+"Seam defaults to using <literal>UIL2ConnectionFactory</literal> which is the "
+"usual connection factory for use with JBossMQ. If you are using some other "
+"JMS provider, you need to set one or both of <literal>queueConnection."
+"queueConnectionFactoryJndiName</literal> and <literal>topicConnection."
+"topicConnectionFactoryJndiName</literal> in <literal>seam.properties</"
+"literal>, <literal>web.xml</literal> or <literal>components.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:215
+#, no-c-format
+msgid ""
+"You also need to list topics and queues in <literal>components.xml</literal> "
+"to install Seam managed <literal>TopicPublisher</literal>s and "
+"<literal>QueueSender</literal>s:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:221
+#, no-c-format
+msgid ""
+"<![CDATA[<jms:managed-topic-publisher name=\"stockTickerPublisher\" \n"
+" auto-create=\"true\" \n"
+" topic-jndi-name=\"topic/stockTickerTopic\"/>\n"
+"\n"
+"<jms:managed-queue-sender name=\"paymentQueueSender\" \n"
+" auto-create=\"true\" \n"
+" queue-jndi-name=\"queue/paymentQueue\"/>]]>"
+msgstr ""
+
+#. Tag: title
+#: Jms.xml:226
+#, no-c-format
+msgid "Sending messages"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:227
+#, no-c-format
+msgid ""
+"Now, you can inject a JMS <literal>TopicPublisher</literal> and "
+"<literal>TopicSession</literal> into any component:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:232
+#, no-c-format
+msgid ""
+"<![CDATA[@In \n"
+"private TopicPublisher stockTickerPublisher; \n"
+"@In \n"
+"private TopicSession topicSession;\n"
+"\n"
+"public void publish(StockPrice price) {\n"
+" try\n"
+" {\n"
+" stockTickerPublisher.publish( topicSession.createObjectMessage"
+"(price) );\n"
+" } \n"
+" catch (Exception ex)\n"
+" {\n"
+" throw new RuntimeException(ex);\n"
+" } \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:234
+#, no-c-format
+msgid "Or, for working with a queue:"
+msgstr ""
+
+#. Tag: programlisting
+#: Jms.xml:236
+#, no-c-format
+msgid ""
+"<![CDATA[@In\n"
+"private QueueSender paymentQueueSender; \n"
+"@In\n"
+"private QueueSession queueSession;\n"
+"\n"
+"public void publish(Payment payment) {\n"
+" try\n"
+" {\n"
+" paymentQueueSender.send( queueSession.createObjectMessage"
+"(payment) );\n"
+" } \n"
+" catch (Exception ex)\n"
+" {\n"
+" throw new RuntimeException(ex);\n"
+" } \n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Jms.xml:241
+#, no-c-format
+msgid "Receiving messages using a message-driven bean"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:242
+#, no-c-format
+msgid ""
+"You can process messages using any EJB3 message driven bean. Message-driven "
+"beans may even be Seam components, in which case it is possible to inject "
+"other event and application scoped Seam components."
+msgstr ""
+
+#. Tag: title
+#: Jms.xml:250
+#, no-c-format
+msgid "Receiving messages in the client"
+msgstr ""
+
+#. Tag: para
+#: Jms.xml:251
+#, no-c-format
+msgid ""
+"Seam Remoting lets you subscribe to a JMS topic from client-side JavaScript. "
+"This is described in <xref linkend=\"remoting\"/>."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Mail.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Mail.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Mail.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,1156 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Mail.xml:2
+#, no-c-format
+msgid "Email"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:3
+#, no-c-format
+msgid ""
+"Seam now includes an optional components for templating and sending emails."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:7
+#, no-c-format
+msgid ""
+"Email support is provided by <literal>jboss-seam-mail.jar</literal>. This "
+"JAR contains the mail JSF controls, which are used to construct emails, and "
+"the <literal>mailSession</literal> manager component."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:13
+#, no-c-format
+msgid ""
+"The examples/mail project contains an example of the email support in "
+"action. It demonstrates proper packaging, and it contains a number of "
+"example that demonstrate the key features currently supported."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:19
+#, no-c-format
+msgid ""
+"You can also test your mail's using Seam's integration testing environment. "
+"See <xref linkend=\"testing.mail\"/>."
+msgstr ""
+
+#. Tag: title
+#: Mail.xml:25
+#, no-c-format
+msgid "Creating a message"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:27
+#, no-c-format
+msgid ""
+"You don't need to learn a whole new templating language to use Seam Mail "
+"— an email is just facelet!"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:32
+#, no-c-format
+msgid ""
+"<![CDATA[<m:message xmlns=\"http://www.w3.org/1999/xhtml\"\n"
+" xmlns:m=\"http://jboss.com/products/seam/mail\"\n"
+" xmlns:h=\"http://java.sun.com/jsf/html\">\n"
+" \n"
+" <m:from name=\"Peter\" address=\"peter(a)example.com\" />\n"
+" <m:to name=\"#{person.firstname} #{person.lastname}\">#{person.address}</"
+"m:to>\n"
+" <m:subject>Try out Seam!</m:subject>\n"
+" \n"
+" <m:body>\n"
+" <p><h:outputText value=\"Dear #{person.firstname}\" />,</p>\n"
+" <p>You can try out Seam by visiting \n"
+" <a href=\"http://labs.jboss.com/jbossseam\">http://labs.jboss.com/"
+"jbossseam</a>.</p>\n"
+" <p>Regards,</p>\n"
+" <p>Pete</p>\n"
+" </m:body>\n"
+" \n"
+"</m:message>]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:34
+#, no-c-format
+msgid ""
+"The <literal><m:message></literal> tag wraps the whole message, and "
+"tells Seam to start rendering an email. Inside the <literal><m:message>"
+"</literal> tag we use an <literal><m:from></literal> tag to set who "
+"the message is from, a <literal><m:to></literal> tag to specify a "
+"sender (notice how we use EL as we would in a normal facelet), and a "
+"<literal><m:subject></literal> tag."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:43
+#, no-c-format
+msgid ""
+"The <literal><m:body></literal> tag wraps the body of the email. You "
+"can use regular HTML tags inside the body as well as JSF components."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:48
+#, no-c-format
+msgid ""
+"So, now you have your email template, how do you go about sending it? Well, "
+"at the end of rendering the <literal>m:message</literal> the "
+"<literal>mailSession</literal> is called to send the email, so all you have "
+"to do is ask Seam to render the view:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:55
+#, no-c-format
+msgid ""
+"<![CDATA[@In(create=true)\n"
+"private Renderer renderer;\n"
+" \n"
+"public void send() {\n"
+" try {\n"
+" renderer.render(\"/simple.xhtml\");\n"
+" facesMessages.add(\"Email sent successfully\");\n"
+" } \n"
+" catch (Exception e) {\n"
+" facesMessages.add(\"Email sending failed: \" + e.getMessage());\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:57
+#, no-c-format
+msgid ""
+"If, for example, you entered an invalid email address, then an exception "
+"would be thrown, which is caught and then displayed to the user."
+msgstr ""
+
+#. Tag: title
+#: Mail.xml:63
+#, no-c-format
+msgid "Attachments"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:64
+#, no-c-format
+msgid ""
+"Seam makes it easy to attach files to an email. It supports most of the "
+"standard java types used when working with files."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:69
+#, no-c-format
+msgid "If you wanted to email the <literal>jboss-seam-mail.jar</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:73
+#, no-c-format
+msgid "<![CDATA[<m:attachment value=\"/WEB-INF/lib/jboss-seam-mail.jar\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:75
+#, no-c-format
+msgid ""
+"Seam will load the file from the classpath, and attach it to the email. By "
+"default it would be attached as <literal>jboss-seam-mail.jar</literal>; if "
+"you wanted it to have another name you would just add the <literal>fileName</"
+"literal> attribute:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:81
+#, no-c-format
+msgid ""
+"<![CDATA[<m:attachment value=\"/WEB-INF/lib/jboss-seam-mail.jar\" fileName="
+"\"this-is-so-cool.jar\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:83
+#, no-c-format
+msgid ""
+"You could also attach a <literal>java.io.File</literal>, a <literal>java.net."
+"URL</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:87
+#, no-c-format
+msgid "<![CDATA[<m:attachment value=\"#{numbers}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:89
+#, no-c-format
+msgid ""
+"Or a <literal>byte[]</literal> or a <literal>java.io.InputStream</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:93
+#, no-c-format
+msgid ""
+"<![CDATA[<m:attachment value=\"#{person.photo}\" contentType=\"image/png\"/"
+">]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:95
+#, no-c-format
+msgid ""
+"You'll notice that for a <literal>byte[]</literal> and a <literal>java.io."
+"InputStream</literal> you need to specify the MIME type of the attachment "
+"(as that information is not carried as part of the file)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:101
+#, no-c-format
+msgid ""
+"And it gets even better, you can attach a Seam generated PDF, or any "
+"standard JSF view, just by wrapping a <literal><m:attachment></"
+"literal> around the normal tags you would use:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:107
+#, no-c-format
+msgid ""
+"<![CDATA[<m:attachment fileName=\"tiny.pdf\">\n"
+" <p:document> \n"
+" A very tiny "
+"PDF \n"
+" </p:document>\n"
+"</m:attachment>]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:109
+#, no-c-format
+msgid ""
+"If you had a set of files you wanted to attach (for example a set of "
+"pictures loaded from a database) you can just use a <literal><ui:"
+"repeat></literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:114
+#, no-c-format
+msgid ""
+"<![CDATA[<ui:repeat value=\"#{people}\" var=\"person\">\n"
+" <m:attachment value=\"#{person.photo}\" contentType=\"image/jpeg\" "
+"fileName=\"#{person.firstname}_#{person.lastname}.jpg\"/>\n"
+"</ui:repeat>]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:116
+#, no-c-format
+msgid "And if you want to display an attached image inline:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:120
+#, no-c-format
+msgid ""
+"<![CDATA[<m:attachment \n"
+" value=\"#{person.photo}\" \n"
+" contentType=\"image/jpeg\" \n"
+" fileName=\"#{person.firstname}_#{person.lastname}.jpg\" \n"
+" status=\"personPhoto\" \n"
+" disposition=\"inline\" />\n"
+"<img src=\"cid:#{personPhoto.contentId}\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:122
+#, no-c-format
+msgid ""
+"You may be wondering what <literal>cid:#{...}</literal> does. Well, the IETF "
+"specified that by putting this as the src for your image, the attachments "
+"will be looked at when trying to locate the image (the <literal>Content-ID</"
+"literal>'s must match) — magic!"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:129
+#, no-c-format
+msgid ""
+"You must declare the attachment before trying to access the status object."
+msgstr ""
+
+#. Tag: title
+#: Mail.xml:136
+#, no-c-format
+msgid "HTML/Text alternative part"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:138
+#, no-c-format
+msgid ""
+"Whilst most mail readers nowadays support HTML, some don't, so you can add a "
+"plain text alternative to your email body:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:143
+#, no-c-format
+msgid ""
+"<![CDATA[<m:body>\n"
+" <f:facet name=\"alternative\">Sorry, your email reader can't show our "
+"fancy email, \n"
+"please go to http://labs.jboss.com/jbossseam to explore Seam.</f:facet>\n"
+"</m:body>]]>"
+msgstr ""
+
+#. Tag: title
+#: Mail.xml:148
+#, no-c-format
+msgid "Multiple recipients"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:150
+#, no-c-format
+msgid ""
+"Often you'll want to send an email to a group of recipients (for example "
+"your users). All of the recipient mail tags can be placed inside a "
+"<literal><ui:repeat></literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:156
+#, no-c-format
+msgid ""
+"<![CDATA[<ui:repeat value=\"#{allUsers} var=\"user\">\n"
+" <m:to name=\"#{user.firstname} #{user.lastname}\" address=\"#{user."
+"emailAddress}\" />\n"
+"</ui:repeat>]]>"
+msgstr ""
+
+#. Tag: title
+#: Mail.xml:161
+#, no-c-format
+msgid "Multiple messages"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:163
+#, no-c-format
+msgid ""
+"Sometimes, however, you need to send a slightly different message to each "
+"recipient (e.g. a password reset). The best way to do this is to place the "
+"whole message inside a <literal><ui:repeat></literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:169
+#, no-c-format
+msgid ""
+"<![CDATA[<ui:repeat value=\"#{people}\" var=\"p\">\n"
+" <m:message>\n"
+" <m:from name=\"#{person.firstname} #{person.lastname}\">#{person."
+"address}</m:from>\n"
+" <m:to name=\"#{p.firstname}\">#{p.address}</m:to>\n"
+" ...\n"
+" </m:message>\n"
+"</ui:repeat>]]>"
+msgstr ""
+
+#. Tag: title
+#: Mail.xml:174
+#, no-c-format
+msgid "Templating"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:176
+#, no-c-format
+msgid ""
+"The mail templating example shows that facelets templating Just Works with "
+"the Seam mail tags."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:181
+#, no-c-format
+msgid "Our <literal>template.xhtml</literal> contains:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:185
+#, no-c-format
+msgid ""
+"<![CDATA[<m:message>\n"
+" <m:from name=\"Seam\" address=\"do-not-reply(a)jboss.com\" />\n"
+" <m:to name=\"#{person.firstname} #{person.lastname}\">#{person.address}</"
+"m:to>\n"
+" <m:subject>#{subject}</m:subject>\n"
+" <m:body>\n"
+" <html>\n"
+" <body>\n"
+" <ui:insert name=\"body\">This is the default body, specified "
+"by the template.</ui:insert>\n"
+" </body>\n"
+" </html>\n"
+" </m:body>\n"
+"</m:message>]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:187
+#, no-c-format
+msgid "Our <literal>templating.xhtml</literal> contains:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:191
+#, no-c-format
+msgid ""
+"<![CDATA[<ui:param name=\"subject\" value=\"Templating with Seam Mail\"/>\n"
+"<ui:define name=\"body\">\n"
+" <p>This example demonstrates that you can easily use <i>facelets "
+"templating</i> in email!</p>\n"
+"</ui:define>]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:193
+#, no-c-format
+msgid ""
+"You can also use facelets source tags in your email, but you must place them "
+"in a jar in <literal>WEB-INF/lib</literal> - referencing the <literal>."
+"taglib.xml</literal> from <literal>web.xml</literal> isn't reliable when "
+"using Seam Mail (if you send your mail asynchrounously Seam Mail doesn't "
+"have access to the full JSF or Servlet context, and so doesn't know about "
+"<literal>web.xml</literal> configuration parameters)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:203
+#, no-c-format
+msgid ""
+"If you do need more configure Facelets or JSF when sending mail, you'll need "
+"to override the Renderer component and do the configuration programmatically "
+"- only for advanced users!"
+msgstr ""
+
+#. Tag: title
+#: Mail.xml:213
+#, no-c-format
+msgid "Internationalisation"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:215
+#, no-c-format
+msgid ""
+"Seam supports sending internationalised messages. By default, the encoding "
+"provided by JSF is used, but this can be overridden on the template:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:221
+#, no-c-format
+msgid ""
+"<![CDATA[<m:message charset=\"UTF-8\">\n"
+" ...\n"
+"</m:message>]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:223
+#, no-c-format
+msgid ""
+"The body, subject and recipient (and from) name will be encoded. You'll need "
+"to make sure facelets uses the correct charset for parsing your pages by "
+"setting encoding of the template:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:229
+#, no-c-format
+msgid "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>]]>"
+msgstr ""
+
+#. Tag: title
+#: Mail.xml:233
+#, no-c-format
+msgid "Other Headers"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:235
+#, no-c-format
+msgid ""
+"Sometimes you'll want to add other headers to your email. Seam provides "
+"support for some (see <xref linkend=\"mail.tags\"/>). For example, we can "
+"set the importance of the email, and ask for a read receipt:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:242
+#, no-c-format
+msgid ""
+"<![CDATA[<m:message xmlns:m=\"http://jboss.com/products/seam/mail\"\n"
+" importance=\"low\"\n"
+" requestReadReceipt=\"true\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:244
+#, no-c-format
+msgid ""
+"Otherise you can add any header to the message using the <literal><m:"
+"header></literal> tag:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:249
+#, no-c-format
+msgid "<![CDATA[<m:header name=\"X-Sent-From\" value=\"JBoss Seam\"/>]]>"
+msgstr ""
+
+#. Tag: title
+#: Mail.xml:255
+#, no-c-format
+msgid "Receiving emails"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:257
+#, no-c-format
+msgid ""
+"If you are using EJB then you can use a MDB (Message Driven Bean) to receive "
+"email. JBoss provides a JCA adaptor — <literal>mail-ra.rar</literal> "
+"— but the version distributed with JBoss AS has a number of "
+"limitations (and isn't bundled in some versions) therefore we recommend "
+"using the <literal>mail-ra.rar</literal> distributed with Seam is "
+"recommended (it's in the <literal>mail</literal> directory in the Seam "
+"bundle). <literal>mail-ra.rar</literal> should be placed in <literal>"
+"$JBOSS_HOME/server/default/deploy</literal>; if the version of JBoss AS you "
+"use already has this file, replace it."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:269
+#, no-c-format
+msgid "You can configure it like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:273
+#, no-c-format
+msgid ""
+"<![CDATA[@MessageDriven(activationConfig={\n"
+" @ActivationConfigProperty(propertyName=\"mailServer\", propertyValue="
+"\"localhost\"),\n"
+" @ActivationConfigProperty(propertyName=\"mailFolder\", propertyValue="
+"\"INBOX\"),\n"
+" @ActivationConfigProperty(propertyName=\"storeProtocol\", propertyValue="
+"\"pop3\"),\n"
+" @ActivationConfigProperty(propertyName=\"userName\", propertyValue=\"seam"
+"\"),\n"
+" @ActivationConfigProperty(propertyName=\"password\", propertyValue=\"seam"
+"\")\n"
+"})\n"
+"@ResourceAdapter(\"mail-ra.rar\")\n"
+"@Name(\"mailListener\")\n"
+"public class MailListenerMDB implements MailListener {\n"
+"\n"
+" @In(create=true)\n"
+" private OrderProcessor orderProcessor;\n"
+"\n"
+" public void onMessage(Message message) {\n"
+" // Process the message\n"
+" orderProcessor.process(message.getSubject());\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:275
+#, no-c-format
+msgid ""
+"Each message received will cause <literal>onMessage(Message message)</"
+"literal> to be called. Most Seam annotations will work inside a MDB but you "
+"musn't access the persistence context."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:281
+#, no-c-format
+msgid ""
+"You can find more information on<literal>mail-ra.rar</literal> at <ulink url="
+"\"http://wiki.jboss.org/wiki/Wiki.jsp?page=InboundJavaMail\">http://wiki."
+"jboss.org/wiki/Wiki.jsp?page=InboundJavaMail</ulink>."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:286
+#, no-c-format
+msgid ""
+"If you aren't using JBoss AS you can still use <literal>mail-ra.rar</"
+"literal> or you may find your application server includes a similar adapter."
+msgstr ""
+
+#. Tag: title
+#: Mail.xml:294
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:296
+#, no-c-format
+msgid ""
+"To include Email support in your application, include <literal>jboss-seam-"
+"mail.jar</literal> in your <literal>WEB-INF/lib</literal> directory. If you "
+"are using JBoss AS there is no further configuration needed to use Seam's "
+"email support. Otherwise you need to make sure you have the JavaMail API, an "
+"implementation of the JavaMail API present (the API and impl used in JBoss "
+"AS are distributed with seam as <literal>lib/mail.jar</literal>), and a copy "
+"of the Java Activation Framework (distributed with Seam as <literal>lib/"
+"activation.jar</literal>."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:307
+#, no-c-format
+msgid ""
+"The Seam Email module requires the use of Facelets as the view technology. "
+"Future versions of the library may also support the use of JSP. "
+"Additionally, it requires the use of the seam-ui package."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:313
+#, no-c-format
+msgid ""
+"The <literal>mailSession</literal> component uses JavaMail to talk to a "
+"'real' SMTP server."
+msgstr ""
+
+#. Tag: literal
+#: Mail.xml:319
+#, no-c-format
+msgid "mailSession"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:321
+#, no-c-format
+msgid ""
+"A JavaMail Session may be available via a JNDI lookup if you are working in "
+"an JEE environment or you can use a Seam configured Session."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:326
+#, no-c-format
+msgid ""
+"The mailSession component's properties are described in more detail in <xref "
+"linkend=\"components.mail\"/>."
+msgstr ""
+
+#. Tag: title
+#: Mail.xml:332
+#, no-c-format
+msgid "JNDI lookup in JBoss AS"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:334
+#, no-c-format
+msgid ""
+"The JBossAS <literal>deploy/mail-service.xml</literal> configures a JavaMail "
+"session binding into JNDI. The default service configuration will need "
+"altering for your network. <ulink url=\"http://wiki.jboss.org/wiki/Wiki.jsp?"
+"page=JavaMail\">http://wiki.jboss.org/wiki/Wiki.jsp?page=JavaMail</ulink> "
+"describes the service in more detail."
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:342
+#, no-c-format
+msgid ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+" xmlns:core=\"http://jboss.com/products/seam/core\"\n"
+" xmlns:mail=\"http://jboss.com/products/seam/mail\">\n"
+" \n"
+" <mail:mail-session session-jndi-name=\"java:/Mail\"/>\n"
+" \n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:344
+#, no-c-format
+msgid ""
+"Here we tell Seam to get the mail session bound to <literal>java:/Mail</"
+"literal> from JNDI."
+msgstr ""
+
+#. Tag: title
+#: Mail.xml:352
+#, no-c-format
+msgid "Seam configured Session"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:354
+#, no-c-format
+msgid ""
+"A mail session can be configured via <literal>components.xml</literal>. Here "
+"we tell Seam to use <literal>smtp.example.com</literal> as the smtp server:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:360
+#, no-c-format
+msgid ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+" xmlns:core=\"http://jboss.com/products/seam/core\"\n"
+" xmlns:mail=\"http://jboss.com/products/seam/mail\">\n"
+" \n"
+" <mail:mail-session host=\"smtp.example.com\"/>\n"
+" \n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: title
+#: Mail.xml:367
+#, no-c-format
+msgid "Meldware"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:369
+#, no-c-format
+msgid ""
+"Seam's mail examples use Meldware (from <ulink url=\"http://buni.org\">buni."
+"org</ulink>) as a mail server. Meldware is a groupware package that provides "
+"<literal>SMTP</literal>, <literal>POP3</literal>, <literal>IMAP</literal>, "
+"webmail, a shared calendar and an graphical admin tool; it's written as a "
+"JEE application so can be deployed onto JBoss AS alongside your Seam "
+"application."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:378
+#, no-c-format
+msgid ""
+"The version of Meldware distributed with Seam (in the <literal>mail/buni-"
+"meldware</literal> folder) is specially tailored for development - "
+"mailboxes, users and aliases (email addresses) are created every time the "
+"application deploys. If you want to use Meldware in production you should "
+"install the latest release from <ulink url=\"http://buni.org\">buni.org</"
+"ulink>."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:385
+#, no-c-format
+msgid ""
+"To create mailboxes, users and aliases, you can use the <literal>meldware</"
+"literal> component:"
+msgstr ""
+
+#. Tag: programlisting
+#: Mail.xml:390
+#, no-c-format
+msgid ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+" xmlns:core=\"http://jboss.com/products/seam/core\"\n"
+" xmlns:mail=\"http://jboss.com/products/seam/mail\">\n"
+" \n"
+" <mail:mail-session host=\"smtp.example.com\"/>\n"
+" \n"
+" <mail:meldware>\n"
+" <mail:users>\n"
+" <value>#{duke}</value>\n"
+" <value>#{root}</value>\n"
+" </mail:users>\n"
+" </mail:meldware>\n"
+" \n"
+" <mail:meldware-user name=\"duke\" username=\"duke\" password="
+"\"duke\">\n"
+" <mail:aliases>\n"
+" <value>duke(a)jboss.org</value>\n"
+" <value>duke(a)jboss.com</value>\n"
+" </mail:aliases>\n"
+" <mail:meldware-user name=\"root\" username=\"root\" password="
+"\"root\" administrator=\"true\" /> \n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:392
+#, no-c-format
+msgid ""
+"Here we've created two users, <literal>duke</literal>, who has two email "
+"addresses and an administrator with the username <literal>root</literal>."
+msgstr ""
+
+#. Tag: title
+#: Mail.xml:400
+#, no-c-format
+msgid "Tags"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:402
+#, no-c-format
+msgid ""
+"Emails are generated using tags in the <literal>http://jboss.com/products/"
+"seam/mail</literal> namespace. Documents should always have the "
+"<literal>message</literal> tag at the root of the message. The message tag "
+"prepares Seam to generate an email."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:409
+#, no-c-format
+msgid ""
+"The standard templating tags of facelets can be used as normal. Inside the "
+"body you can use any JSF tag; if it requires access to external resources "
+"(stylesheets, javascript) then be sure to set the <literal>urlBase</literal>."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:418
+#, no-c-format
+msgid "<m:message>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:420
+#, no-c-format
+msgid "Root tag of a mail message"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:425
+#, no-c-format
+msgid ""
+"<literal>importance</literal> — low, normal or high. By default "
+"normal, this sets the importance of the mail message."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:431
+#, no-c-format
+msgid ""
+"<literal>precedence</literal> — sets the precedence of the message (e."
+"g. bulk)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:437
+#, no-c-format
+msgid ""
+"<literal>requestReadReceipt</literal> — by default false, if set, a "
+"read receipt request will be will be added, with the read receipt being sent "
+"to the <literal>From:</literal> address."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:445
+#, no-c-format
+msgid ""
+"<literal>urlBase</literal> — If set, the value is prepended to the "
+"<literal>requestContextPath</literal> allowing you to use components such as "
+"<literal><h:graphicImage></literal> in your emails."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:456
+#, no-c-format
+msgid "<m:from>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:458
+#, no-c-format
+msgid ""
+"Set's the From: address for the email. You can only have one of these per "
+"email."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:464
+#, no-c-format
+msgid "<literal>name</literal> — the name the email should come from."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:470 Mail.xml:487
+#, no-c-format
+msgid ""
+"<literal>address</literal> — the email address the email should come "
+"from."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:479
+#, no-c-format
+msgid "<m:replyTo>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:481
+#, no-c-format
+msgid ""
+"Set's the Reply-to: address for the email. You can only have one of these "
+"per email."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:496
+#, no-c-format
+msgid "<m:to>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:498
+#, no-c-format
+msgid ""
+"Add a recipient to the email. Use multiple <m:to> tags for multiple "
+"recipients. This tag can be safely placed inside a repeat tag such as <ui:"
+"repeat>."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:505 Mail.xml:527 Mail.xml:550
+#, no-c-format
+msgid "<literal>name</literal> — the name of the recipient."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:510 Mail.xml:532 Mail.xml:555
+#, no-c-format
+msgid "<literal>address</literal> — the email address of the recipient."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:518
+#, no-c-format
+msgid "<m:cc>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:520
+#, no-c-format
+msgid ""
+"Add a cc recipient to the email. Use multiple <m:cc> tags for multiple "
+"ccs. This tag can be safely placed inside a iterator tag such as <ui:"
+"repeat>."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:541
+#, no-c-format
+msgid "<m:bcc>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:543
+#, no-c-format
+msgid ""
+"Add a bcc recipient to the email. Use multiple <m:bcc> tags for "
+"multiple bccs. This tag can be safely placed inside a repeat tag such as <"
+"ui:repeat>."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:564
+#, no-c-format
+msgid "<m:header>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:566
+#, no-c-format
+msgid ""
+"Add a header to the email (e.g. <literal>X-Sent-From: JBoss Seam</literal>)"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:571
+#, no-c-format
+msgid ""
+"<literal>name</literal> — The name of the header to add (e.g. "
+"<literal>X-Sent-From</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:577
+#, no-c-format
+msgid ""
+"<literal>value</literal> — The value of the header to add (e.g. "
+"<literal>JBoss Seam</literal>)."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:586
+#, no-c-format
+msgid "<m:attachment>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:588
+#, no-c-format
+msgid "Add an attachment to the email."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:593
+#, no-c-format
+msgid "<literal>value</literal> — The file to attach:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:598
+#, no-c-format
+msgid ""
+"<literal>String</literal> — A <literal>String</literal> is interpreted "
+"as a path to file within the classpath"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:604
+#, no-c-format
+msgid ""
+"<literal>java.io.File</literal> — An EL expression can reference a "
+"<literal>File</literal> object"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:610
+#, no-c-format
+msgid ""
+"<literal>java.net.URL</literal> — An EL expression can reference a "
+"<literal>URL</literal> object"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:616
+#, no-c-format
+msgid ""
+"<literal>java.io.InputStream</literal> — An EL expression can "
+"reference an <literal>InputStream</literal>. In this case both a "
+"<literal>fileName</literal> and a <literal>contentType</literal> must be "
+"specified."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:624
+#, no-c-format
+msgid ""
+"<literal>byte[]</literal> — An EL expression can reference an "
+"<literal>byte[]</literal>. In this case both a <literal>fileName</literal> "
+"and a <literal>contentType</literal> must be specified."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:632
+#, no-c-format
+msgid "If the value attribute is ommitted:"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:635
+#, no-c-format
+msgid ""
+"If this tag contains a <literal><p:document></literal> tag, the "
+"document described will be generated and attached to the email. A "
+"<literal>fileName</literal> should be specfied."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:643
+#, no-c-format
+msgid ""
+"If this tag contains other JSF tags a HTML document will be generated from "
+"them and attached to the email. A <literal>fileName</literal> should be "
+"specfied."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:652
+#, no-c-format
+msgid ""
+"<literal>fileName</literal> — Specify the file name to use for the "
+"attached file."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:658
+#, no-c-format
+msgid ""
+"<literal>contentType</literal> — Specify the MIME type of the attached "
+"file"
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:667
+#, no-c-format
+msgid "<m:subject>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:669
+#, no-c-format
+msgid "Set's the subject for the email."
+msgstr ""
+
+#. Tag: term
+#: Mail.xml:675
+#, no-c-format
+msgid "<m:body>"
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:677
+#, no-c-format
+msgid ""
+"Set's the body for the email. Supports an <literal>alternative</literal> "
+"facet which, if an HTML email is generated can contain alternative text for "
+"a mail reader which doesn't support html."
+msgstr ""
+
+#. Tag: para
+#: Mail.xml:684
+#, no-c-format
+msgid ""
+"<literal>type</literal> — If set to <literal>plain</literal> then a "
+"plain text email will be generated otherwise an HTML email is generated."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Oc4j.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Oc4j.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Oc4j.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,1613 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Oc4j.xml:2
+#, no-c-format
+msgid "Seam on OC4J"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:4
+#, no-c-format
+msgid ""
+"OC4J (Oracle Containers for Java) 11g (currently a \"Technology Preview\" "
+"release) is Oracle's JEE5 application server. Seam application can be "
+"deployed to OC4J, but require some additional configuration changes, and "
+"dependencies. This chapter will show you exactly what must be done. We will "
+"start by looking at the building and deploying the JEE5 Hotel Booking "
+"example application which comes with Seam. Then we will deploy a project "
+"generated by <literal>seam-gen</literal> . First a basic <literal>seam-gen</"
+"literal> application with RichFaces ajax components, and facelets. Then "
+"expand that application to include Seam security with Drools, JPA provided "
+"with hibernate, and automatic CRUD reverse engineering of a MySQL database."
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:17
+#, no-c-format
+msgid "Installation and operation of OC4J"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:18
+#, no-c-format
+msgid ""
+"First we need to install the target container - OC4j. This chapter requires "
+"you to use OC4J 11g Technology Preview (not OC4J 10g). You can download OC4J "
+"11g from <ulink url=\"http://www.oracle.com/technology/tech/java/oc4j/11/\"> "
+"http://www.oracle.com/technology/tech/java/oc4j/11/ </ulink> Below are "
+"instructions to install. launch, access, and shutdown the 11g release. For "
+"further information on installing OC4J, consult the <literal>readme.txt</"
+"literal> distributed with OC4J, or the OC4J installation guide and release "
+"notes."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:29
+#, no-c-format
+msgid "Download and unzip OC4J"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:32
+#, no-c-format
+msgid ""
+"Make sure you have <literal>$JAVA_HOME</literal> and <literal>$ORACLE_HOME</"
+"literal> set as environment variables ( <literal>$ORACLE_HOME</literal> is "
+"the directory to which you unzip OC4J). For further information on "
+"installing OC4J, consult the <literal>readme.txt</literal> distributed with "
+"OC4J"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:41
+#, no-c-format
+msgid ""
+"Applications (ear/war) are deployed to the <literal>$ORACLE_HOME/j2ee/home/"
+"applications</literal> directory."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:44
+#, no-c-format
+msgid ""
+"Note that OC4J does not support hot deployment by default. This means every "
+"time you deploy the application you must restart the server."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:49
+#, no-c-format
+msgid ""
+"Start OC4J: <literal> $ORACLE_HOME/j2ee/home/java -jar -XX:MaxPermSize=256M "
+"oc4j.jar </literal>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:51
+#, no-c-format
+msgid ""
+"You must override the default PermGen memory settings using above command. "
+"See <ulink url=\"http://www.oracle.com/technology/tech/java/oc4j/11/oc4j-"
+"relnotes.html\"> OC4J release notes </ulink> for details."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:55
+#, no-c-format
+msgid ""
+"You will be asked to set the admin password if this is the first time you "
+"have started OC4J"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:59
+#, no-c-format
+msgid ""
+"Once deployed you can check out your applications at <literal>http://"
+"localhost:8888/<your-app-path></literal>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:64
+#, no-c-format
+msgid ""
+"You can stop the server by pressing <literal>CTRL-C</literal> in the console "
+"on which the server is running."
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:72
+#, no-c-format
+msgid "The <literal>jee5/booking</literal> example"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:74
+#, no-c-format
+msgid ""
+"The <literal>jee5/booking</literal> example is based on the Hotel Booking "
+"example (which runs on JBoss AS). Out of the box it is designed to run on "
+"Glassfish, but it's easy to build it for OC4J. It is located in the <literal>"
+"$SEAM_DIST/examples/jee5/booking</literal> directory."
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:81
+#, no-c-format
+msgid "Booking Example Dependencies"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:83
+#, no-c-format
+msgid ""
+"First, lets look at the basic dependencies of the booking example. Armed "
+"with this knowledge we can look at the extra dependencies requirements that "
+"OC4J adds."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:87
+#, no-c-format
+msgid ""
+"We will show you how to get these dependencies into the application in <xref "
+"linkend=\"oc4j-build-jee5\"/> below."
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:90
+#, no-c-format
+msgid "Core Seam dependencies"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:93
+#, no-c-format
+msgid ""
+"<literal>jboss-seam.jar</literal> — We declare this as an EJB3 module "
+"(why? well Seam needs to be able to interact with container managed "
+"transactions; this is implemented as an EJB3 Stateful Session Bean)"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:100
+#, no-c-format
+msgid "jboss-el.jar"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:103
+#, no-c-format
+msgid ""
+"<literal>jboss-seam-ui.jar</literal> — Seam's JSF controls depend on "
+"Apache's commons-beanutils"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:108
+#, no-c-format
+msgid "jboss-seam-debug.jar"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:112
+#, no-c-format
+msgid "jsf-facelets.jar"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:116
+#, no-c-format
+msgid ""
+"<literal>richfaces-api.jar</literal> , <literal>richfaces-impl.jar</literal> "
+"and <literal>richfaces-ui.jar</literal> — which requires Apache "
+"commons-digester and commons-beanutils"
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:126
+#, no-c-format
+msgid "Extra dependencies"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:129
+#, no-c-format
+msgid ""
+"Hibernate — of course, we decided to use Hibernate as the JPA provider "
+"(rather than TopLink Essentials which ships with OC4J)."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:132
+#, no-c-format
+msgid "To use Hibernate as your JPA provider you need the following jars:"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:136
+#, no-c-format
+msgid "hibernate.jar"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:141
+#, no-c-format
+msgid "hibernate-annotations.jar"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:146
+#, no-c-format
+msgid "hibernate-entitymanager.jar"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:151
+#, no-c-format
+msgid "hibernate-validator.jar"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:156
+#, no-c-format
+msgid "jboss-common-core.jar"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:161
+#, no-c-format
+msgid "commons-logging.jar"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:166
+#, no-c-format
+msgid "commons-collections.jar"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:172
+#, no-c-format
+msgid ""
+"Third party jars — various jars needed for seam and this example to "
+"run."
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:176
+#, no-c-format
+msgid "javaasist.jar"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:180
+#, no-c-format
+msgid "dom4j.jar"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:184
+#, no-c-format
+msgid "cglib.jar"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:188
+#, no-c-format
+msgid "asm.jar"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:193
+#, no-c-format
+msgid "commons-beanutils.jar"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:198
+#, no-c-format
+msgid "commons-digester.jar"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:202
+#, no-c-format
+msgid ""
+"<literal>log4j.jar</literal> — This can be left out if you are not "
+"going to configure log4j. If it is packaged but not configured logging will "
+"be hidden in oc4j."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:211
+#, no-c-format
+msgid ""
+"Extra OC4J jars — Running Seam on most application servers (such as "
+"JBoss AS or Glassfish) you only need to include the dependencies for those "
+"bits of Seam you actually use (e.g. if you use Seam Text you need to include "
+"ANTLR); but, on OC4J, due to its \"interesting\" classloading you must "
+"always include them:"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:220
+#, no-c-format
+msgid "hibernate-search.jar"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:224
+#, no-c-format
+msgid ""
+"<literal>hibernate-common-annotations.jar</literal> — needed for "
+"hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:230
+#, no-c-format
+msgid "<literal>lucene-core.jar</literal> — needed for hibernate search"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:235
+#, no-c-format
+msgid "<literal>antlr.jar</literal> — needed for Seam Text"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:239
+#, no-c-format
+msgid "<literal>jbpm-jpdl.jar</literal> — needed for Seam's JBPM"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:243
+#, no-c-format
+msgid "quartz.jar"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:247
+#, no-c-format
+msgid "<literal>dbunit.jar</literal> — needed for some testing classes"
+msgstr ""
+
+#. Tag: simpara
+#: Oc4j.xml:252
+#, no-c-format
+msgid ""
+"<literal>jboss-embedded-api.jar</literal> — needed for some testing "
+"classes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:258
+#, no-c-format
+msgid ""
+"Drools — needed for Seam Security. We aren't using Seam security with "
+"Drools, but have to include it. Drools consists of 6 jars: <itemizedlist> "
+"<listitem> <simpara> <literal>drools-core.jar</literal> </simpara> </"
+"listitem> <listitem> <simpara> <literal>drools-compiler.jar</literal> </"
+"simpara> </listitem> <listitem> <simpara> <literal>janino.jar</literal> </"
+"simpara> </listitem> <listitem> <simpara> <literal>mvel141.jar</literal> </"
+"simpara> </listitem> <listitem> <simpara> <literal>core.jar</literal> </"
+"simpara> </listitem> <listitem> <simpara> <literal>antlr-runtime.jar</"
+"literal> </simpara> </listitem> </itemizedlist> Drools integration is not "
+"used in the example."
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:302 Oc4j.xml:500
+#, no-c-format
+msgid "Configuration file changes"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:304
+#, no-c-format
+msgid "There are just a few changes to be made:"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:307
+#, no-c-format
+msgid "web.xml"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:310
+#, no-c-format
+msgid ""
+"You need to declare all your ejb's in the <literal>web.xml</literal> . This "
+"is a silly requirement of a number of JEE5 application servers - for example "
+"OC4J and Glassfish."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:314
+#, no-c-format
+msgid ""
+"This is already done in the example's web.xml file, below is an example."
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:318
+#, no-c-format
+msgid ""
+"<![CDATA[<ejb-local-ref>\n"
+" <ejb-ref-name>\n"
+" jboss-seam-jee5/AuthenticatorAction/local\n"
+" </ejb-ref-name>\n"
+" <ejb-ref-type>Session</ejb-ref-type>\n"
+" <local>\n"
+" org.jboss.seam.example.booking.Authenticator\n"
+" </local>\n"
+" <ejb-link>AuthenticatorAction</ejb-link>\n"
+"</ejb-local-ref>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:322
+#, no-c-format
+msgid "persistence.xml"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:325
+#, no-c-format
+msgid ""
+"You need to provide the correct configuration for your JPA implementation. "
+"We are using Hibernate and due to OC4J bundling an old ANTLR, we need to use "
+"an alternative query factory, we also want to use the OC4J transaction "
+"manager:"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:330
+#, no-c-format
+msgid ""
+"For our example modify the <literal>resources/META-INF/persistence.xml</"
+"literal> file. Comment out the Glassfish properties and un-comment the OC4J "
+"properties."
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:336
+#, no-c-format
+msgid ""
+"<![CDATA[<property name=\"hibernate.dialect\" \n"
+" value=\"org.hibernate.dialect.HSQLDialect\"/>\n"
+"<property name=\"hibernate.query.factory_class\" \n"
+" value=\"org.hibernate.hql.classic.ClassicQueryTranslatorFactory\"/>\n"
+"<property name=\"hibernate.transaction.manager_lookup_class\" \n"
+" value=\"org.hibernate.transaction.OrionTransactionManagerLookup\"/>]]>"
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:344
+#, no-c-format
+msgid "Building the <literal>jee5/booking</literal> example"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:349
+#, no-c-format
+msgid "Modify the <literal>build.xml</literal> file in the example:"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:353
+#, no-c-format
+msgid ""
+"Un-comment the labeled OC4J-related library properties. This will include "
+"all the extra dependencies discussed above."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:356
+#, no-c-format
+msgid "It should look like the following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:359
+#, no-c-format
+msgid ""
+"<![CDATA[<!-- add libs for oc4j (eager classloading) -->\n"
+"<property name=\"jbpm.lib\" value=\"true\"/>\n"
+"<property name=\"drools.lib\" value=\"true\"/>\n"
+"<property name=\"quartz.lib\" value=\"true\" />\n"
+"<property name=\"search.lib\" value=\"true\" />\n"
+"<property name=\"dbunit.lib\" value=\"true\" />\n"
+"<property name=\"jboss-embedded-api.lib\" value=\"true\" />\n"
+" ]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:364
+#, no-c-format
+msgid ""
+"Build the demo app by running <literal>ant</literal> in the "
+"<literal>examples/jee5/booking</literal> directory. The build target is "
+"<literal>dist/jboss-seam-jee5.ear</literal>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:370
+#, no-c-format
+msgid ""
+"Copy <literal>dist/jboss-seam-jee5.ear</literal> following the instructions "
+"below."
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:378
+#, no-c-format
+msgid "Deploying the Seam application to OC4J"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:379
+#, no-c-format
+msgid ""
+"This mini-tutorial describes the (fairly tedious) steps required to deploy a "
+"JEE 5 application to OC4J. It assumes you have already downloaded and "
+"installed it following the instructions in <xref linkend=\"oc4j-install-"
+"operation\"/>. It also assumes you are deploying the <literal>jee5/booking</"
+"literal> example, using the embedded hsqldb database. To deploy another "
+"application you would need to alter the datasource and application name."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:388
+#, no-c-format
+msgid ""
+"Copy <literal>hsqldb.jar</literal> to OC4J shared library directory: "
+"<literal> cp ../../seam-gen/lib/hsqldb.jar $ORACLE_HOME/j2ee/home/applib/ </"
+"literal> (OC4J doesn't come with an embedded database so we decided to use "
+"HSQLDB)"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:395
+#, no-c-format
+msgid ""
+"Edit the OC4J datasource file <literal>$ORACLE_HOME/j2ee/home/config/data-"
+"sources.xml</literal> and, inside <literal><data-sources></literal> , "
+"add"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:401
+#, no-c-format
+msgid ""
+"<![CDATA[<managed-data-source\n"
+" connection-pool-name=\"jee5-connection-pool\"\n"
+" jndi-name=\"jdbc/__default\"\n"
+" name=\"jee5-managed-data-source\" />\n"
+"<connection-pool name=\"jee5-connection-pool\">\n"
+" <connection-factory\n"
+" factory-class=\"org.hsqldb.jdbcDriver\" \n"
+" user=\"sa\"\n"
+" password=\"\" \n"
+" url=\"jdbc:hsqldb:.\" />\n"
+"</connection-pool>]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:403
+#, no-c-format
+msgid ""
+"The <literal>jndi-name</literal> is used as the <literal>jta-data-source</"
+"literal> in <literal>persistence.xml</literal> ."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:408
+#, no-c-format
+msgid ""
+"Edit <literal>$ORACLE_HOME/j2ee/home/config/server.xml</literal> and, inside "
+"<literal><application-server></literal> , add"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:414
+#, no-c-format
+msgid ""
+"<![CDATA[<application name=\"jboss-seam-jee5\"\n"
+" path=\"../../home/applications/jboss-seam-jee5.ear\"\n"
+" parent=\"default\" \n"
+" start=\"true\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:415
+#, no-c-format
+msgid "To keep things simple use the same names as you used for project."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:419
+#, no-c-format
+msgid ""
+"Edit <literal> $ORACLE_HOME/j2ee/home/config/default-web-site.xml </"
+"literal> , and, inside <literal><web-site></literal> , add"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:425
+#, no-c-format
+msgid ""
+"<![CDATA[<web-app application=\"jboss-seam-jee5\"\n"
+" name=\"jboss-seam-jee5\" \n"
+" load-on-startup=\"true\"\n"
+" root=\"/seam-jee5\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:426
+#, no-c-format
+msgid ""
+"The <literal>root</literal> is the context path you will put into your web "
+"browser to access the application."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:430
+#, no-c-format
+msgid ""
+"Copy the application to OC4J: <literal> cp dist/jboss-seam-jee5.ear "
+"$ORACLE_HOME/j2ee/home/applications/ </literal>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:435
+#, no-c-format
+msgid ""
+"Start/stop OC4J following instructions in <xref linkend=\"oc4j-install-"
+"operation\"/> above."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:439
+#, no-c-format
+msgid "Checkout the app at: <literal>http://localhost:8888/seam-jee5</literal>"
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:447
+#, no-c-format
+msgid ""
+"Deploying an application created using <literal>seam-gen</literal> to OC4J"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:450
+#, no-c-format
+msgid ""
+"<literal>seam-gen</literal> is a great tool for developers that can quickly "
+"get you up and running with a full Seam application. However the project "
+"that it created is configured to run on JBoss AS. This means there are some "
+"extra steps needed to have it execute on OC4j. The following explanation "
+"assumes you are using the command line and a simple text editor, but of "
+"course you can use your favorite IDE. <literal>seam-gen</literal> projects "
+"come with support for Eclipse and Netbeans."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:459
+#, no-c-format
+msgid ""
+"We will start by creating and deploying a pretty simple application using "
+"<literal>seam-gen</literal> . Then we'll show you how easy it is to use "
+"<literal>seam-gen</literal> and Hibernate Tools to reverse engineer a "
+"database schema into a functional CRUD application. <literal>seam-gen</"
+"literal> will create JPA entity beans, Seam Application Framework components "
+"and JSF views for you. We will also add Seam security using Drools."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:467
+#, no-c-format
+msgid ""
+"This tutorial uses MySQL (but of course you could use any database, altering "
+"the SQL and datasources as appropriate); install, configure and run MySQL, "
+"then create a database with some sample data. Don't forget to also download "
+"the <literal>mysql-connector-java-X.jar</literal> for jdbc support. When "
+"setting up Seam security this tutorial will assume there is a table named "
+"<literal>User</literal> with columns <literal>username</literal> and "
+"<literal>password</literal> with at least one entry. Beyond that you can set "
+"up any type of sample data and tables you would like."
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:479
+#, no-c-format
+msgid "Generating a basic <literal>seam-gen</literal> application"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:481
+#, no-c-format
+msgid ""
+"First we need to tell the <literal>seam-gen</literal> what we want, run "
+"<literal>./seam setup</literal> in the seam distribution directory. Follow "
+"the settings example below based on your system and setup (ex. use your "
+"database name instead of <literal>oc4jexample</literal> )."
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:488
+#, no-c-format
+msgid ""
+"<![CDATA[> ./seam setup\n"
+"Buildfile: build.xml\n"
+"\n"
+"init:\n"
+"\n"
+"setup:\n"
+" [echo] Welcome to seam-gen :-)\n"
+" [input] Enter your Java project workspace (the directory that contains "
+"your \n"
+"Seam projects) [C:/Projects] [C:/Projects]\n"
+"/home/jbalunas/workspace\n"
+" [input] Enter your JBoss home directory [C:/Program Files/jboss-4.2.2."
+"GA] \n"
+"[C:/Program Files/jboss-4.2.2.GA]\n"
+"/home/jbalunas/jboss/jboss-4.2.2.GA\n"
+" [input] Enter the project name [myproject] [myproject]\n"
+"oc4j_example\n"
+" [echo] Accepted project name as: oc4j_example\n"
+" [input] Select a RichFaces skin (not applicable if using ICEFaces) "
+"[blueSky]\n"
+" ([blueSky], classic, ruby, wine, deepMarine, emeraldTown, sakura, DEFAULT)\n"
+"\n"
+" [input] Is this project deployed as an EAR (with EJB components) or a "
+"WAR \n"
+"(with no EJB support) [ear] ([ear], war, )\n"
+"\n"
+" [input] Enter the Java package name for your session beans [com."
+"mydomain.\n"
+"oc4j_example] [com.mydomain.oc4j_example]\n"
+"org.jboss.seam.tutorial.oc4j.action\n"
+" [input] Enter the Java package name for your entity beans [org.jboss."
+"seam.\n"
+"tutorial.oc4j.action] [org.jboss.seam.tutorial.oc4j.action]\n"
+"org.jboss.seam.tutorial.oc4j.model\n"
+" [input] Enter the Java package name for your test cases [org.jboss."
+"seam.\n"
+"tutorial.oc4j.action.test] [org.jboss.seam.tutorial.oc4j.action.test]\n"
+"org.jboss.seam.tutorial.oc4j.test\n"
+" [input] What kind of database are you using? [hsql] ([hsql], mysql, "
+"oracle,\n"
+" postgres, mssql, db2, sybase, enterprisedb, h2)\n"
+"mysql\n"
+" [input] Enter the Hibernate dialect for your database [org.hibernate.\n"
+"dialect.MySQLDialect] [org.hibernate.dialect.MySQLDialect]\n"
+"\n"
+" [input] Enter the filesystem path to the JDBC driver jar [lib/hsqldb."
+"jar] \n"
+"[lib/hsqldb.jar]\n"
+"lib/mysql-connector.jar\n"
+" [input] Enter JDBC driver class for your database [com.mysql.jdbc."
+"Driver] \n"
+"[com.mysql.jdbc.Driver]\n"
+"\n"
+" [input] Enter the JDBC URL for your database [jdbc:mysql:///test] \n"
+"[jdbc:mysql:///test]\n"
+"jdbc:mysql:///oc4jexample\n"
+" [input] Enter database username [sa] [sa]\n"
+"username\n"
+" [input] Enter database password [] []\n"
+"password\n"
+" [input] skipping input as property hibernate.default_schema.new has "
+"already \n"
+"been set.\n"
+" [input] Enter the database catalog name (it is OK to leave this blank) "
+"[] []\n"
+"\n"
+" [input] Are you working with tables that already exist in the database? "
+"[n] \n"
+" (y, [n], )\n"
+"y\n"
+" [input] Do you want to drop and recreate the database tables and data "
+"in \n"
+"import.sql each time you deploy? [n] (y, [n], )\n"
+"n\n"
+" [input] Enter your ICEfaces home directory (leave blank to omit "
+"ICEfaces) [] []\n"
+"\n"
+"[propertyfile] Creating new property file: \n"
+"/home/jbalunas/workspace/jboss-seam/seam-gen/build.properties\n"
+" [echo] Installing JDBC driver jar to JBoss server\n"
+" [copy] Copying 1 file to /home/jbalunas/jboss/jboss-4.2.2.GA/server/"
+"default/lib\n"
+" [echo] Type 'seam create-project' to create the new project\n"
+"\n"
+"BUILD SUCCESSFUL]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:490
+#, no-c-format
+msgid ""
+"Type <literal>./seam new-project</literal> to create your project and "
+"<literal>cd /home/jbalunas/workspace/oc4j_example</literal> to the newly "
+"created project."
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:497
+#, no-c-format
+msgid "Changes needed for deployment to OC4J"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:498
+#, no-c-format
+msgid "We now need to make some changes to the generated project."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:501
+#, no-c-format
+msgid "Let's start with the configuration files:"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:504
+#, no-c-format
+msgid "build.xml"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:509
+#, no-c-format
+msgid ""
+"Change the default target to archive (we aren't going to cover automatic "
+"deployment to OC4J)."
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:513
+#, no-c-format
+msgid ""
+"<![CDATA[<project name=\"oc4j_example\" default=\"archive\" basedir=\".\">]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:516
+#, no-c-format
+msgid ""
+"OC4J looks for the drools file <literal>/security.drl</literal> file in the "
+"root of the <literal>war</literal> file instead of the root of the "
+"<literal>ear</literal> file so we need to have the <literal>build.xml</"
+"literal> move it to the correct location at build time. The following must "
+"be added at the top of the <literal> <target name=\"war\" depends="
+"\"compile\" description=\"Build the distribution .war file\"> </literal> "
+"target."
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:530
+#, no-c-format
+msgid ""
+"<![CDATA[<copy todir=\"${war.dir}\">\n"
+" <fileset dir=\"${basedir}/resources\" >\n"
+" <include name=\"*.drl\" />\n"
+" </fileset>\n"
+" </copy>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:537
+#, no-c-format
+msgid "resources/META-INF/persistence-dev.xml"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:542
+#, no-c-format
+msgid ""
+"Alter the <literal>jta-data-source</literal> to be <literal>jdbc/"
+"__oc4jexample</literal> (and use this as the <literal>jndi-name</literal> "
+"when creating the data source in <literal>data-sources.xml</literal> later "
+"during deployment)."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:552
+#, no-c-format
+msgid ""
+"Add the properties (described in <literal>jee5/booking</literal> example):"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:557
+#, no-c-format
+msgid ""
+"<![CDATA[<property name=\"hibernate.query.factory_class\"\n"
+" value=\"org.hibernate.hql.classic.ClassicQueryTranslatorFactory\" />\n"
+"<property name=\"hibernate.transaction.manager_lookup_class\"\n"
+" value=\"org.hibernate.transaction.OrionTransactionManagerLookup\" />\n"
+"<property name=\"hibernate.transaction.flush_before_completion\" \n"
+" value=\"true\"/>\n"
+"<property name=\"hibernate.cache.provider_class\" \n"
+" value=\"org.hibernate.cache.HashtableCacheProvider\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:560
+#, no-c-format
+msgid ""
+"Remove the JBoss AS specific method of exposing the EntityManagerFactory:"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:564
+#, no-c-format
+msgid ""
+"<![CDATA[<property \n"
+" name=\"jboss.entity.manager.factory.jndi.name\" \n"
+" value=\"java:/oc4j_exampleEntityManagerFactory\">]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:567
+#, no-c-format
+msgid ""
+"You'll need to alter <literal>persistence-prod.xml</literal> as well if you "
+"want to deploy to OC4J using the prod profile."
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:577
+#, no-c-format
+msgid "resources/META-INF/jboss-app.xml"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:580
+#, no-c-format
+msgid ""
+"You can delete this file as we aren't deploying to JBoss AS ( <literal>jboss-"
+"app.xml</literal> is used to enable classloading isolation in JBoss AS)"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:586
+#, no-c-format
+msgid "resources/*-ds.xml"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:589
+#, no-c-format
+msgid ""
+"You can delete these file as we aren't deploying to JBoss AS (these files "
+"define datasources in JBoss AS, in OC4J you have to edit the master "
+"<literal>data-sources.xml</literal> file)"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:598
+#, no-c-format
+msgid "resources/WEB-INF/components.xml"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:603
+#, no-c-format
+msgid ""
+"Enable container managed transaction integration - add the <literal> <"
+"transaction:ejb-transaction /> </literal> component, and it's namespace "
+"declaration <literal> xmlns:transaction=\"http://jboss.com/products/seam/"
+"transaction\" </literal>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:612
+#, no-c-format
+msgid ""
+"Alter the <literal>jndi-pattern</literal> to <literal> java:comp/env/"
+"oc4j_example/#{ejbName}/local </literal>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:619
+#, no-c-format
+msgid ""
+"We want to use a Seam Managed Persistence Context in our application. "
+"Unfortunately OC4J doesn't expose the EntityManagerFactory in JNDI, but Seam "
+"provides a built-in manager component. To activate add the following entry:"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:627
+#, no-c-format
+msgid ""
+"<![CDATA[<persistence:entity-manager-factory\n"
+" auto-create=\"true\" \n"
+" name=\"oc4jEntityManagerFactory\"\n"
+" persistence-unit-name=\"oc4j_example\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:628
+#, no-c-format
+msgid ""
+"We then need to tell Seam to use it, so we alter the <literal>managed-"
+"persistence-context</literal> injecting the Entity Manager Factory into the "
+"existing element:"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:635
+#, no-c-format
+msgid ""
+"<![CDATA[<persistence:managed-persistence-context\n"
+" name=\"entityManager\"\n"
+" auto-create=\"true\"\n"
+" entity-manager-factory=\"#{oc4jEntityManagerFactory}\" />]]>"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:641
+#, no-c-format
+msgid "resources/WEB-INF/web.xml"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:644
+#, no-c-format
+msgid ""
+"You must add the Seam container managed transaction integration EJB entry "
+"below. Remember for OC4j you need to declare all your EJBs here if you "
+"modify the application further."
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:650
+#, no-c-format
+msgid ""
+"<![CDATA[<ejb-local-ref>\n"
+" <ejb-ref-name>\n"
+" oc4j_example/EjbSynchronizations/local\n"
+" </ejb-ref-name>\n"
+" <ejb-ref-type>Session</ejb-ref-type>\n"
+" <local>\n"
+" org.jboss.seam.transaction.LocalEjbSynchronizations\n"
+" </local>\n"
+" <ejb-link>EjbSynchronizations</ejb-link>\n"
+"</ejb-local-ref>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:655
+#, no-c-format
+msgid "resources/META-INF/orion-application.xml"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:660
+#, no-c-format
+msgid ""
+"This is a file that you must create so that RichFaces and Ajax4Jsf "
+"stylesheets will work with OC4J. This file basically tells OC4J not force "
+"its own inherited URL settings."
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:666
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version = '1.0' encoding = 'utf-8'?>\n"
+"<orion-application\n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:noNamespaceSchemaLocation=\"http://xmlns.oracle.com/oracleas/"
+"schema/\n"
+" orion-"
+"application-10_0.xsd\"\n"
+" schema-major-version=\"10\"\n"
+" schema-minor-version=\"0\"\n"
+" component-classification=\"internal\">\n"
+"\n"
+" <imported-shared-libraries>\n"
+" <remove-inherited name=\"oracle.xml\"/>\n"
+" </imported-shared-libraries>\n"
+"</orion-application>]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:669
+#, no-c-format
+msgid ""
+"Now you need to tell the <literal>build.xml</literal> file that it needs to "
+"copy this file to the <literal>ear</literal> archive. Find the <literal> <"
+"target name=\"ear\" description=\"Build the EAR\"> </literal> target and "
+"modify the <literal> <copy todir=\"${ear.dir}/META-INF\"> </literal> "
+"section to look like the following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:681
+#, no-c-format
+msgid ""
+"<![CDATA[<copy todir=\"${ear.dir}/META-INF\">\n"
+" <fileset dir=\"${basedir}/resources/META-INF\">\n"
+" <include name=\"application.xml\" />\n"
+" <include name=\"orion-application.xml\"/>\n"
+" <include name=\"jboss-app.xml\" />\n"
+" </fileset>\n"
+" </copy>]]>"
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:689
+#, no-c-format
+msgid "Extra jar dependencies"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:690
+#, no-c-format
+msgid ""
+"This application has similar requirements as the <literal>jee5/booking</"
+"literal> example above."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:692
+#, no-c-format
+msgid ""
+"The <literal>build.xml</literal> must be modified to add the jars listed "
+"below to the generated archive files. Look for the <literal><fileset dir="
+"\"${basedir}\"></literal> section below and add the imports underneath "
+"the other libraries being imported."
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:699
+#, no-c-format
+msgid ""
+"<![CDATA[<target name=\"ear\" description=\"Build the EAR\">\n"
+" <copy todir=\"${ear.dir}\">\n"
+" <fileset dir=\"${basedir}/resources\">\n"
+" <include name=\"*jpdl.xml\" />\n"
+" <include name=\"*hibernate.cfg.xml\" />\n"
+" <include name=\"jbpm.cfg.xml\" />\n"
+" <include name=\"*.drl\" />\n"
+" </fileset>\n"
+" <fileset dir=\"${lib.dir}\">\n"
+" <include name=\"jboss-seam.jar\" />\n"
+" </fileset>\n"
+" <fileset dir=\"${basedir}\">\n"
+" <include name=\"lib/jbpm*.jar\" />\n"
+" <include name=\"lib/jboss-el.jar\" />\n"
+" <include name=\"lib/drools-*.jar\"/>\n"
+" <include name=\"lib/janino*.jar\"/>\n"
+" <include name=\"lib/antlr-*.jar\"/>\n"
+" <include name=\"lib/mvel*.jar\"/>\n"
+" <include name=\"lib/richfaces-api*.jar\" />\n"
+" </fileset>\n"
+" </copy>\n"
+" <copy todir=\"${ear.dir}/META-INF\">\n"
+" <fileset dir=\"${basedir}/resources/META-INF\">\n"
+" <include name=\"application.xml\" />\n"
+" <include name=\"jboss-app.xml\" />\n"
+" </fileset>\n"
+" </copy>\n"
+"</target>]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:702
+#, no-c-format
+msgid "Hibernate:"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:705
+#, no-c-format
+msgid ""
+"<![CDATA[<include name=\"lib/hibernate.jar\"/>\n"
+"<include name=\"lib/hibernate-annotations.jar\"/>\n"
+"<include name=\"lib/hibernate-commons-annotations.jar\"/>\n"
+"<include name=\"lib/hibernate-entitymanager.jar\"/>\n"
+"<include name=\"lib/hibernate-search.jar\"/>\n"
+"<include name=\"lib/hibernate-validator.jar\"/>\n"
+"<include name=\"lib/commons-logging.jar\"/>\n"
+"<include name=\"lib/commons-collections.jar\"/>\n"
+"<include name=\"lib/jboss-common-core.jar\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:708
+#, no-c-format
+msgid ""
+"Drools — because we are using Drools to provide Seam Security rules, "
+"we need to add in Eclipse JDT compiler (you don't need this on JBoss AS; "
+"again this is due to OC4J's classloading):"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:714
+#, no-c-format
+msgid "<![CDATA[<include name=\"lib/core.jar\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:717
+#, no-c-format
+msgid ""
+"Third party jars — most of these are only needed because of OC4J's "
+"classloading:"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:721
+#, no-c-format
+msgid ""
+"<![CDATA[<include name=\"lib/javassist.jar\"/>\n"
+"<include name=\"lib/quartz.jar\"/>\n"
+"<include name=\"lib/dbunit.jar\"/>\n"
+"<include name=\"lib/jboss-embedded-api.jar\"/>\n"
+"<include name=\"lib/dom4j.jar\"/> \n"
+"<include name=\"lib/lucene-core.jar\"/>\n"
+"<include name=\"lib/cglib.jar\"/>\n"
+"<include name=\"lib/asm.jar\"/>\n"
+"<include name=\"lib/commons-beanutils.jar\"/>\n"
+"<include name=\"lib/commons-digester.jar\"/>\n"
+"<include name=\"lib/antlr.jar\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:725
+#, no-c-format
+msgid "You should end up with something like:"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:728
+#, no-c-format
+msgid ""
+"<![CDATA[<fileset dir=\"${basedir}\">\n"
+" <include name=\"lib/jbpm*.jar\" />\n"
+" <include name=\"lib/jboss-el.jar\" />\n"
+" <include name=\"lib/drools-*.jar\"/>\n"
+" <include name=\"lib/janino*.jar\"/>\n"
+" <include name=\"lib/antlr-*.jar\"/>\n"
+" <include name=\"lib/mvel*.jar\"/>\n"
+" <include name=\"lib/richfaces-api*.jar\" />\n"
+" <include name=\"lib/hibernate.jar\"/>\n"
+" <include name=\"lib/hibernate-annotations.jar\"/>\n"
+" <include name=\"lib/hibernate-commons-annotations.jar\"/>\n"
+" <include name=\"lib/hibernate-entitymanager.jar\"/>\n"
+" <include name=\"lib/hibernate-search.jar\"/>\n"
+" <include name=\"lib/hibernate-validator.jar\"/>\n"
+" <include name=\"lib/commons-logging.jar\"/>\n"
+" <include name=\"lib/commons-collections.jar\"/>\n"
+" <include name=\"lib/jboss-common-core.jar\"/>\n"
+" <include name=\"lib/core.jar\"/>\n"
+" <include name=\"lib/javassist.jar\"/>\n"
+" <include name=\"lib/quartz.jar\"/>\n"
+" <include name=\"lib/dbunit.jar\"/>\n"
+" <include name=\"lib/jboss-embedded-api.jar\"/>\n"
+" <include name=\"lib/dom4j.jar\"/> \n"
+" <include name=\"lib/lucene-core.jar\"/>\n"
+" <include name=\"lib/cglib.jar\"/>\n"
+" <include name=\"lib/asm.jar\"/>\n"
+" <include name=\"lib/commons-beanutils.jar\"/>\n"
+" <include name=\"lib/commons-digester.jar\"/>\n"
+" <include name=\"lib/antlr.jar\"/>\n"
+"</fileset>]]>"
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:733
+#, no-c-format
+msgid "Building and deploying the seam-gen'd application to OC4J"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:735
+#, no-c-format
+msgid ""
+"These instructions are very similar to the ones in <xref linkend=\"oc4j-app-"
+"deploy\"/> but with the correct references for the <literal>oc4j_example</"
+"literal> application."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:741
+#, no-c-format
+msgid ""
+"Build your application by calling <literal>ant</literal> in the base "
+"directory of your project (ex. <literal>/home/jbalunas/workspace/"
+"oc4j_example</literal> ). The target of the build will be <literal>dist/"
+"oc4j_example.ear</literal> ."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:749
+#, no-c-format
+msgid ""
+"Copy the <literal>mysql-connector.jar</literal> file to the <literal>"
+"$ORACLE_HOME/j2ee/home/applib</literal> directory so that jdbc drivers are "
+"available."
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:756
+#, no-c-format
+msgid "$ORACLE_HOME/j2ee/home/config/data-sources.xml"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:761
+#, no-c-format
+msgid ""
+"<![CDATA[<managed-data-source\n"
+" connection-pool-name=\"oc4j-example-connection-pool\"\n"
+" jndi-name=\"jdbc/__oc4jexample\"\n"
+" name=\"oc4j-example-managed-data-source\" />\n"
+"<connection-pool\n"
+" name=\"oc4j-example-connection-pool\">\n"
+" <connection-factory\n"
+" factory-class=\"com.mysql.jdbc.Driver\"\n"
+" user=\"username\" \n"
+" password=\"password\"\n"
+" url=\"jdbc:mysql:///oc4j\" />\n"
+"</connection-pool>]]>"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:765
+#, no-c-format
+msgid "$ORACLE_HOME/j2ee/home/config/server.xml"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:769
+#, no-c-format
+msgid ""
+"<![CDATA[<application name=\"oc4j_example\"\n"
+" path=\"../../home/applications/oc4j_example.ear\"\n"
+" parent=\"default\"\n"
+" start=\"true\" />]]>"
+msgstr ""
+
+#. Tag: literal
+#: Oc4j.xml:772
+#, no-c-format
+msgid "$ORACLE_HOME/j2ee/home/config/default-web-site.xml"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:777
+#, no-c-format
+msgid ""
+"<![CDATA[<web-app application=\"oc4j_example\"\n"
+" name=\"oc4j_example\" \n"
+" load-on-startup=\"true\"\n"
+" root=\"/oc4j_example\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:781
+#, no-c-format
+msgid ""
+"Start/stop OC4J following instructions in the <literal>Installation and "
+"operation of OC4J</literal> section above."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:786
+#, no-c-format
+msgid ""
+"Checkout the app at: <literal>http://localhost:8888/oc4j_example</literal>"
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:795
+#, no-c-format
+msgid "Extending example with reverse engineered CRUD and Drools"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:797
+#, no-c-format
+msgid ""
+"In this section we extend the basic <literal>seam-gen</literal> application "
+"into a full blown CRUD application based on an existing database. Plus we "
+"will add <literal>Drools</literal> based security as well."
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:802
+#, no-c-format
+msgid "Have <literal>seam-gen</literal> generate your CRUD applications"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:804
+#, no-c-format
+msgid ""
+"Type <literal>./seam generate-entities</literal> in the base directory of "
+"your seam distribution. This will create the entities, the Seam Application "
+"Framework classes and the relevant views for the CRUD application."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:809
+#, no-c-format
+msgid ""
+"That's it...no really...that's it. Build and deploy as before and see for "
+"yourself."
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:814
+#, no-c-format
+msgid "Hook up drools authentication using your new CRUD application"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:816
+#, no-c-format
+msgid ""
+"As stated above this section assumes your database had a <literal>User</"
+"literal> table with <literal>username</literal> and <literal>password</"
+"literal> columns with at least one entry. If you don't have this you may "
+"need to modify the <literal>authenticate</literal> method below."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:822
+#, no-c-format
+msgid ""
+"Lets link our <literal>User</literal> entity into Seam Security by making "
+"our authenticator class a Stateless Session Bean (OC4J is a EJB3 container "
+"after all!):"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:830
+#, no-c-format
+msgid ""
+"Add the <literal>@Stateless</literal> annotation to the "
+"<literal>Authenticator</literal> class."
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:836
+#, no-c-format
+msgid "Rename the class to <literal>AuthenticatorAction</literal>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:841
+#, no-c-format
+msgid ""
+"Create an interface called <literal>Authenticator</literal> which "
+"<literal>AuthenticatorAction</literal> implements (EJB3 requires session "
+"beans to have a local interface). Annotate the interface with "
+"<literal>@Local</literal> , and add a single method with same signature as "
+"the <literal>authenticate</literal> in <literal>AuthenticatorAction</"
+"literal> ."
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:855
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"authenticator\") @Stateless public class\n"
+" AuthenticatorAction implements Authenticator {]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:858
+#, no-c-format
+msgid ""
+"<![CDATA[@Local public interface Authenticator { \n"
+" public boolean authenticate(); \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:861
+#, no-c-format
+msgid ""
+"Use <literal>@PersistenceContext</literal> to inject an EntityManager by "
+"adding this line the <literal>AuthenticatorAction</literal> class:"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:867
+#, no-c-format
+msgid "<![CDATA[@PersistenceContext private EntityManager entityManager;]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:870
+#, no-c-format
+msgid "Implement authenticate:"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:873
+#, no-c-format
+msgid ""
+"<![CDATA[public boolean authenticate() {\n"
+" List <User> users = entityManager .createQuery(\"select u from User u "
+"where \n"
+" u.username = #{identity.username} and \n"
+" u.password = #{identity.password}\") .getResultList();\n"
+" if (users.size() == 1) {\n"
+" identity.addRole(\"admin\"); \n"
+" return true; \n"
+" } else {\n"
+" return false; \n"
+" } \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:876
+#, no-c-format
+msgid "And then add the EJB3 reference to <literal>web.xml</literal> :"
+msgstr ""
+
+#. Tag: programlisting
+#: Oc4j.xml:880
+#, no-c-format
+msgid ""
+"<![CDATA[<ejb-local-ref>\n"
+" <ejb-ref-name>\n"
+" oc4j_example/AuthenticatorAction/local\n"
+" </ejb-ref-name>\n"
+" <ejb-ref-type>Session</ejb-ref-type>\n"
+" <local>\n"
+" org.jboss.seam.tutorial.oc4j.action.Authenticator\n"
+" </local>\n"
+" <ejb-link>AuthenticatorAction</ejb-link>\n"
+"</ejb-local-ref>]]>"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:884
+#, no-c-format
+msgid ""
+"Build and deploy as before and notice that now only actual username and "
+"passwords are accepted."
+msgstr ""
+
+#. Tag: title
+#: Oc4j.xml:892
+#, no-c-format
+msgid "Finishing up"
+msgstr ""
+
+#. Tag: para
+#: Oc4j.xml:893
+#, no-c-format
+msgid ""
+"That's it, we're through. You now have a great starting point for any Seam "
+"based application deployed to OC4J."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Persistence.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Persistence.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Persistence.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,931 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Persistence.xml:2
+#, no-c-format
+msgid "Seam and Object/Relational Mapping"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Persistence.xml:13
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. 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—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."
+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:"
+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)."
+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."
+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."
+msgstr ""
+
+#. Tag: title
+#: Persistence.xml:80
+#, no-c-format
+msgid "Seam managed transactions"
+msgstr ""
+
+#. 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."
+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."
+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."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:104
+#, no-c-format
+msgid "Rendering of the view might require lazy fetching of associations."
+msgstr ""
+
+#. 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!"
+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."
+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—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:"
+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"
+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"
+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."
+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."
+msgstr ""
+
+#. Tag: title
+#: Persistence.xml:173
+#, no-c-format
+msgid "Disabling Seam-managed transactions"
+msgstr ""
+
+#. 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>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:181
+#, no-c-format
+msgid ""
+"<![CDATA[<core:init transaction-management-enabled=\"false\"/>\n"
+" \n"
+"<transaction:no-transaction />]]>"
+msgstr ""
+
+#. Tag: title
+#: Persistence.xml:186
+#, no-c-format
+msgid "Configuring a Seam transaction manager"
+msgstr ""
+
+#. 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>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:195
+#, no-c-format
+msgid "<![CDATA[<transaction:ejb-transaction />]]>"
+msgstr ""
+
+#. 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:"
+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."
+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."
+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."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:229
+#, no-c-format
+msgid "Explicitly disable Seam managed transactions"
+msgstr ""
+
+#. 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> )"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:244
+#, no-c-format
+msgid "<![CDATA[<transaction:entity-transaction entity-manager=\"#{em}\"/>]]>"
+msgstr ""
+
+#. 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> )"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:255
+#, no-c-format
+msgid ""
+"<![CDATA[<transaction:hibernate-transaction session=\"#{hibernateSession}\"/"
+">]]>"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:256
+#, no-c-format
+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 ""
+
+#. Tag: para
+#: Persistence.xml:260
+#, no-c-format
+msgid ""
+"For configuring Spring managed transactions see <link linkend=\"spring-"
+"transactions\">using Spring PlatformTransactionManagement</link> ."
+msgstr ""
+
+#. Tag: title
+#: Persistence.xml:267
+#, no-c-format
+msgid "Transaction synchronization"
+msgstr ""
+
+#. 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><transaction:ejb-transaction/></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
+#: Persistence.xml:283
+#, no-c-format
+msgid "Seam-managed persistence contexts"
+msgstr ""
+
+#. 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."
+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>."
+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.)"
+msgstr ""
+
+#. Tag: title
+#: Persistence.xml:312
+#, no-c-format
+msgid "Using a Seam-managed persistence context with JPA"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:314
+#, no-c-format
+msgid ""
+"Configuring a managed persistence context is easy. In <literal>components."
+"xml</literal>, we can write:"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:319
+#, no-c-format
+msgid ""
+"<![CDATA[<persistence:managed-persistence-context name=\"bookingDatabase\" \n"
+" auto-create=\"true\"\n"
+" persistence-unit-jndi-name=\"java:/EntityManagerFactories/"
+"bookingData\"/>]]>"
+msgstr ""
+
+#. 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>."
+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>."
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[<property name=\"jboss.entity.manager.factory.jndi.name\" \n"
+" value=\"java:/EntityManagerFactories/bookingData\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:336
+#, no-c-format
+msgid "Now we can have our <literal>EntityManager</literal> injected using:"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:340
+#, no-c-format
+msgid "<![CDATA[@In EntityManager bookingDatabase;]]>"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Persistence.xml:356
+#, no-c-format
+msgid "Using a Seam-managed Hibernate session"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:358
+#, no-c-format
+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"
+"\n"
+"<persistence:managed-hibernate-session name=\"bookingDatabase\" \n"
+" auto-create=\"true\"\n"
+" session-factory-jndi-name=\"java:/bookingSessionFactory\"/"
+">]]>"
+msgstr ""
+
+#. 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>."
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:369
+#, no-c-format
+msgid ""
+"<![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>]]>"
+msgstr ""
+
+#. 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."
+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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:383
+#, no-c-format
+msgid "<![CDATA[@In Session bookingDatabase;]]>"
+msgstr ""
+
+#. Tag: title
+#: Persistence.xml:388
+#, no-c-format
+msgid "Seam-managed persistence contexts and atomic conversations"
+msgstr ""
+
+#. 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>."
+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."
+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."
+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."
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:425
+#, no-c-format
+msgid ""
+"<![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"
+"}]]>"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:432
+#, no-c-format
+msgid ""
+"<![CDATA[public void addPartyToClaim() {\n"
+" Party party = ....;\n"
+" claim.addParty(party);\n"
+"}]]>"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:439
+#, no-c-format
+msgid ""
+"<![CDATA[@End\n"
+"public void commitClaim() {\n"
+" em.flush();\n"
+"}]]>"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:446
+#, no-c-format
+msgid "<![CDATA[<begin-conversation flush-mode=\"MANUAL\" />]]>"
+msgstr ""
+
+#. Tag: title
+#: Persistence.xml:453
+#, no-c-format
+msgid "Using the JPA \"delegate\""
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:455
+#, 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>."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:464
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:471
+#, no-c-format
+msgid ""
+"<![CDATA[@In EntityManager entityManager;\n"
+"\n"
+"@Create\n"
+"public void init() {\n"
+" ( (Session) entityManager.getDelegate() ).enableFilter(\"currentVersions"
+"\");\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:473
+#, 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>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:479
+#, no-c-format
+msgid ""
+"<![CDATA[<factory name=\"session\" \n"
+" scope=\"STATELESS\" \n"
+" auto-create=\"true\" \n"
+" value=\"#{entityManager.delegate}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:481
+#, no-c-format
+msgid "Now we can inject the session directly:"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:485
+#, no-c-format
+msgid ""
+"<![CDATA[@In Session session;\n"
+"\n"
+"@Create\n"
+"public void init() {\n"
+" session.enableFilter(\"currentVersions\");\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Persistence.xml:490
+#, no-c-format
+msgid "Using EL in EJB-QL/HQL"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:491
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:499
+#, no-c-format
+msgid ""
+"<![CDATA[User user = em.createQuery(\"from User where username=#{user."
+"username}\")\n"
+" .getSingleResult();]]>"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:501
+#, no-c-format
+msgid "is equivalent to:"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:503
+#, no-c-format
+msgid ""
+"<![CDATA[User user = em.createQuery(\"from User where username=:username\")\n"
+" .setParameter(\"username\", user.getUsername())\n"
+" .getSingleResult();]]>"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:505
+#, no-c-format
+msgid "Of course, you should never, ever write it like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:509
+#, no-c-format
+msgid ""
+"<![CDATA[User user = em.createQuery(\"from User where username=\" + user."
+"getUsername()) //BAD!\n"
+" .getSingleResult();]]>"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:511
+#, no-c-format
+msgid "(It is inefficient and vulnerable to SQL injection attacks.)"
+msgstr ""
+
+#. Tag: title
+#: Persistence.xml:518
+#, no-c-format
+msgid "Using Hibernate filters"
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:520
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Persistence.xml:528
+#, 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.)"
+msgstr ""
+
+#. Tag: programlisting
+#: Persistence.xml:535
+#, no-c-format
+msgid ""
+"<![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"
+" <core:filters>\n"
+" <value>#{regionFilter}</value>\n"
+" <value>#{currentFilter}</value>\n"
+" </core:filters>\n"
+"</persistence:managed-persistence-context>]]>"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Preface.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Preface.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Preface.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,430 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:7
+#, no-c-format
+msgid "Introduction to JBoss Seam"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:9
+#, no-c-format
+msgid ""
+"Seam is an application framework for Enterprise Java. It is inspired by the "
+"following principles:"
+msgstr ""
+
+#. Tag: emphasis
+#: Preface.xml:16
+#, no-c-format
+msgid "One kind of \"stuff\""
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:18
+#, no-c-format
+msgid ""
+"Seam defines a uniform component model for all business logic in your "
+"application. A Seam component may be stateful, with the state associated "
+"with any one of several well-defined contexts, including the long-running, "
+"persistent, <emphasis>business process context</emphasis> and the "
+"<emphasis>conversation context</emphasis>, which is preserved across "
+"multiple web requests in a user interaction."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:25
+#, no-c-format
+msgid ""
+"There is no distinction between presentation tier components and business "
+"logic components in Seam. You can layer your application according to "
+"whatever architecture you devise, rather than being forced to shoehorn your "
+"application logic into an unnatural layering scheme forced upon you by "
+"whatever combination of stovepipe frameworks you're using today."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:32
+#, no-c-format
+msgid ""
+"Unlike plain Java EE or J2EE components, Seam components may "
+"<emphasis>simultaneously</emphasis> access state associated with the web "
+"request and state held in transactional resources (without the need to "
+"propagate web request state manually via method parameters). You might "
+"object that the application layering imposed upon you by the old J2EE "
+"platform was a Good Thing. Well, nothing stops you creating an equivalent "
+"layered architecture using Seam—the difference is that <emphasis>you</"
+"emphasis> get to architect your own application and decide what the layers "
+"are and how they work together."
+msgstr ""
+
+#. Tag: emphasis
+#: Preface.xml:45
+#, no-c-format
+msgid "Integrate JSF with EJB 3.0"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:47
+#, no-c-format
+msgid ""
+"JSF and EJB 3.0 are two of the best new features of Java EE 5. EJB3 is a "
+"brand new component model for server side business and persistence logic. "
+"Meanwhile, JSF is a great component model for the presentation tier. "
+"Unfortunately, neither component model is able to solve all problems in "
+"computing by itself. Indeed, JSF and EJB3 work best used together. But the "
+"Java EE 5 specification provides no standard way to integrate the two "
+"component models. Fortunately, the creators of both models foresaw this "
+"situation and provided standard extension points to allow extension and "
+"integration with other frameworks."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:57
+#, no-c-format
+msgid ""
+"Seam unifies the component models of JSF and EJB3, eliminating glue code, "
+"and letting the developer think about the business problem."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:61
+#, no-c-format
+msgid ""
+"It is possible to write Seam applications where \"everything\" is an EJB. "
+"This may come as a surprise if you're used to thinking of EJBs as coarse-"
+"grained, so-called \"heavyweight\" objects. However, version 3.0 has "
+"completely changed the nature of EJB from the point of view of the "
+"developer. An EJB is a fine-grained object—nothing more complex than "
+"an annotated JavaBean. Seam even encourages you to use session beans as JSF "
+"action listeners!"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:69
+#, no-c-format
+msgid ""
+"On the other hand, if you prefer not to adopt EJB 3.0 at this time, you "
+"don't have to. Virtually any Java class may be a Seam component, and Seam "
+"provides all the functionality that you expect from a \"lightweight\" "
+"container, and more, for any component, EJB or otherwise."
+msgstr ""
+
+#. Tag: emphasis
+#: Preface.xml:79
+#, no-c-format
+msgid "Integrated AJAX"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:81
+#, no-c-format
+msgid ""
+"Seam supports the best open source JSF-based AJAX solutions: JBoss RichFaces "
+"and ICEfaces. These solutions let you add AJAX capability to your user "
+"interface without the need to write any JavaScript code."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:86
+#, no-c-format
+msgid ""
+"Alternatively, Seam provides a built-in JavaScript remoting layer that lets "
+"you call components asynchronously from client-side JavaScript without the "
+"need for an intermediate action layer. You can even subscribe to server-side "
+"JMS topics and receive messages via AJAX push."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:92
+#, no-c-format
+msgid ""
+"Neither of these approaches would work well, were it not for Seam's built-in "
+"concurrency and state management, which ensures that many concurrent fine-"
+"grained, asynchronous AJAX requests are handled safely and efficiently on "
+"the server side."
+msgstr ""
+
+#. Tag: emphasis
+#: Preface.xml:101
+#, no-c-format
+msgid "Business process as a first class construct"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:103
+#, no-c-format
+msgid ""
+"Optionally, Seam provides transparent business process management via jBPM. "
+"You won't believe how easy it is to implement complex workflows, "
+"collaboration and and task management using jBPM and Seam."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:108
+#, no-c-format
+msgid ""
+"Seam even allows you to define presentation tier pageflow using the same "
+"language (jPDL) that jBPM uses for business process definition."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:112
+#, no-c-format
+msgid ""
+"JSF provides an incredibly rich event model for the presentation tier. Seam "
+"enhances this model by exposing jBPM's business process related events via "
+"exactly the same event handling mechanism, providing a uniform event model "
+"for Seam's uniform component model."
+msgstr ""
+
+#. Tag: emphasis
+#: Preface.xml:121
+#, no-c-format
+msgid "Declarative state management"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:123
+#, no-c-format
+msgid ""
+"We're all used to the concept of declarative transaction management and "
+"declarative security from the early days of EJB. EJB 3.0 even introduces "
+"declarative persistence context management. These are three examples of a "
+"broader problem of managing state that is associated with a particular "
+"<emphasis>context</emphasis>, while ensuring that all needed cleanup occurs "
+"when the context ends. Seam takes the concept of declarative state "
+"management much further and applies it to <emphasis>application state</"
+"emphasis>. Traditionally, J2EE applications implement state management "
+"manually, by getting and setting servlet session and request attributes. "
+"This approach to state management is the source of many bugs and memory "
+"leaks when applications fail to clean up session attributes, or when session "
+"data associated with different workflows collides in a multi-window "
+"application. Seam has the potential to almost entirely eliminate this class "
+"of bugs."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:136
+#, no-c-format
+msgid ""
+"Declarative application state management is made possible by the richness of "
+"the <emphasis>context model</emphasis> defined by Seam. Seam extends the "
+"context model defined by the servlet spec—request, session, "
+"application—with two new contexts—conversation and business "
+"process—that are more meaningful from the point of view of the "
+"business logic."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:143
+#, no-c-format
+msgid ""
+"You'll be amazed at how many things become easier once you start using "
+"conversations. Have you ever suffered pain dealing with lazy association "
+"fetching in an ORM solution like Hibernate or JPA? Seam's conversation-"
+"scoped persistence contexts mean you'll rarely have to see a "
+"<literal>LazyInitializationException</literal>. Have you ever had problems "
+"with the refresh button? The back button? With duplicate form submission? "
+"With propagating messages across a post-then-redirect? Seam's conversation "
+"management solves these problems without you even needing to really think "
+"about them. They're all symptoms of the broken state management architecture "
+"that has been prevalent since the earliest days of the web."
+msgstr ""
+
+#. Tag: emphasis
+#: Preface.xml:158
+#, no-c-format
+msgid "Bijection"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:160
+#, no-c-format
+msgid ""
+"The notion of <emphasis>Inversion of Control</emphasis> or "
+"<emphasis>dependency injection</emphasis> exists in both JSF and EJB3, as "
+"well as in numerous so-called \"lightweight containers\". Most of these "
+"containers emphasize injection of components that implement "
+"<emphasis>stateless services</emphasis>. Even when injection of stateful "
+"components is supported (such as in JSF), it is virtually useless for "
+"handling application state because the scope of the stateful component "
+"cannot be defined with sufficient flexibility, and because components "
+"belonging to wider scopes may not be injected into components belonging to "
+"narrower scopes."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:169
+#, no-c-format
+msgid ""
+"<emphasis>Bijection</emphasis> differs from IoC in that it is "
+"<emphasis>dynamic</emphasis>, <emphasis>contextual</emphasis>, and "
+"<emphasis>bidirectional</emphasis>. You can think of it as a mechanism for "
+"aliasing contextual variables (names in the various contexts bound to the "
+"current thread) to attributes of the component. Bijection allows auto-"
+"assembly of stateful components by the container. It even allows a component "
+"to safely and easily manipulate the value of a context variable, just by "
+"assigning it to an attribute of the component."
+msgstr ""
+
+#. Tag: emphasis
+#: Preface.xml:181
+#, no-c-format
+msgid "Workspace management and multi-window browsing"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:183
+#, no-c-format
+msgid ""
+"Seam applications let the user freely switch between multiple browser tabs, "
+"each associated with a different, safely isolated, conversation. "
+"Applications may even take advantage of <emphasis>workspace management</"
+"emphasis>, allowing the user to switch between conversations (workspaces) in "
+"a single browser tab. Seam provides not only correct multi-window operation, "
+"but also multi-window-like operation in a single window!"
+msgstr ""
+
+#. Tag: emphasis
+#: Preface.xml:194
+#, no-c-format
+msgid "Prefer annotations to XML"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:196
+#, no-c-format
+msgid ""
+"Traditionally, the Java community has been in a state of deep confusion "
+"about precisely what kinds of meta-information counts as configuration. J2EE "
+"and popular \"lightweight\" containers have provided XML-based deployment "
+"descriptors both for things which are truly configurable between different "
+"deployments of the system, and for any other kinds or declaration which can "
+"not easily be expressed in Java. Java 5 annotations changed all this."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:204
+#, no-c-format
+msgid ""
+"EJB 3.0 embraces annotations and \"configuration by exception\" as the "
+"easiest way to provide information to the container in a declarative form. "
+"Unfortunately, JSF is still heavily dependent on verbose XML configuration "
+"files. Seam extends the annotations provided by EJB 3.0 with a set of "
+"annotations for declarative state management and declarative context "
+"demarcation. This lets you eliminate the noisy JSF managed bean declarations "
+"and reduce the required XML to just that information which truly belongs in "
+"XML (the JSF navigation rules)."
+msgstr ""
+
+#. Tag: emphasis
+#: Preface.xml:217
+#, no-c-format
+msgid "Integration testing is easy"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:219
+#, no-c-format
+msgid ""
+"Seam components, being plain Java classes, are by nature unit testable. But "
+"for complex applications, unit testing alone is insufficient. Integration "
+"testing has traditionally been a messy and difficult task for Java web "
+"applications. Therefore, Seam provides for testability of Seam applications "
+"as a core feature of the framework. You can easily write JUnit or TestNG "
+"tests that reproduce a whole interaction with a user, exercising all "
+"components of the system apart from the view (the JSP or Facelets page). You "
+"can run these tests directly inside your IDE, where Seam will automatically "
+"deploy EJB components using JBoss Embedded."
+msgstr ""
+
+#. Tag: emphasis
+#: Preface.xml:232
+#, no-c-format
+msgid "The specs ain't perfect"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:234
+#, no-c-format
+msgid ""
+"We think the latest incarnation of Java EE is great. But we know it's never "
+"going to be perfect. Where there are holes in the specifications (for "
+"example, limitations in the JSF lifecycle for GET requests), Seam fixes "
+"them. And the authors of Seam are working with the JCP expert groups to make "
+"sure those fixes make their way back into the next revision of the standards."
+msgstr ""
+
+#. Tag: emphasis
+#: Preface.xml:245
+#, no-c-format
+msgid "There's more to a web application than serving HTML pages"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:247
+#, no-c-format
+msgid ""
+"Today's web frameworks think too small. They let you get user input off a "
+"form and into your Java objects. And then they leave you hanging. A truly "
+"complete web application framework should address problems like persistence, "
+"concurrency, asynchronicity, state management, security, email, messaging, "
+"PDF and chart generation, workflow, wikitext rendering, webservices, caching "
+"and more. Once you scratch the surface of Seam, you'll be amazed at how many "
+"problems become simpler..."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:255
+#, no-c-format
+msgid ""
+"Seam integrates JPA and Hibernate3 for persistence, the EJB Timer Service "
+"and Quartz for lightweight asychronicity, jBPM for workflow, JBoss Rules for "
+"business rules, Meldware Mail for email, Hibernate Search and Lucene for "
+"full text search, JMS for messaging and JBoss Cache for page fragment "
+"caching. Seam layers an innovative rule-based security framework over JAAS "
+"and JBoss Rules. There's even JSF tag libraries for rendering PDF, outgoing "
+"email, charts and wikitext. Seam components may be called synchronously as a "
+"Web Service, asynchronously from client-side JavaScript or Google Web "
+"Toolkit or, of course, directly from JSF."
+msgstr ""
+
+#. Tag: emphasis
+#: Preface.xml:268
+#, no-c-format
+msgid "Get started now!"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:270
+#, no-c-format
+msgid ""
+"Seam works in any Java EE application server, and even works in Tomcat. If "
+"your environment supports EJB 3.0, great! If it doesn't, no problem, you can "
+"use Seam's built-in transaction management with JPA or Hibernate3 for "
+"persistence. Or, you can deploy JBoss Embedded in Tomcat, and get full "
+"support for EJB 3.0."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:286
+#, no-c-format
+msgid ""
+"It turns out that the combination of Seam, JSF and EJB3 is <emphasis>the</"
+"emphasis> simplest way to write a complex web application in Java. You won't "
+"believe how little code is required!"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Remoting.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Remoting.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Remoting.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,1552 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Remoting.xml:5
+#, no-c-format
+msgid "Remoting"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:13 Remoting.xml:562
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:16
+#, no-c-format
+msgid ""
+"<![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>]]>"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:22
+#, no-c-format
+msgid ""
+"<![CDATA[<script type=\"text/javascript\" src=\"seam/resource/remoting/"
+"resource/remote.js\"></script>]]>"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:30
+#, no-c-format
+msgid ""
+"<![CDATA[<script type=\"text/javascript\" \n"
+" src=\"seam/resource/remoting/interface.js?customerAction\"></"
+"script>]]>"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:35
+#, no-c-format
+msgid ""
+"<![CDATA[<script type=\"text/javascript\" \n"
+" src=\"seam/resource/remoting/interface.js?"
+"customerAction&accountAction\"></script>]]>"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:43
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <s:remote include=\"customerAction,accountAction\"/> \n"
+" ]]>"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:48
+#, no-c-format
+msgid "The \"Seam\" object"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:57
+#, no-c-format
+msgid "A Hello World example"
+msgstr ""
+
+#. 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>."
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:62
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"helloAction\")\n"
+"public class HelloAction implements HelloLocal {\n"
+" public String sayHello(String name) {\n"
+" return \"Hello, \" + name;\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:67
+#, no-c-format
+msgid ""
+"<![CDATA[@Local\n"
+"public interface HelloLocal {\n"
+" @WebRemote\n"
+" public String sayHello(String name);\n"
+"}]]>"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:72
+#, no-c-format
+msgid "<![CDATA[<s:remote include=\"helloAction\"/>]]>"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:76
+#, no-c-format
+msgid ""
+"<![CDATA[<button onclick=\"javascript:sayHello()\">Say Hello</button>]]>"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:80
+#, no-c-format
+msgid ""
+"<![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"
+" // ]]>]]><![CDATA[\n"
+"</script>]]>"
+msgstr ""
+
+#. 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."
+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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:92
+#, no-c-format
+msgid ""
+"Seam.Component.getInstance(\"helloAction\").sayHello(name, sayHelloCallback);"
+msgstr ""
+
+#. 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>."
+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."
+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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:113
+#, no-c-format
+msgid "Seam.Component"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:122
+#, no-c-format
+msgid "Seam.Component.newInstance()"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:127
+#, no-c-format
+msgid ""
+"@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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:129
+#, no-c-format
+msgid "To create a client-side Customer you would write the following code:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:131
+#, no-c-format
+msgid "var customer = Seam.Component.newInstance(\"customer\");"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:133
+#, no-c-format
+msgid "Then from here you can set the fields of the customer object:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:135
+#, no-c-format
+msgid ""
+"customer.setFirstName(\"John\");\n"
+"// Or you can set the fields directly\n"
+"customer.lastName = \"Smith\";"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:140
+#, no-c-format
+msgid "Seam.Component.getInstance()"
+msgstr ""
+
+#. 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."
+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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:151
+#, no-c-format
+msgid "Seam.Component.getInstance(\"customerAction\").saveCustomer(customer);"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:155
+#, no-c-format
+msgid "Seam.Component.getComponentName()"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:160
+#, no-c-format
+msgid ""
+"if (Seam.Component.getComponentName(instance) == \"customer\")\n"
+" alert(\"Customer\");\n"
+"else if (Seam.Component.getComponentName(instance) == \"staff\")\n"
+" alert(\"Staff member\");"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:166
+#, no-c-format
+msgid "Seam.Remoting"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:173
+#, no-c-format
+msgid "Seam.Remoting.createType()"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:180
+#, no-c-format
+msgid "var widget = Seam.Remoting.createType(\"com.acme.widgets.MyWidget\");"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:184
+#, no-c-format
+msgid "Seam.Remoting.getTypeName()"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:194
+#, no-c-format
+msgid "Evaluating EL Expressions"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:204
+#, no-c-format
+msgid ""
+"<![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"
+" ]]>"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:214
+#, no-c-format
+msgid "<![CDATA[<s:remote include=\"customer\"/>]]>"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:218
+#, no-c-format
+msgid "Client Interfaces"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:225
+#, no-c-format
+msgid ""
+"<![CDATA[<script type=\"text/javascript\" \n"
+" src=\"seam/resource/remoting/interface.js?customerAction\"></"
+"script>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:227
+#, no-c-format
+msgid "<![CDATA[<s:remote include=\"customerAction\"/>]]>"
+msgstr ""
+
+#. 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."
+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."
+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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:247
+#, no-c-format
+msgid "The Context"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:253
+#, no-c-format
+msgid "Setting and reading the Conversation ID"
+msgstr ""
+
+#. 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>."
+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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:268
+#, no-c-format
+msgid "Remote calls within the current conversation scope"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:275
+#, no-c-format
+msgid ""
+"<![CDATA[Seam.Remoting.getContext().setConversationId( #{conversation."
+"id} );]]>"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:280
+#, no-c-format
+msgid "Batch Requests"
+msgstr ""
+
+#. 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."
+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."
+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."
+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>."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:301
+#, no-c-format
+msgid "Working with Data types"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:304
+#, no-c-format
+msgid "Primitives / Basic Types"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:310
+#, no-c-format
+msgid "String"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:312
+#, no-c-format
+msgid ""
+"Simply use Javascript String objects when setting String parameter values."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:316
+#, no-c-format
+msgid "Number"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:326
+#, no-c-format
+msgid "Boolean"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:334
+#, no-c-format
+msgid "JavaBeans"
+msgstr ""
+
+#. 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."
+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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:345
+#, no-c-format
+msgid ""
+"@Name(\"myAction\")\n"
+"public class MyAction implements MyActionLocal {\n"
+" public void doSomethingWithObject(Object obj) {\n"
+" // code\n"
+" }\n"
+"}"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:352
+#, no-c-format
+msgid "<![CDATA[<s:remote include=\"myAction,myWidget\"/>]]>"
+msgstr ""
+
+#. 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>."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:361
+#, no-c-format
+msgid "Dates and Times"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:370
+#, no-c-format
+msgid "Enums"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:375
+#, no-c-format
+msgid ""
+"@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"
+"}"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:380
+#, no-c-format
+msgid "Seam.Component.getInstance(\"paintAction\").paint(\"red\");"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:387
+#, no-c-format
+msgid "Collections"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:390
+#, no-c-format
+msgid "Bags"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:401
+#, no-c-format
+msgid "Maps"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:407
+#, no-c-format
+msgid "var map = new Seam.Remoting.Map();"
+msgstr ""
+
+#. 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)."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:420
+#, no-c-format
+msgid "Debugging"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:426
+#, no-c-format
+msgid "Seam.Remoting.setDebug(true);"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:428
+#, no-c-format
+msgid "Or configure it via components.xml:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:430
+#, no-c-format
+msgid "<![CDATA[<remoting:remoting debug=\"true\"/>]]>"
+msgstr ""
+
+#. 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>."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:437
+#, no-c-format
+msgid "The Loading Message"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:439
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:443
+#, no-c-format
+msgid "Changing the message"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:445
+#, 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>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:448
+#, no-c-format
+msgid "Seam.Remoting.loadingMessage = \"Loading...\";"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:452
+#, no-c-format
+msgid "Hiding the loading message"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:454
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:458
+#, no-c-format
+msgid ""
+"// don't display the loading indicator\n"
+"Seam.Remoting.displayLoadingMessage = function() {};\n"
+"Seam.Remoting.hideLoadingMessage = function() {};"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:462
+#, no-c-format
+msgid "A Custom Loading Indicator"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:464
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:468
+#, no-c-format
+msgid ""
+"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"
+" };"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:473
+#, no-c-format
+msgid "Controlling what data is returned"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:475
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:483
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:488
+#, no-c-format
+msgid ""
+"For all our examples, we'll use the following <literal>Widget</literal> "
+"class:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:490
+#, no-c-format
+msgid ""
+"@Name(\"widget\")\n"
+"public class Widget\n"
+"{\n"
+" private String value;\n"
+" private String secret;\n"
+" private Widget child;\n"
+" private Map<String,Widget> widgetMap;\n"
+" private List<Widget> widgetList;\n"
+" \n"
+" // getters and setters for all fields\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:493
+#, no-c-format
+msgid "Constraining normal fields"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:495
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:498
+#, no-c-format
+msgid ""
+"@WebRemote(exclude = {\"secret\"})\n"
+"public Widget getWidget();"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:500
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:507
+#, no-c-format
+msgid ""
+"@WebRemote(exclude = {\"child.secret\"})\n"
+"public Widget getWidget();"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:512
+#, no-c-format
+msgid "Constraining Maps and Collections"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:514
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:521
+#, no-c-format
+msgid ""
+"@WebRemote(exclude = {\"widgetList.secret\"})\n"
+"public Widget getWidget();"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:523
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:529
+#, no-c-format
+msgid ""
+"@WebRemote(exclude = {\"widgetMap[value].secret\"})\n"
+"public Widget getWidget();"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:533
+#, no-c-format
+msgid "Constraining objects of a specific type"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:535
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:540
+#, no-c-format
+msgid ""
+"@WebRemote(exclude = {\"[widget].secret\"})\n"
+"public Widget getWidget();"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:545
+#, no-c-format
+msgid "Combining Constraints"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:547
+#, no-c-format
+msgid ""
+"Constraints can also be combined, to filter objects from multiple paths "
+"within the object graph:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:549
+#, no-c-format
+msgid ""
+"@WebRemote(exclude = {\"widgetList.secret\", \"widgetMap[value].secret\"})\n"
+"public Widget getWidget();"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:555
+#, no-c-format
+msgid "JMS Messaging"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:557
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:564
+#, 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>."
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:569 Remoting.xml:624
+#, no-c-format
+msgid "<![CDATA[<remoting:remoting poll-timeout=\"5\" poll-interval=\"1\"/>]]>"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:574
+#, no-c-format
+msgid "Subscribing to a JMS Topic"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:576
+#, no-c-format
+msgid "The following example demonstrates how to subscribe to a JMS Topic:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:578
+#, no-c-format
+msgid ""
+"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);"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:580
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:583
+#, 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)."
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:593
+#, no-c-format
+msgid "Unsubscribing from a Topic"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:595
+#, no-c-format
+msgid ""
+"To unsubscribe from a topic, call <literal>Seam.Remoting.unsubscribe()</"
+"literal> and pass in the topic name:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:598
+#, no-c-format
+msgid "Seam.Remoting.unsubscribe(\"topicName\");"
+msgstr ""
+
+#. Tag: title
+#: Remoting.xml:602
+#, no-c-format
+msgid "Tuning the Polling Process"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:604
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:608
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:613
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:618
+#, 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:"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:622
+#, no-c-format
+msgid "Via components.xml:"
+msgstr ""
+
+#. Tag: para
+#: Remoting.xml:626
+#, no-c-format
+msgid "Via JavaScript:"
+msgstr ""
+
+#. Tag: programlisting
+#: Remoting.xml:628
+#, no-c-format
+msgid ""
+"// 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 ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Revision_History.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Revision_History.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Revision_History.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,27 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: author
+#: Revision_History.xml:10
+#, no-c-format
+msgid ""
+"<firstname>Samson</firstname> <surname>Kittoli</surname> <email></email>"
+msgstr ""
+
+#. Tag: member
+#: Revision_History.xml:17
+#, no-c-format
+msgid "content reformat"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Security.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Security.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Security.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,2381 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Security.xml:4
+#, no-c-format
+msgid "Security"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:6
+#, no-c-format
+msgid ""
+"The Seam Security API is an optional Seam feature that provides "
+"authentication and authorization features for securing both domain and page "
+"resources within your Seam project."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:12
+#, no-c-format
+msgid "Overview"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:14
+#, no-c-format
+msgid "Seam Security provides two different modes of operation:"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:20
+#, no-c-format
+msgid ""
+"<emphasis>simplified mode</emphasis> - this mode supports authentication "
+"services and simple role-based security checks."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:26
+#, no-c-format
+msgid ""
+"<emphasis>advanced mode</emphasis> - this mode supports all the same "
+"features as the simplified mode, plus it offers rule-based security checks "
+"using JBoss Rules."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:34
+#, no-c-format
+msgid "Which mode is right for my application?"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:36
+#, no-c-format
+msgid ""
+"That all depends on the requirements of your application. If you have "
+"minimal security requirements, for example if you only wish to restrict "
+"certain pages and actions to users who are logged in, or who belong to a "
+"certain role, then the simplified mode will probably be sufficient. The "
+"advantages of this is a more simplified configuration, significantly less "
+"libraries to include, and a smaller memory footprint."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:43
+#, no-c-format
+msgid ""
+"If on the other hand, your application requires security checks based on "
+"contextual state or complex business rules, then you will require the "
+"features provided by the advanced mode."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:51
+#, no-c-format
+msgid "Requirements"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:53
+#, no-c-format
+msgid ""
+"If using the advanced mode features of Seam Security, the following jar "
+"files are required to be configured as modules in <literal>application.xml</"
+"literal>. If you are using Seam Security in simplified mode, these are "
+"<emphasis>not</emphasis> required:"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:61
+#, no-c-format
+msgid "drools-compiler.jar"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:64
+#, no-c-format
+msgid "drools-core.jar"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:67
+#, no-c-format
+msgid "janino.jar"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:70
+#, no-c-format
+msgid "antlr-runtime.jar"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:73
+#, no-c-format
+msgid "mvel14.jar"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:77
+#, no-c-format
+msgid ""
+"For web-based security, <literal>jboss-seam-ui.jar</literal> must also be "
+"included in the application's war file."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:85
+#, no-c-format
+msgid "Disabling Security"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:87
+#, no-c-format
+msgid ""
+"In some situations it may be necessary to disable Seam Security, for example "
+"during unit tests. This can be done by calling the static method "
+"<literal>Identity.setSecurityEnabled(false)</literal> to disable security "
+"checks. Doing this prevents any security checks being performed for the "
+"following:"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:95
+#, no-c-format
+msgid "Entity Security"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:98
+#, no-c-format
+msgid "Hibernate Security Interceptor"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:101
+#, no-c-format
+msgid "Seam Security Interceptor"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:104
+#, no-c-format
+msgid "Page restrictions"
+msgstr ""
+
+#. Tag: title
+#: Security.xml:110
+#, no-c-format
+msgid "Authentication"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:112
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:119
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:121
+#, no-c-format
+msgid ""
+"The simplified authentication method 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. "
+"Configuring this simplified form of authentication requires the "
+"<literal>identity</literal> component to be configured in "
+"<literal>components.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:130
+#, no-c-format
+msgid ""
+"<![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>]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:132
+#, no-c-format
+msgid ""
+"If you wish to use the advanced security features such as rule-based "
+"permission checks, all you need to do is include the Drools (JBoss Rules) "
+"jars in your classpath, and add some additional configuration, described "
+"later."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:138
+#, no-c-format
+msgid ""
+"The EL expression <literal>#{authenticator.authenticate}</literal> is a "
+"method binding indicating that the <literal>authenticate</literal> method of "
+"the <literal>authenticator</literal> component will be used to authenticate "
+"the user."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:147
+#, no-c-format
+msgid "Writing an authentication method"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:149
+#, 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 indicating whether authentication is successful or not. The "
+"user's username and password can be obtained from <literal>Identity.instance"
+"().getUsername()</literal> and <literal>Identity.instance().getPassword()</"
+"literal>, respectively. Any roles that the user is a member of should be "
+"assigned using <literal>Identity.instance().addRole()</literal>. Here's a "
+"complete example of an authentication method inside a JavaBean component:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:160
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"authenticator\")\n"
+"public class Authenticator {\n"
+" @In EntityManager entityManager;\n"
+"\n"
+" public boolean authenticate() {\n"
+" try\n"
+" {\n"
+" User user = (User) entityManager.createQuery(\n"
+" \"from User where username = :username and password = :password"
+"\")\n"
+" .setParameter(\"username\", Identity.instance().getUsername())\n"
+" .setParameter(\"password\", Identity.instance().getPassword())\n"
+" .getSingleResult();\n"
+"\n"
+" if (user.getRoles() != null)\n"
+" {\n"
+" for (UserRole mr : user.getRoles())\n"
+" Identity.instance().addRole(mr.getName());\n"
+" }\n"
+"\n"
+" return true;\n"
+" }\n"
+" catch (NoResultException ex)\n"
+" {\n"
+" return false;\n"
+" }\n"
+"\n"
+" }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:162
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:171
+#, no-c-format
+msgid "Identity.addRole()"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:173
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:196
+#, no-c-format
+msgid "Special Considerations"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:198
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:208
+#, no-c-format
+msgid ""
+"To give an example, let's say that upon a successful login that some user "
+"statistics must be updated. We would do this by writing an event observer "
+"for the <literal>org.jboss.seam.security.loginSuccessful</literal> event, "
+"like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:214
+#, no-c-format
+msgid ""
+"<![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"
+" }]]>"
+msgstr ""
+
+#. Tag: title
+#: Security.xml:220
+#, no-c-format
+msgid "Writing a login form"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:222
+#, no-c-format
+msgid ""
+"The <literal>Identity</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 the <literal>identity.login()</literal> method will "
+"authenticate the user using the provided credentials. Here's an example of a "
+"simple login form:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:230
+#, no-c-format
+msgid ""
+"<![CDATA[<div>\n"
+" <h:outputLabel for=\"name\" value=\"Username\"/>\n"
+" <h:inputText id=\"name\" value=\"#{identity.username}\"/>\n"
+"</div>\n"
+"\n"
+"<div>\n"
+" <h:outputLabel for=\"password\" value=\"Password\"/>\n"
+" <h:inputSecret id=\"password\" value=\"#{identity.password}\"/>\n"
+"</div>\n"
+"\n"
+"<div>\n"
+" <h:commandButton value=\"Login\" action=\"#{identity.login}\"/>\n"
+"</div>]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:232
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:240
+#, no-c-format
+msgid "Simplified Configuration - Summary"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:241
+#, no-c-format
+msgid ""
+"So to sum up, there are the three easy steps to configure authentication:"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:247
+#, no-c-format
+msgid ""
+"Configure an authentication method in <literal>components.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:252
+#, no-c-format
+msgid "Write an authentication method."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:257
+#, no-c-format
+msgid "Write a login form so that the user can authenticate."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:266
+#, no-c-format
+msgid "Handling Security Exceptions"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:268
+#, 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:"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:276
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:282
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:290
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:297
+#, no-c-format
+msgid ""
+"<![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>]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:299
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:307
+#, no-c-format
+msgid "Login Redirection"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:309
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:314
+#, no-c-format
+msgid ""
+"<![CDATA[<pages login-view-id=\"/login.xhtml\">\n"
+"\n"
+" <page view-id=\"/members/*\" login-required=\"true\"/>\n"
+"\n"
+" ...\n"
+"\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:316
+#, 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.)"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:321
+#, 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."
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:330
+#, no-c-format
+msgid ""
+"<![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>]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:332
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:340
+#, no-c-format
+msgid "HTTP Authentication"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:342
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:348
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <web:authentication-filter url-pattern=\"*.seam\" auth-type=\"basic\"/>\n"
+" ]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:350
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:356
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <web:authentication-filter url-pattern=\"*.seam\" auth-type=\"digest\" key="
+"\"AA3JK34aSDlkj\" realm=\"My App\"/>\n"
+" ]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:358
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:364
+#, no-c-format
+msgid "Writing a Digest Authenticator"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:366
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:373
+#, no-c-format
+msgid ""
+"<![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"
+" ]]>"
+msgstr ""
+
+#. Tag: title
+#: Security.xml:379
+#, no-c-format
+msgid "Advanced Authentication Features"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:381
+#, no-c-format
+msgid ""
+"This section explores some of the advanced features provided by the security "
+"API for addressing more complex security requirements."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:387
+#, no-c-format
+msgid "Using your container's JAAS configuration"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:389
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:397
+#, no-c-format
+msgid "<![CDATA[<security:identity jaas-config-name=\"other\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:399
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:411
+#, no-c-format
+msgid "Error Messages"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:413
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:421
+#, no-c-format
+msgid "Security Message Keys"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:430
+#, no-c-format
+msgid "Message Key"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:433 Security.xml:1143
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: literal
+#: Security.xml:443
+#, no-c-format
+msgid "org.jboss.seam.loginSuccessful"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:447
+#, no-c-format
+msgid ""
+"This message is produced when a user successfully logs in via the security "
+"API."
+msgstr ""
+
+#. Tag: literal
+#: Security.xml:455
+#, no-c-format
+msgid "org.jboss.seam.loginFailed"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:459
+#, 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."
+msgstr ""
+
+#. Tag: literal
+#: Security.xml:468
+#, no-c-format
+msgid "org.jboss.seam.NotLoggedIn"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:472
+#, 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."
+msgstr ""
+
+#. Tag: literal
+#: Security.xml:481
+#, no-c-format
+msgid "org.jboss.seam.AlreadyLoggedIn"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:485
+#, no-c-format
+msgid ""
+"This message is produced when a user that is already authenticated attempts "
+"to log in again."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:496
+#, no-c-format
+msgid "Authorization"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:498
+#, no-c-format
+msgid ""
+"There are a number of authorization features 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> must be configured to support "
+"this - see the Configuration section above."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:507
+#, no-c-format
+msgid "Core concepts"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:509
+#, no-c-format
+msgid ""
+"Each of the authorization mechanisms provided by the Seam Security API are "
+"built upon the concept of a user being granted roles and/or permissions. 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. A permission on the other hand 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:518
+#, no-c-format
+msgid ""
+"Roles are simple, consisting of only a name such as \"admin\", \"user\", "
+"\"customer\", etc. Permissions consist of both a name and an action, and are "
+"represented within this documentation in the form <literal>name:action</"
+"literal>, for example <literal>customer:delete</literal>, or "
+"<literal>customer:insert</literal>."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:527
+#, no-c-format
+msgid "Securing components"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:529
+#, no-c-format
+msgid ""
+"Let's start by examining the simplest form of authorization, component "
+"security, starting with the <literal>@Restrict</literal> annotation."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:535
+#, no-c-format
+msgid "The @Restrict annotation"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:537
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:547
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:552
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"account\")\n"
+"public class AccountAction {\n"
+" @Restrict public void delete() {\n"
+" ...\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:554
+#, 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',null)}\")</literal>. Now let's look at another example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:561
+#, no-c-format
+msgid ""
+"<![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"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:563
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:571
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:578
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:584
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"account\")\n"
+"public class AccountAction {\n"
+" @In Account selectedAccount;\n"
+" @Restrict(\"#{s:hasPermission('account','modify',selectedAccount)}\")\n"
+" public void modify() {\n"
+" selectedAccount.modify();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:586
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:596
+#, no-c-format
+msgid "Inline restrictions"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:597
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:603
+#, no-c-format
+msgid ""
+"<![CDATA[public void deleteCustomer() {\n"
+" Identity.instance().checkRestriction(\"#{s:hasPermission"
+"('customer','delete',selectedCustomer)}\");\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:605
+#, no-c-format
+msgid ""
+"If the expression specified doesn't evaluate to <literal>true</literal>, "
+"either"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:611
+#, no-c-format
+msgid ""
+"if the user is not logged in, a <literal>NotLoggedInException</literal> "
+"exception is thrown or"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:617
+#, no-c-format
+msgid ""
+"if the user is logged in, an <literal>AuthorizationException</literal> "
+"exception is thrown."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:624
+#, no-c-format
+msgid ""
+"It is also possible to call the <literal>hasRole()</literal> and "
+"<literal>hasPermission()</literal> methods directly from Java code:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:629
+#, no-c-format
+msgid ""
+"<![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\", null))\n"
+" throw new AuthorizationException(\"You may not create new customers"
+"\");]]>"
+msgstr ""
+
+#. Tag: title
+#: Security.xml:635
+#, no-c-format
+msgid "Security in the user interface"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:637
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:644
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:650
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form class=\"loginForm\" rendered=\"#{not identity.loggedIn}\">]]"
+">"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:652
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:658
+#, no-c-format
+msgid ""
+"<![CDATA[<h:outputLink action=\"#{reports.listManagerReports}\" rendered=\"#"
+"{s:hasRole('manager')}\">\n"
+" Manager Reports\n"
+"</h:outputLink>]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:660
+#, 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><s:div></literal> or "
+"<literal><s:span></literal> control."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:667
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:675
+#, no-c-format
+msgid ""
+"<![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('client','modify',cl)\"/>\n"
+" <s:link value=\"Delete Client\" action=\"#{clientAction.delete}\"\n"
+" rendered=\"#{s:hasPermission('client','delete',cl)\"/>\n"
+" </h:column>\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: title
+#: Security.xml:680
+#, no-c-format
+msgid "Securing pages"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:681
+#, 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><restrict/></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
+#: Security.xml:692
+#, no-c-format
+msgid ""
+"<![CDATA[<page view-id=\"/settings.xhtml\">\n"
+" <restrict/>\n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:694
+#, 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."
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:699
+#, no-c-format
+msgid ""
+"<![CDATA[<page view-id=\"/reports.xhtml\">\n"
+" <restrict>#{s:hasRole('admin')}</restrict>\n"
+"</page>]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:701
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:709
+#, no-c-format
+msgid "Securing Entities"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:711
+#, no-c-format
+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:716
+#, no-c-format
+msgid ""
+"To secure all actions for an entity class, add a <literal>@Restrict</"
+"literal> annotation on the class itself:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:721
+#, no-c-format
+msgid ""
+"<![CDATA[@Entity\n"
+"@Name(\"customer\")\n"
+"@Restrict\n"
+"public class Customer {\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:723
+#, 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>entityName:action</literal>, where <literal>entityName</"
+"literal> is the Seam component name of the entity (or the fully-qualified "
+"class name if no @Name is specified), 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:731
+#, 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):"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:738
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:744
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:750
+#, no-c-format
+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:756
+#, no-c-format
+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:763
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:769
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" @PrePersist @Restrict\n"
+" public void prePersist() {}\n"
+" ]]>"
+msgstr ""
+
+#. Tag: title
+#: Security.xml:772
+#, no-c-format
+msgid "Using <literal>/META-INF/orm.xml</literal>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:775
+#, no-c-format
+msgid ""
+"You can also specify the call back method in <literal>/META-INF/orm.xml</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:779
+#, no-c-format
+msgid ""
+"<![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>]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:781
+#, no-c-format
+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:787
+#, 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>):"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:793
+#, no-c-format
+msgid ""
+"<![CDATA[rule InsertMemberBlog\n"
+" no-loop\n"
+" activation-group \"permissions\"\n"
+"when\n"
+" check: PermissionCheck(name == \"memberBlog\", action == \"insert\", "
+"granted == false)\n"
+" Principal(principalName : name)\n"
+" MemberBlog(member : member -> (member.getUsername().equals"
+"(principalName)))\n"
+"then\n"
+" check.grant();\n"
+"end;]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:795
+#, 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>principalName : name</literal>\" structure "
+"that can be seen in the <literal>Principal</literal> fact (and other places) "
+"is a variable binding - it binds the <literal>name</literal> property of the "
+"<literal>Principal</literal> to a variable called <literal>principalName</"
+"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:805
+#, no-c-format
+msgid ""
+"Finally, we need to install a listener class that integrates Seam security "
+"with your JPA provider."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:811
+#, no-c-format
+msgid "Entity security with JPA"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:813
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:818
+#, no-c-format
+msgid ""
+"<![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>]]>"
+msgstr ""
+
+#. Tag: title
+#: Security.xml:823
+#, no-c-format
+msgid "Entity security with a Managed Hibernate Session"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:825
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:838
+#, no-c-format
+msgid "Writing Security Rules"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:840
+#, no-c-format
+msgid ""
+"Up to this point there has been a lot of mention of permissions, but no "
+"information about how permissions are actually defined or granted. This "
+"section completes the picture, by explaining how permission checks are "
+"processed, and how to implement permission checks for a Seam application."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:847
+#, no-c-format
+msgid "Permissions Overview"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:849
+#, no-c-format
+msgid ""
+"So how does the security API know whether a user has the <literal>customer:"
+"modify</literal> permission for a specific customer? Seam Security provides "
+"quite a novel method for determining user permissions, based on JBoss Rules. "
+"A couple of the advantages of using a rule engine are 1) a centralized "
+"location for the business logic that is behind each user permission, and 2) "
+"speed - JBoss Rules uses very efficient algorithms for evaluating large "
+"numbers of complex rules involving multiple conditions."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:860
+#, no-c-format
+msgid "Configuring a rules file"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:862
+#, no-c-format
+msgid ""
+"Seam Security expects to find a <literal>RuleBase</literal> component called "
+"<literal>securityRules</literal> which it uses to evaluate permission "
+"checks. This is configured in <literal>components.xml</literal> as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:867
+#, no-c-format
+msgid ""
+"<![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>]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:869
+#, no-c-format
+msgid ""
+"Once the <literal>RuleBase</literal> component is configured, it's time to "
+"write the security rules."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:875
+#, no-c-format
+msgid "Creating a security rules file"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:876
+#, no-c-format
+msgid ""
+"For this step you need to create a file called <literal>security.drl</"
+"literal> in the <literal>/META-INF</literal> directory of your application's "
+"jar file. In actual fact this file can be called anything you want, and "
+"exist in any location as long as it is configured appropriately in "
+"<literal>components.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:883
+#, 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 JBoss Rules documentation, however to "
+"get started here's an extremely simple example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:888
+#, no-c-format
+msgid ""
+"<![CDATA[package MyApplicationPermissions;\n"
+"\n"
+"import org.jboss.seam.security.PermissionCheck;\n"
+"import org.jboss.seam.security.Role;\n"
+"\n"
+"rule CanUserDeleteCustomers\n"
+"when\n"
+" c: PermissionCheck(name == \"customer\", action == \"delete\")\n"
+" Role(name == \"admin\")\n"
+"then\n"
+" c.grant();\n"
+"end;]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:890
+#, no-c-format
+msgid ""
+"Let's break this down. The first thing we see is the package declaration. A "
+"package in JBoss Rules 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:896
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:902
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:908
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:917
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:921
+#, no-c-format
+msgid ""
+"<![CDATA[c: PermissionCheck(name == \"customer\", action == \"delete\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:923
+#, no-c-format
+msgid ""
+"In plain english, this condition is stating that there must exist a "
+"<literal>PermissionCheck</literal> object with a <literal>name</literal> "
+"property equal to \"customer\", and an <literal>action</literal> property "
+"equal to \"delete\" within the working memory."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:929
+#, 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\", null)</literal> "
+"then a <literal>PermissionCheck</literal> object with a <literal>name</"
+"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:941
+#, 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 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 during the authentication process."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:952
+#, no-c-format
+msgid ""
+"It is also possible to insert additional long-lived facts into the working "
+"memory by calling <literal>((RuleBasedIdentity) RuleBasedIdentity.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:959
+#, 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. Moving onto the second line of our LHS, we see this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:965
+#, no-c-format
+msgid "<![CDATA[Role(name == \"admin\")]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:967
+#, 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 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:975
+#, no-c-format
+msgid ""
+"So what is the consequence of the rule firing? Let's take a look at the RHS "
+"of the rule:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:979
+#, no-c-format
+msgid "<![CDATA[c.grant()]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:981
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:994
+#, no-c-format
+msgid "Wildcard permission checks"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:996
+#, no-c-format
+msgid ""
+"It is possible to implement a wildcard permission check (which allows all "
+"actions for a given permission name), by omitting the <literal>action</"
+"literal> constraint for the <literal>PermissionCheck</literal> in your rule, "
+"like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:1002
+#, no-c-format
+msgid ""
+"<![CDATA[rule CanDoAnythingToCustomersIfYouAreAnAdmin\n"
+"when\n"
+" c: PermissionCheck(name == \"customer\")\n"
+" Role(name == \"admin\")\n"
+"then\n"
+" c.grant();\n"
+"end;\n"
+" ]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1004
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:1015
+#, no-c-format
+msgid "SSL Security"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1017
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:1024
+#, no-c-format
+msgid "<![CDATA[<page view-id=\"/login.xhtml\" scheme=\"https\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1026
+#, 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:1033
+#, no-c-format
+msgid "<![CDATA[<s:link view=\"/login.xhtml\" value=\"Login\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1035
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1042
+#, 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>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:1051
+#, no-c-format
+msgid "<![CDATA[<page view-id=\"*\" scheme=\"http\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1053
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1058
+#, 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>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:1063
+#, no-c-format
+msgid ""
+"<![CDATA[<core:servlet-session invalidate-on-scheme-change=\"true\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1065
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:1073
+#, no-c-format
+msgid "CAPTCHA"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1075
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:1083
+#, no-c-format
+msgid "Configuring the CAPTCHA Servlet"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1084
+#, 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>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:1089
+#, no-c-format
+msgid ""
+"<![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>]]>"
+msgstr ""
+
+#. Tag: title
+#: Security.xml:1094
+#, no-c-format
+msgid "Adding a CAPTCHA to a form"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1096
+#, no-c-format
+msgid ""
+"Adding a CAPTCHA challenge to a form is extremely easy. Here's an example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:1100
+#, no-c-format
+msgid ""
+"<![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\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1102
+#, 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."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:1111
+#, no-c-format
+msgid "Customising the CAPTCHA algorithm"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1113
+#, no-c-format
+msgid ""
+"You may customize the CAPTCHA algorithm by overriding the built-in component:"
+msgstr ""
+
+#. Tag: programlisting
+#: Security.xml:1117
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"org.jboss.seam.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"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Security.xml:1124 Security.xml:1131
+#, no-c-format
+msgid "Security Events"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1126
+#, no-c-format
+msgid ""
+"The following table describes a number of events (see <xref linkend=\"events"
+"\"/>) raised by Seam Security."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1140
+#, no-c-format
+msgid "Event Key"
+msgstr ""
+
+#. Tag: literal
+#: Security.xml:1153
+#, no-c-format
+msgid "org.jboss.seam.security.loginSuccessful"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1157
+#, no-c-format
+msgid "Raised when a login attempt is successful."
+msgstr ""
+
+#. Tag: literal
+#: Security.xml:1165
+#, no-c-format
+msgid "org.jboss.seam.security.loginFailed"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1169
+#, no-c-format
+msgid "Raised when a login attempt fails."
+msgstr ""
+
+#. Tag: literal
+#: Security.xml:1177
+#, no-c-format
+msgid "org.jboss.seam.security.alreadyLoggedIn"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1181
+#, no-c-format
+msgid ""
+"Raised when a user that is already authenticated attempts to log in again."
+msgstr ""
+
+#. Tag: literal
+#: Security.xml:1189
+#, no-c-format
+msgid "org.jboss.seam.security.notLoggedIn"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1193
+#, no-c-format
+msgid "Raised when a security check fails when the user is not logged in."
+msgstr ""
+
+#. Tag: literal
+#: Security.xml:1201
+#, no-c-format
+msgid "org.jboss.seam.security.notAuthorized"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1205
+#, no-c-format
+msgid ""
+"Raised when a security check fails when the user is logged in however "
+"doesn't have sufficient privileges."
+msgstr ""
+
+#. Tag: literal
+#: Security.xml:1213
+#, no-c-format
+msgid "org.jboss.seam.security.preAuthenticate"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1217
+#, no-c-format
+msgid "Raised just prior to user authentication."
+msgstr ""
+
+#. Tag: literal
+#: Security.xml:1225
+#, no-c-format
+msgid "org.jboss.seam.security.postAuthenticate"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1229
+#, no-c-format
+msgid "Raised just after user authentication."
+msgstr ""
+
+#. Tag: literal
+#: Security.xml:1237
+#, no-c-format
+msgid "org.jboss.seam.security.loggedOut"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1241
+#, no-c-format
+msgid "Raised after the user has logged out."
+msgstr ""
+
+#. Tag: literal
+#: Security.xml:1249
+#, no-c-format
+msgid "org.jboss.seam.security.credentialsUpdated"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1253
+#, no-c-format
+msgid "Raised when the user's credentials have been changed."
+msgstr ""
+
+#. Tag: literal
+#: Security.xml:1261
+#, no-c-format
+msgid "org.jboss.seam.security.rememberMe"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1265
+#, no-c-format
+msgid "Raised when the Identity's rememberMe property is changed."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:1278
+#, no-c-format
+msgid "Run As"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1280
+#, 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."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1288
+#, no-c-format
+msgid ""
+"The following code example demonstrates how <literal>RunAsOperation</"
+"literal> is used, by overriding its <literal>getRoles()</literal> method to "
+"specify 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
+#: Security.xml:1295
+#, no-c-format
+msgid ""
+"<![CDATA[ new RunAsOperation() {\n"
+" @Override\n"
+" public String[] getRoles() {\n"
+" return new String[] { \"admin\" };\n"
+" }\n"
+" \n"
+" public void execute() {\n"
+" executePrivilegedOperation();\n"
+" } \n"
+" }.run();]]>"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1297
+#, 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>."
+msgstr ""
+
+#. Tag: title
+#: Security.xml:1308
+#, no-c-format
+msgid "Extending the Identity component"
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1310
+#, no-c-format
+msgid ""
+"Sometimes it might be necessary to extend the Identity component if your "
+"application has special security requirements. For example, users might be "
+"required to authenticate using a Company or Department ID, along with their "
+"usual username and password. If permission-based security is required then "
+"RuleBasedIdentity should be extended, otherwise Identity should be extended."
+msgstr ""
+
+#. Tag: para
+#: Security.xml:1318
+#, no-c-format
+msgid ""
+"The following example 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
+#: Security.xml:1324
+#, no-c-format
+msgid ""
+"<![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"
+"}]]>"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Spring.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Spring.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Spring.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,875 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Spring.xml:3
+#, no-c-format
+msgid "Spring Framework integration"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:5
+#, no-c-format
+msgid ""
+"The Spring integration module allows easy migration of Spring-based projects "
+"to Seam and allows Spring applications to take advantage of key Seam "
+"features like conversations and Seam's more sophisticated persistence "
+"context management."
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:9
+#, no-c-format
+msgid ""
+"Note! The Spring integration code is included in the jboss-seam-ioc library. "
+"This dependency is required for all seam-spring integration techniques "
+"covered in this chapter."
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:12
+#, no-c-format
+msgid "Seam's support for Spring provides the ability to:"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:16
+#, no-c-format
+msgid "inject Seam component instances into Spring beans"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:19
+#, no-c-format
+msgid "inject Spring beans into Seam components"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:22
+#, no-c-format
+msgid "turn Spring beans into Seam components"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:25
+#, no-c-format
+msgid "allow Spring beans to live in any Seam context"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:28
+#, no-c-format
+msgid "start a spring WebApplicationContext with a Seam component"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:31
+#, no-c-format
+msgid "Support for Spring PlatformTransactionManagement"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:34
+#, no-c-format
+msgid ""
+"provides a Seam managed replacement for Spring's "
+"<literal>OpenEntityManagerInViewFilter</literal> and "
+"<literal>OpenSessionInViewFilter</literal>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:37
+#, no-c-format
+msgid ""
+"Support for Spring <literal>TaskExecutors</literal> to back "
+"<literal>@Asynchronous</literal> calls"
+msgstr ""
+
+#. Tag: title
+#: Spring.xml:42
+#, no-c-format
+msgid "Injecting Seam components into Spring beans"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:44
+#, no-c-format
+msgid ""
+"Injecting Seam component instances into Spring beans is accomplished using "
+"the <literal><seam:instance/></literal> namespace handler. To enable "
+"the Seam namespace handler, the Seam namespace must be added to the Spring "
+"beans definition file:"
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:48
+#, no-c-format
+msgid ""
+"<![CDATA[<beans xmlns=\"http://www.springframework.org/schema/beans\"\n"
+" xmlns:seam=\"http://jboss.com/products/seam/spring-seam\"\n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n"
+" http://www.springframework.org/schema/beans/spring-"
+"beans-2.0.xsd\n"
+" http://jboss.com/products/seam/spring-seam\n"
+" http://jboss.com/products/seam/spring-seam-2.1.xsd"
+"\">]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:50
+#, no-c-format
+msgid "Now any Seam component may be injected into any Spring bean:"
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:52
+#, no-c-format
+msgid ""
+"<![CDATA[<bean id=\"someSpringBean\" class=\"SomeSpringBeanClass\" scope="
+"\"prototype\">\n"
+" <property name=\"someProperty\">\n"
+" <seam:instance name=\"someComponent\"/>\n"
+" </property>\n"
+"</bean>]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:54
+#, no-c-format
+msgid "An EL expression may be used instead of a component name:"
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:56
+#, no-c-format
+msgid ""
+"<![CDATA[<bean id=\"someSpringBean\" class=\"SomeSpringBeanClass\" scope="
+"\"prototype\">\n"
+" <property name=\"someProperty\">\n"
+" <seam:instance name=\"#{someExpression}\"/>\n"
+" </property>\n"
+"</bean>]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:58
+#, no-c-format
+msgid ""
+"Seam component instances may even be made available for injection into "
+"Spring beans by a Spring bean id."
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:60
+#, no-c-format
+msgid ""
+"<![CDATA[<seam:instance name=\"someComponent\" id=\"someSeamComponentInstance"
+"\"/>\n"
+"\n"
+"<bean id=\"someSpringBean\" class=\"SomeSpringBeanClass\" scope=\"prototype"
+"\">\n"
+" <property name=\"someProperty\" ref=\"someSeamComponentInstance\">\n"
+"</bean>\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:62
+#, no-c-format
+msgid "Now for the caveat!"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:64
+#, no-c-format
+msgid ""
+"Seam was designed from the ground up to support a stateful component model "
+"with multiple contexts. Spring was not. Unlike Seam bijection, Spring "
+"injection does not occur at method invocation time. Instead, injection "
+"happens only when the Spring bean is instantiated. So the instance available "
+"when the bean is instantiated will be the same instance that the bean uses "
+"for the entire life of the bean. For example, if a Seam "
+"<literal>CONVERSATION</literal>-scoped component instance is directly "
+"injected into a singleton Spring bean, that singleton will hold a reference "
+"to the same instance long after the conversation is over! We call this "
+"problem <emphasis>scope impedance</emphasis>. Seam bijection ensures that "
+"scope impedance is maintained naturally as an invocation flows through the "
+"system. In Spring, we need to inject a proxy of the Seam component, and "
+"resolve the reference when the proxy is invoked."
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:74
+#, no-c-format
+msgid ""
+"The <literal><seam:instance/></literal> tag lets us automatically "
+"proxy the Seam component."
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:76
+#, no-c-format
+msgid ""
+"<![CDATA[<seam:instance id=\"seamManagedEM\" name=\"someManagedEMComponent\" "
+"proxy=\"true\"/>\n"
+"\n"
+"<bean id=\"someSpringBean\" class=\"SomeSpringBeanClass\">\n"
+" <property name=\"entityManager\" ref=\"seamManagedEM\">\n"
+"</bean>]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:78
+#, no-c-format
+msgid ""
+"This example shows one way to use a Seam-managed persistence context from a "
+"Spring bean. (For a more robust way to use Seam-managed persistence contexts "
+"as a replacement for the Spring <literal>OpenEntityManagerInView</literal> "
+"filter see section on <link linkend=\"spring-persistence\">Using a Seam "
+"Managed Persistence Context in Spring</link>)"
+msgstr ""
+
+#. Tag: title
+#: Spring.xml:85
+#, no-c-format
+msgid "Injecting Spring beans into Seam components"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:87
+#, no-c-format
+msgid ""
+"It is even easier to inject Spring beans into Seam component instances. "
+"Actually, there are two possible approaches:"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:92
+#, no-c-format
+msgid "inject a Spring bean using an EL expression"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:95
+#, no-c-format
+msgid "make the Spring bean a Seam component"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:99
+#, no-c-format
+msgid ""
+"We'll discuss the second option in the next section. The easiest approach is "
+"to access the Spring beans via EL."
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:102
+#, no-c-format
+msgid ""
+"The Spring <literal>DelegatingVariableResolver</literal> is an integration "
+"point Spring provides for integrating Spring with JSF. This "
+"<literal>VariableResolver</literal> makes all Spring beans available in EL "
+"by their bean id. You'll need to add the "
+"<literal>DelegatingVariableResolver</literal> to <literal>faces-config.xml</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:107
+#, no-c-format
+msgid ""
+"<![CDATA[<application>\n"
+" <variable-resolver>\n"
+" org.springframework.web.jsf.DelegatingVariableResolver\n"
+" </variable-resolver>\n"
+"</application>]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:109
+#, no-c-format
+msgid "Then you can inject Spring beans using <literal>@In</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:111
+#, no-c-format
+msgid ""
+"<![CDATA[@In(\"#{bookingService}\")\n"
+"private BookingService bookingService;]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:113
+#, no-c-format
+msgid ""
+"The use of Spring beans in EL is not limited to injection. Spring beans may "
+"be used anywhere that EL expressions are used in Seam: process and pageflow "
+"definitions, working memory assertions, etc..."
+msgstr ""
+
+#. Tag: title
+#: Spring.xml:119
+#, no-c-format
+msgid "Making a Spring bean into a Seam component"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:121
+#, no-c-format
+msgid ""
+"The <literal><seam:component/></literal> namespace handler can be used "
+"to make any Spring bean a Seam component. Just place the <literal><seam:"
+"component/></literal> tag within the declaration of the bean that you "
+"wish to be a Seam component:"
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:125
+#, no-c-format
+msgid ""
+"<![CDATA[<bean id=\"someSpringBean\" class=\"SomeSpringBeanClass\" scope="
+"\"prototype\">\n"
+" <seam:component/>\n"
+"</bean>]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:127
+#, no-c-format
+msgid ""
+"By default, <literal><seam:component/></literal> will create a "
+"<literal>STATELESS</literal> Seam component with class and name provided in "
+"the bean definition. Occasionally, such as when a <literal>FactoryBean</"
+"literal> is used, the class of the Spring bean may not be the class "
+"appearing in the bean definition. In such cases the <literal>class</literal> "
+"should be explicitly specified. A Seam component name may be explicitly "
+"specified in cases where there is potential for a naming conflict."
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:133
+#, no-c-format
+msgid ""
+"The <literal>scope</literal> attribute of <literal><seam:component/></"
+"literal> may be used if you wish the Spring bean to be managed in a "
+"particular Seam scope. The Spring bean must be scoped to <literal>prototype</"
+"literal> if the Seam scope specified is anything other than "
+"<literal>STATELESS</literal>. Pre-existing Spring beans usually have a "
+"fundamentally stateless character, so this attribute is not usually needed."
+msgstr ""
+
+#. Tag: title
+#: Spring.xml:142
+#, no-c-format
+msgid "Seam-scoped Spring beans"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:144
+#, no-c-format
+msgid ""
+"The Seam integration package also lets you use Seam's contexts as Spring 2.0 "
+"style custom scopes. This lets you declare any Spring bean in any of Seam's "
+"contexts. However, note once again that Spring's component model was never "
+"architected to support statefulness, so please use this feature with great "
+"care. In particular, clustering of session or conversation scoped Spring "
+"beans is deeply problematic, and care must be taken when injecting a bean or "
+"component from a wider scope into a bean of a narrower scope."
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:150
+#, no-c-format
+msgid ""
+"By specifying <literal><seam:configure-scopes/></literal> once in a "
+"Spring bean factory configuration, all of the Seam scopes will be available "
+"to Spring beans as custom scopes. To associate a Spring bean with a "
+"particular Seam scope, specify the Seam scope in the <literal>scope</"
+"literal> attribute of the bean definition."
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:155
+#, no-c-format
+msgid ""
+"<![CDATA[<!-- Only needs to be specified once per bean factory-->\n"
+"<seam:configure-scopes/>\n"
+"\n"
+"...\n"
+"\n"
+"<bean id=\"someSpringBean\" class=\"SomeSpringBeanClass\" scope=\"seam."
+"CONVERSATION\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:157
+#, no-c-format
+msgid ""
+"The prefix of the scope name may be changed by specifying the "
+"<literal>prefix</literal> attribute in the <literal>configure-scopes</"
+"literal> definition. (The default prefix is <literal>seam.</literal>)"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:160
+#, no-c-format
+msgid ""
+"By default an instance of a Spring Component registered in this way is not "
+"automatically created when referenced using <literal>@In</literal>. To have "
+"an instance auto-created you must either specify <literal>@In(create=true)</"
+"literal> at the injection point to identify a specific bean to be auto "
+"created or you can use the <literal>default-auto-create</literal> attribute "
+"of <literal>configure-scopes</literal> to make all spring beans who use a "
+"seam scope auto created."
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:165
+#, no-c-format
+msgid ""
+"Seam-scoped Spring beans defined this way can be injected into other Spring "
+"beans without the use of <literal><seam:instance/></literal>. However, "
+"care must be taken to ensure scope impedance is maintained. The normal "
+"approach used in Spring is to specify <literal><aop:scoped-proxy/></"
+"literal> in the bean definition. However, Seam-scoped Spring beans are "
+"<emphasis>not</emphasis> compatible with <literal><aop:scoped-proxy/></"
+"literal>. So if you need to inject a Seam-scoped Spring bean into a "
+"singleton, <literal><seam:instance/></literal> must be used:"
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:173
+#, no-c-format
+msgid ""
+"<![CDATA[<bean id=\"someSpringBean\" class=\"SomeSpringBeanClass\" scope="
+"\"seam.CONVERSATION\"/>\n"
+"\n"
+"...\n"
+"\n"
+"<bean id=\"someSingleton\">\n"
+" <property name=\"someSeamScopedSpringBean\">\n"
+" <seam:instance name=\"someSpringBean\" proxy=\"true\"/>\n"
+" </property>\n"
+"</bean>]]>"
+msgstr ""
+
+#. Tag: title
+#: Spring.xml:177
+#, no-c-format
+msgid "Using Spring PlatformTransactionManagement"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:179
+#, no-c-format
+msgid ""
+"Spring provides an extensible transaction management abstraction with "
+"support for many transaction APIs (JPA, Hibernate, JDO, and JTA) Spring also "
+"provides tight integrations with many application server TransactionManagers "
+"such as Websphere and Weblogic. Spring transaction management exposes "
+"support for many advanced features such as nested transactions and supports "
+"full Java EE transaction propagation rules like REQUIRES_NEW and "
+"NOT_SUPPORTED. For more information see the spring documentation <ulink url="
+"\"http://static.springframework.org/spring/docs/2.0.x/reference/transaction."
+"html\">here</ulink>."
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:187
+#, no-c-format
+msgid ""
+"To configure Seam to use Spring transactions enable the SpringTransaction "
+"component like so:"
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:189
+#, no-c-format
+msgid ""
+"<![CDATA[<spring:spring-transaction platform-transaction-manager=\"#"
+"{transactionManager}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:191
+#, no-c-format
+msgid ""
+"The <literal>spring:spring-transaction</literal> component will utilize "
+"Springs transaction synchronization capabilities for synchronization "
+"callbacks."
+msgstr ""
+
+#. Tag: title
+#: Spring.xml:197
+#, no-c-format
+msgid "Using a Seam Managed Persistence Context in Spring"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:199
+#, no-c-format
+msgid ""
+"One of the most powerful features of Seam is its conversation scope and the "
+"ability to have an EntityManager open for the life of a conversation. This "
+"eliminates many of the problems associated with the detachment and re-"
+"attachment of entities as well as mitigates occurrences of the dreaded "
+"<literal>LazyInitializationException</literal>. Spring does not provide a "
+"way to manage an persistence context beyond the scope of a single web "
+"request (<literal>OpenEntityManagerInViewFilter</literal>). So, it would be "
+"nice if Spring developers could have access to a Seam managed persistence "
+"context using all of the same tools Spring provides for integration with JPA"
+"(e.g. <literal>PersistenceAnnotationBeanPostProcessor</literal>, "
+"<literal>JpaTemplate</literal>, etc.)"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:209
+#, no-c-format
+msgid ""
+"Seam provides a way for Spring to access a Seam managed persistence context "
+"with Spring's provided JPA tools bringing conversation scoped persistence "
+"context capabilities to Spring applications."
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:213
+#, no-c-format
+msgid "This integration work provides the following functionality:"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:217
+#, no-c-format
+msgid ""
+"transparent access to a Seam managed persistence context using Spring "
+"provided tools"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:220
+#, no-c-format
+msgid ""
+"access to Seam conversation scoped persistence contexts in a non web request "
+"(e.g. asynchronous quartz job)"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:224
+#, no-c-format
+msgid ""
+"allows for using Seam managed persistence contexts with Spring managed "
+"transactions (will need to flush the persistence context manually)"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:229
+#, no-c-format
+msgid ""
+"Spring's persistence context propagation model allows only one open "
+"EntityManager per EntityManagerFactory so the Seam integration works by "
+"wrapping an EntityManagerFactory around a Seam managed persistence context."
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:233
+#, no-c-format
+msgid ""
+"<![CDATA[<bean id=\"seamEntityManagerFactory\" class=\"org.jboss.seam.ioc."
+"spring.SeamManagedEntityManagerFactoryBean\">\n"
+" <property name=\"persistenceContextName\" value=\"entityManager\"/"
+">\n"
+"</bean>]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:235
+#, no-c-format
+msgid ""
+"Where 'persistenceContextName' is the name of the Seam managed persistence "
+"context component. By default this EntityManagerFactory has a unitName equal "
+"to the Seam component name or in this case 'entityManager'. If you wish to "
+"provide a different unitName you can do so by providing a "
+"persistenceUnitName like so:"
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:240
+#, no-c-format
+msgid ""
+"<![CDATA[<bean id=\"seamEntityManagerFactory\" class=\"org.jboss.seam.ioc."
+"spring.SeamManagedEntityManagerFactoryBean\">\n"
+" <property name=\"persistenceContextName\" value=\"entityManager\"/"
+">\n"
+" <property name=\"persistenceUnitName\" value=\"bookingDatabase:"
+"extended\"/>\n"
+"</bean>]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:242
+#, no-c-format
+msgid ""
+"This EntityManagerFactory can then be used in any Spring provided tools. For "
+"example, using Spring's <literal>PersistenceAnnotationBeanPostProcessor</"
+"literal> is the exact same as before."
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:245
+#, no-c-format
+msgid ""
+"<![CDATA[<bean class=\"org.springframework.orm.jpa.support."
+"PersistenceAnnotationBeanPostProcessor\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:247
+#, no-c-format
+msgid ""
+"If you define your real EntityManagerFactory in Spring but wish to use a "
+"Seam managed persistence context you can tell the "
+"<literal>PersistenceAnnotationBeanPostProcessor</literal> which "
+"persistenctUnitName you wish to use by default by specifying the "
+"<literal>defaultPersistenceUnitName</literal> property."
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:252
+#, no-c-format
+msgid "The <literal>applicationContext.xml</literal> might look like:"
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:253
+#, no-c-format
+msgid ""
+"<![CDATA[<bean id=\"entityManagerFactory\" class=\"org.springframework.orm."
+"jpa.LocalEntityManagerFactoryBean\">\n"
+" <property name=\"persistenceUnitName\" value=\"bookingDatabase\"/>\n"
+"</bean>\n"
+"<bean id=\"seamEntityManagerFactory\" class=\"org.jboss.seam.ioc.spring."
+"SeamManagedEntityManagerFactoryBean\">\n"
+" <property name=\"persistenceContextName\" value=\"entityManager\"/"
+">\n"
+" <property name=\"persistenceUnitName\" value=\"bookingDatabase:"
+"extended\"/>\n"
+"</bean>\n"
+"<bean class=\"org.springframework.orm.jpa.support."
+"PersistenceAnnotationBeanPostProcessor\">\n"
+" <property name=\"defaultPersistenceUnitName\" value="
+"\"bookingDatabase:extended\"/>\n"
+"</bean>]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:255
+#, no-c-format
+msgid "The <literal>component.xml</literal> might look like:"
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:256
+#, no-c-format
+msgid ""
+"<![CDATA[<persistence:managed-persistence-context name=\"entityManager\"\n"
+" auto-create=\"true\" entity-manager-factory=\"#{entityManagerFactory}"
+"\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:259
+#, no-c-format
+msgid ""
+"<literal>JpaTemplate</literal> and <literal>JpaDaoSupport</literal> are "
+"configured the same way for a Seam managed persistence context as they would "
+"be fore a Seam managed persistence context."
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:262
+#, no-c-format
+msgid ""
+"<![CDATA[<bean id=\"bookingService\" class=\"org.jboss.seam.example.spring."
+"BookingService\">\n"
+" <property name=\"entityManagerFactory\" ref="
+"\"seamEntityManagerFactory\"/>\n"
+"</bean>]]>"
+msgstr ""
+
+#. Tag: title
+#: Spring.xml:265
+#, no-c-format
+msgid "Using a Seam Managed Hibernate Session in Spring"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:267
+#, no-c-format
+msgid ""
+"The Seam Spring integration also provides support for complete access to a "
+"Seam managed Hibernate session using spring's tools. This integration is "
+"very similar to the <link linkend=\"spring-persistence\">JPA integration</"
+"link>."
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:270
+#, no-c-format
+msgid ""
+"Like Spring's JPA integration spring's propagation model allows only one "
+"open EntityManager per EntityManagerFactory per transaction??? to be "
+"available to spring tools. So, the Seam Session integration works by "
+"wrapping a proxy SessionFactory around a Seam managed Hibernate session "
+"context."
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:275
+#, no-c-format
+msgid ""
+"<![CDATA[<bean id=\"seamSessionFactory\" class=\"org.jboss.seam.ioc.spring."
+"SeamManagedSessionFactoryBean\">\n"
+" <property name=\"sessionName\" value=\"hibernateSession\"/>\n"
+"</bean>]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:277
+#, no-c-format
+msgid ""
+"Where 'sessionName' is the name of the <literal>persistence:managed-"
+"hibernate-session</literal> component. This SessionFactory can then be used "
+"in any Spring provided tools. The integration also provides support for "
+"calls to <literal>SessionFactory.getCurrentInstance()</literal> as long as "
+"you call getCurrentInstance() on the <literal>SeamManagedSessionFactory</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: Spring.xml:283
+#, no-c-format
+msgid "Spring Application Context as a Seam Component"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:285
+#, no-c-format
+msgid ""
+"Although it is possible to use the Spring <literal>ContextLoaderListener</"
+"literal> to start your application's Spring ApplicationContext there are a "
+"couple of limitations."
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:290
+#, no-c-format
+msgid ""
+"the Spring ApplicationContext must be started <emphasis>after</emphasis> the "
+"<literal>SeamListener</literal>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:294
+#, no-c-format
+msgid ""
+"it can be tricky starting a Spring ApplicationContext for use in Seam unit "
+"and integration tests"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:299
+#, no-c-format
+msgid ""
+"To overcome these two limitations the Spring integration includes a Seam "
+"component that will start a Spring ApplicationContext. To use this Seam "
+"component place the <literal><spring:context-loader/></literal> "
+"definition in the <literal>components.xml</literal>. Specify your Spring "
+"context file location in the <literal>config-locations</literal> attribute. "
+"If more than one config file is needed you can place them in the nested "
+"<literal><spring:config-locations/></literal> element following "
+"standard <literal>components.xml</literal> multi value practices."
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:307
+#, no-c-format
+msgid ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+" xmlns:spring=\"http://jboss.com/products/seam/spring\"\n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:schemaLocation=\"http://jboss.com/products/seam/components\n"
+" http://jboss.com/products/seam/components-"
+"2.1.xsd\n"
+" http://jboss.com/products/seam/spring\n"
+" http://jboss.com/products/seam/spring-2.1.xsd"
+"\">\n"
+"\n"
+" <spring:context-loader config-locations=\"/WEB-INF/"
+"applicationContext.xml\"/>\n"
+"\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: title
+#: Spring.xml:310
+#, no-c-format
+msgid "Using a Spring TaskExecutor for @Asynchronous"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:312
+#, no-c-format
+msgid ""
+"Spring provides an abstraction for executing code asynchronously called a "
+"<literal>TaskExecutor</literal>. The Spring Seam integration allows for the "
+"use of a Spring <literal>TaskExecutor</literal> for executing immediate "
+"<literal>@Asynchronous</literal> method calls. To enable this functionality "
+"install the <literal>SpringTaskExecutorDispatchor</literal> and provide a "
+"spring bean defined taskExecutor like so:"
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:317
+#, no-c-format
+msgid ""
+"<![CDATA[<spring:task-executor-dispatcher task-executor=\"#"
+"{springThreadPoolTaskExecutor}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Spring.xml:319
+#, no-c-format
+msgid ""
+"Because a Spring <literal>TaskExecutor</literal> does not support scheduling "
+"of an asynchronous event a fallback Seam <literal>Dispatcher</literal> can "
+"be provided to handle scheduled asynchronous event like so:"
+msgstr ""
+
+#. Tag: programlisting
+#: Spring.xml:322
+#, no-c-format
+msgid ""
+"<![CDATA[<!-- Install a ThreadPoolDispatcher to handle scheduled "
+"asynchronous event -->\n"
+"<core:thread-pool-dispatcher name=\"threadPoolDispatcher\"/>\n"
+"\n"
+"<!-- Install the SpringDispatcher as default -->\n"
+"<spring:task-executor-dispatcher task-executor=\"#"
+"{springThreadPoolTaskExecutor}\" schedule-dispatcher=\"#"
+"{threadPoolDispatcher}\"/>]]>"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Testing.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Testing.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Testing.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,867 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Testing.xml:2
+#, no-c-format
+msgid "Testing Seam applications"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:3
+#, no-c-format
+msgid ""
+"Most Seam applications will need at least two kinds of automated tests: "
+"<emphasis>unit tests</emphasis>, which test a particular Seam component in "
+"isolation, and scripted <emphasis>integration tests</emphasis> which "
+"exercise all Java layers of the application (that is, everything except the "
+"view pages)."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:10
+#, no-c-format
+msgid "Both kinds of tests are very easy to write."
+msgstr ""
+
+#. Tag: title
+#: Testing.xml:15
+#, no-c-format
+msgid "Unit testing Seam components"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:16
+#, no-c-format
+msgid ""
+"All Seam components are POJOs. This is a great place to start if you want "
+"easy unit testing. And since Seam emphasises the use of bijection for inter-"
+"component interactions and access to contextual objects, it's very easy to "
+"test a Seam component outside of its normal runtime environment."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:23
+#, no-c-format
+msgid ""
+"Consider the following Seam Component which creates a statement of account "
+"for a customer:"
+msgstr ""
+
+#. Tag: programlisting
+#: Testing.xml:28
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Scope(EVENT)\n"
+"@Name(\"statementOfAccount\")\n"
+"public class StatementOfAccount {\n"
+" \n"
+" @In(create=true) EntityManager entityManager\n"
+" \n"
+" private double statementTotal;\n"
+" \n"
+" @In\n"
+" private Customer customer;\n"
+" \n"
+" @Create\n"
+" public void create() {\n"
+" List<Invoice> invoices = entityManager\n"
+" .createQuery(\"select invoice from Invoice invoice where invoice."
+"customer = :customer\")\n"
+" .setParameter(\"customer\", customer)\n"
+" .getResultList();\n"
+" statementTotal = calculateTotal(invoices);\n"
+" }\n"
+" \n"
+" public double calculateTotal(List<Invoice> invoices) {\n"
+" double total = 0.0;\n"
+" for (Invoice invoice: invoices)\n"
+" {\n"
+" double += invoice.getTotal();\n"
+" }\n"
+" return total;\n"
+" }\n"
+" \n"
+" // getter and setter for statementTotal\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:30
+#, no-c-format
+msgid ""
+"We could write a unit test for the calculateTotal method (which tests the "
+"business logic of the component) as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: Testing.xml:35
+#, no-c-format
+msgid ""
+"<![CDATA[public class StatementOfAccountTest {\n"
+" \n"
+" @Test\n"
+" public testCalculateTotal {\n"
+" List<Invoice> invoices = generateTestInvoices(); // A test data "
+"generator\n"
+" double statementTotal = new StatementOfAccount().calculateTotal"
+"(invoices);\n"
+" assert statementTotal = 123.45;\n"
+" } \n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:37
+#, no-c-format
+msgid ""
+"You'll notice we aren't testing retrieving data from or persisting data to "
+"the database; nor are we testing any functionality provided by Seam. We are "
+"just testing the logic of our POJOs. Seam components don't usually depend "
+"directly upon container infrastructure, so most unit testing as as easy as "
+"that!"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:44
+#, no-c-format
+msgid "However, if you want to test the entire application, read on."
+msgstr ""
+
+#. Tag: title
+#: Testing.xml:51
+#, no-c-format
+msgid "Integration testing Seam components"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:53
+#, no-c-format
+msgid ""
+"Integration testing is slightly more difficult. In this case, we can't "
+"eliminate the container infrastructure; indeed, that is part of what is "
+"being tested! At the same time, we don't want to be forced to deploy our "
+"application to an application server to run the automated tests. We need to "
+"be able to reproduce just enough of the container infrastructure inside our "
+"testing environment to be able to exercise the whole application, without "
+"hurting performance too much."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:62
+#, no-c-format
+msgid ""
+"The approach taken by Seam is to let you write tests that exercise your "
+"components while running inside a pruned down container environment (Seam, "
+"together with the JBoss Embedded container; n.b. JBoss Embedded requires JDK "
+"1.5 and does not work with JDK 1.6)."
+msgstr ""
+
+#. Tag: programlisting
+#: Testing.xml:69
+#, no-c-format
+msgid ""
+"<![CDATA[public class RegisterTest extends SeamTest\n"
+"{\n"
+" \n"
+" @Test\n"
+" public void testRegisterComponent() throws Exception\n"
+" {\n"
+" \n"
+" new ComponentTest() {\n"
+"\n"
+" protected void testComponents() throws Exception\n"
+" {\n"
+" setValue(\"#{user.username}\", \"1ovthafew\");\n"
+" setValue(\"#{user.name}\", \"Gavin King\");\n"
+" setValue(\"#{user.password}\", \"secret\");\n"
+" assert invokeMethod(\"#{register.register}\").equals(\"success"
+"\");\n"
+" assert getValue(\"#{user.username}\").equals(\"1ovthafew\");\n"
+" assert getValue(\"#{user.name}\").equals(\"Gavin King\");\n"
+" assert getValue(\"#{user.password}\").equals(\"secret\");\n"
+" }\n"
+" \n"
+" }.run();\n"
+" \n"
+" }\n"
+"\n"
+" ...\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Testing.xml:73
+#, no-c-format
+msgid "Using mocks in integration tests"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:75
+#, no-c-format
+msgid ""
+"Occasionally, we need to be able to replace the implementation of some Seam "
+"component that depends upon resources which are not available in the "
+"integration test environment. For example, suppose we have some Seam "
+"component which is a facade to some payment processing system:"
+msgstr ""
+
+#. Tag: programlisting
+#: Testing.xml:82
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"paymentProcessor\")\n"
+"public class PaymentProcessor {\n"
+" public boolean processPayment(Payment payment) { .... }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:84
+#, no-c-format
+msgid "For integration tests, we can mock out this component as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: Testing.xml:88
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"paymentProcessor\")\n"
+"@Install(precedence=MOCK)\n"
+"public class MockPaymentProcessor extends PaymentProcessor {\n"
+" public boolean processPayment(Payment payment) {\n"
+" return true;\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:90
+#, no-c-format
+msgid ""
+"Since the <literal>MOCK</literal> precedence is higher than the default "
+"precedence of application components, Seam will install the mock "
+"implementation whenever it is in the classpath. When deployed into "
+"production, the mock implementation is absent, so the real component will be "
+"installed."
+msgstr ""
+
+#. Tag: title
+#: Testing.xml:103
+#, no-c-format
+msgid "Integration testing Seam application user interactions"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:105
+#, no-c-format
+msgid ""
+"An even harder problem is emulating user interactions. A third problem is "
+"where to put our assertions. Some test frameworks let us test the whole "
+"application by reproducing user interactions with the web browser. These "
+"frameworks have their place, but they are not appropriate for use at "
+"development time."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:112
+#, no-c-format
+msgid ""
+"<literal>SeamTest</literal> lets you write <emphasis>scripted</emphasis> "
+"tests, in a simulated JSF environment. The role of a scripted test is to "
+"reproduce the interaction between the view and the Seam components. In other "
+"words, you get to pretend you are the JSF implementation!"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:119
+#, no-c-format
+msgid "This approach tests everything except the view."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:123
+#, no-c-format
+msgid "Let's consider a JSP view for the component we unit tested above:"
+msgstr ""
+
+#. Tag: programlisting
+#: Testing.xml:127
+#, no-c-format
+msgid ""
+"<![CDATA[<html>\n"
+" <head>\n"
+" <title>Register New User</title>\n"
+" </head>\n"
+" <body>\n"
+" <f:view>\n"
+" <h:form>\n"
+" <table border=\"0\">\n"
+" <tr>\n"
+" <td>Username</td>\n"
+" <td><h:inputText value=\"#{user.username}\"/></td>\n"
+" </tr>\n"
+" <tr>\n"
+" <td>Real Name</td>\n"
+" <td><h:inputText value=\"#{user.name}\"/></td>\n"
+" </tr>\n"
+" <tr>\n"
+" <td>Password</td>\n"
+" <td><h:inputSecret value=\"#{user.password}\"/></td>\n"
+" </tr>\n"
+" </table>\n"
+" <h:messages/>\n"
+" <h:commandButton type=\"submit\" value=\"Register\" action=\"#{register."
+"register}\"/>\n"
+" </h:form>\n"
+" </f:view>\n"
+" </body>\n"
+"</html>]]>"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:129
+#, no-c-format
+msgid ""
+"We want to test the registration functionality of our application (the stuff "
+"that happens when the user clicks the Register button). We'll reproduce the "
+"JSF request lifecycle in an automated TestNG test:"
+msgstr ""
+
+#. Tag: programlisting
+#: Testing.xml:135
+#, no-c-format
+msgid ""
+"<![CDATA[public class RegisterTest extends SeamTest\n"
+"{\n"
+" \n"
+" @Test\n"
+" public void testRegister() throws Exception\n"
+" {\n"
+" \n"
+" new FacesRequest() {\n"
+"\n"
+" @Override\n"
+" protected void processValidations() throws Exception\n"
+" {\n"
+" validateValue(\"#{user.username}\", \"1ovthafew\");\n"
+" validateValue(\"#{user.name}\", \"Gavin King\");\n"
+" validateValue(\"#{user.password}\", \"secret\");\n"
+" assert !isValidationFailure();\n"
+" }\n"
+" \n"
+" @Override\n"
+" protected void updateModelValues() throws Exception\n"
+" {\n"
+" setValue(\"#{user.username}\", \"1ovthafew\");\n"
+" setValue(\"#{user.name}\", \"Gavin King\");\n"
+" setValue(\"#{user.password}\", \"secret\");\n"
+" }\n"
+"\n"
+" @Override\n"
+" protected void invokeApplication()\n"
+" {\n"
+" assert invokeMethod(\"#{register.register}\").equals(\"success"
+"\");\n"
+" }\n"
+"\n"
+" @Override\n"
+" protected void renderResponse()\n"
+" {\n"
+" assert getValue(\"#{user.username}\").equals(\"1ovthafew\");\n"
+" assert getValue(\"#{user.name}\").equals(\"Gavin King\");\n"
+" assert getValue(\"#{user.password}\").equals(\"secret\");\n"
+" }\n"
+" \n"
+" }.run();\n"
+" \n"
+" }\n"
+"\n"
+" ...\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:137
+#, no-c-format
+msgid ""
+"Notice that we've extended <literal>SeamTest</literal>, which provides a "
+"Seam environment for our components, and written our test script as an "
+"anonymous class that extends <literal>SeamTest.FacesRequest</literal>, which "
+"provides an emulated JSF request lifecycle. (There is also a "
+"<literal>SeamTest.NonFacesRequest</literal> for testing GET requests.) We've "
+"written our code in methods which are named for the various JSF phases, to "
+"emulate the calls that JSF would make to our components. Then we've thrown "
+"in various assertions."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:148
+#, no-c-format
+msgid ""
+"You'll find plenty of integration tests for the Seam example applications "
+"which demonstrate more complex cases. There are instructions for running "
+"these tests using Ant, or using the TestNG plugin for eclipse:"
+msgstr ""
+
+#. Tag: title
+#: Testing.xml:164
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:166
+#, no-c-format
+msgid ""
+"If you used seam-gen to create your project you are ready to start writing "
+"tests. Otherwise you'll need to setup the testing environment in your "
+"favorite build tool (e.g. ant, maven, eclipse)."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:173
+#, no-c-format
+msgid "First, lets look at the dependencies you need at a minimum:"
+msgstr ""
+
+#. Tag: entry
+#: Testing.xml:182
+#, no-c-format
+msgid "Group Id"
+msgstr ""
+
+#. Tag: entry
+#: Testing.xml:185
+#, no-c-format
+msgid "Artifact Id"
+msgstr ""
+
+#. Tag: entry
+#: Testing.xml:188
+#, no-c-format
+msgid "Location in Seam"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:196 Testing.xml:207 Testing.xml:218 Testing.xml:229
+#, no-c-format
+msgid "org.jboss.seam.embedded"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:199
+#, no-c-format
+msgid "hibernate-all"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:202
+#, no-c-format
+msgid "lib/test/hibernate-all.jar"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:210
+#, no-c-format
+msgid "jboss-embedded-all"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:213
+#, no-c-format
+msgid "lib/test/jboss-embedded-all.jar"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:221
+#, no-c-format
+msgid "thirdparty-all"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:224
+#, no-c-format
+msgid "lib/test/thirdparty-all.jar"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:232
+#, no-c-format
+msgid "jboss-embedded-api"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:235
+#, no-c-format
+msgid "lib/jboss-embedded-api.jar"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:240
+#, no-c-format
+msgid "org.jboss.seam"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:243
+#, no-c-format
+msgid "jboss-seam"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:246
+#, no-c-format
+msgid "lib/jboss-seam.jar"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:251
+#, no-c-format
+msgid "org.jboss.el"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:254
+#, no-c-format
+msgid "jboss-el"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:257
+#, no-c-format
+msgid "lib/jboss-el.jar"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:262
+#, no-c-format
+msgid "javax.faces"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:265
+#, no-c-format
+msgid "jsf-api"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:268
+#, no-c-format
+msgid "lib/jsf-api.jar"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:273 Testing.xml:276
+#, no-c-format
+msgid "javax.activation"
+msgstr ""
+
+#. Tag: literal
+#: Testing.xml:279
+#, no-c-format
+msgid "lib/activation.jar"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:286
+#, no-c-format
+msgid ""
+"It's very important you don't put the compile time JBoss AS dependencies "
+"from <literal>lib/</literal> (e.g. <literal>jboss-system.jar</literal>) on "
+"the classpath, these will cause Embedded JBoss to not boot. So, just add the "
+"dependencies (e.g. Drools, jBPM)you need as you go."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:294
+#, no-c-format
+msgid ""
+"You also need to include the <literal>bootstrap/</literal> directory on the "
+"classpath; <literal>bootstrap/</literal> contains the configuration for "
+"Embedded JBoss."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:300
+#, no-c-format
+msgid ""
+"And, of course you need to put your built project and tests onto the "
+"classpath. Don't forget to put all the correct configuration files for JPA "
+"and Seam onto the classpath as well.Seam asks Embedded JBoss to deploy any "
+"resource (jar or directory) which has <literal>seam.properties</literal> in "
+"it's root. Therefore, if you don't assemble a directory structure that "
+"resembles a deployable archive containing your built project, you must put a "
+"<literal>seam.properties</literal> in each resource."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:311
+#, no-c-format
+msgid ""
+"By default, a generated project will use the <literal>java:/DefaultDS</"
+"literal> (a built in HSQL datasource in Embedded JBoss) for testing. If you "
+"want to use another datasource place the <literal>foo-ds.xml</literal> into "
+"<literal>bootstrap/deploy</literal> directory."
+msgstr ""
+
+#. Tag: title
+#: Testing.xml:322
+#, no-c-format
+msgid "Using SeamTest with another test framework"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:324
+#, no-c-format
+msgid ""
+"Seam provides TestNG support out of the box, but you can also use another "
+"test framework, such as JUnit, if you want."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:329
+#, no-c-format
+msgid ""
+"You'll need to provide an implementation of <literal>AbstractSeamTest</"
+"literal> which does the following:"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:336
+#, no-c-format
+msgid "Calls <literal>super.begin()</literal> before every test method."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:342
+#, no-c-format
+msgid "Calls <literal>super.end()</literal> after every test method."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:348
+#, no-c-format
+msgid ""
+"Calls <literal>super.setupClass()</literal> to setup integration test "
+"environment. This should be called before any test methods are called."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:355
+#, no-c-format
+msgid ""
+"Calls <literal>super.cleanupClass()</literal> to clean up the integration "
+"test environment."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:361
+#, no-c-format
+msgid ""
+"Calls <literal>super.startSeam()</literal> to start Seam at the start of "
+"integration testing."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:367
+#, no-c-format
+msgid ""
+"Calls <literal>super.stopSeam()</literal> to cleanly shut down Seam at the "
+"end of integration testing."
+msgstr ""
+
+#. Tag: title
+#: Testing.xml:376
+#, no-c-format
+msgid "Integration Testing with Mock Data"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:378
+#, no-c-format
+msgid ""
+"If you need to insert or clean data in your database before each test you "
+"can use Seam's integration with DBUnit. To do this, extend DBUnitSeamTest "
+"rather than SeamTest."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:384
+#, no-c-format
+msgid ""
+"You need to provide a dataset for DBUnit. IMPORTANT NOTE: DBUnit supports "
+"two formats for dataset files, flat and XML. Seam's DBUnitSeamTest assumes "
+"the flat format is used, so please ensure that your dataset is in this "
+"format also."
+msgstr ""
+
+#. Tag: programlisting
+#: Testing.xml:390
+#, no-c-format
+msgid ""
+"<![CDATA[<dataset>\n"
+" \n"
+" <ARTIST \n"
+" id=\"1\"\n"
+" dtype=\"Band\"\n"
+" name=\"Pink Floyd\" />\n"
+" \n"
+" <DISC\n"
+" id=\"1\"\n"
+" name=\"Dark Side of the Moon\"\n"
+" artist_id=\"1\" />\n"
+" \n"
+"</dataset>]]>"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:392
+#, no-c-format
+msgid ""
+"and tell Seam about it by overriding <literal>prepareDBUnitOperations()</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Testing.xml:396
+#, no-c-format
+msgid ""
+"<![CDATA[protected void prepareDBUnitOperations() {\n"
+" beforeTestOperations.add(\n"
+" new DataSetOperation(\"my/datasets/BaseData.xml\")\n"
+" );\n"
+" }]]>"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:398
+#, no-c-format
+msgid ""
+"<literal>DataSetOperation</literal> defaults to <literal>DatabaseOperation."
+"CLEAN_INSERT</literal> if no other operation is specified as a constructor "
+"argument. The above example cleans all tables defined <literal>BaseData.xml</"
+"literal>, then inserts all rows declared in <literal>BaseData.xml</literal> "
+"before each <literal>@Test</literal> method is invoked."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:406
+#, no-c-format
+msgid ""
+"If you require extra cleanup after a test method executes, add operations to "
+"<literal>afterTestOperations</literal> list."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:411
+#, no-c-format
+msgid ""
+"You need to tell DBUnit about the datasource you are using by setting a "
+"TestNG test parameter named <literal>datasourceJndiName</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Testing.xml:416
+#, no-c-format
+msgid ""
+"<![CDATA[<parameter name=\"datasourceJndiName\" value=\"java:/"
+"seamdiscsDatasource\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:418
+#, no-c-format
+msgid ""
+"DBUnitSeamTest only works out of the box with HSQL as a datasource. If you "
+"want to use another database, then you'll need to implement some extra "
+"methods. Read the javadoc on <literal>DBUnitSeamTest</literal> for more."
+msgstr ""
+
+#. Tag: title
+#: Testing.xml:428
+#, no-c-format
+msgid "Integration Testing Seam Mail"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:430
+#, no-c-format
+msgid "Warning! This feature is still under development."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:434
+#, no-c-format
+msgid "It's very easy to integration test your Seam Mail:"
+msgstr ""
+
+#. Tag: programlisting
+#: Testing.xml:438
+#, no-c-format
+msgid ""
+"<![CDATA[public class MailTest extends SeamTest {\n"
+" \n"
+" @Test\n"
+" public void testSimpleMessage() throws Exception {\n"
+" \n"
+" new FacesRequest() {\n"
+"\n"
+" @Override\n"
+" protected void updateModelValues() throws Exception {\n"
+" setValue(\"#{person.firstname}\", \"Pete\");\n"
+" setValue(\"#{person.lastname}\", \"Muir\");\n"
+" setValue(\"#{person.address}\", \"test(a)example.com\");\n"
+" }\n"
+" \n"
+" @Override\n"
+" protected void invokeApplication() throws Exception {\n"
+" MimeMessage renderedMessage = getRenderedMailMessage(\"/simple."
+"xhtml\");\n"
+" assert renderedMessage.getAllRecipients().length == 1;\n"
+" InternetAddress to = (InternetAddress) renderedMessage."
+"getAllRecipients()[0];\n"
+" assert to.getAddress().equals(\"test(a)example.com\");\n"
+" }\n"
+" \n"
+" }.run(); \n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:440
+#, no-c-format
+msgid ""
+"We create a new <literal>FacesRequest</literal> as normal. Inside the "
+"invokeApplication hook we render the message using "
+"<literal>getRenderedMailMessage(viewId);</literal>, passing the viewId of "
+"the message to render. The method returns the rendered message on which you "
+"can do your tests. You can of course also use any of the standard JSF "
+"lifecycle methods."
+msgstr ""
+
+#. Tag: para
+#: Testing.xml:449
+#, no-c-format
+msgid ""
+"There is no support for rendering standard JSF components so you can't test "
+"the content body of the mail message easily."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Text.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Text.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Text.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,383 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Text.xml:2
+#, no-c-format
+msgid "Seam Text"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:4
+#, no-c-format
+msgid ""
+"Collaboration-oriented websites require a human-friendly markup language for "
+"easy entry of formatted text in forum posts, wiki pages, blogs, comments, "
+"etc. Seam provides the <literal><s:formattedText/></literal> control "
+"for display of formatted text that conforms to the <emphasis>Seam Text</"
+"emphasis> language. Seam Text is implemented using an ANTLR-based parser. "
+"You don't need to know anything about ANTLR to use it, however."
+msgstr ""
+
+#. Tag: title
+#: Text.xml:13
+#, no-c-format
+msgid "Basic fomatting"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:14
+#, no-c-format
+msgid "Here is a simple example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:18
+#, no-c-format
+msgid ""
+"<![CDATA[It's easy to make *emphasis*, |monospace|,\n"
+"~deleted text~, super^scripts^ or _underlines_.]]>"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:20
+#, no-c-format
+msgid ""
+"If we display this using <literal><s:formattedText/></literal>, we "
+"will get the following HTML produced:"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:25
+#, no-c-format
+msgid ""
+"<![CDATA[<p>\n"
+"It's easy to make <i>emphasis</i>, <tt>monospace</tt>\n"
+"<del>deleted text</del>, super<sup>scripts</sup> or <u>underlines</u>.\n"
+"</p>]]>"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:27
+#, no-c-format
+msgid ""
+"We can use a blank line to indicate a new paragraph, and <literal>+</"
+"literal> to indicate a heading:"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:32
+#, no-c-format
+msgid ""
+"<![CDATA[+This is a big heading\n"
+"You /must/ have some text following a heading!\n"
+" \n"
+"++This is a smaller heading\n"
+"This is the first paragraph. We can split it across multiple \n"
+"lines, but we must end it with a blank line.\n"
+"\n"
+"This is the second paragraph.]]>"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:34
+#, no-c-format
+msgid ""
+"(Note that a simple newline is ignored, you need an additional blank line to "
+"wrap text into a new paragraph.) This is the HTML that results:"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:39
+#, no-c-format
+msgid ""
+"<![CDATA[<h1>This is a big heading</h1>\n"
+"<p>\n"
+"You <i>must</i> have some text following a heading!\n"
+"</p>\n"
+" \n"
+"<h2>This is a smaller heading</h2>\n"
+"<p>\n"
+"This is the first paragraph. We can split it across multiple \n"
+"lines, but we must end it with a blank line.\n"
+"</p>\n"
+"\n"
+"<p>\n"
+"This is the second paragraph.\n"
+"</p>]]>"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:41
+#, no-c-format
+msgid ""
+"Ordered lists are created using the <literal>#</literal> character. "
+"Unordered lists use the <literal>=</literal> character:"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:46
+#, no-c-format
+msgid ""
+"<![CDATA[An ordered list:\n"
+" \n"
+"#first item\n"
+"#second item\n"
+"#and even the /third/ item\n"
+"\n"
+"An unordered list:\n"
+"\n"
+"=an item\n"
+"=another item]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:48
+#, no-c-format
+msgid ""
+"<![CDATA[<p>\n"
+"An ordered list:\n"
+"</p>\n"
+" \n"
+"<ol> \n"
+"<li>first item</li>\n"
+"<li>second item</li>\n"
+"<li>and even the <i>third</i> item</li>\n"
+"</ol>\n"
+"\n"
+"<p>\n"
+"An unordered list:\n"
+"</p>\n"
+"\n"
+"<ul>\n"
+"<li>an item</li>\n"
+"<li>another item</li>\n"
+"</ul>]]>"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:50
+#, no-c-format
+msgid "Quoted sections should be surrounded in double quotes:"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:54
+#, no-c-format
+msgid ""
+"<![CDATA[The other guy said:\n"
+" \n"
+"\"Nyeah nyeah-nee \n"
+"/nyeah/ nyeah!\"\n"
+"\n"
+"But what do you think he means by \"nyeah-nee\"?]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:56
+#, no-c-format
+msgid ""
+"<![CDATA[<p>\n"
+"The other guy said:\n"
+"</p>\n"
+" \n"
+"<q>Nyeah nyeah-nee\n"
+"<i>nyeah</i> nyeah!</q>\n"
+"\n"
+"<p>\n"
+"But what do you think he means by <q>nyeah-nee</q>?\n"
+"</p>]]>"
+msgstr ""
+
+#. Tag: title
+#: Text.xml:61
+#, no-c-format
+msgid "Entering code and text with special characters"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:62
+#, no-c-format
+msgid ""
+"Special characters such as <literal>*</literal>, <literal>|</literal> and "
+"<literal>#</literal>, along with HTML characters such as <literal><</"
+"literal>, <literal>></literal> and <literal>&</literal> may be "
+"escaped using <literal>\\</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:69
+#, no-c-format
+msgid ""
+"<![CDATA[You can write down equations like 2\\*3\\=6 and HTML tags\n"
+"like \\<body\\> using the escape character: \\\\.]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:71
+#, no-c-format
+msgid ""
+"<![CDATA[<p>\n"
+"You can write down equations like 2*3=6 and HTML tags\n"
+"like <body> using the escape character: \\.\n"
+"</p>]]>"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:73
+#, no-c-format
+msgid "And we can quote code blocks using backticks:"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:77
+#, no-c-format
+msgid ""
+"<![CDATA[My code doesn't work:\n"
+"\n"
+"`for (int i=0; i<100; i--)\n"
+"{\n"
+" doSomething();\n"
+"}`\n"
+"\n"
+"Any ideas?]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:79
+#, no-c-format
+msgid ""
+"<![CDATA[<p>\n"
+"My code doesn't work:\n"
+"</p>\n"
+"\n"
+"<pre>for (int i=0; i<100; i--)\n"
+"{\n"
+" doSomething();\n"
+"}</pre>\n"
+"\n"
+"<p>\n"
+"Any ideas?\n"
+"</p>]]>"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:81
+#, no-c-format
+msgid ""
+"Note that inline monospace formatting always escapes (most monospace "
+"formatted text is in fact code or tags with many special characters). So you "
+"can, for example, write:"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:86
+#, no-c-format
+msgid "<![CDATA[This is a |<tag attribute=\"value\"/>| example.]]>"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:88
+#, no-c-format
+msgid ""
+"without escaping any of the characters inside the monospace bars. The "
+"downside is that you can't format inline monospace text in any other way "
+"(italics, underscore, and so on)."
+msgstr ""
+
+#. Tag: title
+#: Text.xml:96
+#, no-c-format
+msgid "Links"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:98
+#, no-c-format
+msgid "A link may be created using the following syntax:"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:102
+#, no-c-format
+msgid ""
+"<![CDATA[Go to the Seam website at [=>http://jboss.com/products/seam].]]>"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:104
+#, no-c-format
+msgid "Or, if you want to specify the text of the link:"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:108
+#, no-c-format
+msgid "<![CDATA[Go to [the Seam website=>http://jboss.com/products/seam].]]>"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:110
+#, no-c-format
+msgid ""
+"For advanced users, it is even possible to customize the Seam Text parser to "
+"understand wikiword links written using this syntax."
+msgstr ""
+
+#. Tag: title
+#: Text.xml:118
+#, no-c-format
+msgid "Entering HTML"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:120
+#, no-c-format
+msgid ""
+"Text may even include a certain limited subset of HTML (don't worry, the "
+"subset is chosen to be safe from cross-site scripting attacks). This is "
+"useful for creating links:"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:125
+#, no-c-format
+msgid ""
+"<![CDATA[You might want to link to <a href=\"http://jboss.com/products/seam"
+"\">something\n"
+"cool</a>, or even include an image: <img src=\"/logo.jpg\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:127
+#, no-c-format
+msgid "And for creating tables:"
+msgstr ""
+
+#. Tag: programlisting
+#: Text.xml:131
+#, no-c-format
+msgid ""
+"<![CDATA[<table>\n"
+" <tr><td>First name:</td><td>Gavin</td></tr>\n"
+" <tr><td>Last name:</td><td>King</td></tr>\n"
+"</table>]]>"
+msgstr ""
+
+#. Tag: para
+#: Text.xml:133
+#, no-c-format
+msgid "But you can do much more if you want!"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Tools.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Tools.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Tools.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,69 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Tools.xml:2
+#, no-c-format
+msgid "Seam tools"
+msgstr ""
+
+#. Tag: title
+#: Tools.xml:5
+#, no-c-format
+msgid "jBPM designer and viewer"
+msgstr ""
+
+#. Tag: para
+#: Tools.xml:7
+#, no-c-format
+msgid ""
+"The jBPM designer and viewer will let you design and view in a nice way your "
+"business processes and your pageflows. This convenient tool is part of JBoss "
+"Eclipse IDE and more details can be found in the jBPM's documentation "
+"(http://docs.jboss.com/jbpm/v3/gpd/)"
+msgstr ""
+
+#. Tag: title
+#: Tools.xml:13
+#, no-c-format
+msgid "<title>Business process designer</title>"
+msgstr ""
+
+#. Tag: para
+#: Tools.xml:15
+#, no-c-format
+msgid "This tool lets you design your own business process in a graphical way."
+msgstr ""
+
+#. Tag: screeninfo
+#: Tools.xml:20 Tools.xml:42
+#, no-c-format
+msgid "<screeninfo>Business process designer</screeninfo>"
+msgstr ""
+
+#. Tag: title
+#: Tools.xml:34
+#, no-c-format
+msgid "Pageflow viewer"
+msgstr ""
+
+#. Tag: para
+#: Tools.xml:36
+#, no-c-format
+msgid ""
+"This tool let you design to some extend your pageflows and let you build "
+"graphical views of them so you can easily share and compare ideas on how it "
+"should be designed."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Tutorial.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Tutorial.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Tutorial.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,4009 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Tutorial.xml:4
+#, no-c-format
+msgid "Seam Tutorial"
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:7
+#, no-c-format
+msgid "Try the examples"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:9
+#, no-c-format
+msgid ""
+"In this tutorial, we'll assume that you have downloaded JBoss AS 4.2. You "
+"should also have a copy of Seam downloaded and extracted to a work directory."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:12
+#, no-c-format
+msgid "The directory structure of each example in Seam follows this pattern:"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:16
+#, no-c-format
+msgid ""
+"Web pages, images and stylesheets may be found in <filename>examples/"
+"<replaceable>registration</replaceable>/view</filename>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:21
+#, no-c-format
+msgid ""
+"Resources such as deployment descriptors and data import scripts may be "
+"found in <filename>examples/<replaceable>registration</replaceable>/"
+"resources</filename>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:26
+#, no-c-format
+msgid ""
+"Java source code may be found in <filename>examples/"
+"<replaceable>registration</replaceable>/src</filename>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:31
+#, no-c-format
+msgid ""
+"The Ant build script is <filename>examples/<replaceable>registration</"
+"replaceable>/build.xml</filename>"
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:38
+#, no-c-format
+msgid "Running the examples on JBoss AS"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:40
+#, no-c-format
+msgid ""
+"First, make sure you have Ant correctly installed, with <literal>$ANT_HOME</"
+"literal> and <literal>$JAVA_HOME</literal> set correctly. Next, make sure "
+"you set the location of your JBoss AS 4.2 installation in the <literal>build."
+"properties</literal> file in the root folder of your Seam installation. If "
+"you haven't already done so, start JBoss AS now by typing <literal>bin/run."
+"sh</literal> or <literal>bin/run.bat</literal> in the root directory of your "
+"JBoss installation."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:46
+#, no-c-format
+msgid ""
+"Now, build and deploy the example by typing <literal>ant deploy</literal> in "
+"the <filename>examples/<replaceable>registration</replaceable></filename> "
+"directory."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:49
+#, no-c-format
+msgid ""
+"Try it out by accessing <ulink url=\"http://localhost:8080/seam-registration/"
+"\"> <literal>http://localhost:8080/seam-registration/</literal> </ulink> "
+"with your web browser."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:56
+#, no-c-format
+msgid "Running the examples on Tomcat"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:58
+#, no-c-format
+msgid ""
+"First, make sure you have Ant correctly installed, with <literal>$ANT_HOME</"
+"literal> and <literal>$JAVA_HOME</literal> set correctly. Next, make sure "
+"you set the location of your Tomcat 6.0 installation in the <literal>build."
+"properties</literal> file in the root folder of your Seam installation. You "
+"will need to follow the instructions in <xref linkend=\"config.install."
+"embedded\"/> for installing JBoss Embedded on Tomcat 6.0. JBoss Embedded is "
+"required to run the Seam demo applications on Tomcat. (However, it is "
+"possible to use Seam on Tomcat without JBoss Embedded.)"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:67
+#, no-c-format
+msgid ""
+"Now, build and deploy the example by typing <literal>ant tomcat.deploy</"
+"literal> in the <filename>examples/<replaceable>registration</replaceable></"
+"filename> directory."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:72
+#, no-c-format
+msgid "Finally, start Tomcat."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:74
+#, no-c-format
+msgid ""
+"Try it out by accessing <ulink url=\"http://localhost:8080/jboss-seam-"
+"registration/\"> <literal>http://localhost:8080/jboss-seam-registration/</"
+"literal> </ulink> with your web browser."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:80
+#, no-c-format
+msgid ""
+"When you deploy the example to Tomcat, any EJB3 components will run inside "
+"the JBoss Embeddable EJB3 container, a complete standalone EJB3 container "
+"environment."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:88
+#, no-c-format
+msgid "Running the example tests"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:89
+#, no-c-format
+msgid ""
+"Most of the examples come with a suite of TestNG integration tests. The "
+"easiest way to run the tests is to run <literal>ant testexample</literal> "
+"inside the <filename>examples/<replaceable>registration</replaceable></"
+"filename> directory. It is also possible to run the tests inside your IDE "
+"using the TestNG plugin."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:100
+#, no-c-format
+msgid "Your first Seam application: the registration example"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:102
+#, no-c-format
+msgid ""
+"The registration example is a fairly trivial application that lets a new "
+"user store his username, real name and password in the database. The example "
+"isn't intended to show off all of the cool functionality of Seam. However, "
+"it demonstrates the use of an EJB3 session bean as a JSF action listener, "
+"and basic configuration of Seam."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:107
+#, no-c-format
+msgid ""
+"We'll go slowly, since we realize you might not yet be familiar with EJB 3.0."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:109
+#, no-c-format
+msgid ""
+"The start page displays a very basic form with three input fields. Try "
+"filling them in and then submitting the form. This will save a user object "
+"in the database."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:122 Tutorial.xml:518 Tutorial.xml:706 Tutorial.xml:898
+#, no-c-format
+msgid "Understanding the code"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:124
+#, no-c-format
+msgid ""
+"The example is implemented with two JSP pages, one entity bean and one "
+"stateless session bean."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:135
+#, no-c-format
+msgid "Let's take a look at the code, starting from the \"bottom\"."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:138
+#, no-c-format
+msgid "The entity bean: <literal>User.java</literal>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:140
+#, no-c-format
+msgid ""
+"We need an EJB entity bean for user data. This class defines "
+"<emphasis>persistence</emphasis> and <emphasis>validation</emphasis> "
+"declaratively, via annotations. It also needs some extra annotations that "
+"define the class as a Seam component."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:157
+#, no-c-format
+msgid ""
+"<![CDATA[@Entity <co id=\"registration-entity-annotation\"/>\n"
+"@Name(\"user\")\n"
+"@Scope(SESSION)\n"
+"@Table(name=\"users\")\n"
+"public class User implements Serializable\n"
+"{\n"
+" private static final long serialVersionUID = 1881413500711441951L;\n"
+" \n"
+" private String username;\n"
+" private String password;\n"
+" private String name;\n"
+" \n"
+" public User(String name, String password, String username)\n"
+" {\n"
+" this.name = name;\n"
+" this.password = password;\n"
+" this.username = username;\n"
+" }\n"
+" \n"
+" public User() {}\n"
+" \n"
+" @NotNull @Length(min=5, max=15)\n"
+" public String getPassword()\n"
+" {\n"
+" return password;\n"
+" }\n"
+"\n"
+" public void setPassword(String password)\n"
+" {\n"
+" this.password = password;\n"
+" }\n"
+" \n"
+" @NotNull\n"
+" public String getName()\n"
+" {\n"
+" return name;\n"
+" }\n"
+"\n"
+" public void setName(String name)\n"
+" {\n"
+" this.name = name;\n"
+" }\n"
+" \n"
+" @Id @NotNull @Length(min=5, max=15)\n"
+" public String getUsername()\n"
+" {\n"
+" return username;\n"
+" }\n"
+"\n"
+" public void setUsername(String username)\n"
+" {\n"
+" this.username = username;\n"
+" }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:160
+#, no-c-format
+msgid ""
+"The EJB3 standard <literal>@Entity</literal> annotation indicates that the "
+"<literal>User</literal> class is an entity bean."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:164
+#, no-c-format
+msgid ""
+"A Seam component needs a <emphasis>component name</emphasis> specified by "
+"the <link linkend=\"name-annotation\"> <literal>@Name</literal> </link> "
+"annotation. This name must be unique within the Seam application. When JSF "
+"asks Seam to resolve a context variable with a name that is the same as a "
+"Seam component name, and the context variable is currently undefined (null), "
+"Seam will instantiate that component, and bind the new instance to the "
+"context variable. In this case, Seam will instantiate a <literal>User</"
+"literal> the first time JSF encounters a variable named <literal>user</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:175
+#, no-c-format
+msgid ""
+"Whenever Seam instantiates a component, it binds the new instance to a "
+"context variable in the component's <emphasis>default context</emphasis>. "
+"The default context is specified using the <link linkend=\"scope-annotation"
+"\"> <literal>@Scope</literal> </link> annotation. The <literal>User</"
+"literal> bean is a session scoped component."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:183
+#, no-c-format
+msgid ""
+"The EJB standard <literal>@Table</literal> annotation indicates that the "
+"<literal>User</literal> class is mapped to the <literal>users</literal> "
+"table."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:188
+#, no-c-format
+msgid ""
+"<literal>name</literal>, <literal>password</literal> and <literal>username</"
+"literal> are the persistent attributes of the entity bean. All of our "
+"persistent attributes define accessor methods. These are needed when this "
+"component is used by JSF in the render response and update model values "
+"phases."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:195
+#, no-c-format
+msgid ""
+"An empty constructor is both required by both the EJB specification and by "
+"Seam."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:199
+#, no-c-format
+msgid ""
+"The <literal>@NotNull</literal> and <literal>@Length</literal> annotations "
+"are part of the Hibernate Validator framework. Seam integrates Hibernate "
+"Validator and lets you use it for data validation (even if you are not using "
+"Hibernate for persistence)."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:205
+#, no-c-format
+msgid ""
+"The EJB standard <literal>@Id</literal> annotation indicates the primary key "
+"attribute of the entity bean."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:211
+#, no-c-format
+msgid ""
+"The most important things to notice in this example are the <literal>@Name</"
+"literal> and <literal>@Scope</literal> annotations. These annotations "
+"establish that this class is a Seam component."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:213
+#, no-c-format
+msgid ""
+"We'll see below that the properties of our <literal>User</literal> class are "
+"bound directly to JSF components and are populated by JSF during the update "
+"model values phase. We don't need any tedious glue code to copy data back "
+"and forth between the JSP pages and the entity bean domain model."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:217
+#, no-c-format
+msgid ""
+"However, entity beans shouldn't do transaction management or database "
+"access. So we can't use this component as a JSF action listener. For that we "
+"need a session bean."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:224
+#, no-c-format
+msgid ""
+"The stateless session bean class: <literal>RegisterAction.java</literal>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:226
+#, no-c-format
+msgid ""
+"Most Seam application use session beans as JSF action listeners (you can use "
+"JavaBeans instead if you like)."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:228
+#, no-c-format
+msgid ""
+"We have exactly one JSF action in our application, and one session bean "
+"method attached to it. In this case, we'll use a stateless session bean, "
+"since all the state associated with our action is held by the <literal>User</"
+"literal> bean."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:232
+#, no-c-format
+msgid "This is the only really interesting code in the example!"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:248
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateless\n"
+"@Name(\"register\")\n"
+"public class RegisterAction implements Register\n"
+"{\n"
+"\n"
+" @In\n"
+" private User user;\n"
+" \n"
+" @PersistenceContext\n"
+" private EntityManager em;\n"
+" \n"
+" @Logger\n"
+" private Log log;\n"
+" \n"
+" public String register()\n"
+" {\n"
+" List existing = em.createQuery(\n"
+" \"select username from User where username=#{user.username}\")\n"
+" .getResultList();\n"
+" \n"
+" if (existing.size()==0)\n"
+" {\n"
+" em.persist(user);\n"
+" log.info(\"Registered new user #{user.username}\");\n"
+" return \"/registered.xhtml\";\n"
+" }\n"
+" else\n"
+" {\n"
+" FacesMessages.instance().add(\"User #{user.username} already exists"
+"\");\n"
+" return null;\n"
+" }\n"
+" }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:252
+#, no-c-format
+msgid ""
+"The EJB standard <literal>@Stateless</literal> annotation marks this class "
+"as a stateless session bean."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:256
+#, no-c-format
+msgid ""
+"The <link linkend=\"in-annotation\"> <literal>@In</literal> </link> "
+"annotation marks an attribute of the bean as injected by Seam. In this case, "
+"the attribute is injected from a context variable named <literal>user</"
+"literal> (the instance variable name)."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:263
+#, no-c-format
+msgid ""
+"The EJB standard <literal>@PersistenceContext</literal> annotation is used "
+"to inject the EJB3 entity manager."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:267
+#, no-c-format
+msgid ""
+"The Seam <literal>@Logger</literal> annotation is used to inject the "
+"component's <literal>Log</literal> instance."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:271
+#, no-c-format
+msgid ""
+"The action listener method uses the standard EJB3 <literal>EntityManager</"
+"literal> API to interact with the database, and returns the JSF outcome. "
+"Note that, since this is a session bean, a transaction is automatically "
+"begun when the <literal>register()</literal> method is called, and committed "
+"when it completes."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:278
+#, no-c-format
+msgid ""
+"Notice that Seam lets you use a JSF EL expression inside EJB-QL. Under the "
+"covers, this results in an ordinary JPA <literal>setParameter()</literal> "
+"call on the standard JPA <literal>Query</literal> object. Nice, huh?"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:283
+#, no-c-format
+msgid ""
+"The <literal>Log</literal> API lets us easily display templated log messages."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:287
+#, no-c-format
+msgid ""
+"JSF action listener methods return a string-valued outcome that determines "
+"what page will be displayed next. A null outcome (or a void action listener "
+"method) redisplays the previous page. In plain JSF, it is normal to always "
+"use a JSF <emphasis>navigation rule</emphasis> to determine the JSF view id "
+"from the outcome. For complex application this indirection is useful and a "
+"good practice. However, for very simple examples like this one, Seam lets "
+"you use the JSF view id as the outcome, eliminating the requirement for a "
+"navigation rule. <emphasis>Note that when you use a view id as an outcome, "
+"Seam always performs a browser redirect.</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:299
+#, no-c-format
+msgid ""
+"Seam provides a number of <emphasis>built-in components</emphasis> to help "
+"solve common problems. The <literal>FacesMessages</literal> component makes "
+"it easy to display templated error or success messages. Built-in Seam "
+"components may be obtained by injection, or by calling an <literal>instance()"
+"</literal> method."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:309
+#, no-c-format
+msgid ""
+"Note that we did not explicitly specify a <literal>@Scope</literal> this "
+"time. Each Seam component type has a default scope if not explicitly "
+"specified. For stateless session beans, the default scope is the stateless "
+"context. Actually, <emphasis>all</emphasis> stateless session beans belong "
+"in the stateless context."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:314
+#, no-c-format
+msgid ""
+"Our session bean action listener performs the business and persistence logic "
+"for our mini-application. In more complex applications, we might need to "
+"layer the code and refactor persistence logic into a dedicated data access "
+"component. That's perfectly trivial to do. But notice that Seam does not "
+"force you into any particular strategy for application layering."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:319
+#, no-c-format
+msgid ""
+"Furthermore, notice that our session bean has simultaneous access to context "
+"associated with the web request (the form values in the <literal>User</"
+"literal> object, for example), and state held in transactional resources "
+"(the <literal>EntityManager</literal> object). This is a break from "
+"traditional J2EE architectures. Again, if you are more comfortable with the "
+"traditional J2EE layering, you can certainly implement that in a Seam "
+"application. But for many applications, it's simply not very useful."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:329
+#, no-c-format
+msgid "The session bean local interface: <literal>Register.java</literal>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:331
+#, no-c-format
+msgid "Naturally, our session bean needs a local interface."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[@Local\n"
+"public interface Register\n"
+"{\n"
+" public String register();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:337
+#, no-c-format
+msgid "That's the end of the Java code. Now onto the deployment descriptors."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:342
+#, no-c-format
+msgid ""
+"The Seam component deployment descriptor: <literal>components.xml</literal>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:344
+#, no-c-format
+msgid ""
+"If you've used many Java frameworks before, you'll be used to having to "
+"declare all your component classes in some kind of XML file that gradually "
+"grows more and more unmanageable as your project matures. You'll be relieved "
+"to know that Seam does not require that application components be "
+"accompanied by XML. Most Seam applications require a very small amount of "
+"XML that does not grow very much as the project gets bigger."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:350
+#, no-c-format
+msgid ""
+"Nevertheless, it is often useful to be able to provide for <emphasis>some</"
+"emphasis> external configuration of <emphasis>some</emphasis> components "
+"(particularly the components built in to Seam). You have a couple of options "
+"here, but the most flexible option is to provide this configuration in a "
+"file called <literal>components.xml</literal>, located in the <literal>WEB-"
+"INF</literal> directory. We'll use the <literal>components.xml</literal> "
+"file to tell Seam how to find our EJB components in JNDI:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:358
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+" xmlns:core=\"http://jboss.com/products/seam/core\"\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"
+" \n"
+" <core:init jndi-pattern=\"@jndiPattern@\"/>\n"
+" \n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:360
+#, no-c-format
+msgid ""
+"This code configures a property named <literal>jndiPattern</literal> of a "
+"built-in Seam component named <literal>org.jboss.seam.core.init</literal>. "
+"The funny <literal>@</literal> symbols are there because our Ant build "
+"script puts the correct JNDI pattern in when we deploy the application."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:367
+#, no-c-format
+msgid "The web deployment description: <literal>web.xml</literal>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:369
+#, no-c-format
+msgid ""
+"The presentation layer for our mini-application will be deployed in a WAR. "
+"So we'll need a web deployment descriptor."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:372
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<web-app version=\"2.5\"\n"
+" xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee \n"
+" http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+"\">\n"
+"\n"
+" <!-- Seam -->\n"
+"\n"
+" <listener>\n"
+" <listener-class>org.jboss.seam.servlet.SeamListener</listener-"
+"class>\n"
+" </listener>\n"
+"\n"
+" <!-- JSF -->\n"
+" \n"
+" <listener>\n"
+" <listener-class>com.sun.faces.config.ConfigureListener</listener-"
+"class>\n"
+" </listener>\n"
+" \n"
+" <context-param>\n"
+" <param-name>javax.faces.DEFAULT_SUFFIX</param-name>\n"
+" <param-value>.xhtml</param-value>\n"
+" </context-param>\n"
+" \n"
+" <servlet>\n"
+" <servlet-name>Faces Servlet</servlet-name>\n"
+" <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>\n"
+" <load-on-startup>1</load-on-startup>\n"
+" </servlet>\n"
+"\n"
+" <servlet-mapping>\n"
+" <servlet-name>Faces Servlet</servlet-name>\n"
+" <url-pattern>*.seam</url-pattern>\n"
+" </servlet-mapping>\n"
+" \n"
+" <session-config>\n"
+" <session-timeout>10</session-timeout>\n"
+" </session-config>\n"
+"\n"
+"</web-app>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:375
+#, no-c-format
+msgid ""
+"This <literal>web.xml</literal> file configures Seam and JSF. The "
+"configuration you see here is pretty much identical in all Seam applications."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:381
+#, no-c-format
+msgid "The JSF configration: <literal>faces-config.xml</literal>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:383
+#, no-c-format
+msgid ""
+"Most Seam applications use JSF views as the presentation layer. So usually "
+"we'll need <literal>faces-config.xml</literal>. In our case, we are going to "
+"use Facelets for defining our views, so we need to tell JSF to use Facelets "
+"as its templating engine."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:389
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<faces-config version=\"1.2\"\n"
+" xmlns=\"http://java.sun.com/xml/ns/javaee\"\n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://"
+"java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd\">\n"
+"\n"
+" <!-- Facelets support -->\n"
+" <application>\n"
+" <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>\n"
+" </application>\n"
+" \n"
+"</faces-config>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:393
+#, no-c-format
+msgid ""
+"Note that we don't need any JSF managed bean declarations! Our managed beans "
+"are annotated Seam components. In Seam applications, the <literal>faces-"
+"config.xml</literal> is used much less often than in plain JSF."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:397
+#, no-c-format
+msgid ""
+"In fact, once you have all the basic descriptors set up, the <emphasis>only</"
+"emphasis> XML you need to write as you add new functionality to a Seam "
+"application is orchestration: navigation rules or jBPM process definitions. "
+"Seam takes the view that <emphasis>process flow</emphasis> and "
+"<emphasis>configuration data</emphasis> are the only things that truly "
+"belong in XML."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:402
+#, no-c-format
+msgid ""
+"In this simple example, we don't even need a navigation rule, since we "
+"decided to embed the view id in our action code."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:408
+#, no-c-format
+msgid "The EJB deployment descriptor: <literal>ejb-jar.xml</literal>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:410
+#, no-c-format
+msgid ""
+"The <literal>ejb-jar.xml</literal> file integrates Seam with EJB3, by "
+"attaching the <literal>SeamInterceptor</literal> to all session beans in the "
+"archive."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:413
+#, no-c-format
+msgid ""
+"<![CDATA[<ejb-jar xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee \n"
+" http://java.sun.com/xml/ns/javaee/ejb-jar_3_0."
+"xsd\"\n"
+" version=\"3.0\">\n"
+" \n"
+" <interceptors>\n"
+" <interceptor>\n"
+" <interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-"
+"class>\n"
+" </interceptor>\n"
+" </interceptors>\n"
+" \n"
+" <assembly-descriptor>\n"
+" <interceptor-binding>\n"
+" <ejb-name>*</ejb-name>\n"
+" <interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-"
+"class>\n"
+" </interceptor-binding>\n"
+" </assembly-descriptor>\n"
+" \n"
+"</ejb-jar>]]>"
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:418
+#, no-c-format
+msgid ""
+"The EJB persistence deployment descriptor: <literal>persistence.xml</literal>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:420
+#, no-c-format
+msgid ""
+"The <literal>persistence.xml</literal> file tells the EJB persistence "
+"provider where to find the datasource, and contains some vendor-specific "
+"settings. In this case, enables automatic schema export at startup time."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:424
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<persistence xmlns=\"http://java.sun.com/xml/ns/persistence\" \n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence \n"
+" http://java.sun.com/xml/ns/persistence/"
+"persistence_1_0.xsd\" \n"
+" version=\"1.0\">\n"
+"\n"
+" <persistence-unit name=\"userDatabase\">\n"
+" <provider>org.hibernate.ejb.HibernatePersistence</provider>\n"
+" <jta-data-source>java:/DefaultDS</jta-data-source>\n"
+" <properties>\n"
+" <property name=\"hibernate.hbm2ddl.auto\" value=\"create-drop\"/>\n"
+" </properties>\n"
+" </persistence-unit>\n"
+" \n"
+"</persistence>]]>"
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:429
+#, no-c-format
+msgid ""
+"The view: <literal>register.xhtml</literal> and <literal>registered.xhtml</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:431
+#, no-c-format
+msgid ""
+"The view pages for a Seam application could be implemented using any "
+"technology that supports JSF. In this example we use Facelets, because we "
+"think it's better than JSP."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:436
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
+"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n"
+" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional."
+"dtd\">\n"
+"<html xmlns=\"http://www.w3.org/1999/xhtml\"\n"
+" xmlns:s=\"http://jboss.com/products/seam/taglib\"\n"
+" xmlns:h=\"http://java.sun.com/jsf/html\"\n"
+" xmlns:f=\"http://java.sun.com/jsf/core\">\n"
+"\n"
+" <head>\n"
+" <title>Register New User</title>\n"
+" </head>\n"
+" <body>\n"
+" <f:view>\n"
+" <h:form>\n"
+" <s:validateAll>\n"
+" <h:panelGrid columns=\"2\">\n"
+" Username: <h:inputText value=\"#{user.username}\" required="
+"\"true\"/>\n"
+" Real Name: <h:inputText value=\"#{user.name}\" required="
+"\"true\"/>\n"
+" Password: <h:inputSecret value=\"#{user.password}\" "
+"required=\"true\"/>\n"
+" </h:panelGrid>\n"
+" </s:validateAll>\n"
+" <h:messages/>\n"
+" <h:commandButton value=\"Register\" action=\"#{register.register}"
+"\"/>\n"
+" </h:form>\n"
+" </f:view>\n"
+" </body>\n"
+"\n"
+"</html>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:439
+#, no-c-format
+msgid ""
+"The only thing here that is specific to Seam is the <literal><s:"
+"validateAll></literal> tag. This JSF component tells JSF to validate all "
+"the contained input fields against the Hibernate Validator annotations "
+"specified on the entity bean."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:445
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
+"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n"
+" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional."
+"dtd\">\n"
+"<html xmlns=\"http://www.w3.org/1999/xhtml\"\n"
+" xmlns:f=\"http://java.sun.com/jsf/core\">\n"
+"\n"
+" <head>\n"
+" <title>Successfully Registered New User</title>\n"
+" </head>\n"
+" <body>\n"
+" <f:view>\n"
+" Welcome, #{user.name}, you are successfully registered as #{user."
+"username}.\n"
+" </f:view>\n"
+" </body>\n"
+"\n"
+"</html>\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:449
+#, no-c-format
+msgid ""
+"This is a boring old Facelets page using some embedded EL. There is nothing "
+"specific to Seam here."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:455
+#, no-c-format
+msgid "The EAR deployment descriptor: <literal>application.xml</literal>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:457
+#, no-c-format
+msgid ""
+"Finally, since our application is deployed as an EAR, we need a deployment "
+"descriptor there, too."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:459
+#, no-c-format
+msgid "registration application"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:460
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<application xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee \n"
+" http://java.sun.com/xml/ns/javaee/"
+"application_5.xsd\"\n"
+" version=\"5\">\n"
+" \n"
+" <display-name>Seam Registration</display-name>\n"
+"\n"
+" <module>\n"
+" <web>\n"
+" <web-uri>jboss-seam-registration.war</web-uri>\n"
+" <context-root>/seam-registration</context-root>\n"
+" </web>\n"
+" </module>\n"
+" <module>\n"
+" <ejb>jboss-seam-registration.jar</ejb>\n"
+" </module>\n"
+" <module>\n"
+" <ejb>jboss-seam.jar</ejb>\n"
+" </module>\n"
+" <module>\n"
+" <java>jboss-el.jar</java>\n"
+" </module>\n"
+"\n"
+"</application>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:463
+#, no-c-format
+msgid ""
+"This deployment descriptor links modules in the enterprise archive and binds "
+"the web application to the context root <literal>/seam-registration</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:466
+#, no-c-format
+msgid ""
+"We've now seen <emphasis>all</emphasis> the files in the entire application!"
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:472 Tutorial.xml:656 Tutorial.xml:870 Tutorial.xml:1008
+#, no-c-format
+msgid "How it works"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:474
+#, no-c-format
+msgid ""
+"When the form is submitted, JSF asks Seam to resolve the variable named "
+"<literal>user</literal>. Since there is no value already bound to that name "
+"(in any Seam context), Seam instantiates the <literal>user</literal> "
+"component, and returns the resulting <literal>User</literal> entity bean "
+"instance to JSF after storing it in the Seam session context."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:478
+#, no-c-format
+msgid ""
+"The form input values are now validated against the Hibernate Validator "
+"constraints specified on the <literal>User</literal> entity. If the "
+"constraints are violated, JSF redisplays the page. Otherwise, JSF binds the "
+"form input values to properties of the <literal>User</literal> entity bean."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:481
+#, no-c-format
+msgid ""
+"Next, JSF asks Seam to resolve the variable named <literal>register</"
+"literal>. Seam finds the <literal>RegisterAction</literal> stateless session "
+"bean in the stateless context and returns it. JSF invokes the "
+"<literal>register()</literal> action listener method."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:484
+#, no-c-format
+msgid ""
+"Seam intercepts the method call and injects the <literal>User</literal> "
+"entity from the Seam session context, before continuing the invocation."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:486
+#, no-c-format
+msgid ""
+"The <literal>register()</literal> method checks if a user with the entered "
+"username already exists. If so, an error message is queued with the "
+"<literal>FacesMessages</literal> component, and a null outcome is returned, "
+"causing a page redisplay. The <literal>FacesMessages</literal> component "
+"interpolates the JSF expression embedded in the message string and adds a "
+"JSF <literal>FacesMessage</literal> to the view."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:491
+#, no-c-format
+msgid ""
+"If no user with that username exists, the <literal>\"/registered.xhtml\"</"
+"literal> outcome triggers a browser redirect to the <literal>registered."
+"xhtml</literal> page. When JSF comes to render the page, it asks Seam to "
+"resolve the variable named <literal>user</literal> and uses property values "
+"of the returned <literal>User</literal> entity from Seam's session scope."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:501
+#, no-c-format
+msgid "Clickable lists in Seam: the messages example"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:503
+#, no-c-format
+msgid ""
+"Clickable lists of database search results are such an important part of any "
+"online application that Seam provides special functionality on top of JSF to "
+"make it easier to query data using EJB-QL or HQL and display it as a "
+"clickable list using a JSF <literal><h:dataTable></literal>. The "
+"messages example demonstrates this functionality."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:519
+#, no-c-format
+msgid ""
+"The message list example has one entity bean, <literal>Message</literal>, "
+"one session bean, <literal>MessageListBean</literal> and one JSP."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:523
+#, no-c-format
+msgid "The entity bean: <literal>Message.java</literal>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:525
+#, no-c-format
+msgid ""
+"The <literal>Message</literal> entity defines the title, text, date and time "
+"of a message, and a flag indicating whether the message has been read:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:530
+#, no-c-format
+msgid ""
+"<![CDATA[@Entity\n"
+"@Name(\"message\")\n"
+"@Scope(EVENT)\n"
+"public class Message implements Serializable\n"
+"{\n"
+" private Long id;\n"
+" private String title;\n"
+" private String text;\n"
+" private boolean read;\n"
+" private Date datetime;\n"
+" \n"
+" @Id @GeneratedValue\n"
+" public Long getId() {\n"
+" return id;\n"
+" }\n"
+" public void setId(Long id) {\n"
+" this.id = id;\n"
+" }\n"
+" \n"
+" @NotNull @Length(max=100)\n"
+" public String getTitle() {\n"
+" return title;\n"
+" }\n"
+" public void setTitle(String title) {\n"
+" this.title = title;\n"
+" }\n"
+" \n"
+" @NotNull @Lob\n"
+" public String getText() {\n"
+" return text;\n"
+" }\n"
+" public void setText(String text) {\n"
+" this.text = text;\n"
+" }\n"
+" \n"
+" @NotNull\n"
+" public boolean isRead() {\n"
+" return read;\n"
+" }\n"
+" public void setRead(boolean read) {\n"
+" this.read = read;\n"
+" }\n"
+" \n"
+" @NotNull \n"
+" @Basic @Temporal(TemporalType.TIMESTAMP)\n"
+" public Date getDatetime() {\n"
+" return datetime;\n"
+" }\n"
+" public void setDatetime(Date datetime) {\n"
+" this.datetime = datetime;\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:536
+#, no-c-format
+msgid "The stateful session bean: <literal>MessageManagerBean.java</literal>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:538
+#, no-c-format
+msgid ""
+"Just like in the previous example, we have a session bean, "
+"<literal>MessageManagerBean</literal>, which defines the action listener "
+"methods for the two buttons on our form. One of the buttons selects a "
+"message from the list, and displays that message. The other button deletes a "
+"message. So far, this is not so different to the previous example."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:543
+#, no-c-format
+msgid ""
+"But <literal>MessageManagerBean</literal> is also responsible for fetching "
+"the list of messages the first time we navigate to the message list page. "
+"There are various ways the user could navigate to the page, and not all of "
+"them are preceded by a JSF action—the user might have bookmarked the "
+"page, for example. So the job of fetching the message list takes place in a "
+"Seam <emphasis>factory method</emphasis>, instead of in an action listener "
+"method."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:549
+#, no-c-format
+msgid ""
+"We want to cache the list of messages in memory between server requests, so "
+"we will make this a stateful session bean."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:565
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Scope(SESSION)\n"
+"@Name(\"messageManager\")\n"
+"public class MessageManagerBean implements Serializable, MessageManager\n"
+"{\n"
+"\n"
+" @DataModel\n"
+" private List<Message> messageList;\n"
+" \n"
+" @DataModelSelection\n"
+" @Out(required=false)\n"
+" private Message message;\n"
+" \n"
+" @PersistenceContext(type=EXTENDED)\n"
+" private EntityManager em;\n"
+" \n"
+" @Factory(\"messageList\")\n"
+" public void findMessages()\n"
+" {\n"
+" messageList = em.createQuery(\"from Message msg order by msg.datetime "
+"desc\")\n"
+" .getResultList();\n"
+" }\n"
+" \n"
+" public void select()\n"
+" {\n"
+" message.setRead(true);\n"
+" }\n"
+" \n"
+" public void delete()\n"
+" {\n"
+" messageList.remove(message);\n"
+" em.remove(message);\n"
+" message=null;\n"
+" }\n"
+" \n"
+" @Remove\n"
+" public void destroy() {}\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:568
+#, no-c-format
+msgid ""
+"The <literal>@DataModel</literal> annotation exposes an attibute of type "
+"<literal>java.util.List</literal> to the JSF page as an instance of "
+"<literal>javax.faces.model.DataModel</literal>. This allows us to use the "
+"list in a JSF <literal><h:dataTable></literal> with clickable links "
+"for each row. In this case, the <literal>DataModel</literal> is made "
+"available in a session context variable named <literal>messageList</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:576
+#, no-c-format
+msgid ""
+"The <literal>@DataModelSelection</literal> annotation tells Seam to inject "
+"the <literal>List</literal> element that corresponded to the clicked link."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:580
+#, no-c-format
+msgid ""
+"The <literal>@Out</literal> annotation then exposes the selected value "
+"directly to the page. So ever time a row of the clickable list is selected, "
+"the <literal>Message</literal> is injected to the attribute of the stateful "
+"bean, and the subsequently <emphasis>outjected</emphasis> to the event "
+"context variable named <literal>message</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:587
+#, no-c-format
+msgid ""
+"This stateful bean has an EJB3 <emphasis>extended persistence context</"
+"emphasis>. The messages retrieved in the query remain in the managed state "
+"as long as the bean exists, so any subsequent method calls to the stateful "
+"bean can update them without needing to make any explicit call to the "
+"<literal>EntityManager</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:593
+#, no-c-format
+msgid ""
+"The first time we navigate to the JSP page, there will be no value in the "
+"<literal>messageList</literal> context variable. The <literal>@Factory</"
+"literal> annotation tells Seam to create an instance of "
+"<literal>MessageManagerBean</literal> and invoke the <literal>findMessages()"
+"</literal> method to initialize the value. We call <literal>findMessages()</"
+"literal> a <emphasis>factory method</emphasis> for <literal>messages</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:601
+#, no-c-format
+msgid ""
+"The <literal>select()</literal> action listener method marks the selected "
+"<literal>Message</literal> as read, and updates it in the database."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:605
+#, no-c-format
+msgid ""
+"The <literal>delete()</literal> action listener method removes the selected "
+"<literal>Message</literal> from the database."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:609
+#, no-c-format
+msgid ""
+"All stateful session bean Seam components <emphasis>must</emphasis> have a "
+"method with no parameters marked <literal>@Remove</literal> that Seam uses "
+"to remove the stateful bean when the Seam context ends, and clean up any "
+"server-side state."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:618
+#, no-c-format
+msgid ""
+"Note that this is a session-scoped Seam component. It is associated with the "
+"user login session, and all requests from a login session share the same "
+"instance of the component. (In Seam applications, we usually use session-"
+"scoped components sparingly.)"
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:625
+#, no-c-format
+msgid ""
+"The session bean local interface: <literal>MessageManager.java</literal>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:627
+#, no-c-format
+msgid "All session beans have a business interface, of course."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:629
+#, no-c-format
+msgid ""
+"<![CDATA[@Local\n"
+"public interface MessageManager\n"
+"{\n"
+" public void findMessages();\n"
+" public void select();\n"
+" public void delete();\n"
+" public void destroy();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:631
+#, no-c-format
+msgid "From now on, we won't show local interfaces in our code examples."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:633
+#, no-c-format
+msgid ""
+"Let's skip over <literal>components.xml</literal>, <literal>persistence.xml</"
+"literal>, <literal>web.xml</literal>, <literal>ejb-jar.xml</literal>, "
+"<literal>faces-config.xml</literal> and <literal>application.xml</literal> "
+"since they are much the same as the previous example, and go straight to the "
+"JSP."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:641
+#, no-c-format
+msgid "The view: <literal>messages.jsp</literal>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:643
+#, no-c-format
+msgid ""
+"The JSP page is a straightforward use of the JSF <literal><h:dataTable>"
+"</literal> component. Again, nothing specific to Seam."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:647
+#, no-c-format
+msgid ""
+"<![CDATA[<%@ taglib uri=\"http://java.sun.com/jsf/html\" prefix=\"h\" %>\n"
+"<%@ taglib uri=\"http://java.sun.com/jsf/core\" prefix=\"f\" %>\n"
+"<html>\n"
+" <head>\n"
+" <title>Messages</title>\n"
+" </head>\n"
+" <body>\n"
+" <f:view>\n"
+" <h:form>\n"
+" <h2>Message List</h2>\n"
+" <h:outputText value=\"No messages to display\" \n"
+" rendered=\"#{messageList.rowCount==0}\"/>\n"
+" <h:dataTable var=\"msg\" value=\"#{messageList}\" \n"
+" rendered=\"#{messageList.rowCount>0}\">\n"
+" <h:column>\n"
+" <f:facet name=\"header\">\n"
+" <h:outputText value=\"Read\"/>\n"
+" </f:facet>\n"
+" <h:selectBooleanCheckbox value=\"#{msg.read}\" disabled=\"true\"/"
+">\n"
+" </h:column>\n"
+" <h:column>\n"
+" <f:facet name=\"header\">\n"
+" <h:outputText value=\"Title\"/>\n"
+" </f:facet>\n"
+" <h:commandLink value=\"#{msg.title}\" action=\"#{messageManager."
+"select}\"/>\n"
+" </h:column>\n"
+" <h:column>\n"
+" <f:facet name=\"header\">\n"
+" <h:outputText value=\"Date/Time\"/>\n"
+" </f:facet>\n"
+" <h:outputText value=\"#{msg.datetime}\">\n"
+" <f:convertDateTime type=\"both\" dateStyle=\"medium\" "
+"timeStyle=\"short\"/>\n"
+" </h:outputText>\n"
+" </h:column>\n"
+" <h:column>\n"
+" <h:commandButton value=\"Delete\" action=\"#{messageManager."
+"delete}\"/>\n"
+" </h:column>\n"
+" </h:dataTable>\n"
+" <h3><h:outputText value=\"#{message.title}\"/></h3>\n"
+" <div><h:outputText value=\"#{message.text}\"/></div>\n"
+" </h:form>\n"
+" </f:view>\n"
+" </body>\n"
+"</html>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:658
+#, no-c-format
+msgid ""
+"The first time we navigate to the <literal>messages.jsp</literal> page, "
+"whether by a JSF postback (faces request) or a direct browser GET request "
+"(non-faces request), the page will try to resolve the <literal>messageList</"
+"literal> context variable. Since this context variable is not initialized, "
+"Seam will call the factory method <literal>findMessages()</literal>, which "
+"performs a query against the database and results in a <literal>DataModel</"
+"literal> being outjected. This <literal>DataModel</literal> provides the row "
+"data needed for rendering the <literal><h:dataTable></literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:666
+#, no-c-format
+msgid ""
+"When the user clicks the <literal><h:commandLink></literal>, JSF calls "
+"the <literal>select()</literal> action listener. Seam intercepts this call "
+"and injects the selected row data into the <literal>message</literal> "
+"attribute of the <literal>messageManager</literal> component. The action "
+"listener fires, marking the selected <literal>Message</literal> as read. At "
+"the end of the call, Seam outjects the selected <literal>Message</literal> "
+"to the context variable named <literal>message</literal>. Next, the EJB "
+"container commits the transaction, and the change to the <literal>Message</"
+"literal> is flushed to the database. Finally, the page is re-rendered, "
+"redisplaying the message list, and displaying the selected message below it."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:675
+#, no-c-format
+msgid ""
+"If the user clicks the <literal><h:commandButton></literal>, JSF calls "
+"the <literal>delete()</literal> action listener. Seam intercepts this call "
+"and injects the selected row data into the <literal>message</literal> "
+"attribute of the <literal>messageList</literal> component. The action "
+"listener fires, removing the selected <literal>Message</literal> from the "
+"list, and also calling <literal>remove()</literal> on the "
+"<literal>EntityManager</literal>. At the end of the call, Seam refreshes the "
+"<literal>messageList</literal> context variable and clears the context "
+"variable named <literal>message</literal>. The EJB container commits the "
+"transaction, and deletes the <literal>Message</literal> from the database. "
+"Finally, the page is re-rendered, redisplaying the message list."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:690
+#, no-c-format
+msgid "Seam and jBPM: the todo list example"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:692
+#, no-c-format
+msgid ""
+"jBPM provides sophisticated functionality for workflow and task management. "
+"To get a small taste of how jBPM integrates with Seam, we'll show you a "
+"simple \"todo list\" application. Since managing lists of tasks is such core "
+"functionality for jBPM, there is hardly any Java code at all in this example."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:707
+#, no-c-format
+msgid ""
+"The center of this example is the jBPM process definition. There are also "
+"two JSPs and two trivial JavaBeans (There was no reason to use session "
+"beans, since they do not access the database, or have any other "
+"transactional behavior). Let's start with the process definition:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:721
+#, no-c-format
+msgid ""
+"<![CDATA[<process-definition name=\"todo\">\n"
+" \n"
+" <start-state name=\"start\">\n"
+" <transition to=\"todo\"/>\n"
+" </start-state>\n"
+" \n"
+" <task-node name=\"todo\">\n"
+" <task name=\"todo\" description=\"#{todoList.description}\">\n"
+" <assignment actor-id=\"#{actor.id}\"/>\n"
+" </task>\n"
+" <transition to=\"done\"/>\n"
+" </task-node>\n"
+" \n"
+" <end-state name=\"done\"/>\n"
+" \n"
+"</process-definition>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:724
+#, no-c-format
+msgid ""
+"The <literal><start-state></literal> node represents the logical start "
+"of the process. When the process starts, it immediately transitions to the "
+"<literal>todo</literal> node."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:729
+#, no-c-format
+msgid ""
+"The <literal><task-node></literal> node represents a <emphasis>wait "
+"state</emphasis>, where business process execution pauses, waiting for one "
+"or more tasks to be performed."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:734
+#, no-c-format
+msgid ""
+"The <literal><task></literal> element defines a task to be performed "
+"by a user. Since there is only one task defined on this node, when it is "
+"complete, execution resumes, and we transition to the end state. The task "
+"gets its description from a Seam component named <literal>todoList</literal> "
+"(one of the JavaBeans)."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:740
+#, no-c-format
+msgid ""
+"Tasks need to be assigned to a user or group of users when they are created. "
+"In this case, the task is assigned to the current user, which we get from a "
+"built-in Seam component named <literal>actor</literal>. Any Seam component "
+"may be used to perform task assignment."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:746
+#, no-c-format
+msgid ""
+"The <literal><end-state></literal> node defines the logical end of the "
+"business process. When execution reaches this node, the process instance is "
+"destroyed."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:755
+#, no-c-format
+msgid ""
+"If we view this process definition using the process definition editor "
+"provided by JBossIDE, this is what it looks like:"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:767
+#, no-c-format
+msgid ""
+"This document defines our <emphasis>business process</emphasis> as a graph "
+"of nodes. This is the most trivial possible business process: there is one "
+"<emphasis>task</emphasis> to be performed, and when that task is complete, "
+"the business process ends."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:771
+#, no-c-format
+msgid ""
+"The first JavaBean handles the login screen <literal>login.jsp</literal>. "
+"Its job is just to initialize the jBPM actor id using the <literal>actor</"
+"literal> component. (In a real application, it would also need to "
+"authenticate the user.)"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:776
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"login\")\n"
+"public class Login {\n"
+" \n"
+" @In\n"
+" private Actor actor;\n"
+" \n"
+" private String user;\n"
+"\n"
+" public String getUser() {\n"
+" return user;\n"
+" }\n"
+"\n"
+" public void setUser(String user) {\n"
+" this.user = user;\n"
+" }\n"
+" \n"
+" public String login()\n"
+" {\n"
+" actor.setId(user);\n"
+" return \"/todo.jsp\";\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:780
+#, no-c-format
+msgid ""
+"Here we see the use of <literal>@In</literal> to inject the built-in "
+"<literal>Actor</literal> component."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:783
+#, no-c-format
+msgid "The JSP itself is trivial:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:785
+#, no-c-format
+msgid ""
+"<![CDATA[<%@ taglib uri=\"http://java.sun.com/jsf/html\" prefix=\"h\"%>\n"
+"<%@ taglib uri=\"http://java.sun.com/jsf/core\" prefix=\"f\"%>\n"
+"<html>\n"
+"<head>\n"
+"<title>Login</title>\n"
+"</head>\n"
+"<body>\n"
+"<h1>Login</h1>\n"
+"<f:view>\n"
+" <h:form>\n"
+" <div>\n"
+" <h:inputText value=\"#{login.user}\"/>\n"
+" <h:commandButton value=\"Login\" action=\"#{login.login}\"/>\n"
+" </div>\n"
+" </h:form>\n"
+"</f:view>\n"
+"</body>\n"
+"</html>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:789
+#, no-c-format
+msgid ""
+"The second JavaBean is responsible for starting business process instances, "
+"and ending tasks."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:800
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"todoList\")\n"
+"public class TodoList {\n"
+" \n"
+" private String description;\n"
+" \n"
+" public String getDescription()\n"
+" {\n"
+" return description;\n"
+" }\n"
+"\n"
+" public void setDescription(String description) {\n"
+" this.description = description;\n"
+" }\n"
+" \n"
+" @CreateProcess(definition=\"todo\")\n"
+" public void createTodo() {}\n"
+" \n"
+" @StartTask @EndTask\n"
+" public void done() {}\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:803
+#, no-c-format
+msgid ""
+"The description property accepts user input form the JSP page, and exposes "
+"it to the process definition, allowing the task description to be set."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:807
+#, no-c-format
+msgid ""
+"The Seam <literal>@CreateProcess</literal> annotation creates a new jBPM "
+"process instance for the named process definition."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:811
+#, no-c-format
+msgid ""
+"The Seam <literal>@StartTask</literal> annotation starts work on a task. The "
+"<literal>@EndTask</literal> ends the task, and allows the business process "
+"execution to resume."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:820
+#, no-c-format
+msgid ""
+"In a more realistic example, <literal>@StartTask</literal> and "
+"<literal>@EndTask</literal> would not appear on the same method, because "
+"there is usually work to be done using the application in order to complete "
+"the task."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:824
+#, no-c-format
+msgid "Finally, the meat of the application is in <literal>todo.jsp</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:827
+#, no-c-format
+msgid ""
+"<![CDATA[<%@ taglib uri=\"http://java.sun.com/jsf/html\" prefix=\"h\" %>\n"
+"<%@ taglib uri=\"http://java.sun.com/jsf/core\" prefix=\"f\" %>\n"
+"<%@ taglib uri=\"http://jboss.com/products/seam/taglib\" prefix=\"s\" %>\n"
+"<html>\n"
+"<head>\n"
+"<title>Todo List</title>\n"
+"</head>\n"
+"<body>\n"
+"<h1>Todo List</h1>\n"
+"<f:view>\n"
+" <h:form id=\"list\">\n"
+" <div>\n"
+" <h:outputText value=\"There are no todo items.\" \n"
+" rendered=\"#{empty taskInstanceList}\"/>\n"
+" <h:dataTable value=\"#{taskInstanceList}\" var=\"task\" \n"
+" rendered=\"#{not empty taskInstanceList}\">\n"
+" <h:column>\n"
+" <f:facet name=\"header\">\n"
+" <h:outputText value=\"Description\"/>\n"
+" </f:facet>\n"
+" <h:inputText value=\"#{task.description}\"/>\n"
+" </h:column>\n"
+" <h:column>\n"
+" <f:facet name=\"header\">\n"
+" <h:outputText value=\"Created\"/>\n"
+" </f:facet>\n"
+" <h:outputText value=\"#{task.taskMgmtInstance."
+"processInstance.start}\">\n"
+" <f:convertDateTime type=\"date\"/>\n"
+" </h:outputText>\n"
+" </h:column>\n"
+" <h:column>\n"
+" <f:facet name=\"header\">\n"
+" <h:outputText value=\"Priority\"/>\n"
+" </f:facet>\n"
+" <h:inputText value=\"#{task.priority}\" style=\"width: 30\"/"
+">\n"
+" </h:column>\n"
+" <h:column>\n"
+" <f:facet name=\"header\">\n"
+" <h:outputText value=\"Due Date\"/>\n"
+" </f:facet>\n"
+" <h:inputText value=\"#{task.dueDate}\" style=\"width: 100"
+"\">\n"
+" <f:convertDateTime type=\"date\" dateStyle=\"short\"/>\n"
+" </h:inputText>\n"
+" </h:column>\n"
+" <h:column>\n"
+" <s:button value=\"Done\" action=\"#{todoList.done}\" "
+"taskInstance=\"#{task}\"/>\n"
+" </h:column>\n"
+" </h:dataTable>\n"
+" </div>\n"
+" <div>\n"
+" <h:messages/>\n"
+" </div>\n"
+" <div>\n"
+" <h:commandButton value=\"Update Items\" action=\"update\"/>\n"
+" </div>\n"
+" </h:form>\n"
+" <h:form id=\"new\">\n"
+" <div>\n"
+" <h:inputText value=\"#{todoList.description}\"/>\n"
+" <h:commandButton value=\"Create New Item\" action=\"#{todoList."
+"createTodo}\"/>\n"
+" </div>\n"
+" </h:form>\n"
+"</f:view>\n"
+"</body>\n"
+"</html>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:831
+#, no-c-format
+msgid "Let's take this one piece at a time."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:833
+#, no-c-format
+msgid ""
+"The page renders a list of tasks, which it gets from a built-in Seam "
+"component named <literal>taskInstanceList</literal>. The list is defined "
+"inside a JSF form."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:837
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form id=\"list\">\n"
+" <div>\n"
+" <h:outputText value=\"There are no todo items.\" rendered=\"#{empty "
+"taskInstanceList}\"/>\n"
+" <h:dataTable value=\"#{taskInstanceList}\" var=\"task\" \n"
+" rendered=\"#{not empty taskInstanceList}\">\n"
+" ...\n"
+" </h:dataTable>\n"
+" </div>\n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:840
+#, no-c-format
+msgid ""
+"Each element of the list is an instance of the jBPM class "
+"<literal>TaskInstance</literal>. The following code simply displays the "
+"interesting properties of each task in the list. For the description, "
+"priority and due date, we use input controls, to allow the user to update "
+"these values."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:844
+#, no-c-format
+msgid ""
+"<![CDATA[<h:column>\n"
+" <f:facet name=\"header\">\n"
+" <h:outputText value=\"Description\"/>\n"
+" </f:facet>\n"
+" <h:inputText value=\"#{task.description}\"/>\n"
+"</h:column>\n"
+"<h:column>\n"
+" <f:facet name=\"header\">\n"
+" <h:outputText value=\"Created\"/>\n"
+" </f:facet>\n"
+" <h:outputText value=\"#{task.taskMgmtInstance.processInstance.start}\">\n"
+" <f:convertDateTime type=\"date\"/>\n"
+" </h:outputText>\n"
+"</h:column>\n"
+"<h:column>\n"
+" <f:facet name=\"header\">\n"
+" <h:outputText value=\"Priority\"/>\n"
+" </f:facet>\n"
+" <h:inputText value=\"#{task.priority}\" style=\"width: 30\"/>\n"
+"</h:column>\n"
+"<h:column>\n"
+" <f:facet name=\"header\">\n"
+" <h:outputText value=\"Due Date\"/>\n"
+" </f:facet>\n"
+" <h:inputText value=\"#{task.dueDate}\" style=\"width: 100\">\n"
+" <f:convertDateTime type=\"date\" dateStyle=\"short\"/>\n"
+" </h:inputText>\n"
+"</h:column>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:847
+#, no-c-format
+msgid ""
+"This button ends the task by calling the action method annotated "
+"<literal>@StartTask @EndTask</literal>. It passes the task id to Seam as a "
+"request parameter:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:850
+#, no-c-format
+msgid ""
+"<![CDATA[<h:column>\n"
+" <s:button value=\"Done\" action=\"#{todoList.done}\" taskInstance=\"#"
+"{task}\"/>\n"
+"</h:column>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:852
+#, no-c-format
+msgid ""
+"(Note that this is using a Seam <literal><s:button></literal> JSF "
+"control from the <literal>seam-ui.jar</literal> package.)"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:855
+#, no-c-format
+msgid ""
+"This button is used to update the properties of the tasks. When the form is "
+"submitted, Seam and jBPM will make any changes to the tasks persistent. "
+"There is no need for any action listener method:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:858
+#, no-c-format
+msgid "<![CDATA[<h:commandButton value=\"Update Items\" action=\"update\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:860
+#, no-c-format
+msgid ""
+"A second form on the page is used to create new items, by calling the action "
+"method annotated <literal>@CreateProcess</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:863
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form id=\"new\">\n"
+" <div>\n"
+" <h:inputText value=\"#{todoList.description}\"/>\n"
+" <h:commandButton value=\"Create New Item\" action=\"#{todoList."
+"createTodo}\"/>\n"
+" </div>\n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:865
+#, no-c-format
+msgid ""
+"There are several other files needed for the example, but they are just "
+"standard jBPM and Seam configuration and not very interesting."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:871 Tutorial.xml:1009 Tutorial.xml:1436 Tutorial.xml:1446
+#, no-c-format
+msgid "TODO"
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:877
+#, no-c-format
+msgid "Seam pageflow: the numberguess example"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:879
+#, no-c-format
+msgid ""
+"For Seam applications with relatively freeform (ad hoc) navigation, JSF/Seam "
+"navigation rules are a perfectly good way to define the page flow. For "
+"applications with a more constrained style of navigation, especially for "
+"user interfaces which are more stateful, navigation rules make it difficult "
+"to really understand the flow of the system. To understand the flow, you "
+"need to piece it together from the view pages, the actions and the "
+"navigation rules."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:885
+#, no-c-format
+msgid ""
+"Seam allows you to use a jPDL process definition to define pageflow. The "
+"simple number guessing example shows how this is done."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:899
+#, no-c-format
+msgid ""
+"The example is implemented using one JavaBean, three JSP pages and a jPDL "
+"pageflow definition. Let's begin with the pageflow:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:911
+#, no-c-format
+msgid ""
+"<![CDATA[<pageflow-definition \n"
+" xmlns=\"http://jboss.com/products/seam/pageflow\"\n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:schemaLocation=\"http://jboss.com/products/seam/pageflow \n"
+" http://jboss.com/products/seam/pageflow-2.1.xsd"
+"\"\n"
+" name=\"numberGuess\">\n"
+" \n"
+" <start-page name=\"displayGuess\" view-id=\"/numberGuess.jspx\">\n"
+" <redirect/>\n"
+" <transition name=\"guess\" to=\"evaluateGuess\">\n"
+" <action expression=\"#{numberGuess.guess}\"/>\n"
+" </transition>\n"
+" <transition name=\"giveup\" to=\"giveup\"/>\n"
+" </start-page>\n"
+" \n"
+" <decision name=\"evaluateGuess\" expression=\"#{numberGuess.correctGuess}"
+"\">\n"
+" <transition name=\"true\" to=\"win\"/>\n"
+" <transition name=\"false\" to=\"evaluateRemainingGuesses\"/>\n"
+" </decision>\n"
+" \n"
+" <decision name=\"evaluateRemainingGuesses\" expression=\"#{numberGuess."
+"lastGuess}\">\n"
+" <transition name=\"true\" to=\"lose\"/>\n"
+" <transition name=\"false\" to=\"displayGuess\"/>\n"
+" </decision>\n"
+" \n"
+" <page name=\"giveup\" view-id=\"/giveup.jspx\">\n"
+" <redirect/>\n"
+" <transition name=\"yes\" to=\"lose\"/>\n"
+" <transition name=\"no\" to=\"displayGuess\"/>\n"
+" </page>\n"
+" \n"
+" <page name=\"win\" view-id=\"/win.jspx\">\n"
+" <redirect/>\n"
+" <end-conversation/>\n"
+" </page>\n"
+" \n"
+" <page name=\"lose\" view-id=\"/lose.jspx\">\n"
+" <redirect/>\n"
+" <end-conversation/>\n"
+" </page>\n"
+" \n"
+"</pageflow-definition>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:914
+#, no-c-format
+msgid ""
+"The <literal><page></literal> element defines a wait state where the "
+"system displays a particular JSF view and waits for user input. The "
+"<literal>view-id</literal> is the same JSF view id used in plain JSF "
+"navigation rules. The <literal>redirect</literal> attribute tells Seam to "
+"use post-then-redirect when navigating to the page. (This results in "
+"friendly browser URLs.)"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:921
+#, no-c-format
+msgid ""
+"The <literal><transition></literal> element names a JSF outcome. The "
+"transition is triggered when a JSF action results in that outcome. Execution "
+"will then proceed to the next node of the pageflow graph, after invocation "
+"of any jBPM transition actions."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:927
+#, no-c-format
+msgid ""
+"A transition <literal><action></literal> is just like a JSF action, "
+"except that it occurs when a jBPM transition occurs. The transition action "
+"can invoke any Seam component."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:932
+#, no-c-format
+msgid ""
+"A <literal><decision></literal> node branches the pageflow, and "
+"determines the next node to execute by evaluating a JSF EL expression."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:940
+#, no-c-format
+msgid ""
+"Here is what the pageflow looks like in the JBoss Developer Studio pageflow "
+"editor:"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:951
+#, no-c-format
+msgid ""
+"Now that we have seen the pageflow, it is very, very easy to understand the "
+"rest of the application!"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:953
+#, no-c-format
+msgid ""
+"Here is the main page of the application, <literal>numberGuess.jspx</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:957
+#, no-c-format
+msgid ""
+"<![CDATA[<<?xml version=\"1.0\"?>\n"
+"<jsp:root xmlns:jsp=\"http://java.sun.com/JSP/Page\" \n"
+" xmlns:h=\"http://java.sun.com/jsf/html\"\n"
+" xmlns:f=\"http://java.sun.com/jsf/core\"\n"
+" xmlns:s=\"http://jboss.com/products/seam/taglib\"\n"
+" xmlns=\"http://www.w3.org/1999/xhtml\"\n"
+" version=\"2.0\">\n"
+" <jsp:output doctype-root-element=\"html\" \n"
+" doctype-public=\"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n"
+" doctype-system=\"http://www.w3c.org/TR/xhtml1/DTD/xhtml1-"
+"transitional.dtd\"/>\n"
+" <jsp:directive.page contentType=\"text/html\"/>\n"
+" <html>\n"
+" <head>\n"
+" <title>Guess a number...</title>\n"
+" <link href=\"niceforms.css\" rel=\"stylesheet\" type=\"text/css\" />\n"
+" <script language=\"javascript\" type=\"text/javascript\" src=\"niceforms."
+"js\" />\n"
+" </head>\n"
+" <body>\n"
+" <h1>Guess a number...</h1>\n"
+" <f:view>\n"
+" <h:form styleClass=\"niceform\">\n"
+" \n"
+" <div>\n"
+" <h:messages globalOnly=\"true\"/>\n"
+" <h:outputText value=\"Higher!\" \n"
+" rendered=\"#{numberGuess.randomNumber gt numberGuess."
+"currentGuess}\"/>\n"
+" <h:outputText value=\"Lower!\" \n"
+" rendered=\"#{numberGuess.randomNumber lt numberGuess."
+"currentGuess}\"/>\n"
+" </div>\n"
+" \n"
+" <div>\n"
+" I'm thinking of a number between \n"
+" <h:outputText value=\"#{numberGuess.smallest}\"/> and \n"
+" <h:outputText value=\"#{numberGuess.biggest}\"/>. You have \n"
+" <h:outputText value=\"#{numberGuess.remainingGuesses}\"/> guesses.\n"
+" </div>\n"
+" \n"
+" <div>\n"
+" Your guess: \n"
+" <h:inputText value=\"#{numberGuess.currentGuess}\" id=\"inputGuess"
+"\" \n"
+" required=\"true\" size=\"3\" \n"
+" rendered=\"#{(numberGuess.biggest-numberGuess.smallest) "
+"gt 20}\">\n"
+" <f:validateLongRange maximum=\"#{numberGuess.biggest}\" \n"
+" minimum=\"#{numberGuess.smallest}\"/>\n"
+" </h:inputText>\n"
+" <h:selectOneMenu value=\"#{numberGuess.currentGuess}\" \n"
+" id=\"selectGuessMenu\" required=\"true\"\n"
+" rendered=\"#{(numberGuess.biggest-numberGuess."
+"smallest) le 20 and \n"
+" (numberGuess.biggest-numberGuess."
+"smallest) gt 4}\">\n"
+" <s:selectItems value=\"#{numberGuess.possibilities}\" var=\"i\" "
+"label=\"#{i}\"/>\n"
+" </h:selectOneMenu>\n"
+" <h:selectOneRadio value=\"#{numberGuess.currentGuess}\" id="
+"\"selectGuessRadio\" \n"
+" required=\"true\"\n"
+" rendered=\"#{(numberGuess.biggest-numberGuess."
+"smallest) le 4}\">\n"
+" <s:selectItems value=\"#{numberGuess.possibilities}\" var=\"i\" "
+"label=\"#{i}\"/>\n"
+" </h:selectOneRadio>\n"
+" <h:commandButton value=\"Guess\" action=\"guess\"/>\n"
+" <s:button value=\"Cheat\" view=\"/confirm.jspx\"/>\n"
+" <s:button value=\"Give up\" action=\"giveup\"/>\n"
+" </div>\n"
+" \n"
+" <div>\n"
+" <h:message for=\"inputGuess\" style=\"color: red\"/>\n"
+" </div>\n"
+" \n"
+" </h:form>\n"
+" </f:view>\n"
+" </body>\n"
+" </html>\n"
+"</jsp:root>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:961
+#, no-c-format
+msgid ""
+"Notice how the command button names the <literal>guess</literal> transition "
+"instead of calling an action directly."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:964
+#, no-c-format
+msgid "The <literal>win.jspx</literal> page is predictable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:967
+#, no-c-format
+msgid ""
+"<![CDATA[<jsp:root xmlns:jsp=\"http://java.sun.com/JSP/Page\" \n"
+" xmlns:h=\"http://java.sun.com/jsf/html\"\n"
+" xmlns:f=\"http://java.sun.com/jsf/core\"\n"
+" xmlns=\"http://www.w3.org/1999/xhtml\"\n"
+" version=\"2.0\">\n"
+" <jsp:output doctype-root-element=\"html\"\n"
+" doctype-public=\"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n"
+" doctype-system=\"http://www.w3c.org/TR/xhtml1/DTD/xhtml1-"
+"transitional.dtd\"/>\n"
+" <jsp:directive.page contentType=\"text/html\"/>\n"
+" <html>\n"
+" <head>\n"
+" <title>You won!</title>\n"
+" <link href=\"niceforms.css\" rel=\"stylesheet\" type=\"text/css\" />\n"
+" </head>\n"
+" <body>\n"
+" <h1>You won!</h1>\n"
+" <f:view>\n"
+" Yes, the answer was <h:outputText value=\"#{numberGuess.currentGuess}"
+"\" />.\n"
+" It took you <h:outputText value=\"#{numberGuess.guessCount}\" /> "
+"guesses.\n"
+" <h:outputText value=\"But you cheated, so it doesn't count!\" \n"
+" rendered=\"#{numberGuess.cheat}\"/>\n"
+" Would you like to <a href=\"numberGuess.seam\">play again</a>?\n"
+" </f:view>\n"
+" </body>\n"
+" </html>\n"
+"</jsp:root>\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:971
+#, no-c-format
+msgid ""
+"As is <literal>lose.jspx</literal> (which I can't be bothered copy/pasting). "
+"Finally, the JavaBean Seam component:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:980
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"numberGuess\")\n"
+"@Scope(ScopeType.CONVERSATION)\n"
+"public class NumberGuess implements Serializable {\n"
+" \n"
+" private int randomNumber;\n"
+" private Integer currentGuess;\n"
+" private int biggest;\n"
+" private int smallest;\n"
+" private int guessCount;\n"
+" private int maxGuesses;\n"
+" private boolean cheated;\n"
+" \n"
+" @Create\n"
+" public void begin()\n"
+" {\n"
+" randomNumber = new Random().nextInt(100);\n"
+" guessCount = 0;\n"
+" biggest = 100;\n"
+" smallest = 1;\n"
+" }\n"
+" \n"
+" public void setCurrentGuess(Integer guess)\n"
+" {\n"
+" this.currentGuess = guess;\n"
+" }\n"
+" \n"
+" public Integer getCurrentGuess()\n"
+" {\n"
+" return currentGuess;\n"
+" }\n"
+" \n"
+" public void guess()\n"
+" {\n"
+" if (currentGuess>randomNumber)\n"
+" {\n"
+" biggest = currentGuess - 1;\n"
+" }\n"
+" if (currentGuess<randomNumber)\n"
+" {\n"
+" smallest = currentGuess + 1;\n"
+" }\n"
+" guessCount ++;\n"
+" }\n"
+" \n"
+" public boolean isCorrectGuess()\n"
+" {\n"
+" return currentGuess==randomNumber;\n"
+" }\n"
+" \n"
+" public int getBiggest()\n"
+" {\n"
+" return biggest;\n"
+" }\n"
+" \n"
+" public int getSmallest()\n"
+" {\n"
+" return smallest;\n"
+" }\n"
+" \n"
+" public int getGuessCount()\n"
+" {\n"
+" return guessCount;\n"
+" }\n"
+" \n"
+" public boolean isLastGuess()\n"
+" {\n"
+" return guessCount==maxGuesses;\n"
+" }\n"
+"\n"
+" public int getRemainingGuesses() {\n"
+" return maxGuesses-guessCount;\n"
+" }\n"
+"\n"
+" public void setMaxGuesses(int maxGuesses) {\n"
+" this.maxGuesses = maxGuesses;\n"
+" }\n"
+"\n"
+" public int getMaxGuesses() {\n"
+" return maxGuesses;\n"
+" }\n"
+"\n"
+" public int getRandomNumber() {\n"
+" return randomNumber;\n"
+" }\n"
+"\n"
+" public void cheated()\n"
+" {\n"
+" cheated = true;\n"
+" }\n"
+" \n"
+" public boolean isCheat() {\n"
+" return cheated;\n"
+" }\n"
+" \n"
+" public List<Integer> getPossibilities()\n"
+" {\n"
+" List<Integer> result = new ArrayList<Integer>();\n"
+" for(int i=smallest; i<=biggest; i++) result.add(i);\n"
+" return result;\n"
+" }\n"
+" \n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:983
+#, no-c-format
+msgid ""
+"The first time a JSP page asks for a <literal>numberGuess</literal> "
+"component, Seam will create a new one for it, and the <literal>@Create</"
+"literal> method will be invoked, allowing the component to initialize itself."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:993
+#, no-c-format
+msgid ""
+"The <literal>pages.xml</literal> file starts a Seam <emphasis>conversation</"
+"emphasis> (much more about that later), and specifies the pageflow "
+"definition to use for the conversation's page flow."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:999
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\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"
+"\n"
+" <page view-id=\"/numberGuess.jspx\">\n"
+" <begin-conversation join=\"true\" pageflow=\"numberGuess\"/>\n"
+" </page>\n"
+"\n"
+" <page view-id=\"/confirm.jspx\">\n"
+" <begin-conversation nested=\"true\" pageflow=\"cheat\"/>\n"
+" </page>\n"
+"\n"
+"</pages> \n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1002
+#, no-c-format
+msgid ""
+"As you can see, this Seam component is pure business logic! It doesn't need "
+"to know anything at all about the user interaction flow. This makes the "
+"component potentially more reuseable."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:1015
+#, no-c-format
+msgid "A complete Seam application: the Hotel Booking example"
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:1018
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1020
+#, no-c-format
+msgid ""
+"The booking application is a complete hotel room reservation system "
+"incorporating the following features:"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1025
+#, no-c-format
+msgid "User registration"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1028
+#, no-c-format
+msgid "Login"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1031
+#, no-c-format
+msgid "Logout"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1034
+#, no-c-format
+msgid "Set password"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1037
+#, no-c-format
+msgid "Hotel search"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1040
+#, no-c-format
+msgid "Hotel selection"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1043
+#, no-c-format
+msgid "Room reservation"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1046
+#, no-c-format
+msgid "Reservation confirmation"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1049
+#, no-c-format
+msgid "Existing reservation list"
+msgstr ""
+
+#. Tag: screeninfo
+#: Tutorial.xml:1054
+#, no-c-format
+msgid "Booking example"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1065
+#, no-c-format
+msgid ""
+"The booking application uses JSF, EJB 3.0 and Seam, together with Facelets "
+"for the view. There is also a port of this application to JSF, Facelets, "
+"Seam, JavaBeans and Hibernate3."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1068
+#, no-c-format
+msgid ""
+"One of the things you'll notice if you play with this application for long "
+"enough is that it is extremely <emphasis>robust</emphasis>. You can play "
+"with back buttons and browser refresh and opening multiple windows and "
+"entering nonsensical data as much as you like and you will find it very "
+"difficult to make the application crash. You might think that we spent weeks "
+"testing and fixing bugs to achive this. Actually, this is not the case. Seam "
+"was designed to make it very straightforward to build robust web "
+"applications and a lot of robustness that you are probably used to having to "
+"code yourself comes naturally and automatically with Seam."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1075
+#, no-c-format
+msgid ""
+"As you browse the sourcecode of the example application, and learn how the "
+"application works, observe how the declarative state management and "
+"integrated validation has been used to achieve this robustness."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:1081
+#, no-c-format
+msgid "Overview of the booking example"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1083
+#, no-c-format
+msgid ""
+"The project structure is identical to the previous one, to install and "
+"deploy this application, please refer to <xref linkend=\"try-examples\"/>. "
+"Once you've successfully started the application, you can access it by "
+"pointing your browser to <ulink url=\"http://localhost:8080/seam-booking/\"> "
+"<literal>http://localhost:8080/seam-booking/</literal> </ulink>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1090
+#, no-c-format
+msgid ""
+"Just nine classes (plus six session beans local interfaces) where used to "
+"implement this application. Six session bean action listeners contain all "
+"the business logic for the listed features."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1095
+#, no-c-format
+msgid ""
+"<literal>BookingListAction</literal> retrieves existing bookings for the "
+"currently logged in user."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1098
+#, no-c-format
+msgid ""
+"<literal>ChangePasswordAction</literal> updates the password of the "
+"currently logged in user."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1101
+#, no-c-format
+msgid ""
+"<literal>HotelBookingAction</literal> implements the core functionality of "
+"the application: hotel room searching, selection, booking and booking "
+"confirmation. This functionality is implemented as a <emphasis>conversation</"
+"emphasis>, so this is the most interesting class in the application."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1105
+#, no-c-format
+msgid "<literal>RegisterAction</literal> registers a new system user."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1109
+#, no-c-format
+msgid "Three entity beans implement the application's persistent domain model."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1113
+#, no-c-format
+msgid "<literal>Hotel</literal> is an entity bean that represent a hotel"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1115
+#, no-c-format
+msgid ""
+"<literal>Booking</literal> is an entity bean that represents an existing "
+"booking"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1117
+#, no-c-format
+msgid ""
+"<literal>User</literal> is an entity bean to represents a user who can make "
+"hotel bookings"
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:1124
+#, no-c-format
+msgid "Understanding Seam conversations"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1125
+#, no-c-format
+msgid ""
+"We encourage you browse the sourcecode at your pleasure. In this tutorial "
+"we'll concentrate upon one particular piece of functionality: hotel search, "
+"selection, booking and confirmation. From the point of view of the user, "
+"everything from selecting a hotel to confirming a booking is one continuous "
+"unit of work, a <emphasis>conversation</emphasis>. Searching, however, is "
+"<emphasis>not</emphasis> part of the conversation. The user can select "
+"multiple hotels from the same search results page, in different browser tabs."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1131
+#, no-c-format
+msgid ""
+"Most web application architectures have no first class construct to "
+"represent a conversation. This causes enormous problems managing state "
+"associated with the conversation. Usually, Java web applications use a "
+"combination of two techniques: first, some state is thrown into the "
+"<literal>HttpSession</literal>; second, persistable state is flushed to the "
+"database after every request, and reconstructed from the database at the "
+"beginning of each new request."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1136
+#, no-c-format
+msgid ""
+"Since the database is the least scalable tier, this often results in an "
+"utterly unacceptable lack of scalability. Added latency is also a problem, "
+"due to the extra traffic to and from the database on every request. To "
+"reduce this redundant traffic, Java applications often introduce a data "
+"(second-level) cache that keeps commonly accessed data between requests. "
+"This cache is necessarily inefficient, because invalidation is based upon an "
+"LRU policy instead of being based upon when the user has finished working "
+"with the data. Furthermore, because the cache is shared between many "
+"concurrent transactions, we've introduced a whole raft of problem's "
+"associated with keeping the cached state consistent with the database."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1144
+#, no-c-format
+msgid ""
+"Now consider the state held in the <literal>HttpSession</literal>. By very "
+"careful programming, we might be able to control the size of the session "
+"data. This is a lot more difficult than it sounds, since web browsers permit "
+"ad hoc non-linear navigation. But suppose we suddenly discover a system "
+"requirement that says that a user is allowed to have <emphasis>mutiple "
+"concurrent conversations</emphasis>, halfway through the development of the "
+"system (this has happened to me). Developing mechanisms to isolate session "
+"state associated with different concurrent conversations, and incorporating "
+"failsafes to ensure that conversation state is destroyed when the user "
+"aborts one of the conversations by closing a browser window or tab is not "
+"for the faint hearted (I've implemented this stuff twice so far, once for a "
+"client application, once for Seam, but I'm famously psychotic)."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1153
+#, no-c-format
+msgid "Now there is a better way."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1154
+#, no-c-format
+msgid ""
+"Seam introduces the <emphasis>conversation context</emphasis> as a first "
+"class construct. You can safely keep conversational state in this context, "
+"and be assured that it will have a well-defined lifecycle. Even better, you "
+"won't need to be continually pushing data back and forth between the "
+"application server and the database, since the conversation context is a "
+"natural cache of data that the user is currently working with."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1159
+#, no-c-format
+msgid ""
+"Usually, the components we keep in the conversation context are stateful "
+"session beans. (We can also keep entity beans and JavaBeans in the "
+"conversation context.) There is an ancient canard in the Java community that "
+"stateful session beans are a scalability killer. This may have been true in "
+"1998 when WebFoobar 1.0 was released. It is no longer true today. "
+"Application servers like JBoss AS have extremely sophisticated mechanisms "
+"for stateful session bean state replication. (For example, the JBoss EJB3 "
+"container performs fine-grained replication, replicating only those bean "
+"attribute values which actually changed.) Note that all the traditional "
+"technical arguments for why stateful beans are inefficient apply equally to "
+"the <literal>HttpSession</literal>, so the practice of shifting state from "
+"business tier stateful session bean components to the web session to try and "
+"improve performance is unbelievably misguided. It is certainly possible to "
+"write unscalable applications using stateful session beans, by using "
+"stateful beans incorrectly, or by using them for the wrong thing. But that "
+"doesn't mean you should <emphasis>never</emphasis> use them. Anyway, Seam "
+"guides you toward a safe usage model. Welcome to 2005."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1172
+#, no-c-format
+msgid "OK, I'll stop ranting now, and get back to the tutorial."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1174
+#, no-c-format
+msgid ""
+"The booking example application shows how stateful components with different "
+"scopes can collaborate together to achieve complex behaviors. The main page "
+"of the booking application allows the user to search for hotels. The search "
+"results are kept in the Seam session scope. When the user navigates to one "
+"of these hotels, a conversation begins, and a conversation scoped component "
+"calls back to the session scoped component to retrieve the selected hotel."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1180
+#, no-c-format
+msgid ""
+"The booking example also demonstrates the use of RichFaces Ajax to implement "
+"rich client behavior without the use of handwritten JavaScript."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1183
+#, no-c-format
+msgid ""
+"The search functionality is implemented using a session-scope stateful "
+"session bean, similar to the one we saw in the message list example above."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1196
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"hotelSearch\")\n"
+"@Scope(ScopeType.SESSION)\n"
+"@Restrict(\"#{identity.loggedIn}\")\n"
+"public class HotelSearchingAction implements HotelSearching\n"
+"{\n"
+" \n"
+" @PersistenceContext\n"
+" private EntityManager em;\n"
+" \n"
+" private String searchString;\n"
+" private int pageSize = 10;\n"
+" private int page;\n"
+" \n"
+" @DataModel\n"
+" private List<Hotel> hotels;\n"
+" \n"
+" public void find()\n"
+" {\n"
+" page = 0;\n"
+" queryHotels();\n"
+" }\n"
+" public void nextPage()\n"
+" {\n"
+" page++;\n"
+" queryHotels();\n"
+" }\n"
+" \n"
+" private void queryHotels()\n"
+" {\n"
+" hotels = \n"
+" em.createQuery(\"select h from Hotel h where lower(h.name) like #"
+"{pattern} \" + \n"
+" \"or lower(h.city) like #{pattern} \" + \n"
+" \"or lower(h.zip) like #{pattern} \" +\n"
+" \"or lower(h.address) like #{pattern}\")\n"
+" .setMaxResults(pageSize)\n"
+" .setFirstResult( page * pageSize )\n"
+" .getResultList();\n"
+" }\n"
+" \n"
+" public boolean isNextPageAvailable()\n"
+" {\n"
+" return hotels!=null && hotels.size()==pageSize;\n"
+" }\n"
+" \n"
+" public int getPageSize() {\n"
+" return pageSize;\n"
+" }\n"
+" \n"
+" public void setPageSize(int pageSize) {\n"
+" this.pageSize = pageSize;\n"
+" }\n"
+" \n"
+" @Factory(value=\"pattern\", scope=ScopeType.EVENT)\n"
+" public String getSearchPattern()\n"
+" {\n"
+" return searchString==null ? \n"
+" \"%\" : '%' + searchString.toLowerCase().replace('*', '%') + "
+"'%';\n"
+" }\n"
+" \n"
+" public String getSearchString()\n"
+" {\n"
+" return searchString;\n"
+" }\n"
+" \n"
+" public void setSearchString(String searchString)\n"
+" {\n"
+" this.searchString = searchString;\n"
+" }\n"
+" \n"
+" @Remove\n"
+" public void destroy() {}\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1199
+#, no-c-format
+msgid ""
+"The EJB standard <literal>@Stateful</literal> annotation identifies this "
+"class as a stateful session bean. Stateful session beans are scoped to the "
+"conversation context by default."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1204
+#, no-c-format
+msgid ""
+"The <literal>@Restrict</literal> annotation applies a security restriction "
+"to the component. It restricts access to the component allowing only logged-"
+"in users. The security chapter explains more about security in Seam."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1209
+#, no-c-format
+msgid ""
+"The <link linkend=\"datamodel-annotation\"> <literal>@DataModel</literal> </"
+"link> annotation exposes a <literal>List</literal> as a JSF "
+"<literal>ListDataModel</literal>. This makes it easy to implement clickable "
+"lists for search screens. In this case, the list of hotels is exposed to the "
+"page as a <literal>ListDataModel</literal> in the conversation variable "
+"named <literal>hotels</literal>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1218
+#, no-c-format
+msgid ""
+"The EJB standard <literal>@Remove</literal> annotation specifies that a "
+"stateful session bean should be removed and its state destroyed after "
+"invocation of the annotated method. In Seam, all stateful session beans must "
+"define a method with no parameters marked <literal>@Remove</literal>. This "
+"method will be called when Seam destroys the session context."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1229
+#, no-c-format
+msgid ""
+"The main page of the application is a Facelets page. Let's look at the "
+"fragment which relates to searching for hotels:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1241
+#, no-c-format
+msgid ""
+"<![CDATA[<div class=\"section\">\n"
+" \n"
+" <span class=\"errors\">\n"
+" <h:messages globalOnly=\"true\"/>\n"
+" </span>\n"
+" \n"
+" <h1>Search Hotels</h1>\n"
+"\n"
+" <h:form id=\"searchCriteria\">\n"
+" <fieldset> \n"
+" <h:inputText id=\"searchString\" value=\"#{hotelSearch."
+"searchString}\" \n"
+" style=\"width: 165px;\">\n"
+" <a:support event=\"onkeyup\" actionListener=\"#{hotelSearch.find}"
+"\" \n"
+" reRender=\"searchResults\" />\n"
+" </h:inputText>\n"
+"  \n"
+" <a:commandButton id=\"findHotels\" value=\"Find Hotels\" action="
+"\"#{hotelSearch.find}\" \n"
+" reRender=\"searchResults\"/>\n"
+"  \n"
+" <a:status>\n"
+" <f:facet name=\"start\">\n"
+" <h:graphicImage value=\"/img/spinner.gif\"/>\n"
+" </f:facet>\n"
+" </a:status>\n"
+" <br/>\n"
+" <h:outputLabel for=\"pageSize\">Maximum results:</h:"
+"outputLabel> \n"
+" <h:selectOneMenu value=\"#{hotelSearch.pageSize}\" id=\"pageSize\">\n"
+" <f:selectItem itemLabel=\"5\" itemValue=\"5\"/>\n"
+" <f:selectItem itemLabel=\"10\" itemValue=\"10\"/>\n"
+" <f:selectItem itemLabel=\"20\" itemValue=\"20\"/>\n"
+" </h:selectOneMenu>\n"
+" </fieldset>\n"
+" </h:form>\n"
+" \n"
+"</div>\n"
+"\n"
+"<a:outputPanel id=\"searchResults\">\n"
+" <div class=\"section\">\n"
+" <h:outputText value=\"No Hotels Found\"\n"
+" rendered=\"#{hotels != null and hotels.rowCount==0}\"/>\n"
+" <h:dataTable id=\"hotels\" value=\"#{hotels}\" var=\"hot\" \n"
+" rendered=\"#{hotels.rowCount>0}\">\n"
+" <h:column>\n"
+" <f:facet name=\"header\">Name</f:facet>\n"
+" #{hot.name}\n"
+" </h:column>\n"
+" <h:column>\n"
+" <f:facet name=\"header\">Address</f:facet>\n"
+" #{hot.address}\n"
+" </h:column>\n"
+" <h:column>\n"
+" <f:facet name=\"header\">City, State</f:facet>\n"
+" #{hot.city}, #{hot.state}, #{hot.country}\n"
+" </h:column> \n"
+" <h:column>\n"
+" <f:facet name=\"header\">Zip</f:facet>\n"
+" #{hot.zip}\n"
+" </h:column>\n"
+" <h:column>\n"
+" <f:facet name=\"header\">Action</f:facet>\n"
+" <s:link id=\"viewHotel\" value=\"View Hotel\" \n"
+" action=\"#{hotelBooking.selectHotel(hot)}\"/>\n"
+" </h:column>\n"
+" </h:dataTable>\n"
+" <s:link value=\"More results\" action=\"#{hotelSearch.nextPage}\" \n"
+" rendered=\"#{hotelSearch.nextPageAvailable}\"/>\n"
+" </div>\n"
+"</a:outputPanel> ]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1244
+#, no-c-format
+msgid ""
+"The RichFaces Ajax <literal><a:support></literal> tag allows a JSF "
+"action event listener to be called by asynchronous <literal>XMLHttpRequest</"
+"literal> when a JavaScript event like <literal>onkeyup</literal> occurs. "
+"Even better, the <literal>reRender</literal> attribute lets us render a "
+"fragment of the JSF page and perform a partial page update when the "
+"asynchronous response is received."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1251
+#, no-c-format
+msgid ""
+"The RichFaces Ajax <literal><a:status></literal> tag lets us display a "
+"cheesy annimated image while we wait for asynchronous requests to return."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1255
+#, no-c-format
+msgid ""
+"The RichFaces Ajax <literal><a:outputPanel></literal> tag defines a "
+"region of the page which can be re-rendered by an asynchronous request."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1259
+#, no-c-format
+msgid ""
+"The Seam <literal><s:link></literal> tag lets us attach a JSF action "
+"listener to an ordinary (non-JavaScript) HTML link. The advantage of this "
+"over the standard JSF <literal><h:commandLink></literal> is that it "
+"preserves the operation of \"open in new window\" and \"open in new tab\". "
+"Also notice that we use a method binding with a parameter: <literal>#"
+"{hotelBooking.selectHotel(hot)}</literal>. This is not possible in the "
+"standard Unified EL, but Seam provides an extension to the EL that lets you "
+"use parameters on any method binding expression."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1266
+#, no-c-format
+msgid ""
+"If you're wondering how navigation occurs, you can find all the rules in "
+"<literal>WEB-INF/pages.xml</literal>; this is discussed in <xref linkend="
+"\"events.pageaction.navigation\"/>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1275
+#, no-c-format
+msgid ""
+"This page displays the search results dynamically as we type, and lets us "
+"choose a hotel and pass it to the <literal>selectHotel()</literal> method of "
+"the <literal>HotelBookingAction</literal>, which is where the "
+"<emphasis>really</emphasis> interesting stuff is going to happen."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1280
+#, no-c-format
+msgid ""
+"Now let's see how the booking example application uses a conversation-scoped "
+"stateful session bean to achieve a natural cache of persistent data related "
+"to the conversation. The following code example is pretty long. But if you "
+"think of it as a list of scripted actions that implement the various steps "
+"of the conversation, it's understandable. Read the class from top to bottom, "
+"as if it were a story."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1295
+#, no-c-format
+msgid ""
+"<![CDATA[@Stateful\n"
+"@Name(\"hotelBooking\")\n"
+"@Restrict(\"#{identity.loggedIn}\")\n"
+"public class HotelBookingAction implements HotelBooking\n"
+"{\n"
+" \n"
+" @PersistenceContext(type=EXTENDED)\n"
+" private EntityManager em;\n"
+" \n"
+" @In \n"
+" private User user;\n"
+" \n"
+" @In(required=false) @Out\n"
+" private Hotel hotel;\n"
+" \n"
+" @In(required=false) \n"
+" @Out(required=false)\n"
+" private Booking booking;\n"
+" \n"
+" @In\n"
+" private FacesMessages facesMessages;\n"
+" \n"
+" @In\n"
+" private Events events;\n"
+" \n"
+" @Logger \n"
+" private Log log;\n"
+" \n"
+" private boolean bookingValid;\n"
+" \n"
+" @Begin\n"
+" public void selectHotel(Hotel selectedHotel)\n"
+" {\n"
+" hotel = em.merge(selectedHotel);\n"
+" }\n"
+" \n"
+" public void bookHotel()\n"
+" { \n"
+" booking = new Booking(hotel, user);\n"
+" Calendar calendar = Calendar.getInstance();\n"
+" booking.setCheckinDate( calendar.getTime() );\n"
+" calendar.add(Calendar.DAY_OF_MONTH, 1);\n"
+" booking.setCheckoutDate( calendar.getTime() );\n"
+" }\n"
+" \n"
+" public void setBookingDetails()\n"
+" {\n"
+" Calendar calendar = Calendar.getInstance();\n"
+" calendar.add(Calendar.DAY_OF_MONTH, -1);\n"
+" if ( booking.getCheckinDate().before( calendar.getTime() ) )\n"
+" {\n"
+" facesMessages.addToControl(\"checkinDate\", \"Check in date must be "
+"a future date\");\n"
+" bookingValid=false;\n"
+" }\n"
+" else if ( !booking.getCheckinDate().before( booking.getCheckoutDate"
+"() ) )\n"
+" {\n"
+" facesMessages.addToControl(\"checkoutDate\", \n"
+" \"Check out date must be later than "
+"check in date\");\n"
+" bookingValid=false;\n"
+" }\n"
+" else\n"
+" {\n"
+" bookingValid=true;\n"
+" }\n"
+" }\n"
+" \n"
+" public boolean isBookingValid()\n"
+" {\n"
+" return bookingValid;\n"
+" }\n"
+" \n"
+" @End\n"
+" public void confirm()\n"
+" {\n"
+" em.persist(booking);\n"
+" facesMessages.add(\"Thank you, #{user.name}, your confimation number "
+"\" + \n"
+" \" for #{hotel.name} is #{booki g.id}\");\n"
+" log.info(\"New booking: #{booking.id} for #{user.username}\");\n"
+" events.raiseTransactionSuccessEvent(\"bookingConfirmed\");\n"
+" }\n"
+" \n"
+" @End\n"
+" public void cancel() {}\n"
+" \n"
+" @Remove\n"
+" public void destroy() {}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1298
+#, no-c-format
+msgid ""
+"This bean uses an EJB3 <emphasis>extended persistence context</emphasis>, so "
+"that any entity instances remain managed for the whole lifecycle of the "
+"stateful session bean."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1303
+#, no-c-format
+msgid ""
+"The <link linkend=\"out-annotation\"> <literal>@Out</literal> </link> "
+"annotation declares that an attribute value is <emphasis>outjected</"
+"emphasis> to a context variable after method invocations. In this case, the "
+"context variable named <literal>hotel</literal> will be set to the value of "
+"the <literal>hotel</literal> instance variable after every action listener "
+"invocation completes."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1311
+#, no-c-format
+msgid ""
+"The <link linkend=\"begin-annotation\"> <literal>@Begin</literal> </link> "
+"annotation specifies that the annotated method begins a <emphasis>long-"
+"running conversation</emphasis>, so the current conversation context will "
+"not be destroyed at the end of the request. Instead, it will be reassociated "
+"with every request from the current window, and destroyed either by timeout "
+"due to conversation inactivity or invocation of a matching <literal>@End</"
+"literal> method."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1320
+#, no-c-format
+msgid ""
+"The <link linkend=\"end-annotation\"> <literal>@End</literal> </link> "
+"annotation specifies that the annotated method ends the current long-running "
+"conversation, so the current conversation context will be destroyed at the "
+"end of the request."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1327
+#, no-c-format
+msgid ""
+"This EJB remove method will be called when Seam destroys the conversation "
+"context. Don't forget to define this method!"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1335
+#, no-c-format
+msgid ""
+"<literal>HotelBookingAction</literal> contains all the action listener "
+"methods that implement selection, booking and booking confirmation, and "
+"holds state related to this work in its instance variables. We think you'll "
+"agree that this code is much cleaner and simpler than getting and setting "
+"<literal>HttpSession</literal> attributes."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1341
+#, no-c-format
+msgid ""
+"Even better, a user can have multiple isolated conversations per login "
+"session. Try it! Log in, run a search, and navigate to different hotel pages "
+"in multiple browser tabs. You'll be able to work on creating two different "
+"hotel reservations at the same time. If you leave any one conversation "
+"inactive for long enough, Seam will eventually time out that conversation "
+"and destroy its state. If, after ending a conversation, you backbutton to a "
+"page of that conversation and try to perform an action, Seam will detect "
+"that the conversation was already ended, and redirect you to the search page."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:1351
+#, no-c-format
+msgid "The Seam UI control library"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1352
+#, no-c-format
+msgid ""
+"If you check inside the WAR file for the booking application, you'll find "
+"<literal>seam-ui.jar</literal> in the <literal>WEB-INF/lib</literal> "
+"directory. This package contains a number of JSF custom controls that "
+"integrate with Seam. The booking application uses the <literal><s:link>"
+"</literal> control for navigation from the search screen to the hotel page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1358
+#, no-c-format
+msgid ""
+"<![CDATA[<s:link value=\"View Hotel\" action=\"#{hotelBooking.selectHotel"
+"(hot)}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1360
+#, no-c-format
+msgid ""
+"The use of <literal><s:link></literal> here allows us to attach an "
+"action listener to a HTML link without breaking the browser's \"open in new "
+"window\" feature. The standard JSF <literal><h:commandLink></literal> "
+"does not work with \"open in new window\". We'll see later that <literal><"
+"s:link></literal> also offers a number of other useful features, "
+"including conversation propagation rules."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1366
+#, no-c-format
+msgid ""
+"The booking application uses some other Seam and RichFaces Ajax controls, "
+"especially on the <literal>/book.xhtml</literal> page. We won't get into the "
+"details of those controls here, but if you want to understand this code, "
+"please refer to the chapter covering Seam's functionality for JSF form "
+"validation."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:1373
+#, no-c-format
+msgid "The Seam Debug Page"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1375
+#, no-c-format
+msgid ""
+"The WAR also includes <literal>seam-debug.jar</literal>. The Seam debug page "
+"will be availabled if this jar is deployed in <literal>WEB-INF/lib</"
+"literal>, along with the Facelets, and if you set the debug property of the "
+"<literal>init</literal> component:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1380
+#, no-c-format
+msgid "<![CDATA[<core:init jndi-pattern=\"@jndiPattern@\" debug=\"true\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1382
+#, no-c-format
+msgid ""
+"This page lets you browse and inspect the Seam components in any of the Seam "
+"contexts associated with your current login session. Just point your browser "
+"at <ulink url=\"http://localhost:8080/seam-booking/debug.seam\"> "
+"<literal>http://localhost:8080/seam-booking/debug.seam</literal> </ulink>."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:1402
+#, no-c-format
+msgid "A complete application featuring Seam and jBPM: the DVD Store example"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1404
+#, no-c-format
+msgid ""
+"The DVD Store demo application shows the practical usage of jBPM for both "
+"task management and pageflow."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1406
+#, no-c-format
+msgid ""
+"The user screens take advantage of a jPDL pageflow to implement searching "
+"and shopping cart functionality."
+msgstr ""
+
+#. Tag: screeninfo
+#: Tutorial.xml:1410 Tutorial.xml:1425
+#, no-c-format
+msgid "DVD Store example"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1421
+#, no-c-format
+msgid ""
+"The administration screens take use jBPM to manage the approval and shipping "
+"cycle for orders. The business process may even be changed dynamically, by "
+"selecting a different process definition!"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1437
+#, no-c-format
+msgid "Look in the <literal>dvdstore</literal> directory."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:1441
+#, no-c-format
+msgid "An example of Seam with Hibernate: the Hibernate Booking example"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1443
+#, no-c-format
+msgid ""
+"The Hibernate Booking demo is a straight port of the Booking demo to an "
+"alternative architecture that uses Hibernate for persistence and JavaBeans "
+"instead of session beans."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1447
+#, no-c-format
+msgid "Look in the <literal>hibernate</literal> directory."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:1451
+#, no-c-format
+msgid "A RESTful Seam application: the Blog example"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1453
+#, no-c-format
+msgid ""
+"Seam makes it very easy to implement applications which keep state on the "
+"server-side. However, server-side state is not always appropriate, "
+"especially in for functionality that serves up <emphasis>content</emphasis>. "
+"For this kind of problem we often need to let the user bookmark pages and "
+"have a relatively stateless server, so that any page can be accessed at any "
+"time, via the bookmark. The Blog example shows how to a implement RESTful "
+"application using Seam. Every page of the application can be bookmarked, "
+"including the search results page."
+msgstr ""
+
+#. Tag: screeninfo
+#: Tutorial.xml:1461
+#, no-c-format
+msgid "Blog example"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1472
+#, no-c-format
+msgid ""
+"The Blog example demonstrates the use of \"pull\"-style MVC, where instead "
+"of using action listener methods to retrieve data and prepare the data for "
+"the view, the view pulls data from components as it is being rendered."
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:1477
+#, no-c-format
+msgid "Using \"pull\"-style MVC"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1479
+#, no-c-format
+msgid ""
+"This snippet from the <literal>index.xhtml</literal> facelets page displays "
+"a list of recent blog entries:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1483
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{blog.recentBlogEntries}\" var=\"blogEntry\" "
+"rows=\"3\">\n"
+" <h:column>\n"
+" <div class=\"blogEntry\">\n"
+" <h3>#{blogEntry.title}</h3>\n"
+" <div>\n"
+" <h:outputText escape=\"false\" \n"
+" value=\"#{blogEntry.excerpt==null ? blogEntry.body : "
+"blogEntry.excerpt}\"/>\n"
+" </div>\n"
+" <p>\n"
+" <h:outputLink value=\"entry.seam\" rendered=\"#{blogEntry."
+"excerpt!=null}\">\n"
+" <f:param name=\"blogEntryId\" value=\"#{blogEntry.id}\"/>\n"
+" Read more...\n"
+" </h:outputLink>\n"
+" </p>\n"
+" <p>\n"
+" [Posted on \n"
+" <h:outputText value=\"#{blogEntry.date}\">\n"
+" <f:convertDateTime timeZone=\"#{blog.timeZone}\" \n"
+" locale=\"#{blog.locale}\" type=\"both\"/>\n"
+" </h:outputText>]\n"
+"  \n"
+" <h:outputLink value=\"entry.seam\">[Link]\n"
+" <f:param name=\"blogEntryId\" value=\"#{blogEntry.id}\"/>\n"
+" </h:outputLink>\n"
+" </p>\n"
+" </div>\n"
+" </h:column>\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1487
+#, no-c-format
+msgid ""
+"If we navigate to this page from a bookmark, how does the data used by the "
+"<literal><h:dataTable></literal> actually get initialized? Well, what "
+"happens is that the <literal>Blog</literal> is retrieved lazily—"
+"\"pulled\"—when needed, by a Seam component named <literal>blog</"
+"literal>. This is the opposite flow of control to what is usual in "
+"traditional web action-based frameworks like Struts."
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1500
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"blog\")\n"
+"@Scope(ScopeType.STATELESS)\n"
+"@AutoCreate\n"
+"public class BlogService \n"
+"{\n"
+" \n"
+" @In EntityManager entityManager;\n"
+" \n"
+" @Unwrap\n"
+" public Blog getBlog()\n"
+" {\n"
+" return (Blog) entityManager.createQuery(\"select distinct b from Blog "
+"b left join fetch b.blogEntries\")\n"
+" .setHint(\"org.hibernate.cacheable\", true)\n"
+" .getSingleResult();\n"
+" }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1503
+#, no-c-format
+msgid ""
+"This component uses a <emphasis>seam-managed persistence context</emphasis>. "
+"Unlike the other examples we've seen, this persistence context is managed by "
+"Seam, instead of by the EJB3 container. The persistence context spans the "
+"entire web request, allowing us to avoid any exceptions that occur when "
+"accessing unfetched associations in the view."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1510
+#, no-c-format
+msgid ""
+"The <literal>@Unwrap</literal> annotation tells Seam to provide the return "
+"value of the method—the <literal>Blog</literal>—instead of the "
+"actual <literal>BlogService</literal> component to clients. This is the Seam "
+"<emphasis>manager component pattern</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1520
+#, no-c-format
+msgid ""
+"This is good so far, but what about bookmarking the result of form "
+"submissions, such as a search results page?"
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:1526
+#, no-c-format
+msgid "Bookmarkable search results page"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1528
+#, no-c-format
+msgid ""
+"The blog example has a tiny form in the top right of each page that allows "
+"the user to search for blog entries. This is defined in a file, "
+"<literal>menu.xhtml</literal>, included by the facelets template, "
+"<literal>template.xhtml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1533
+#, no-c-format
+msgid ""
+"<![CDATA[<div id=\"search\">\n"
+" <h:form>\n"
+" <h:inputText value=\"#{searchAction.searchPattern}\"/>\n"
+" <h:commandButton value=\"Search\" action=\"/search.xhtml\"/>\n"
+" </h:form>\n"
+"</div>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1536
+#, no-c-format
+msgid ""
+"To implement a bookmarkable search results page, we need to perform a "
+"browser redirect after processing the search form submission. Because we "
+"used the JSF view id as the action outcome, Seam automatically redirects to "
+"the view id when the form is submitted. Alternatively, we could have defined "
+"a navigation rule like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1541
+#, no-c-format
+msgid ""
+"<![CDATA[<navigation-rule>\n"
+" <navigation-case>\n"
+" <from-outcome>searchResults</from-outcome>\n"
+" <to-view-id>/search.xhtml</to-view-id>\n"
+" <redirect/>\n"
+" </navigation-case>\n"
+"</navigation-rule>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1544
+#, no-c-format
+msgid "Then the form would have looked like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1546
+#, no-c-format
+msgid ""
+"<![CDATA[<div id=\"search\">\n"
+" <h:form>\n"
+" <h:inputText value=\"#{searchAction.searchPattern}\"/>\n"
+" <h:commandButton value=\"Search\" action=\"searchResults\"/>\n"
+" </h:form>\n"
+"</div>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1549
+#, no-c-format
+msgid ""
+"But when we redirect, we need to include the values submitted with the form "
+"as request parameters, to get a bookmarkable URL like <literal>http://"
+"localhost:8080/seam-blog/search.seam?searchPattern=seam</literal>. JSF does "
+"not provide an easy way to do this, but Seam does. We use a Seam "
+"<emphasis>page parameter</emphasis>, defined in <literal>WEB-INF/pages.xml</"
+"literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1556
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" <page view-id=\"/search.xhtml\">\n"
+" <param name=\"searchPattern\" value=\"#{searchService.searchPattern}\"/"
+">\n"
+" </page>\n"
+" ...\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1560
+#, no-c-format
+msgid ""
+"This tells Seam to include the value of <literal>#{searchService."
+"searchPattern}</literal> as a request parameter named "
+"<literal>searchPattern</literal> when redirecting to the page, and then re-"
+"apply the value of that parameter to the model before rendering the page."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1564
+#, no-c-format
+msgid "The redirect takes us to the <literal>search.xhtml</literal> page:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1566
+#, no-c-format
+msgid ""
+"<![CDATA[<h:dataTable value=\"#{searchResults}\" var=\"blogEntry\">\n"
+" <h:column>\n"
+" <div>\n"
+" <h:outputLink value=\"entry.seam\">\n"
+" <f:param name=\"blogEntryId\" value=\"#{blogEntry.id}\"/>\n"
+" #{blogEntry.title}\n"
+" </h:outputLink>\n"
+" posted on \n"
+" <h:outputText value=\"#{blogEntry.date}\">\n"
+" <f:convertDateTime timeZone=\"#{blog.timeZone}\" locale=\"#{blog."
+"locale}\" type=\"both\"/>\n"
+" </h:outputText>\n"
+" </div>\n"
+" </h:column>\n"
+"</h:dataTable>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1569
+#, no-c-format
+msgid ""
+"Which again uses \"pull\"-style MVC to retrieve the actual search results:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1571
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"searchService\")\n"
+"public class SearchService \n"
+"{\n"
+" \n"
+" @In\n"
+" private EntityManager entityManager;\n"
+" \n"
+" private String searchPattern;\n"
+" \n"
+" @Factory(\"searchResults\")\n"
+" public List<BlogEntry> getSearchResults()\n"
+" {\n"
+" if (searchPattern==null)\n"
+" {\n"
+" return null;\n"
+" }\n"
+" else\n"
+" {\n"
+" return entityManager.createQuery(\"select be from BlogEntry be \"\" "
+"+ \n"
+" \"where lower(be.title) like :searchPattern \" + \n"
+" \"lower(be.body) like :searchPattern order by be.date "
+"desc\")\n"
+" .setParameter( \"searchPattern\", getSqlSearchPattern() )\n"
+" .setMaxResults(100)\n"
+" .getResultList();\n"
+" }\n"
+" }\n"
+"\n"
+" private String getSqlSearchPattern()\n"
+" {\n"
+" return searchPattern==null ? \"\" :\n"
+" '%' + searchPattern.toLowerCase().replace('*', '%').replace"
+"('?', '_') + '%';\n"
+" }\n"
+"\n"
+" public String getSearchPattern()\n"
+" {\n"
+" return searchPattern;\n"
+" }\n"
+"\n"
+" public void setSearchPattern(String searchPattern)\n"
+" {\n"
+" this.searchPattern = searchPattern;\n"
+" }\n"
+"\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Tutorial.xml:1577
+#, no-c-format
+msgid "Using \"push\"-style MVC in a RESTful application"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1579
+#, no-c-format
+msgid ""
+"Very occasionally, it makes more sense to use push-style MVC for processing "
+"RESTful pages, and so Seam provides the notion of a <emphasis>page action</"
+"emphasis>. The Blog example uses a page action for the blog entry page, "
+"<literal>entry.xhtml</literal>. Note that this is a little bit contrived, it "
+"would have been easier to use pull-style MVC here as well."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1584
+#, no-c-format
+msgid ""
+"The <literal>entryAction</literal> component works much like an action class "
+"in a traditional push-MVC action-oriented framework like Struts:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1587
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"entryAction\")\n"
+"@Scope(STATELESS)\n"
+"public class EntryAction\n"
+"{\n"
+" @In(create=true) \n"
+" private Blog blog;\n"
+" \n"
+" @Out\n"
+" private BlogEntry blogEntry;\n"
+" \n"
+" public void loadBlogEntry(String id) throws EntryNotFoundException\n"
+" {\n"
+" blogEntry = blog.getBlogEntry(id);\n"
+" if (blogEntry==null) throw new EntryNotFoundException(id);\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1590
+#, no-c-format
+msgid "Page actions are also declared in <literal>pages.xml</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1592
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" ...\n"
+"\n"
+" <page view-id=\"/entry.xhtml\" action=\"#{entryAction.loadBlogEntry"
+"(blogEntry.id)}\">\n"
+" <param name=\"blogEntryId\" value=\"#{blogEntry.id}\"/>\n"
+" </page>\n"
+"\n"
+" <page view-id=\"/post.xhtml\" action=\"#{loginAction.challenge}\"/>\n"
+"\n"
+" <page view-id=\"*\" action=\"#{blog.hitCount.hit}\"/>\n"
+"\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1595
+#, no-c-format
+msgid ""
+"Notice that the example is using page actions for some other "
+"functionality—the login challenge, and the pageview counter. Also "
+"notice the use of a parameter in the page action method binding. This is not "
+"a standard feature of JSF EL, but Seam lets you use it, not just for page "
+"actions, but also in JSF method bindings."
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1600
+#, no-c-format
+msgid ""
+"When the <literal>entry.xhtml</literal> page is requested, Seam first binds "
+"the page parameter <literal>blogEntryId</literal> to the model, then runs "
+"the page action, which retrieves the needed data—the "
+"<literal>blogEntry</literal>—and places it in the Seam event context. "
+"Finally, the following is rendered:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1605
+#, no-c-format
+msgid ""
+"<![CDATA[<div class=\"blogEntry\">\n"
+" <h3>#{blogEntry.title}</h3>\n"
+" <div>\n"
+" <h:outputText escape=\"false\" value=\"#{blogEntry.body}\"/>\n"
+" </div>\n"
+" <p>\n"
+" [Posted on \n"
+" <h:outputText value=\"#{blogEntry.date}\">\n"
+" <f:convertDateTime timezone=\"#{blog.timeZone}\" \n"
+" locale=\"#{blog.locale}\" type=\"both\"/>\n"
+" </h:outputText>]\n"
+" </p>\n"
+"</div>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1608
+#, no-c-format
+msgid ""
+"If the blog entry is not found in the database, the "
+"<literal>EntryNotFoundException</literal> exception is thrown. We want this "
+"exception to result in a 404 error, not a 505, so we annotate the exception "
+"class:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1612
+#, no-c-format
+msgid ""
+"<![CDATA[@ApplicationException(rollback=true)\n"
+"@HttpError(errorCode=HttpServletResponse.SC_NOT_FOUND)\n"
+"public class EntryNotFoundException extends Exception\n"
+"{\n"
+" EntryNotFoundException(String id)\n"
+" {\n"
+" super(\"entry not found: \" + id);\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1615
+#, no-c-format
+msgid ""
+"An alternative implementation of the example does not use the parameter in "
+"the method binding:"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1617
+#, no-c-format
+msgid ""
+"<![CDATA[@Name(\"entryAction\")\n"
+"@Scope(STATELESS)\n"
+"public class EntryAction\n"
+"{\n"
+" @In(create=true) \n"
+" private Blog blog;\n"
+" \n"
+" @In @Out\n"
+" private BlogEntry blogEntry;\n"
+" \n"
+" public void loadBlogEntry() throws EntryNotFoundException\n"
+" {\n"
+" blogEntry = blog.getBlogEntry( blogEntry.getId() );\n"
+" if (blogEntry==null) throw new EntryNotFoundException(id);\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Tutorial.xml:1619
+#, no-c-format
+msgid ""
+"<![CDATA[<pages>\n"
+" ...\n"
+"\n"
+" <page view-id=\"/entry.xhtml\" action=\"#{entryAction.loadBlogEntry}\">\n"
+" <param name=\"blogEntryId\" value=\"#{blogEntry.id}\"/>\n"
+" </page>\n"
+" \n"
+" ...\n"
+"</pages>]]>"
+msgstr ""
+
+#. Tag: para
+#: Tutorial.xml:1622
+#, no-c-format
+msgid "It is a matter of taste which implementation you prefer."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Validation.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Validation.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Validation.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,416 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Validation.xml:2
+#, no-c-format
+msgid "JSF form validation in Seam"
+msgstr ""
+
+#. Tag: para
+#: Validation.xml:3
+#, no-c-format
+msgid "In plain JSF, validation is defined in the view:"
+msgstr ""
+
+#. Tag: programlisting
+#: Validation.xml:7
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form>\n"
+" <h:messages/>\n"
+"\n"
+" <div>\n"
+" Country:\n"
+" <h:inputText value=\"#{location.country}\" required=\"true\">\n"
+" <my:validateCountry/>\n"
+" </h:inputText>\n"
+" </div>\n"
+" \n"
+" <div>\n"
+" Zip code:\n"
+" <h:inputText value=\"#{location.zip}\" required=\"true\">\n"
+" <my:validateZip/>\n"
+" </h:inputText>\n"
+" </div>\n"
+"\n"
+" <h:commandButton/>\n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: Validation.xml:9
+#, no-c-format
+msgid ""
+"In practice, this approach usually violates DRY, since most \"validation\" "
+"actually enforces constraints that are part of the data model, and exist all "
+"the way down to the database schema definition. Seam provides support for "
+"model-based constraints defined using Hibernate Validator."
+msgstr ""
+
+#. Tag: para
+#: Validation.xml:17
+#, no-c-format
+msgid ""
+"Let's start by defining our constraints, on our <literal>Location</literal> "
+"class:"
+msgstr ""
+
+#. Tag: programlisting
+#: Validation.xml:22
+#, no-c-format
+msgid ""
+"<![CDATA[public class Location {\n"
+" private String country;\n"
+" private String zip;\n"
+" \n"
+" @NotNull\n"
+" @Length(max=30)\n"
+" public String getCountry() { return country; }\n"
+" public void setCountry(String c) { country = c; }\n"
+"\n"
+" @NotNull\n"
+" @Length(max=6)\n"
+" @Pattern(\"^\\d*$\")\n"
+" public String getZip() { return zip; }\n"
+" public void setZip(String z) { zip = z; }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Validation.xml:24
+#, no-c-format
+msgid ""
+"Well, that's a decent first cut, but in practice it might be more elegant to "
+"use custom constraints instead of the ones built into Hibernate Validator:"
+msgstr ""
+
+#. Tag: programlisting
+#: Validation.xml:30
+#, no-c-format
+msgid ""
+"<![CDATA[public class Location {\n"
+" private String country;\n"
+" private String zip;\n"
+" \n"
+" @NotNull\n"
+" @Country\n"
+" public String getCountry() { return country; }\n"
+" public void setCountry(String c) { country = c; }\n"
+"\n"
+" @NotNull\n"
+" @ZipCode\n"
+" public String getZip() { return zip; }\n"
+" public void setZip(String z) { zip = z; }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Validation.xml:32
+#, no-c-format
+msgid ""
+"Whichever route we take, we no longer need to specify the type of validation "
+"to be used in the JSF page. Instead, we can use <literal><s:validate></"
+"literal> to validate against the constraint defined on the model object."
+msgstr ""
+
+#. Tag: programlisting
+#: Validation.xml:39
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form>\n"
+" <h:messages/>\n"
+"\n"
+" <div>\n"
+" Country:\n"
+" <h:inputText value=\"#{location.country}\" required=\"true\">\n"
+" <s:validate/>\n"
+" </h:inputText>\n"
+" </div>\n"
+" \n"
+" <div>\n"
+" Zip code:\n"
+" <h:inputText value=\"#{location.zip}\" required=\"true\">\n"
+" <s:validate/>\n"
+" </h:inputText>\n"
+" </div>\n"
+" \n"
+" <h:commandButton/>\n"
+"\n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: Validation.xml:41
+#, no-c-format
+msgid ""
+"<emphasis>Note:</emphasis> specifying <literal>@NotNull</literal> on the "
+"model does <emphasis>not</emphasis> eliminate the requirement for "
+"<literal>required=\"true\"</literal> to appear on the control! This is due "
+"to a limitation of the JSF validation architecture."
+msgstr ""
+
+#. Tag: para
+#: Validation.xml:48
+#, no-c-format
+msgid ""
+"This approach <emphasis>defines</emphasis> constraints on the model, and "
+"<emphasis>presents</emphasis> constraint violations in the view—a "
+"significantly better design."
+msgstr ""
+
+#. Tag: para
+#: Validation.xml:54
+#, no-c-format
+msgid ""
+"However, it is not much less verbose than what we started with, so let's try "
+"<literal><s:validateAll></literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Validation.xml:59
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form>\n"
+" \n"
+" <h:messages/>\n"
+"\n"
+" <s:validateAll>\n"
+"\n"
+" <div>\n"
+" Country:\n"
+" <h:inputText value=\"#{location.country}\" required=\"true\"/>\n"
+" </div>\n"
+"\n"
+" <div>\n"
+" Zip code:\n"
+" <h:inputText value=\"#{location.zip}\" required=\"true\"/>\n"
+" </div>\n"
+"\n"
+" <h:commandButton/>\n"
+"\n"
+" </s:validateAll>\n"
+"\n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: Validation.xml:61
+#, no-c-format
+msgid ""
+"This tag simply adds an <literal><s:validate></literal> to every input "
+"in the form. For a large form, it can save a lot of typing!"
+msgstr ""
+
+#. Tag: para
+#: Validation.xml:67
+#, no-c-format
+msgid ""
+"Now we need to do something about displaying feedback to the user when "
+"validation fails. Currently we are displaying all messages at the top of the "
+"form. What we would really like to do is display the message next to the "
+"field with the error (this is possible in plain JSF), highlight the field "
+"and label (this is not possible) and, for good measure, display some image "
+"next to the field (also not possible). We also want to display a little "
+"colored asterisk next to the label for each required form field."
+msgstr ""
+
+#. Tag: para
+#: Validation.xml:80
+#, no-c-format
+msgid ""
+"That's quite a lot of functionality we need for each field of our form. We "
+"wouldn't want to have to specify higlighting and the layout of the image, "
+"message and input field for every field on the form. So, instead, we'll "
+"specify the common layout in a facelets template:"
+msgstr ""
+
+#. Tag: programlisting
+#: Validation.xml:88
+#, no-c-format
+msgid ""
+"<![CDATA[<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"\n"
+" xmlns:ui=\"http://java.sun.com/jsf/facelets\"\n"
+" xmlns:h=\"http://java.sun.com/jsf/html\"\n"
+" xmlns:f=\"http://java.sun.com/jsf/core\"\n"
+" xmlns:s=\"http://jboss.com/products/seam/taglib\">\n"
+" \n"
+" <div>\n"
+" \n"
+" <s:label styleClass=\"#{invalid?'error':''}\">\n"
+" <ui:insert name=\"label\"/>\n"
+" <s:span styleClass=\"required\" rendered=\"#{required}\">*</s:"
+"span>\n"
+" </s:label>\n"
+" \n"
+" <span class=\"#{invalid?'error':''}\">\n"
+" <h:graphicImage value=\"/img/error.gif\" rendered=\"#{invalid}\"/"
+">\n"
+" <s:validateAll>\n"
+" <ui:insert/>\n"
+" </s:validateAll>\n"
+" </span>\n"
+" \n"
+" <s:message styleClass=\"error\"/>\n"
+" \n"
+" </div>\n"
+" \n"
+"</ui:composition>]]>"
+msgstr ""
+
+#. Tag: para
+#: Validation.xml:90
+#, no-c-format
+msgid ""
+"We can include this template for each of our form fields using <literal><"
+"s:decorate></literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Validation.xml:95
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form>\n"
+"\n"
+" <h:messages globalOnly=\"true\"/>\n"
+"\n"
+" <s:decorate template=\"edit.xhtml\">\n"
+" <ui:define name=\"label\">Country:</ui:define>\n"
+" <h:inputText value=\"#{location.country}\" required=\"true\"/>\n"
+" </s:decorate>\n"
+" \n"
+" <s:decorate template=\"edit.xhtml\">\n"
+" <ui:define name=\"label\">Zip code:</ui:define>\n"
+" <h:inputText value=\"#{location.zip}\" required=\"true\"/>\n"
+" </s:decorate>\n"
+"\n"
+" <h:commandButton/>\n"
+"\n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: Validation.xml:97
+#, no-c-format
+msgid ""
+"Finally, we can use RichFaces Ajax to display validation messages as the "
+"user is navigating around the form:"
+msgstr ""
+
+#. Tag: programlisting
+#: Validation.xml:102
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form>\n"
+"\n"
+" <h:messages globalOnly=\"true\"/>\n"
+"\n"
+" <s:decorate id=\"countryDecoration\" template=\"edit.xhtml\">\n"
+" <ui:define name=\"label\">Country:</ui:define>\n"
+" <h:inputText value=\"#{location.country}\" required=\"true\">\n"
+" <a:support event=\"onblur\" reRender=\"countryDecoration\" "
+"bypassUpdates=\"true\"/>\n"
+" </h:inputText>\n"
+" </s:decorate>\n"
+" \n"
+" <s:decorate id=\"zipDecoration\" template=\"edit.xhtml\">\n"
+" <ui:define name=\"label\">Zip code:</ui:define>\n"
+" <h:inputText value=\"#{location.zip}\" required=\"true\">\n"
+" <a:support event=\"onblur\" reRender=\"zipDecoration\" "
+"bypassUpdates=\"true\"/>\n"
+" </h:inputText>\n"
+" </s:decorate>\n"
+"\n"
+" <h:commandButton/>\n"
+"\n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: Validation.xml:104
+#, no-c-format
+msgid ""
+"It's better style to define explicit ids for important controls on the page, "
+"especially if you want to do automated testing for the UI, using some "
+"toolkit like Selenium. If you don't provide explicit ids, JSF will generate "
+"them, but the generated values will change if you change anything on the "
+"page."
+msgstr ""
+
+#. Tag: programlisting
+#: Validation.xml:113
+#, no-c-format
+msgid ""
+"<![CDATA[<h:form id=\"form\">\n"
+"\n"
+" <h:messages globalOnly=\"true\"/>\n"
+"\n"
+" <s:decorate id=\"countryDecoration\" template=\"edit.xhtml\">\n"
+" <ui:define name=\"label\">Country:</ui:define>\n"
+" <h:inputText id=\"country\" value=\"#{location.country}\" required="
+"\"true\">\n"
+" <a:support event=\"onblur\" reRender=\"countryDecoration\" "
+"bypassUpdates=\"true\"/>\n"
+" </h:inputText>\n"
+" </s:decorate>\n"
+" \n"
+" <s:decorate id=\"zipDecoration\" template=\"edit.xhtml\">\n"
+" <ui:define name=\"label\">Zip code:</ui:define>\n"
+" <h:inputText id=\"zip\" value=\"#{location.zip}\" required=\"true"
+"\">\n"
+" <a:support event=\"onblur\" reRender=\"zipDecoration\" "
+"bypassUpdates=\"true\"/>\n"
+" </h:inputText>\n"
+" </s:decorate>\n"
+"\n"
+" <h:commandButton/>\n"
+"\n"
+"</h:form>]]>"
+msgstr ""
+
+#. Tag: para
+#: Validation.xml:115
+#, no-c-format
+msgid ""
+"And what if you want to specify a different message to be displayed when "
+"validation fails? You can use the Seam message bundle (and all it's goodies "
+"like el expressions inside the message, and per-view message bundles) with "
+"the Hibernate Validator:"
+msgstr ""
+
+#. Tag: programlisting
+#: Validation.xml:122
+#, no-c-format
+msgid ""
+"<![CDATA[public class Location {\n"
+" private String name;\n"
+" private String zip;\n"
+" \n"
+" // Getters and setters for name\n"
+"\n"
+" @NotNull\n"
+" @Length(max=6)\n"
+" @ZipCode(message=\"#{messages['location.zipCode.invalid']}\")\n"
+" public String getZip() { return zip; }\n"
+" public void setZip(String z) { zip = z; }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Validation.xml:124
+#, no-c-format
+msgid ""
+"location.zipCode.invalid = The zip code is not valid for #{location.name}"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Weblogic.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Weblogic.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Weblogic.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,1748 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Weblogic.xml:2
+#, no-c-format
+msgid "Seam on BEA's Weblogic"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:4
+#, no-c-format
+msgid ""
+"Weblogic 10.X is BEA's JEE5 server offering, currently 10.0.MP1 is their "
+"stable release, and 10.3.TP is their latest tech preview release. Seam "
+"applications can be deployed and developed on Weblogic servers, and this "
+"chapter will show you how. There are some known issues with the Weblogic "
+"servers that will need to be worked around, and configuration changes that "
+"are needed."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:11
+#, no-c-format
+msgid ""
+"First step is to get Weblogic downloaded, installed and running (no small "
+"feat). Then we'll talk about Seam's JEE5 example and the hurdles to getting "
+"it running, and what blockers exist. After that the JPA example will be "
+"modified and deployed to the server. Then finally we will create "
+"<literal>seam-gen</literal> application and get it up and running to provide "
+"a jump start to your application."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:19
+#, no-c-format
+msgid "Installation and operation of Weblogic"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:20
+#, no-c-format
+msgid ""
+"First things first we need to get the server installed - and there is a "
+"choice to be made. Weblogic 10.0.MP1 is the most recent stable release, "
+"while 10.3.TP is a technical preview version that fixes some things and "
+"breaks others."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:26
+#, no-c-format
+msgid ""
+"<literal>Weblogic 10.0.MP1</literal> — <ulink url=\"http://commerce."
+"bea.com/showproduct.jsp?family=WLS&major=10&minor=1\"> Download page "
+"</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:30
+#, no-c-format
+msgid ""
+"10.0.MP1 has a known issue with EJBs that use <literal>varargs</literal> in "
+"their methods (it confuses them as <literal>transient</literal> ). This "
+"causes exceptions when Weblogic attempts to compile the Seam EJBs as "
+"<literal>varargs</literal> are used. There seems to be no work around to "
+"this issue in 10.0.MP1. Because of this only the <literal>jpa</literal> and "
+"WAR based <literal>seam-gen</literal> examples work with this version. See "
+"the <literal>jee5/booking</literal> example for more details."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:42
+#, no-c-format
+msgid ""
+"<literal>Weblogic 10.3.TP</literal> — <ulink url=\"http://commerce.bea."
+"com/showproduct.jsp?family=WLS&major=10.3Tech&minor=-1&"
+"DL=www_WLS_10-3TechPreview_icon&WT.ac=DL_www_WLS_10.3_TechPreviewicon\"> "
+"Download page </ulink>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:46
+#, no-c-format
+msgid ""
+"This version still has not fixed the <literal>varargs</literal> bug, and "
+"there is a new issue with EJBs that do not use <literal>kodo</literal> "
+"(BEA's implementation of JPA). See the <literal>jee5/booking</literal> "
+"example for more details. However if the <literal>varargs</literal> issue is "
+"going to get fixed it will most likely be an update to this version."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:56
+#, no-c-format
+msgid ""
+"For the reasons listed above, and the fact that 10.3.TP gets us closer to "
+"the goal of Seam EJB3 support on Weblogic, 10.3.TP will be used for the "
+"examples below."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:61
+#, no-c-format
+msgid "Installing 10.3.TP"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:63
+#, no-c-format
+msgid ""
+"Here are the quick steps to installing Weblogic 10.3.TP. For more details or "
+"if you are having any issues please check with the BEA docs at the <ulink "
+"url=\"http://edocs.bea.com/wls/essex/TechPreview/\"> Tech Preview Doc Center "
+"</ulink> . Here we install the RHEL 5 version using the graphical installer:"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:72
+#, no-c-format
+msgid ""
+"Follow the link given above for 10.3.TP and download the correct version for "
+"your environment. You will need to sign up for an account with BEA in order "
+"to do this."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:77
+#, no-c-format
+msgid ""
+"You may need to change the the <literal>server103tp_XX.bin</literal> file to "
+"be executable:"
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:80
+#, no-c-format
+msgid "chmod a+x server103tp_XX.bin"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:83
+#, no-c-format
+msgid "Execute the install:"
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:84
+#, no-c-format
+msgid "./server103tp_XX.bin"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:87
+#, no-c-format
+msgid ""
+"When the graphical install loads, you need to set the BEA home location. "
+"This is where all BEA applications are installed. This location will be "
+"known as <literal>$BEA_HOME</literal> in this document e.g.:"
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:92
+#, no-c-format
+msgid "/home/jbalunas/bea"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:95
+#, no-c-format
+msgid ""
+"Select <literal>Complete</literal> as the installation type. You do not need "
+"all the extras of the complete install (such as struts and beehive "
+"libraries), but it will not hurt."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:101
+#, no-c-format
+msgid "Then you need to tell it where to install the server components:"
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:103
+#, no-c-format
+msgid "$BEA_HOME/wlserver_10.3tp"
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:108
+#, no-c-format
+msgid "Creating your Weblogic domain"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:109
+#, no-c-format
+msgid ""
+"A Weblogic domain is similar to a JBoss server configuration - it is a self "
+"contained server instance. The Weblogic server you just installed has some "
+"example domains, but we are going to create one just for the seam examples. "
+"You can use the existing domains if you wish (modify the instructions as "
+"needed)."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:117
+#, no-c-format
+msgid "Start up the Weblogic configuration wizard:"
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:118
+#, no-c-format
+msgid "$BEA_HOME/wlserver_10.3tp/common/bin/config.sh"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:121
+#, no-c-format
+msgid ""
+"Choose to create a new domain, configured to support <literal>Weblogic "
+"Server TP</literal>. Note that this is the default domain option."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:126
+#, no-c-format
+msgid "Set a username and password for this domain."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:129
+#, no-c-format
+msgid ""
+"Next choose <literal>Development Mode</literal> and the default JDK when "
+"given the option."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:133
+#, no-c-format
+msgid ""
+"The next screen asks if you want to customize any setting. Select "
+"<literal>No</literal>."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:137
+#, no-c-format
+msgid ""
+"Finally set the name of the domain to <literal>seam_examples</literal> and "
+"leave the default domain location."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:144
+#, no-c-format
+msgid "How to Start/Stop/Access your domain"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:145
+#, no-c-format
+msgid ""
+"Now that the server is installed and the domain is created you need to know "
+"how to start and stop it, plus how to access its configuration console."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:150
+#, no-c-format
+msgid "Starting the domain:"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:151
+#, no-c-format
+msgid ""
+"This is the easy part - go to the <literal> $BEA_HOME/user_projects/domains/"
+"seam_examples/bin </literal> directory and run the <literal>./startWeblogic."
+"sh</literal> script."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:157
+#, no-c-format
+msgid "Accessing the configuration console:"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:158
+#, no-c-format
+msgid ""
+"Launch <literal>http://127.0.0.1:7001/console</literal> in your web browser. "
+"It will ask for your username and password that you entered before. We won't "
+"get into this much now, but this is the starting point for a lot of the "
+"various configurations that are needed later."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:166
+#, no-c-format
+msgid "Stopping the domain:"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:167
+#, no-c-format
+msgid "There are a couple of options here:"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:170
+#, no-c-format
+msgid "The recommended way is through the configuration console:"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:174
+#, no-c-format
+msgid ""
+"Select <literal>seam-examples</literal> on the left hand side of the console."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:179
+#, no-c-format
+msgid "Choose the <literal>Control</literal> tab in the middle of the page."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:184
+#, no-c-format
+msgid "Select the check box <literal>AdminServer</literal> in the table."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:189
+#, no-c-format
+msgid ""
+"Choose <literal>Shutdown</literal> just above the table, and select either "
+"<literal>When work completes</literal> or <literal>Force shutdown now</"
+"literal> as appropriate."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:196
+#, no-c-format
+msgid "Then finally confirm that you want to shut this server down."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:202
+#, no-c-format
+msgid ""
+"Hitting <literal>Ctrl-C</literal> in the terminal where you started the "
+"domain."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:204
+#, no-c-format
+msgid ""
+"No negative effects have been seen, but we would not recommend doing this "
+"while in the middle of configuration changes in the console."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:212
+#, no-c-format
+msgid "A note on Weblogic classloading"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:213
+#, no-c-format
+msgid ""
+"When using the <literal>@DOMAIN/autodeploy</literal> directory as described "
+"in this chapter you may see <literal>NoClassDefFound</literal> exceptions. "
+"If you see this try restarting the Weblogic server. If you still see it "
+"remove the auto-deployed EAR/WAR files, restart the server, and redeploy. We "
+"could not find a specific reason for this, but others seem to be having this "
+"issue as well."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:228 Weblogic.xml:300
+#, no-c-format
+msgid "The <literal>jee5/booking</literal> example"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:230
+#, no-c-format
+msgid ""
+"Do you want to run Seam using EJB's on Weblogic? If so there are some "
+"blockers that keep it from working. This section describes what changes are "
+"needed to the <literal>jee5/booking</literal> example to get it as close to "
+"deploying as possible. First we'll talk about the blockers and what they "
+"effect."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:237
+#, no-c-format
+msgid "EJB Blockers with Weblogic"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:238
+#, no-c-format
+msgid ""
+"For several releases of Weblogic there has been an issue with compiling "
+"EJB's that use variable arguments in their methods. This is confirmed in the "
+"Weblogic 9.X and 10.X versions. We had hoped that the issue would be "
+"resolved in the tech preview release, but it is not. Seam uses variable "
+"arguments in its internal EJB's and so until this is fixed Seam with EJB's "
+"will not work."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:245
+#, no-c-format
+msgid ""
+"The gist of the issue is that the Weblogic EJB compiler believes that "
+"methods that use <literal>varargs</literal> are <literal>transient</literal> "
+"and the deployment will fail with exceptions like below: <programlisting><!"
+"[CDATA[java.io.IOException: Compiler failed executable.exec: \n"
+"/home/jbalunas/bea/wlserver_10.3tp/user_projects/domains/seam_examples/"
+"servers/AdminServer\n"
+"/cache/EJBCompilerCache/5yo5dk9ti3yo/org/jboss/seam/async/\n"
+"TimerServiceDispatcher_qzt5w2_LocalTimerServiceDispatcherImpl.java:194: "
+"modifier transient \n"
+"not allowed here\n"
+" public transient javax.ejb.Timer scheduleAsynchronousEvent(java.lang."
+"String arg0,\n"
+" java.lang.Object[] arg1)\n"
+" ^\n"
+"/home/jbalunas/bea/wlserver_10.3tp/user_projects/domains/seam_examples/"
+"servers/AdminServer\n"
+"/cache/EJBCompilerCache/5yo5dk9ti3yo/org/jboss/seam/async/\n"
+"TimerServiceDispatcher_qzt5w2_LocalTimerServiceDispatcherImpl.java:275: "
+"modifier transient\n"
+"not allowed here\n"
+" public transient javax.ejb.Timer scheduleTimedEvent(java.lang.String "
+"arg0, \n"
+" org.jboss.seam.async.TimerSchedule arg1, java.lang.Object[] arg2)]]></"
+"programlisting> BEA says that this is a bug with Java specification. Sun "
+"admits the issue, and provides a work around, and will not fix the core "
+"issue. <itemizedlist> <listitem> <para><ulink url=\"http://forums.bea.com/"
+"thread.jspa?threadID=300002074\"> BEA forum</ulink> — Discusses the "
+"issue and suggests waiting for a new release of 10.X</para> </listitem> "
+"<listitem> <para><ulink url=\"http://forums.bea.com/thread.jspa?"
+"messageID=300006290\"> BEA forum</ulink> — Discusses response from BEA "
+"support and that BEA is saying it is an issue with the spec with links to "
+"the bug.</para> </listitem> <listitem> <para><ulink url=\"http://bugs.sun."
+"com/bugdatabase/view_bug.do?bug_id=6516895\"> Sun bug report </ulink> "
+"— Describes details of the issue, but says that it will not be fixed.</"
+"para> </listitem> </itemizedlist> So what does that mean to us? At least for "
+"now EJB's with variable arguments will not run on Weblogic."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:279
+#, no-c-format
+msgid "Secondary issue with the Tech Preview"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:280
+#, no-c-format
+msgid ""
+"A less severe issue is also present in the tech preview version of Weblogic. "
+"You can not use any JPA provider with EJB's except for the default "
+"<literal>kodo</literal> or <literal>openJPA</literal> implementation. As you "
+"set up this example you will run into this issue before the "
+"<literal>varargs</literal> problem. Unfortunately using <literal>kodo</"
+"literal> or <literal>openJPA</literal> does not help with the blocker "
+"described above but is important to know."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:290
+#, no-c-format
+msgid ""
+"Other users have seen this issue with the tech preview and I would hope/"
+"expect that it will be fixed in future releases ( <ulink url=\"http://forums."
+"bea.com/thread.jspa?threadID=300004403\"> BEA Forum</ulink>). The forum "
+"entry has the exact stack trace, and the response from BEA."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:301
+#, no-c-format
+msgid ""
+"In this section will will quickly go over the steps needed to get the "
+"<literal>jee5/booking</literal> example to the point that blocker shows "
+"itself."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:306
+#, no-c-format
+msgid "Setting up the hsql datasource"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:307
+#, no-c-format
+msgid ""
+"This example uses the in memory hypersonic database, and the correct data "
+"source needs to be set up. The admin console uses a wizard like set of pages "
+"to configure it."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:313
+#, no-c-format
+msgid ""
+"Copy <literal>hsqldb.jar</literal> to weblogic domain's shared library "
+"directory: <literal> cp ../../seam-gen/lib/hsqldb.jar /home/jbalunas/bea/"
+"user_projects/domains/seam_examples/lib</literal>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:320
+#, no-c-format
+msgid ""
+"Start up the server and navigate to the administration console following"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:325
+#, no-c-format
+msgid ""
+"On the left side tree navigate <literal>seam_examples - Services- JDBC - "
+"Data Sources</literal>."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:330
+#, no-c-format
+msgid ""
+"You must lock the domain configuration using the button in the upper left "
+"box."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:334
+#, no-c-format
+msgid ""
+"Then select button <literal>New</literal> button at the top of the data "
+"source table"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:338
+#, no-c-format
+msgid "Fill in the following:"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:341
+#, no-c-format
+msgid "Name: <literal>seam-jee5-ds</literal>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:346
+#, no-c-format
+msgid "JNDI Name: <literal>seam-jee5-ds</literal>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:351
+#, no-c-format
+msgid "Database Type and Driver: <literal>other</literal>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:355 Weblogic.xml:386 Weblogic.xml:414
+#, no-c-format
+msgid "Select <literal>Next</literal> button"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:361
+#, no-c-format
+msgid ""
+"Select <literal>Next</literal> button on the <literal>Transaction Options</"
+"literal> page"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:366 Weblogic.xml:392
+#, no-c-format
+msgid ""
+"Fill in the following on the <literal>Connection Properties</literal> page:"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:370
+#, no-c-format
+msgid "Database Name: <literal>hsqldb</literal>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:374
+#, no-c-format
+msgid "Host Name: <literal>127.0.0.1</literal>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:378
+#, no-c-format
+msgid "Port: <literal>9001</literal>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:382 Weblogic.xml:406
+#, no-c-format
+msgid "Username: <literal>sa</literal> will empty password fields."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:396
+#, no-c-format
+msgid "Driver Class Name: <literal>org.hsqldb.jdbcDriver</literal>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:401
+#, no-c-format
+msgid "URL: <literal>jdbc:hsqldb:.</literal>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:410
+#, no-c-format
+msgid "Leave the rest of the fields empty."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:420
+#, no-c-format
+msgid ""
+"Choose the target domain for the data source in our case the only one "
+"<literal>AdminServer</literal>. Click <literal>Next</literal>."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:425
+#, no-c-format
+msgid ""
+"Finally - apply the changes by selecting the <literal>Apply Changes</"
+"literal> button in the upper left corner."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:432
+#, no-c-format
+msgid "Configuration and Build changes"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:436
+#, no-c-format
+msgid "resources/META-INF/persistence.xml"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:441
+#, no-c-format
+msgid ""
+"Because the tech preview version will only work with <literal>kodo</literal> "
+"or <literal>openJPA</literal> as the JPA provider you must change the "
+"provider to :"
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:446
+#, no-c-format
+msgid ""
+"<![CDATA[<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</"
+"provider>]]>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:449
+#, no-c-format
+msgid ""
+"Next you need to change the <literal>jta-data-source</literal> to what you "
+"entered above :"
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:453
+#, no-c-format
+msgid "<![CDATA[<jta-data-source>seam-jee5-ds</jta-data-source>]]>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:456
+#, no-c-format
+msgid ""
+"The other properties in the file are hibernate specific and are not used by "
+"<literal>openJPA</literal> but can be left in."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:467
+#, no-c-format
+msgid "Deploying the Application"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:468
+#, no-c-format
+msgid ""
+"There are some changes needed to the build script and then we can attempt to "
+"deploy the app."
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:473 Weblogic.xml:828
+#, no-c-format
+msgid "build.xml"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:476
+#, no-c-format
+msgid ""
+"Weblogic does not ship with a default JSF implementation so we need to add "
+"the JSF libraries to the WAR. Add the following to the <literal>build.xml</"
+"literal> and this will add the needed jars. Note that <literal>richfaces-api."
+"jar</literal> is only needed if using the admin console to deploy. For some "
+"reason Weblogic needs it in the <literal>WAR</literal> when it scans the "
+"application."
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:485
+#, no-c-format
+msgid ""
+"<![CDATA[<fileset id=\"war.lib.extras\" dir=\"${seam.dir}\">\n"
+" <include name=\"lib/jsf-api.jar\" />\n"
+" <include name=\"lib/jsf-impl.jar\" />\n"
+" <include name=\"lib/richfaces-api.jar\" />\n"
+"</fileset>]]>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:490
+#, no-c-format
+msgid ""
+"Now we can build the application by running <literal>ant archive</literal> "
+"at the base of the example directory."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:493
+#, no-c-format
+msgid ""
+"Because we chose to create our Weblogic domain in development mode we can "
+"deploy the application by putting the EAR file in the domains autodeploy "
+"directory."
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:497
+#, no-c-format
+msgid ""
+"cp ./dist/jboss-seam-jee5.ear \n"
+" /home/jbalunas/bea/user_projects/domains/seam_examples/autodeploy"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:499
+#, no-c-format
+msgid ""
+"Here is where we see the <literal>varargs</literal> issue. In the console "
+"output you will some Kodo warnings, then exceptions and compile errors like "
+"the one below."
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:504
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<Error> <EJB> <BEA-012036> <Compiling generated EJB classes produced \n"
+" the following Java compiler error message:\n"
+"\n"
+"/home/jbalunas/bea/user_projects/domains/seam_examples/servers/AdminServer/"
+"cache/\n"
+"EJBCompilerCache/5yo5dk9ti3yo/org/jboss/seam/async/\n"
+"TimerServiceDispatcher_qzt5w2_LocalTimerServiceDispatcherImpl.java:32:\n"
+" modifier transient not allowed here\n"
+" public transient void scheduleTransactionSuccessEvent(java.lang.String "
+"arg0,\n"
+" java.lang.Object[] arg1)\n"
+" ^\n"
+"/home/jbalunas/bea/user_projects/domains/seam_examples/servers/AdminServer/"
+"cache/\n"
+"EJBCompilerCache/5yo5dk9ti3yo/org/jboss/seam/async/\n"
+"TimerServiceDispatcher_qzt5w2_LocalTimerServiceDispatcherImpl.java:113:\n"
+" modifier transient not allowed here\n"
+" public transient javax.ejb.Timer scheduleAsynchronousEvent(java.lang."
+"String arg0,\n"
+" java.lang.Object[] arg1)\n"
+"\n"
+"...\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:506
+#, no-c-format
+msgid ""
+"This is as far as we can go with Weblogic using EJB's with seam until the "
+"<literal>varargs</literal> issue is resolved."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:515
+#, no-c-format
+msgid "The <literal>jpa</literal> booking example"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:516
+#, no-c-format
+msgid ""
+"This is the Hotel Booking example implemented in Seam POJO and Hibernate JPA "
+"and does not require EJB3 support to run. The example already has a breakout "
+"of configurations and build scripts for many of the common containers "
+"including Weblogic 10.X"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:521
+#, no-c-format
+msgid ""
+"First we'll build the example for Weblogic 10.x and do the needed steps to "
+"deploy. Then we'll talk about what is different between the Weblogic "
+"versions, and with the JBoss AS version."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:526
+#, no-c-format
+msgid "Building and deploying <literal>jpa</literal> booking example"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:529
+#, no-c-format
+msgid ""
+"Step one setup the datasource, step two build the app, step three deploy."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:533
+#, no-c-format
+msgid "Setting up the datasource"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:535
+#, no-c-format
+msgid ""
+"The Weblogic 10.X version of the example uses the in memory hsql database "
+"instead of the built in PointBase database. If you wish to use the PointBase "
+"database you must setup a PointBase datasource, and adjust the hibernate "
+"setting in <literal>persistence.xml</literal> to use the PointBase dialect. "
+"For reference the <literal>jpa/weblogic92</literal> example uses PointBase."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:543
+#, no-c-format
+msgid ""
+"Configuring the datasource is very similar to the jee5 <xref linkend="
+"\"weblogic-hsql-jee5-ds\"/>. Follow the steps in that section, but use the "
+"following entries where needed."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:548
+#, no-c-format
+msgid "DataSource Name: <literal>seam-jpa-ds</literal>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:552
+#, no-c-format
+msgid "JNDI Name: <literal>seam-jpa-ds</literal>"
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:558
+#, no-c-format
+msgid "Building the example"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:560
+#, no-c-format
+msgid ""
+"Building it only requires running the correct ant command: "
+"<programlisting>ant -f build-weblogic10.xml</programlisting> This will "
+"create container specific distribution and exploded archive directories."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:568 Weblogic.xml:1027
+#, no-c-format
+msgid "Deploying the example"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:570 Weblogic.xml:1029
+#, no-c-format
+msgid ""
+"When we installed Weblogic following <xref linkend=\"weblogic-domain\"/> we "
+"chose to have the domain in development mode. This means to deploy the "
+"application all we need to do is copy it into the autodeploy directory."
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:575
+#, no-c-format
+msgid ""
+"cp ./dist-weblogic10/jboss-seam-jpa.war \n"
+" /home/jbalunas/bea/user_projects/domains/seam_examples/autodeploy"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:577
+#, no-c-format
+msgid ""
+"Check out the application at the following <literal>http://localhost:7001/"
+"jboss-seam-jpa/</literal> ."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:583
+#, no-c-format
+msgid "What's different with Weblogic 10.x"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:586
+#, no-c-format
+msgid ""
+"Between the the Weblogic 10.x and 9.2 examples there are several differences:"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:591
+#, no-c-format
+msgid ""
+"<literal>META-INF/persistence.xml</literal> — The 9.2 version is "
+"configured to use the <literal>PointBase</literal> database and a pre-"
+"installed datasource. The 10.x version uses the <literal>hsql</literal> "
+"database and a custom datasource."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:601
+#, no-c-format
+msgid ""
+"<literal>WEB-INF/weblogic.xml</literal> — This file and its contents "
+"solve an issue with an older version of the <literal>ANTLR</literal> "
+"libraries that Weblogic 10.x uses internally. OC4J have the same issue as "
+"well."
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:610
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<weblogic-web-app\n"
+"xmlns=\"http://www.bea.com/ns/weblogic/90\"\n"
+"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+"xsi:schemaLocation=\"http://www.bea.com/ns/weblogic/90 \n"
+" http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd"
+"\">\n"
+"\n"
+" <container-descriptor>\n"
+" <prefer-web-inf-classes>true</prefer-web-inf-classes>\n"
+" </container-descriptor>\n"
+"</weblogic-web-app>]]>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:611
+#, no-c-format
+msgid ""
+"This file make Weblogic use classes and libraries in the web application "
+"before other libraries in the classpath. Without this change hibernate is "
+"required to use a older, slower query factory by setting the following "
+"property in the <literal>META-INF/persistence.xml</literal> file."
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:620
+#, no-c-format
+msgid ""
+"<![CDATA[<property name=\"hibernate.query.factory_class\" \n"
+" value=\"org.hibernate.hql.classic.ClassicQueryTranslatorFactory\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:623
+#, no-c-format
+msgid ""
+"<literal>WEB-INF/components.xml</literal> — In the Weblogic 10.x "
+"version JPA entity transactions is enabled by adding:"
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:629
+#, no-c-format
+msgid "<![CDATA[<transaction:entity-transaction entity-manager=\"#{em}\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:635
+#, no-c-format
+msgid ""
+"Between the Weblogic 10.x version and the JBoss version there are more "
+"changes. Here is the rundown:"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:640
+#, no-c-format
+msgid ""
+"<literal>META-INF/persistence.xml</literal> — Except for datasource "
+"name the WebLogic version sets:"
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:645
+#, no-c-format
+msgid ""
+"<![CDATA[<property \n"
+" name=\"hibernate.transaction.manager_lookup_class\" \n"
+" value=\"org.hibernate.transaction.WeblogicTransactionManagerLookup\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:648
+#, no-c-format
+msgid ""
+"<literal>WEB-INF/jboss-web.xml</literal> — The JBoss version uses this "
+"instead of <literal>weblogic.xml</literal>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:653
+#, no-c-format
+msgid ""
+"<literal>WEB-INF/lib</literal> — The Weblogic version requires several "
+"library packages because they are not included as they are with JBoss AS. "
+"These are primarily for hibernate, JSF-RI support and their dependencies."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:661
+#, no-c-format
+msgid "To use Hibernate as your JPA provider you need the following jars:"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:667
+#, no-c-format
+msgid "hibernate.jar"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:672
+#, no-c-format
+msgid "hibernate-annotations.jar"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:677
+#, no-c-format
+msgid "hibernate-entitymanager.jar"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:682
+#, no-c-format
+msgid "hibernate-validator.jar"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:687
+#, no-c-format
+msgid "jboss-common-core.jar"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:692
+#, no-c-format
+msgid "commons-logging.jar"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:697
+#, no-c-format
+msgid "commons-collections.jar"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:702
+#, no-c-format
+msgid "jboss-archive-browsing.jar"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:708
+#, no-c-format
+msgid ""
+"Seam requires JSF 1.2 and these are jars needed for that. Weblogic 10.3.TP "
+"does not ship JSF libraries installed by default."
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:716
+#, no-c-format
+msgid "jsf-api.jar"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:721
+#, no-c-format
+msgid "jsf-impl.jar"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:727
+#, no-c-format
+msgid "Various third party jars that Weblogic needs:"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:733
+#, no-c-format
+msgid "antlr.jar"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:738
+#, no-c-format
+msgid "cglib.jar"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:743
+#, no-c-format
+msgid "asm.jar"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:748
+#, no-c-format
+msgid "dom4j.jar"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:753
+#, no-c-format
+msgid "el-ri.jar"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:758
+#, no-c-format
+msgid "javassist.jar"
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:773
+#, no-c-format
+msgid ""
+"Deploying an application created using <literal>seam-gen</literal> on "
+"Weblogic 10.x"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:776
+#, no-c-format
+msgid ""
+"<literal>seam-gen</literal> is a very useful tool for developers to quickly "
+"get an application up and running, and provides a foundation to add your own "
+"functionality. Out of box <literal>seam-gen</literal> will produce "
+"applications configured to run on JBoss AS. These instructions will show the "
+"steps needed to get it to run on Weblogic."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:782
+#, no-c-format
+msgid ""
+"<literal>seam-gen</literal> was build for simplicity so, as you can imagine, "
+"deploying an application generated by <literal>seam-gen</literal> to "
+"Weblogic 10.x is not too hard. Basically it consists of updating or removing "
+"some configuration files, and adding dependent jars that Weblogic 10.x does "
+"not ship with."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:789
+#, no-c-format
+msgid ""
+"We still need to live within the constraints imposed to us by Weblogic, and "
+"because of that this example will generate a <literal>WAR</literal> based "
+"application instead of an <literal>EAR</literal>. See <xref linkend="
+"\"weblogic-ejb-blockers\"/> for details."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:795
+#, no-c-format
+msgid ""
+"This example will cover the basic <literal>seam-gen WAR</literal> "
+"deployment. This will demonstrate Seam POJO components, Hibernate JPA, "
+"Facelets, Drools security, RichFaces, and a configurable DataSource."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:801
+#, no-c-format
+msgid "Running <literal>seam-gen</literal> setup"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:803
+#, no-c-format
+msgid ""
+"The first thing we need to do it tell <literal>seam-gen</literal> about the "
+"project we want to make. This is done by running <literal>./seam setup</"
+"literal> in the base directory of the Seam distribution. Note the paths here "
+"are my own, feel free to change for you environment."
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:810
+#, no-c-format
+msgid ""
+"<![CDATA[./seam setup\n"
+"Buildfile: build.xml\n"
+"\n"
+"init:\n"
+"\n"
+"setup:\n"
+" [echo] Welcome to seam-gen :-)\n"
+" [input] Enter your Java project workspace (the directory that contains "
+"your \n"
+"Seam projects) [C:/Projects] [C:/Projects]\n"
+"/home/jbalunas/workspace\n"
+" [input] Enter your JBoss home directory [C:/Program Files/jboss-4.2.2."
+"GA] \n"
+"[C:/Program Files/jboss-4.2.2.GA]\n"
+"/home/jbalunas/jboss/jboss-4.2.2.GA\n"
+" [input] Enter the project name [myproject] [myproject]\n"
+"weblogic-example\n"
+" [echo] Accepted project name as: weblogic_example\n"
+" [input] Select a RichFaces skin (not applicable if using ICEFaces) "
+"[blueSky]\n"
+" ([blueSky], classic, ruby, wine, deepMarine, emeraldTown, sakura, DEFAULT)\n"
+"\n"
+" [input] Is this project deployed as an EAR (with EJB components) or a "
+"WAR \n"
+"(with no EJB support) [ear] ([ear], war, )\n"
+"war\n"
+" [input] Enter the Java package name for your session beans [org.jboss."
+"seam.\n"
+"tutorial.weblogic.action] [org.jboss.seam.tutorial.weblogic.action]\n"
+"org.jboss.seam.tutorial.weblogic.action\n"
+" [input] Enter the Java package name for your entity beans [org.jboss."
+"seam.\n"
+"tutorial.weblogic.model] [org.jboss.seam.tutorial.weblogic.model]\n"
+"org.jboss.seam.tutorial.weblogic.model\n"
+" [input] Enter the Java package name for your test cases [org.jboss."
+"seam.\n"
+"tutorial.weblogic.action.test] [org.jboss.seam.tutorial.weblogic.action."
+"test]\n"
+"org.jboss.seam.tutorial.weblogic.test\n"
+" [input] What kind of database are you using? [hsql] ([hsql], mysql, "
+"oracle,\n"
+" postgres, mssql, db2, sybase, enterprisedb, h2)\n"
+"\n"
+" [input] Enter the Hibernate dialect for your database [org.hibernate.\n"
+"dialect.HSQLDialect] [org.hibernate.dialect.HSQLDialect]\n"
+"\n"
+" [input] Enter the filesystem path to the JDBC driver jar [lib/hsqldb."
+"jar] \n"
+"[lib/hsqldb.jar]\n"
+"\n"
+" [input] Enter JDBC driver class for your database [org.hsqldb."
+"jdbcDriver] \n"
+" [org.hsqldb.jdbcDriver]\n"
+"\n"
+" [input] Enter the JDBC URL for your database [jdbc:hsqldb:.] [jdbc:"
+"hsqldb:.]\n"
+"\n"
+" [input] Enter database username [sa] [sa]\n"
+"\n"
+" [input] Enter database password [] []\n"
+"\n"
+" [input] Enter the database schema name (it is OK to leave this blank) [] "
+"[]\n"
+"\n"
+" [input] Enter the database catalog name (it is OK to leave this blank) "
+"[] []\n"
+"\n"
+" [input] Are you working with tables that already exist in the database? "
+"[n] \n"
+" (y, [n], )\n"
+"\n"
+" [input] Do you want to drop and recreate the database tables and data "
+"in \n"
+"import.sql each time you deploy? [n] (y, [n], )\n"
+"\n"
+" [input] Enter your ICEfaces home directory (leave blank to omit "
+"ICEfaces) [] []\n"
+"\n"
+"[propertyfile] Creating new property file: \n"
+"/rhdev/projects/jboss-seam/cvs-head/jboss-seam/seam-gen/build.properties\n"
+" [echo] Installing JDBC driver jar to JBoss server\n"
+" [copy] Copying 1 file to /home/jbalunas/jboss/jboss-4.2.2.GA/server/"
+"default/lib\n"
+" [echo] Type 'seam create-project' to create the new project\n"
+"\n"
+"BUILD SUCCESSFUL]]>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:812
+#, no-c-format
+msgid ""
+"Type <literal>./seam new-project</literal> to create your project and "
+"<literal>cd /home/jbalunas/workspace/weblogic_example</literal> to see the "
+"newly created project."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:819
+#, no-c-format
+msgid "What to change for Weblogic 10.X"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:820
+#, no-c-format
+msgid ""
+"First we change and delete some configuration files, then we update the "
+"libraries that are deployed with the application."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:825
+#, no-c-format
+msgid "Configuration file changes"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:833
+#, no-c-format
+msgid "Change the default target to <literal>archive</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:837
+#, no-c-format
+msgid ""
+"<![CDATA[<project name=\"weblogic_example\" default=\"archive\" basedir=\"."
+"\">]]>"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:844
+#, no-c-format
+msgid "resources/META-INF/persistence-dev.xml"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:849
+#, no-c-format
+msgid ""
+"Alter the <literal>jta-data-source</literal> to be <literal>seam-gen-ds</"
+"literal> (and use this as the <literal>jndi-name</literal> when creating the "
+"data source in Weblogic's admin console)"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:858
+#, no-c-format
+msgid ""
+"Change the transaction type to <literal>RESOURCE_LOCAL</literal> so that we "
+"can use JPA transactions."
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:861
+#, no-c-format
+msgid ""
+"<![CDATA[<persistence-unit name=\"weblogic_example\" transaction-type="
+"\"RESOURCE_LOCAL\">]]>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:864
+#, no-c-format
+msgid "Add/modify the properties below for Weblogic support:"
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:866
+#, no-c-format
+msgid ""
+"<![CDATA[<property name=\"hibernate.cache.provider_class\" \n"
+" value=\"org.hibernate.cache.HashtableCacheProvider\"/>\n"
+"<property name=\"hibernate.transaction.manager_lookup_class\" \n"
+" value=\"org.hibernate.transaction.WeblogicTransactionManagerLookup\"/>\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:869
+#, no-c-format
+msgid ""
+"Remove the JBoss AS specific method of exposing the EntityManagerFactory:"
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:872
+#, no-c-format
+msgid ""
+"<![CDATA[<property \n"
+" name=\"jboss.entity.manager.factory.jndi.name\" \n"
+" value=\"java:/weblogic_exampleEntityManagerFactory\">]]>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:875
+#, no-c-format
+msgid ""
+"You'll need to alter <literal>persistence-prod.xml</literal> as well if you "
+"want to deploy to Weblogic using the prod profile."
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:885
+#, no-c-format
+msgid "resource/WEB-INF/weblogic.xml"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:888
+#, no-c-format
+msgid ""
+"You will need to create this file and populate it following <xref linkend="
+"\"weblogic.xml\"/>."
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:895
+#, no-c-format
+msgid "resource/WEB-INF/components.xml"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:898
+#, no-c-format
+msgid ""
+"We want to use JPA transactions so we need to add the following to let Seam "
+"know."
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:900
+#, no-c-format
+msgid ""
+"<![CDATA[<transaction:entity-transaction entity-manager=\"#{entityManager}\"/"
+">]]>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:901
+#, no-c-format
+msgid ""
+"You will also need to add the transaction namespace and schema location to "
+"the top of the document."
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:904
+#, no-c-format
+msgid ""
+"<![CDATA[xmlns:transaction=\"http://jboss.com/products/seam/transaction\"]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:905
+#, no-c-format
+msgid ""
+"<![CDATA[http://jboss.com/products/seam/transaction http://jboss.com/"
+"products/seam/transaction-2.1.xsd]]>"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:910
+#, no-c-format
+msgid "resources/WEB-INF/jboss-app.xml"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:913
+#, no-c-format
+msgid ""
+"You can delete this file as we aren't deploying to JBoss AS ( <literal>jboss-"
+"app.xml</literal> is used to enable classloading isolation in JBoss AS)"
+msgstr ""
+
+#. Tag: literal
+#: Weblogic.xml:920
+#, no-c-format
+msgid "resources/*-ds.xml"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:923
+#, no-c-format
+msgid ""
+"You can delete these files as we aren't deploying to JBoss AS. These files "
+"define datasources in JBoss AS, in Weblogic we will use the administration "
+"console."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:932
+#, no-c-format
+msgid "Library changes"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:933
+#, no-c-format
+msgid ""
+"The <literal>seam-gen</literal> application has very similar library "
+"dependencies as the <literal>jpa</literal> example above. See <xref linkend="
+"\"weblogic-jpa-diff\"/>. Below is the changes that are needed to get them in "
+"this application."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:942
+#, no-c-format
+msgid ""
+"Missing jars — There are two libraries that <literal>seam-gen</"
+"literal> does not provide by default. These need to be copied into your "
+"projects <literal>lib</literal> directory manually."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:949
+#, no-c-format
+msgid ""
+"jboss-archive-browsing.jar — can be found in the <literal>@SEAM_DIST/"
+"examples/jpa/lib</literal> directory."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:955
+#, no-c-format
+msgid ""
+"el-ri.jar — is also found in the <literal>@SEAM_DIST/examples/jpa/lib</"
+"literal> directory."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:962
+#, no-c-format
+msgid ""
+"build.xml — Now we need to adjust the <literal>build.xml</literal>. "
+"Find the target <literal>war</literal> and add the following to the end of "
+"the target."
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:968
+#, no-c-format
+msgid ""
+"<![CDATA[<copy todir=\"${war.dir}/WEB-INF/lib\">\n"
+" <fileset dir=\"${lib.dir}\">\n"
+" <!--JSF implementation -->\n"
+" <include name=\"jsf-api.jar\" />\n"
+" <include name=\"jsf-impl.jar\" />\n"
+" \n"
+" <!-- Misc 3rd party -->\n"
+" <include name=\"commons-logging.jar\" />\n"
+" <include name=\"dom4j.jar\" />\n"
+" <include name=\"javassist.jar\" />\n"
+" <include name=\"cglib.jar\" />\n"
+" <include name=\"antlr.jar\" />\n"
+" \n"
+" <!-- Hibernate --> \n"
+" <include name=\"hibernate.jar\" />\n"
+" <include name=\"hibernate-commons-annotations.jar\" />\n"
+" <include name=\"hibernate-annotations.jar\" />\n"
+" <include name=\"hibernate-entitymanager.jar\" />\n"
+" <include name=\"hibernate-validator.jar\" />\n"
+" <include name=\"jboss-archive-browsing.jar\" />\n"
+" \n"
+" <!-- Needed for Drools -->\n"
+" <include name=\"core.jar\"/>\n"
+" </fileset>\n"
+" </copy>]]>"
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:975
+#, no-c-format
+msgid "<literal>seam-gen</literal> development profile issue"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:977
+#, no-c-format
+msgid ""
+"There is currently an issue with the behavior of the <literal>seam-gen WAR</"
+"literal> application when built using the development profile (the default) "
+"and deployed to Weblogic. The symptom is that the login page of the "
+"application will always show a <literal>login failed</literal> message."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:983
+#, no-c-format
+msgid ""
+"When the application is built using the development profile the "
+"<literal>action</literal> class files are placed in the <literal>WEB-INF/"
+"dev</literal> directory. Normally these class files are hot deployable and "
+"managed by Seam. This does not happen on Weblogic (see <ulink url=\"http://"
+"jira.jboss.com/jira/browse/JBSEAM-2455\"> jira JBSEAM-2455</ulink> for "
+"details and status)."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:991
+#, no-c-format
+msgid ""
+"To workaround this you need to modify the <literal>build-dev.properties</"
+"literal> file. Simply remove the property <literal>action.dir=WEB-INF/dev</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:1000
+#, no-c-format
+msgid "Building and Deploying your application"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:1001
+#, no-c-format
+msgid ""
+"Finally all that's left is deploying the application. This involves setting "
+"up a data source, building the app, and deploying it."
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:1006
+#, no-c-format
+msgid "Setting up the data source"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:1007
+#, no-c-format
+msgid ""
+"Configuring the datasource is very similar to the jee5 <xref linkend="
+"\"weblogic-hsql-jee5-ds\"/>. Except for what is listed here follow that "
+"instruction from the link."
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:1012
+#, no-c-format
+msgid "DataSource Name: <literal>seam-gen-ds</literal>"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:1016
+#, no-c-format
+msgid "JNDI Name: <literal>seam-gen-ds</literal>"
+msgstr ""
+
+#. Tag: title
+#: Weblogic.xml:1022
+#, no-c-format
+msgid "Building the application"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:1023
+#, no-c-format
+msgid ""
+"This is as easy as typing <literal>ant</literal> in the projects base "
+"directory."
+msgstr ""
+
+#. Tag: programlisting
+#: Weblogic.xml:1036
+#, no-c-format
+msgid ""
+"cp ./dist/weblogic_example.war /home/jbalunas/bea/user_projects/domains/"
+"seam_examples/autodeploy"
+msgstr ""
+
+#. Tag: para
+#: Weblogic.xml:1037
+#, no-c-format
+msgid ""
+"Check out the application at the following <literal>http://localhost:7001/"
+"weblogic_example/</literal> ."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Webservices.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Webservices.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Webservices.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,324 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Webservices.xml:2
+#, no-c-format
+msgid "Web Services"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Webservices.xml:11
+#, no-c-format
+msgid "Configuration and Packaging"
+msgstr ""
+
+#. 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."
+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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Webservices.xml:25
+#, no-c-format
+msgid ""
+"<![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>]]>"
+msgstr ""
+
+#. Tag: title
+#: Webservices.xml:30
+#, no-c-format
+msgid "Conversational Web Services"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Webservices.xml:37
+#, no-c-format
+msgid ""
+"<![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"
+" ]]>"
+msgstr ""
+
+#. 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."
+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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Webservices.xml:53
+#, no-c-format
+msgid ""
+"<![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"
+" ]]>"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#: Webservices.xml:60
+#, no-c-format
+msgid "A Recommended Strategy"
+msgstr ""
+
+#. 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."
+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."
+msgstr ""
+
+#. Tag: title
+#: Webservices.xml:87
+#, no-c-format
+msgid "An example web service"
+msgstr ""
+
+#. 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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Webservices.xml:96
+#, no-c-format
+msgid ""
+"<![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"
+"}]]>"
+msgstr ""
+
+#. 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."
+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>."
+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."
+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:"
+msgstr ""
+
+#. Tag: programlisting
+#: Webservices.xml:126
+#, no-c-format
+msgid ""
+"<![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"
+" }]]>"
+msgstr ""
+
+#. Tag: para
+#: Webservices.xml:128
+#, no-c-format
+msgid "And here's the code from <literal>AuctionAction</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Webservices.xml:132
+#, no-c-format
+msgid ""
+"<![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"
+" }]]>"
+msgstr ""
+
+#. 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."
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Websphere.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Websphere.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Websphere.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,2085 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Websphere.xml:2
+#, no-c-format
+msgid "Seam on IBM's Websphere"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:4
+#, no-c-format
+msgid ""
+"Websphere 6.1.x is IBM's application server offering. The latest release is "
+"6.1.0.13 which does not have <literal>EJB3</literal> or <literal>JEE5</"
+"literal> support. There is a recently released (Nov 07) <literal>EJB3</"
+"literal> feature pack which provides some support for <literal>EJB3</"
+"literal> and <literal>JPA</literal>. Currently there is no true "
+"<literal>JEE5</literal> offering from IBM. This causes some issues with Seam "
+"integration with applications that use EJB3."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:12
+#, no-c-format
+msgid ""
+"First we will go over some basic information about the Websphere environment "
+"that we used for these examples. After a good deal of research and work we "
+"were able to get EJB3 applications to function correctly. We will go over "
+"the details of those steps with the jee5 example. We will also deploy the "
+"the JPA example application."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:19
+#, no-c-format
+msgid "Websphere environment and deployment information"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:21
+#, no-c-format
+msgid ""
+"Websphere is a commercial product and so we will not discuss the details of "
+"its installation other than to say follow the directions provided by your "
+"particular installation type and license. This section will detail the exact "
+"server versions used, installation tips, and some custom properties that are "
+"needed for all of the examples."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:29
+#, no-c-format
+msgid "Installation versions and tips"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:30
+#, no-c-format
+msgid ""
+"All of the examples and information in this chapter are based on the the "
+"latest version of Websphere at the time of this writing."
+msgstr ""
+
+#. Tag: ulink
+#: Websphere.xml:35
+#, no-c-format
+msgid "Websphere Application Server 6.1.0.13"
+msgstr ""
+
+#. Tag: ulink
+#: Websphere.xml:40
+#, no-c-format
+msgid ""
+"Feature Pack for EJB 3.0 for Websphere Application Server V6.1 (3.0.6.1.0.13)"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:46
+#, no-c-format
+msgid ""
+"The EJB3 feature pack that we installed came with the 6.1.0.13 patch version "
+"of Websphere. Installing the feature pack does not ensure that your server "
+"will have the proper environment for EJB3 applications. Be sure that as part "
+"of the installation of the feature pack you follow the instructions to "
+"create a new server profile with the EJB3 feature pack enabled, or augment "
+"one of your existing ones. This can also be done after the installation by "
+"running the profile managment tool."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:55
+#, no-c-format
+msgid "A note about restarting the server"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:56
+#, no-c-format
+msgid ""
+"There are times that restarting the server will be required after deploying "
+"or changes the examples in this chapter. Its does not seem like every change "
+"requires a restart. If you get errors or exceptions after modifing a "
+"property or deploying an application try to restart the server."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:64
+#, no-c-format
+msgid "Required custom properties"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:65
+#, no-c-format
+msgid ""
+"There are a couple of Websphere custom properties that are required for Seam "
+"integration. These properties are not needed specifically for Seam, but work "
+"around some issues with Websphere. These are set following the instructions "
+"here : <ulink url=\"http://www-1.ibm.com/support/docview.wss?rss=180&"
+"uid=swg21284395\"> Setting web container custom properties</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:74
+#, no-c-format
+msgid ""
+"<literal>prependSlashToResource = \"true\"</literal> — This solves a "
+"fairly common issue with Websphere where applications are not using a "
+"leading \"/\" when attempting to access resources. If this is not set then a "
+"<literal>java.net.MalformedURLException</literal> will be thrown. With this "
+"property set you will still see warnings, but the resources will be "
+"retrieved as expected."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:82 Websphere.xml:100
+#, no-c-format
+msgid "Detailed can be found at:"
+msgstr ""
+
+#. Tag: ulink
+#: Websphere.xml:84
+#, no-c-format
+msgid "SRVE0238E: Resource paths must have a leading slash"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:89
+#, no-c-format
+msgid ""
+"<literal>com.ibm.ws.webcontainer.invokefilterscompatibility = \"true\"</"
+"literal> — This solves an issue with Websphere where it throws a "
+"<literal>FileNotFoundException</literal> when a web application attempts to "
+"access a file resource that does not actually exist on disk. This is a "
+"common practice in modern web applications where filters or servlets are "
+"used to process resource requests like these. This issue manifests itself as "
+"failures to retrieve JavaScript, CSS, images, etc... when requesting a web "
+"page."
+msgstr ""
+
+#. Tag: ulink
+#: Websphere.xml:102
+#, no-c-format
+msgid ""
+"PK33090; 6.1: A filter that serves a file does not pop-up an alert message"
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:111
+#, no-c-format
+msgid "The <literal>jee5/booking</literal> example"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:113
+#, no-c-format
+msgid ""
+"The <literal>jee5/booking</literal> example is based on the Hotel Booking "
+"example (which runs on JBoss AS). Out of the box it is designed to run on "
+"Glassfish, but with the steps below it can be deployed to Websphere. It is "
+"located in the <literal>$SEAM_DIST/examples/jee5/booking</literal> directory."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:120
+#, no-c-format
+msgid ""
+"As stated before the <literal>EJB3</literal> feature pack does not provide a "
+"full <literal>jee5</literal> implementation. This means that there are some "
+"tricks to getting an application deployed and functioning."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:126 Websphere.xml:903
+#, no-c-format
+msgid "<title>Configuration file changes</title>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:128
+#, no-c-format
+msgid ""
+"Below are the configuration file changes that are need to the base example."
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:134 Websphere.xml:977
+#, no-c-format
+msgid "resources/WEB-INF/components.xml"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:137
+#, no-c-format
+msgid ""
+"We need to change the way that we look up EJBs for Websphere. We need to "
+"remove the <literal>/local</literal> from the end of the <literal>jndi-"
+"pattern</literal> attribute. It should look like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:144
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<core:init jndi-pattern=\"java:comp/env/jboss-seam-jee5/#{ejbName}\" debug="
+"\"true\"/>\n"
+" ]]>"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:148 Websphere.xml:1009
+#, no-c-format
+msgid "resources/WEB-INF/web.xml"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:151
+#, no-c-format
+msgid ""
+"This is the first place that we notice an unexpected change because this is "
+"not full <literal>jee5</literal> implementation."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:154
+#, no-c-format
+msgid ""
+"Websphere does not support <literal>Servlet 2.5</literal>, it requires "
+"<literal>Servlet 2.4</literal>. For this change we need to adjust the top of "
+"the <literal>web.xml</literal> file to look like the following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:161
+#, no-c-format
+msgid ""
+"<![CDATA[<xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<web-app version=\"2.4\" \n"
+" xmlns=\"http://java.sun.com/xml/ns/j2ee\"\n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee \n"
+" http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+"\">\n"
+" ]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:162
+#, no-c-format
+msgid ""
+"Next, we have to make some changes to the EJB references in the <literal>web."
+"xml</literal>. These changes are what will allow Websphere to bind the EJB2 "
+"references in the web module to the the actual EJB3 beans in the EAR module. "
+"Replace all of the <literal>ejb-local-refs</literal> when the values below."
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:171
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <!-- JEE5 EJB3 names -->\n"
+" <ejb-local-ref> \n"
+" <ejb-ref-name>jboss-seam-jee5/AuthenticatorAction</ejb-ref-"
+"name> \n"
+" <ejb-ref-type>Session</ejb-ref-type> \n"
+" <local-home></local-home>\n"
+" <local>org.jboss.seam.example.booking.Authenticator</local> \n"
+" </ejb-local-ref> \n"
+" \n"
+" <ejb-local-ref> \n"
+" <ejb-ref-name>jboss-seam-jee5/BookingListAction</ejb-ref-name> \n"
+" <ejb-ref-type>Session</ejb-ref-type> \n"
+" <local-home></local-home>\n"
+" <local>org.jboss.seam.example.booking.BookingList</local> \n"
+" </ejb-local-ref> \n"
+" \n"
+" <ejb-local-ref> \n"
+" <ejb-ref-name>jboss-seam-jee5/RegisterAction</ejb-ref-name> \n"
+" <ejb-ref-type>Session</ejb-ref-type> \n"
+" <local-home></local-home>\n"
+" <local>org.jboss.seam.example.booking.Register</local> \n"
+" </ejb-local-ref> \n"
+" \n"
+" <ejb-local-ref> \n"
+" <ejb-ref-name>jboss-seam-jee5/ChangePasswordAction</ejb-ref-"
+"name> \n"
+" <ejb-ref-type>Session</ejb-ref-type> \n"
+" <local-home></local-home> \n"
+" <local>org.jboss.seam.example.booking.ChangePassword</local> \n"
+" </ejb-local-ref> \n"
+" \n"
+" <ejb-local-ref> \n"
+" <ejb-ref-name>jboss-seam-jee5/HotelBookingAction</ejb-ref-name> \n"
+" <ejb-ref-type>Session</ejb-ref-type> \n"
+" <local-home></local-home>\n"
+" <local>org.jboss.seam.example.booking.HotelBooking</local> \n"
+" </ejb-local-ref> \n"
+" \n"
+" <ejb-local-ref> \n"
+" <ejb-ref-name>jboss-seam-jee5/HotelSearchingAction</ejb-ref-"
+"name> \n"
+" <ejb-ref-type>Session</ejb-ref-type> \n"
+" <local-home></local-home> \n"
+" <local>org.jboss.seam.example.booking.HotelSAll of the examples and "
+"informaearching</local> \n"
+" </ejb-local-ref> \n"
+" \n"
+" <ejb-local-ref>\n"
+" <ejb-ref-name>jboss-seam-jee5/EjbSynchronizations</ejb-ref-name> \n"
+" <ejb-ref-type>Session</ejb-ref-type>\n"
+" <local-home></local-home>\n"
+" <local>org.jboss.seam.transaction.LocalEjbSynchronizations</local>\n"
+" </ejb-local-ref>]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:172
+#, no-c-format
+msgid ""
+"The important change is that there is an empty <literal>local-home</literal> "
+"element for each EJB. This tells Websphere to make the correct bindings "
+"between the web module and the EJB3 beans. The <literal>ejb-link</literal> "
+"element is simply not used."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:178
+#, no-c-format
+msgid ""
+"Note also that <literal>EjbSynchronizations</literal> is a built-in Seam EJB "
+"and not part of the Hotel Booking example. This means that if your "
+"application's <literal>components.xml</literal> specifies "
+"<literal>transaction:ejb-transaction</literal> , then you must include:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:183
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <ejb-local-ref>\n"
+" <ejb-ref-name>myapp/EjbSynchronizations</ejb-ref-name>\n"
+" <ejb-ref-type>Session</ejb-ref-type>\n"
+" <local-home></local-home>\n"
+" <local>org.jboss.seam.transaction.LocalEjbSynchronizations</local>\n"
+" </ejb-local-ref>]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:184
+#, no-c-format
+msgid ""
+"in your web.xml. If you don't include it, you'll get the following error:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:185
+#, no-c-format
+msgid "Name comp/env/myapp/EjbSynchronizations not found in context java:"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:190
+#, no-c-format
+msgid "resources/META-INF/persistence.xml"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:193
+#, no-c-format
+msgid ""
+"For this example we will be using the default datasource that comes with "
+"Websphere. To do this change the <literal>jta-data-source</literal> element:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:196
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<jta-data-source>DefaultDatasource</jta-data-source>\n"
+" ]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:197
+#, no-c-format
+msgid ""
+"Then we need to adjust some of the hibernate properties. First comment out "
+"the Glassfish properties. Next you need to add/change the properties:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:202
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<!--<property name=\"hibernate.transaction.flush_before_completion\" value="
+"\"true\"/>-->\n"
+"<property name=\"hibernate.cache.provider_class\" \n"
+" value=\"org.hibernate.cache.HashtableCacheProvider\"/>\n"
+"<property name=\"hibernate.dialect\" value=\"GlassfishDerbyDialect\"/>\n"
+"<property name=\"hibernate.transaction.manager_lookup_class\" \n"
+" value=\"org.hibernate.transaction."
+"WebSphereExtendedJTATransactionLookup\"/>\n"
+" ]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:206
+#, no-c-format
+msgid ""
+"<literal>hibernate.transaction.manager_lookup_class</literal> — "
+"Standard Hibernate transaction manager property for Websphere 6.X"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:212
+#, no-c-format
+msgid ""
+"<literal>hibernate.transaction.flush_before_completion</literal> — "
+"This is commented out because we want the container to manage the "
+"transactions. Also if this is set to <literal>true</literal> an exception "
+"will be thrown by Websphere when the EJBContext is looked up."
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:221
+#, no-c-format
+msgid ""
+"<![CDATA[com.ibm.wsspi.injectionengine.InjectionException: \n"
+" EJBContext may only be looked up by or injected into an "
+"EJB]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:224
+#, no-c-format
+msgid ""
+"<literal>hibernate.dialect</literal> — From WAS 6.1.0.9 on the "
+"embedded DB was switched to the same Derby DB in Glassfish."
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:234 Websphere.xml:943
+#, no-c-format
+msgid "resources/GlassfishDerbyDialect.class"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:237
+#, no-c-format
+msgid ""
+"You will need to get the <literal>GlassfishDerbyDialect.class</literal> and "
+"copy it into the <literal>/resources</literal> directory. The class exists "
+"in the JPA example and can be copied using the command below assuming you "
+"are in <literal>jee5/booking</literal> directory:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:245
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"cp ../../jpa/resources-websphere61/WEB-INF/classes/GlassfishDerbyDialect."
+"class\n"
+" ./resources]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:246
+#, no-c-format
+msgid ""
+"This class will be put into the <literal>jboss-seam-jee5.jar</literal> file "
+"using changes to the build.xml discussed later."
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:252
+#, no-c-format
+msgid "resources/import.sql"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:255
+#, no-c-format
+msgid ""
+"This file must also be copied from the JPA example because either the Derby "
+"DB or the dialect does not support changes to the <literal>ID</literal> "
+"column. The files are identical except for the column difference. Use the "
+"following command to make the copy"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:262
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"cp ../../jpa/resources-websphere61/import.sql ./resources]]>"
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:271
+#, no-c-format
+msgid "Building the <literal>jee5/booking</literal> example"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:274
+#, no-c-format
+msgid ""
+"In order to get the changes we have made into our application we need to "
+"make some changes to the <literal>build.xml</literal>. There are also some "
+"additional jars that are required by our application in order to work with "
+"Websphere. This section will cover what changes are needed to the "
+"<literal>build.xml</literal>."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:281
+#, no-c-format
+msgid "New libraries dependencies"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:285
+#, no-c-format
+msgid ""
+"JSF libraries — Websphere 6.1 comes with its own version of JSF 1.1 "
+"(Seam requires JSF 1.2). So we must add these jars to our application:"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:290 Websphere.xml:817
+#, no-c-format
+msgid "jsf-api.jar"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:294 Websphere.xml:822
+#, no-c-format
+msgid "jsf-impl.jar"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:300
+#, no-c-format
+msgid ""
+"Since Websphere is not a fully compliant <literal>JEE5</literal> "
+"implementation we need to add these EL libraries:"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:305 Websphere.xml:830
+#, no-c-format
+msgid "el-api.jar"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:309 Websphere.xml:826
+#, no-c-format
+msgid "el-ri.jar"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:315
+#, no-c-format
+msgid ""
+"<literal>jboss-seam.jar</literal> — for some reason when deploying the "
+"application through the Websphere administration console it can not find the "
+"<literal>jboss-seam.jar</literal> at the base of the EAR archive. This means "
+"that we need to add it to the <literal>/lib</literal> of the EAR."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:323
+#, no-c-format
+msgid ""
+"Finally we remove the <literal>log4j.jar</literal> so that all of the log "
+"output from our application will be added to the Websphere log. Additional "
+"steps are required to fully configure log4j and those are outside of the "
+"scope of this document."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:334
+#, no-c-format
+msgid "Updating the <literal>build.xml</literal> file"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:336
+#, no-c-format
+msgid ""
+"Add the following entry to the bottom of the <literal>build.xml</literal> "
+"file. This overrides the default fileset that is used to populate the "
+"<literal>jboss-seam-jee5.jar</literal>. The primary change is the addition "
+"of the <literal>GlassfishDerbyDialect.class</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:345
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <fileset id=\"jar.resources\" dir=\"${resources.dir}\">\n"
+" <include name=\"import.sql\" />\n"
+" <include name=\"seam.properties\" />\n"
+" <include name=\"GlassfishDerbyDialect.class\" />\n"
+" <include name=\"META-INF/persistence.xml\" />\n"
+" <include name=\"META-INF/ejb-jar.xml\" />\n"
+" </fileset>]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:348
+#, no-c-format
+msgid ""
+"Next we need to add the library dependencies discussed above. For this add "
+"the following to bottom of the <literal>ear.lib.extras</literal> fileset "
+"entry:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:354
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <!--<include name=\"lib/log4j.jar\" />-->\n"
+" <include name=\"lib/el-api.jar\" />\n"
+" <include name=\"examples/jpa/lib/el-ri.jar\" />\n"
+" <include name=\"lib/jsf-api.jar\" />\n"
+" <include name=\"lib/jsf-impl.jar\" />\n"
+" <include name=\"lib/jboss-seam.jar\" />\n"
+"</fileset>]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:357
+#, no-c-format
+msgid ""
+"Now all that is left is to execute the <literal>ant archive</literal> task "
+"and the built application will be in the <literal>jee5/booking/dist</"
+"literal> directory."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:366
+#, no-c-format
+msgid "Deploying the application to Websphere"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:368
+#, no-c-format
+msgid ""
+"So now we have everything we need in place. All that is left is to deploy it "
+"- just a few steps more."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:370
+#, no-c-format
+msgid ""
+"For this we will use Websphere's administration console. As before there are "
+"some tricks and tips that must be followed."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:373
+#, no-c-format
+msgid ""
+"The steps below are for the Websphere version stated above, yours may be "
+"slightly different."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:377
+#, no-c-format
+msgid "Log in to the administration console"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:380
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"https://localhost:9043/ibm/console]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:384
+#, no-c-format
+msgid ""
+"Access the <literal>Enterprise Application</literal> menu option under the "
+"<literal>Applications</literal> top menu."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:389
+#, no-c-format
+msgid ""
+"At the top of the <literal>Enterprise Application</literal> table select "
+"<literal>Install</literal>. Below are installation wizard pages and what "
+"needs to done on each:"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:395 Websphere.xml:655
+#, no-c-format
+msgid "Preparing for the application installation"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:399
+#, no-c-format
+msgid ""
+"Browse to the <literal>examples/jee5/booking/dist/jboss-seam-jee5.ear</"
+"literal> file using the file upload widget."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:405 Websphere.xml:423 Websphere.xml:456 Websphere.xml:670
+#, no-c-format
+msgid "Select the <literal>Next</literal> button."
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:412
+#, no-c-format
+msgid "Select installation options"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:416
+#, no-c-format
+msgid ""
+"Select the <literal>Deploy enterprise beans</literal> check box. This is "
+"needed unless you used a Websphere tool to package the application."
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:430
+#, no-c-format
+msgid "Map modules to servers"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:434
+#, no-c-format
+msgid ""
+"No changes needed here as we only have one server. Select the <literal>Next</"
+"literal> button."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:442
+#, no-c-format
+msgid ""
+"<literal>Map EJB references to beans</literal> This page will list all of "
+"the beans that we entered in the web.xml."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:447
+#, no-c-format
+msgid ""
+"Make sure that <literal>Allow EJB reference targets to resolve "
+"automatically</literal> check box is selected. This will tell Websphere to "
+"bind our EJB3 beans to the EJB references in the web module."
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:463
+#, no-c-format
+msgid "Map virtual hosts for Web modules"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:467
+#, no-c-format
+msgid "No changes needed here. Select the <literal>Next</literal> button."
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:474
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:477
+#, no-c-format
+msgid "No changes needed here. Select the <literal>Finish</literal> button."
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:484
+#, no-c-format
+msgid "Installation"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:487
+#, no-c-format
+msgid "Now you will see it installing and deploying your application."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:492
+#, no-c-format
+msgid ""
+"When if finishes select the <literal>Save</literal> link and you will be "
+"returned to the <literal>Enterprise Applications</literal> table."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:504
+#, no-c-format
+msgid ""
+"Now that we have our application installed we need to make some adjustments "
+"to it before we can start it:"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:508
+#, no-c-format
+msgid ""
+"Starting from the <literal>Enterprise Applications</literal> table select "
+"the <literal>Seam Booking</literal> link."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:514
+#, no-c-format
+msgid "Select the <literal>Manage Modules</literal> link."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:518
+#, no-c-format
+msgid "Select the <literal>jboss-seam-jee5.war</literal> link."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:523
+#, no-c-format
+msgid ""
+"Change the <literal>Class loader order</literal> combo box to "
+"<literal>Classes loaded with application class loader first</literal>."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:529 Websphere.xml:554
+#, no-c-format
+msgid ""
+"Select <literal>Apply</literal> and then <literal>Save</literal> options."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:533
+#, no-c-format
+msgid "Return the <literal>Seam Booking</literal> page."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:537
+#, no-c-format
+msgid ""
+"On this page select the <literal>Class loading and update detection</"
+"literal> link."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:542
+#, no-c-format
+msgid ""
+"Select the radio button for <literal>Classes loaded with application class "
+"loader first</literal>."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:547
+#, no-c-format
+msgid ""
+"Even though we are not enabling class reload you must also enter a valid "
+"number in the <literal>Polling interval for updated files</literal> text "
+"area (zero works fine)."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:558
+#, no-c-format
+msgid ""
+"You should verify that the change you just made has been remembered. We have "
+"had problems with the last class loader change not taking effect - even "
+"after a restart. If the change did not take you will need to do it manually, "
+"following these directions:"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:566
+#, no-c-format
+msgid "Open the following file in a text editor of your choice:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:570
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"$WebSphereInstall/$yourServerName/profiles/$yourProfileName/config/cells/\n"
+" $yourCellName/applications/Seam Booking.ear/deployments/\n"
+" Seam Booking/deployment.xml]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:574
+#, no-c-format
+msgid ""
+"Modify the following line so that <literal>PARENT_FIRST</literal> is now "
+"<literal>PARENT_LAST</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:580
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<classloader xmi:id=\"Classloader_#######\" mode=\"PARENT_FIRST\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:584
+#, no-c-format
+msgid ""
+"Save the file and now when go to the <literal>Class loading and update "
+"detection</literal> page you should see <literal>Classes loaded with "
+"application class loader first</literal> selected."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:596
+#, no-c-format
+msgid ""
+"To start the application return to the <literal>Enterprise Applications</"
+"literal> table and select our application in the list. Then choose the "
+"<literal>Start</literal> button at the top of the table."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:603
+#, no-c-format
+msgid ""
+"You can now access the application at <literal>http://localhost:9080/seam-"
+"jee5/</literal> ."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:609
+#, no-c-format
+msgid "A note about Websphere Stateful bean timeouts"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:610
+#, no-c-format
+msgid ""
+"The default timeout period for a Websphere 6.1 Stateful EJB is 10 minutes. "
+"This means that you may see some EJB timeout exceptions after some idle "
+"time. It is possible to adjust the timeout of the Stateful EJBs on an "
+"individual basis, but that is beyond the scope of this document. See the "
+"Websphere documentation for details."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:624
+#, no-c-format
+msgid "The <literal>jpa</literal> booking example"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:625
+#, no-c-format
+msgid ""
+"Thankfully getting the <literal>jpa</literal> example to work is much easier "
+"than the <literal>jee5</literal> example. This is the Hotel Booking example "
+"implemented in Seam POJOs and using Hibernate JPA with JPA transactions. It "
+"does not require EJB3 support to run."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:631
+#, no-c-format
+msgid ""
+"The example already has a breakout of configurations and build scripts for "
+"many of the common containers including Websphere."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:634
+#, no-c-format
+msgid ""
+"First thing we are going to do is build and deploy that example. Then we'll "
+"go over some key changes that we needed."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:638
+#, no-c-format
+msgid "Building the <literal>jpa</literal> example"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:639
+#, no-c-format
+msgid ""
+"Building it only requires running the correct ant command: "
+"<programlisting>ant websphere61</programlisting> This will create container "
+"specific distribution and exploded archive directories with the "
+"<literal>websphere61</literal> label."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:645
+#, no-c-format
+msgid "Deploying the <literal>jpa</literal> example"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:646
+#, no-c-format
+msgid ""
+"This is similar to the <literal>jee5</literal> example at <xref linkend="
+"\"jee5-websphere-deploy\"/>, but without so many steps."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:651
+#, no-c-format
+msgid ""
+"From the <literal>Enterprise Applications</literal> table select the "
+"<literal>Install</literal> button."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:659
+#, no-c-format
+msgid ""
+"Browse to the <literal>examples/jpa/dist-websphere61/jboss-seam-jpa.war</"
+"literal> file using the file upload widget."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:665
+#, no-c-format
+msgid ""
+"In the <literal>Context root</literal> text box enter <literal>jboss-seam-"
+"jpa</literal>."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:676
+#, no-c-format
+msgid ""
+"Select the <literal>Next</literal> button for the next three pages, no "
+"changes are needed."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:681
+#, no-c-format
+msgid "<literal>Summary</literal> page"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:684
+#, no-c-format
+msgid ""
+"Review the settings if you wish and select the <literal>Finish</literal> "
+"button to install the application. When installation finished select the "
+"<literal> Save</literal> link and you will be returned to the "
+"<literal>Enterprise Applications</literal> table."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:697
+#, no-c-format
+msgid ""
+"As with the <literal>jee5</literal> example there are some class loader "
+"changes needed before we start the application. Follow the instructions at "
+"<xref linkend=\"websphere-app-adj-after-install\"/> but exchange "
+"<literal>jboss-seam-jpa</literal> for <literal>Seam Booking</literal>."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:704
+#, no-c-format
+msgid ""
+"Finally start the application by selecting it in the <literal>Enterprise "
+"Applications</literal> table and clicking the <literal>Start</literal> "
+"button."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:710
+#, no-c-format
+msgid ""
+"You can now access the application at the <literal>http://localhost:9080/"
+"jboss-seam-jpa/index.html</literal>."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:718
+#, no-c-format
+msgid "Whats different for Websphere 6.1"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:719
+#, no-c-format
+msgid ""
+"The differences between the JPA examples that deploys to JBoss 4.2 and "
+"Websphere 6.1 are mostly expected; library and configuration file changes."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:724
+#, no-c-format
+msgid "<para>Configuration file changes</para>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:727
+#, no-c-format
+msgid ""
+"<literal>WEB-INF/web.xml</literal> — the only significant change is "
+"that Websphere 6.1 only support <literal>Servlet 2.4</literal> so the top of "
+"this file was changed."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:734
+#, no-c-format
+msgid ""
+"<literal>META-INF/persistence.xml</literal> — the main changes here "
+"are for the datasource JNDI path, switching to the Websphere 6.1 transaction "
+"manager look up class, and changing the hibernate dialect to be "
+"<literal>GlassfishDerbyDialect</literal> ."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:744
+#, no-c-format
+msgid ""
+"<literal>WEB-INF/classes/GlassfishDerbyDialect.class </literal> — this "
+"class is needed for the hibernate dialect change to "
+"<literal>GlassfishDerbyDialect</literal>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:752
+#, no-c-format
+msgid ""
+"<literal>import.sql</literal> — either for the dialect or Derby DB the "
+"<literal>ID</literal> column can not be populated by this file and was "
+"removed."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:761
+#, no-c-format
+msgid "Changes for dependent libraries"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:762
+#, no-c-format
+msgid ""
+"<literal>WEB-INF/lib</literal> — The Websphere version requires "
+"several library packages because they are not included as they are with "
+"JBoss AS. These are primarily for hibernate, JSF-RI support and their "
+"dependencies. Below are listed only the additional jars needed above and "
+"beyond the JBoss <literal>JPA</literal> example."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:770
+#, no-c-format
+msgid "To use Hibernate as your JPA provider you need the following jars:"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:775
+#, no-c-format
+msgid "hibernate.jar"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:780
+#, no-c-format
+msgid "hibernate-annotations.jar"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:785
+#, no-c-format
+msgid "hibernate-commons-annotations.jar"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:790
+#, no-c-format
+msgid "hibernate-entitymanager.jar"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:795
+#, no-c-format
+msgid "hibernate-validator.jar"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:800
+#, no-c-format
+msgid "commons-collections.jar"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:805
+#, no-c-format
+msgid "jboss-archive-browsing.jar"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:811
+#, no-c-format
+msgid ""
+"Seam requires JSF 1.2 and these are the jars needed for that. Websphere 6.1 "
+"ships with its own implementation of JSF 1.1."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:836
+#, no-c-format
+msgid "Various third party jars that Websphere needs:"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:839
+#, no-c-format
+msgid "antlr.jar"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:843
+#, no-c-format
+msgid "cglib.jar"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:847
+#, no-c-format
+msgid "asm.jar"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:851
+#, no-c-format
+msgid "dom4j.jar"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:856
+#, no-c-format
+msgid "javassist.jar"
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:871
+#, no-c-format
+msgid ""
+"Deploying an application created using <literal>seam-gen</literal> on "
+"Websphere 6.1.0.13"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:874
+#, no-c-format
+msgid ""
+"<literal>seam-gen</literal> is a very useful tool for developers to quickly "
+"get an application up and running, and provides a foundation to add your own "
+"functionality. Out of box <literal>seam-gen</literal> will produce "
+"applications configured to run on JBoss AS. These instructions will show the "
+"steps needed to get it to run on Websphere. As stated above in <xref linkend="
+"\"jee5-websphere-section\"/> there are some tricky changes needed to get an "
+"EJB3 application running. This section will take you through the exact steps."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:884
+#, no-c-format
+msgid "Running <literal>seam-gen</literal> Setup"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:885
+#, no-c-format
+msgid ""
+"The first step is setting up <literal>seam-gen</literal> to construct the "
+"base project. There are several choices made below, specifically the "
+"datasource and hibernate values that we will adjust once the project is "
+"created."
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:891
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"./seam setup\n"
+"Buildfile: build.xml\n"
+"\n"
+"init:\n"
+"\n"
+"setup:\n"
+" [echo] Welcome to seam-gen :-)\n"
+" [input] Enter your Java project workspace (the directory that contains "
+"your \n"
+"Seam projects) [C:/Projects] [C:/Projects]\n"
+"/home/jbalunas/workspace\n"
+" [input] Enter your JBoss home directory [C:/Program Files/jboss-4.2.2."
+"GA] \n"
+"[C:/Program Files/jboss-4.2.2.GA]\n"
+"/home/jbalunas/jboss/jboss-4.2.2.GA\n"
+" [input] Enter the project name [myproject] [myproject]\n"
+"websphere_example\n"
+" [echo] Accepted project name as: websphere_example\n"
+" [input] Do you want to use ICEFaces instead of RichFaces [n] (y, [n], )\n"
+"\n"
+" [input] skipping input as property icefaces.home.new has already been "
+"set.\n"
+" [input] Select a RichFaces skin [blueSky] ([blueSky], classic, ruby, "
+"wine, \n"
+"deepMarine, emeraldTown, sakura, DEFAULT)\n"
+"\n"
+" [input] Is this project deployed as an EAR (with EJB components) or a "
+"WAR \n"
+"(with no EJB support) [ear] ([ear], war, )\n"
+"\n"
+" [input] Enter the Java package name for your session beans [org.jboss."
+"seam.\n"
+"tutorial.websphere.action] [org.jboss.seam.tutorial.websphere.action]\n"
+"org.jboss.seam.tutorial.websphere.action \n"
+" [input] Enter the Java package name for your entity beans [org.jboss."
+"seam.\n"
+"tutorial.websphere.model] [org.jboss.seam.tutorial.websphere.model]\n"
+"org.jboss.seam.tutorial.websphere.model \n"
+" [input] Enter the Java package name for your test cases [org.jboss."
+"seam.\n"
+"tutorial.websphere.action.test] [org.jboss.seam.tutorial.websphere.action."
+"test]\n"
+"org.jboss.seam.tutorial.websphere.test\n"
+" [input] What kind of database are you using? [hsql] ([hsql], mysql, "
+"oracle,\n"
+" postgres, mssql, db2, sybase, enterprisedb, h2)\n"
+"\n"
+" [input] Enter the Hibernate dialect for your database [org.hibernate.\n"
+"dialect.HSQLDialect] [org.hibernate.dialect.HSQLDialect]\n"
+"\n"
+" [input] Enter the filesystem path to the JDBC driver jar [lib/hsqldb."
+"jar] \n"
+"[lib/hsqldb.jar]\n"
+"\n"
+" [input] Enter JDBC driver class for your database [org.hsqldb."
+"jdbcDriver] \n"
+"[org.hsqldb.jdbcDriver]\n"
+"\n"
+" [input] Enter the JDBC URL for your database [jdbc:hsqldb:.] \n"
+"[jdbc:hsqldb:.]\n"
+"\n"
+" [input] Enter database username [sa] [sa]\n"
+"\n"
+" [input] Enter database password [] []\n"
+"\n"
+" [input] Enter the database schema name (it is OK to leave this blank) [] "
+"[]\n"
+"\n"
+" [input] Enter the database catalog name (it is OK to leave this blank) "
+"[] []\n"
+"\n"
+" [input] Are you working with tables that already exist in the database? "
+"[n]\n"
+" (y, [n], )\n"
+"\n"
+" [input] Do you want to drop and recreate the database tables and data "
+"in \n"
+"import.sql each time you deploy? [n] (y, [n], )\n"
+"\n"
+"[propertyfile] Creating new property file: \n"
+"/rhdev/projects/jboss-seam/svn-seam_2_0/jboss-seam-2_0/seam-gen/build."
+"properties\n"
+" [echo] Installing JDBC driver jar to JBoss server\n"
+" [copy] Copying 1 file to /home/jbalunas/jboss/jboss-4.2.2.GA/server/"
+"default/lib\n"
+" [echo] Type 'seam create-project' to create the new project\n"
+"\n"
+"BUILD SUCCESSFUL\n"
+"Total time: 3 minutes 5 seconds]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:893
+#, no-c-format
+msgid ""
+"Type <literal>./seam new-project</literal> to create your project and "
+"<literal>cd /home/jbalunas/workspace/websphere_example</literal> to the "
+"newly created structure."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:900
+#, no-c-format
+msgid "Changes needed for deployment to Websphere"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:901
+#, no-c-format
+msgid "We now need to make some changes to the generated project."
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:907
+#, no-c-format
+msgid "resources/META-INF/persistence-dev.xml"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:912
+#, no-c-format
+msgid ""
+"Alter the <literal>jta-data-source</literal> to be "
+"<literal>DefaultDatasource</literal>. We are going to be using the "
+"integrated Websphere DB."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:919
+#, no-c-format
+msgid ""
+"Add or change the properties below. These are described in detail at <xref "
+"linkend=\"jee5-websphere-section\"/>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:924
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<property name=\"hibernate.dialect\" value=\"GlassfishDerbyDialect\"/>\n"
+"<property name=\"hibernate.hbm2ddl.auto\" value=\"update\"/>\n"
+"<property name=\"hibernate.show_sql\" value=\"true\"/>\n"
+"<property name=\"hibernate.format_sql\" value=\"true\"/>\n"
+"<property name=\"hibernate.cache.provider_class\" \n"
+" value=\"org.hibernate.cache.HashtableCacheProvider\"/>\n"
+"<property name=\"hibernate.transaction.manager_lookup_class\" \n"
+" value=\"org.hibernate.transaction."
+"WebSphereExtendedJTATransactionLookup\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:927
+#, no-c-format
+msgid ""
+"Remove the JBoss AS specific method of exposing the EntityManagerFactory:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:930
+#, no-c-format
+msgid ""
+"<![CDATA[<property \n"
+" name=\"jboss.entity.manager.factory.jndi.name\" \n"
+" value=\"java:/websphere_exampleEntityManagerFactory\">]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:933
+#, no-c-format
+msgid ""
+"You'll need to alter <literal>persistence-prod.xml</literal> as well if you "
+"want to deploy to Websphere using the prod profile."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:946
+#, no-c-format
+msgid ""
+"As with other examples we need to include this class for DB support. It can "
+"be copied from the <literal>jpa</literal> example into the "
+"<literal>websphere_example/resources</literal> directory."
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:952
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"cp $SEAM/examples/jpa/resources-websphere61/WEB-INF/classes/"
+"GlassfishDerbyDialect.class\n"
+" ./resources]]>"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:958
+#, no-c-format
+msgid "resources/META-INF/jboss-app.xml"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:961
+#, no-c-format
+msgid ""
+"You can delete this file as we aren't deploying to JBoss AS ( <literal>jboss-"
+"app.xml</literal> is used to enable classloading isolation in JBoss AS)"
+msgstr ""
+
+#. Tag: literal
+#: Websphere.xml:967
+#, no-c-format
+msgid "resources/*-ds.xml"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:970
+#, no-c-format
+msgid ""
+"You can delete these file as we aren't deploying to JBoss AS (these files "
+"define datasources in JBoss AS, we are using Websphere's default datasource)"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:982
+#, no-c-format
+msgid ""
+"Enable container managed transaction integration - add the <literal> <"
+"transaction:ejb-transaction /> </literal> component, and it's namespace "
+"declaration <literal> xmlns:transaction=\"http://jboss.com/products/seam/"
+"transaction\" </literal>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:991
+#, no-c-format
+msgid ""
+"Alter the <literal>jndi-pattern</literal> to <literal> java:comp/env/"
+"websphere_example/#{ejbName} </literal>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:997
+#, no-c-format
+msgid ""
+"We do not need <literal>managed-persistence-context</literal> for this "
+"example and so can delete its entry."
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1003
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<persistence:managed-persistence-context name=\"entityManager\"\n"
+" auto-create=\"true\"\n"
+" persistence-unit-jndi-name=\"java:/"
+"websphere_exampleEntityManagerFactory\"/> ]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1012
+#, no-c-format
+msgid ""
+"Websphere does not support <literal>Servlet 2.5</literal>, it required "
+"<literal>Servlet 2.4</literal>. For this change we need to adjust the top of "
+"the <literal>web.xml</literal> file to look like the following:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1018
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<web-app version=\"2.4\" \n"
+" xmlns=\"http://java.sun.com/xml/ns/j2ee\"\n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee \n"
+" http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+"\">\n"
+" ]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1020
+#, no-c-format
+msgid ""
+"As with the <literal>jee5/booking</literal> example we need to add EJB "
+"references to the web.xml. These references require the empty <literal>local-"
+"home</literal> to flag them for Websphere to perform the proper binding."
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1027
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <ejb-local-ref> \n"
+" <ejb-ref-name>websphere_example/AuthenticatorAction</ejb-ref-"
+"name> \n"
+" <ejb-ref-type>Session</ejb-ref-type> \n"
+" <local-home></local-home>\n"
+" <local>org.jboss.seam.tutorial.websphere.action.Authenticator</local> \n"
+" </ejb-local-ref>\n"
+" \n"
+" <ejb-local-ref>\n"
+" <ejb-ref-name>websphere_example/EjbSynchronizations</ejb-ref-name> \n"
+" <ejb-ref-type>Session</ejb-ref-type>\n"
+" <local-home></local-home>\n"
+" <local>org.jboss.seam.transaction.LocalEjbSynchronizations</local>\n"
+" </ejb-local-ref>]]>"
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:1033
+#, no-c-format
+msgid "Creating the <literal>AuthenticatorAction</literal> EJB"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1035
+#, no-c-format
+msgid ""
+"We want to take the existing <literal>Authenticator</literal> Seam POJO "
+"component and create an EJB3 out of it."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1041
+#, no-c-format
+msgid "Rename the class to <literal>AuthenticatorAction</literal>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1045
+#, no-c-format
+msgid ""
+"Add the <literal>@Stateless</literal> annotation to the new "
+"<literal>AuthenticatorAction</literal> class."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1051
+#, no-c-format
+msgid ""
+"Create an interface called <literal>Authenticator</literal> which "
+"<literal>AuthenticatorAction</literal> implements (EJB3 requires session "
+"beans to have a local interface). Annotate the interface with "
+"<literal>@Local</literal> , and add a single method with same signature as "
+"the <literal>authenticate</literal> in <literal>AuthenticatorAction</"
+"literal> ."
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1064
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"@Name(\"authenticator\") @Stateless public class\n"
+" AuthenticatorAction implements Authenticator {]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1067
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"@Local public interface Authenticator { \n"
+" public boolean authenticate(); \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1070
+#, no-c-format
+msgid ""
+"We've already added its reference to the <literal>web.xml</literal> file so "
+"are good to go."
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:1076
+#, no-c-format
+msgid ""
+"Extra jar dependencies and other changes to the <literal>build.xml</literal>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1078
+#, no-c-format
+msgid ""
+"This application has similar requirements as the <literal>jee5/booking</"
+"literal> example."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1083
+#, no-c-format
+msgid ""
+"Change the default target to <literal>archive</literal> (we aren't going to "
+"cover automatic deployment to Websphere)."
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1089
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<project name=\"websphere_example\" default=\"archive\" basedir=\".\">]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1093
+#, no-c-format
+msgid ""
+"Websphere looks for the drools <literal>/security.drl</literal> file in the "
+"root of the <literal>war</literal> file instead of the root of the "
+"<literal>websphere_example.jar</literal> so we need to have the "
+"<literal>build.xml</literal> move it to the correct location at build time. "
+"The following must be added at the top of the <literal> <target name=\"war"
+"\" depends=\"compile\" description=\"Build the distribution .war file\"> "
+"</literal> target."
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1104
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<copy todir=\"${war.dir}\">\n"
+" <fileset dir=\"${basedir}/resources\" >\n"
+" <include name=\"*.drl\" />\n"
+" </fileset>\n"
+"</copy>]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1107
+#, no-c-format
+msgid ""
+"We need to ge the <literal>GlassfishDerbyDialect.class</literal> into our "
+"application jar. To do that find the <literal>jar</literal> task and modify "
+"the top of it so that it looks like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1115
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<target name=\"jar\" depends=\"compile,copyclasses\" \n"
+" description=\"Build the distribution .jar file\">\n"
+" <copy todir=\"${jar.dir}\">\n"
+" <fileset dir=\"${basedir}/resources\">\n"
+" <include name=\"seam.properties\" />\n"
+" <include name=\"*.drl\" />\n"
+" <include name=\"GlassfishDerbyDialect.class\" />\n"
+" </fileset>\n"
+" </copy>\n"
+"...]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1118
+#, no-c-format
+msgid ""
+"Next we need to get the <literal>jboss-seam.jar</literal> into the base of "
+"the <literal>EAR</literal> file. For deployment Websphere requires this jar "
+"to be in both the <literal>/lib</literal> directory and at the base of the "
+"<literal>EAR</literal>. You must add the following to the <literal>archive</"
+"literal> task:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1127
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<fileset dir=\"${lib.dir}\">\n"
+" <include name=\"jboss-seam.jar\" />\n"
+"</fileset>]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1128
+#, no-c-format
+msgid "So that the whole <literal>archive</literal> task looks like:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1132
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<target name=\"archive\" depends=\"jar,war,ear\" \n"
+" description=\"Package the archives\">\n"
+" <jar jarfile=\"${dist.dir}/${project.name}.jar\" basedir=\"${jar.dir}\"/"
+">\n"
+" <jar jarfile=\"${dist.dir}/${project.name}.war\" basedir=\"${war.dir}\"/"
+">\n"
+" <jar jarfile=\"${dist.dir}/${project.name}.ear\">\n"
+" <fileset dir=\"${ear.dir}\"/>\n"
+" <fileset dir=\"${dist.dir}\">\n"
+" <include name=\"${project.name}.jar\"/>\n"
+" <include name=\"${project.name}.war\"/>\n"
+" </fileset>\n"
+" <fileset dir=\"${lib.dir}\">\n"
+" <include name=\"jboss-seam.jar\" />\n"
+" </fileset>\n"
+" </jar>\n"
+"</target>]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1135
+#, no-c-format
+msgid ""
+"Now we need to get extra jars into the <literal>build.xml</literal>. Look "
+"for the <literal><fileset dir=\"${basedir}\"></literal> section of the "
+"task below. Add the new includes at the bottom of the fileset."
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1143
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<target name=\"ear\" description=\"Build the EAR\">\n"
+" <copy todir=\"${ear.dir}\">\n"
+" <fileset dir=\"${basedir}/resources\">\n"
+" <include name=\"*jpdl.xml\" />\n"
+" <include name=\"*hibernate.cfg.xml\" />\n"
+" <include name=\"jbpm.cfg.xml\" />\n"
+" </fileset>\n"
+" <fileset dir=\"${lib.dir}\">\n"
+" <include name=\"jboss-seam.jar\" />\n"
+" </fileset>\n"
+" <fileset dir=\"${basedir}\">\n"
+" <include name=\"lib/jbpm*.jar\" />\n"
+" <include name=\"lib/jboss-el.jar\" />\n"
+" <include name=\"lib/drools-*.jar\"/>\n"
+" <include name=\"lib/core.jar\"/>\n"
+" <include name=\"lib/janino*.jar\"/>\n"
+" <include name=\"lib/antlr-*.jar\"/>\n"
+" <include name=\"lib/mvel*.jar\"/>\n"
+" <include name=\"lib/richfaces-api*.jar\" />\n"
+" </fileset>\n"
+" </copy>\n"
+" <copy todir=\"${ear.dir}/META-INF\">\n"
+" <fileset dir=\"${basedir}/resources/META-INF\">\n"
+" <include name=\"application.xml\" />\n"
+" <include name=\"jboss-app.xml\" />\n"
+" </fileset>\n"
+" </copy>\n"
+"</target>]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1146
+#, no-c-format
+msgid "Hibernate dependencies"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1147
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <!-- Hibernate and deps -->\n"
+" <include name=\"lib/hibernate.jar\"/>\n"
+" <include name=\"lib/hibernate-commons-annotations.jar\"/>\n"
+" <include name=\"lib/hibernate-annotations.jar\"/>\n"
+" <include name=\"lib/hibernate-entitymanager.jar\"/>\n"
+" <include name=\"lib/hibernate-validator.jar\"/>\n"
+" <include name=\"lib/jboss-common-core.jar\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1150
+#, no-c-format
+msgid ""
+"JSF dependencies. You will need to copy the <literal>el-ri.jar</literal> "
+"from the <literal>$SEAM/examples/jpa/lib</literal> directory."
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1153
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <!-- jsf libs -->\n"
+" <include name=\"lib/jsf-api.jar\" />\n"
+" <include name=\"lib/jsf-impl.jar\" />\n"
+" <include name=\"lib/el-api.jar\" />\n"
+" <include name=\"lib/el-ri.jar\"/>]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1156
+#, no-c-format
+msgid ""
+"Third party dependencies. You will need to copy the <literal>jboss-archive-"
+"browsing.jar</literal> from the <literal>$SEAM/examples/jpa/lib</literal> "
+"directory into the the projects <literal>/lib</literal> directory. You will "
+"also need to acquire the <literal>concurrent.jar</literal> and place it in "
+"the same directory. You can get this from any jboss distribution or just "
+"search for it."
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1163
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <!-- 3rd party and supporting jars -->\n"
+" <!--<include name=\"lib/log4j.jar\" />-->\n"
+" <include name=\"lib/javassist.jar\"/>\n"
+" <include name=\"lib/dom4j.jar\" />\n"
+" <include name=\"lib/jboss-archive-browsing.jar\" />\n"
+" <include name=\"lib/concurrent.jar\" />\n"
+" <include name=\"lib/cglib.jar\"/>\n"
+" <include name=\"lib/asm.jar\"/>\n"
+" <include name=\"lib/antlr.jar\" />\n"
+" <include name=\"lib/commons-logging.jar\" />\n"
+" <include name=\"lib/commons-collections.jar\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1166
+#, no-c-format
+msgid ""
+"<literal>jboss-seam.jar</literal> - this is needed in both the <literal>ear</"
+"literal> base and <literal>/lib</literal> directory."
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1170
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <!-- seam jar -->\n"
+" <include name=\"lib/jboss-seam.jar\" />]]>"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1174
+#, no-c-format
+msgid "You should end up with something like:"
+msgstr ""
+
+#. Tag: programlisting
+#: Websphere.xml:1175
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<fileset dir=\"${basedir}\">\n"
+" <include name=\"lib/jbpm*.jar\" />\n"
+" <include name=\"lib/jboss-el.jar\" />\n"
+" <include name=\"lib/drools-*.jar\"/>\n"
+" <include name=\"lib/core.jar\"/>\n"
+" <include name=\"lib/janino*.jar\"/>\n"
+" <include name=\"lib/antlr-*.jar\"/>\n"
+" <include name=\"lib/mvel*.jar\"/>\n"
+" <include name=\"lib/richfaces-api*.jar\" />\n"
+" \n"
+" <!-- Hibernate and deps -->\n"
+" <include name=\"lib/hibernate.jar\"/>\n"
+" <include name=\"lib/hibernate-commons-annotations.jar\"/>\n"
+" <include name=\"lib/hibernate-annotations.jar\"/>\n"
+" <include name=\"lib/hibernate-entitymanager.jar\"/>\n"
+" <include name=\"lib/hibernate-validator.jar\"/>\n"
+" <include name=\"lib/jboss-common-core.jar\" />\n"
+" \n"
+" <!-- jsf libs -->\n"
+" <include name=\"lib/jsf-api.jar\" />\n"
+" <include name=\"lib/jsf-impl.jar\" />\n"
+" <include name=\"lib/el-api.jar\" />\n"
+" <include name=\"lib/el-ri.jar\"/>\n"
+" \n"
+" <!-- 3rd party and supporting jars -->\n"
+" <!--<include name=\"lib/log4j.jar\" />-->\n"
+" <include name=\"lib/javassist.jar\"/>\n"
+" <include name=\"lib/dom4j.jar\" />\n"
+" <include name=\"lib/jboss-archive-browsing.jar\" />\n"
+" <include name=\"lib/concurrent.jar\" />\n"
+" <include name=\"lib/cglib.jar\"/>\n"
+" <include name=\"lib/asm.jar\"/>\n"
+" <include name=\"lib/antlr.jar\" />\n"
+" <include name=\"lib/commons-logging.jar\" />\n"
+" <include name=\"lib/commons-collections.jar\" />\n"
+" \n"
+" <!-- seam jar -->\n"
+" <include name=\"lib/jboss-seam.jar\" />\n"
+" \n"
+"</fileset>]]>"
+msgstr ""
+
+#. Tag: title
+#: Websphere.xml:1181
+#, no-c-format
+msgid "Building and deploying the seam-gen'd application to Websphere"
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1187
+#, no-c-format
+msgid ""
+"Build your application by calling <literal>ant</literal> in the base "
+"directory of your project (ex. <literal>/home/jbalunas/workspace/"
+"websphere_example</literal> ). The target of the build will be <literal>dist/"
+"websphere_example.ear</literal> ."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1196
+#, no-c-format
+msgid ""
+"To deploy the application follow the instructions here : <xref linkend="
+"\"jee5-websphere-deploy\"/> but use references to this project "
+"<literal>websphere_example</literal> instead of <literal>jboss-seam-jee5</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Websphere.xml:1202
+#, no-c-format
+msgid ""
+"Checkout the app at: <literal>http://localhost:9080/websphere_example/index."
+"html</literal>"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Xml.po
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Xml.po (rev 0)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/Xml.po 2008-04-21 00:41:49 UTC (rev 7985)
@@ -0,0 +1,941 @@
+# Language sl-SL translations for PACKAGE package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-04-21 00:37+0000\n"
+"PO-Revision-Date: 2008-04-21 00:37+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Xml.xml:3
+#, no-c-format
+msgid "Configuring Seam components"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:5
+#, no-c-format
+msgid ""
+"The philosophy of minimizing XML-based configuration is extremely strong in "
+"Seam. Nevertheless, there are various reasons why we might want to configure "
+"a Seam component using XML: to isolate deployment-specific information from "
+"the Java code, to enable the creation of re-usable frameworks, to configure "
+"Seam's built-in functionality, etc. Seam provides two basic approaches to "
+"configuring components: configuration via property settings in a properties "
+"file or in <literal>web.xml</literal>, and configuration via "
+"<literal>components.xml</literal>."
+msgstr ""
+
+#. Tag: title
+#: Xml.xml:15
+#, no-c-format
+msgid "Configuring components via property settings"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:16
+#, no-c-format
+msgid ""
+"Seam components may be provided with configuration properties either via "
+"servlet context parameters, or via a properties file named <literal>seam."
+"properties</literal> in the root of the classpath."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:20
+#, no-c-format
+msgid ""
+"The configurable Seam component must expose JavaBeans-style property setter "
+"methods for the configurable attributes. If a Seam component named "
+"<literal>com.jboss.myapp.settings</literal> has a setter method named "
+"<literal>setLocale()</literal>, we can provide a property named <literal>com."
+"jboss.myapp.settings.locale</literal> in the <literal>seam.properties</"
+"literal> file or as a servlet context parameter, and Seam will set the value "
+"of the <literal>locale</literal> attribute whenever it instantiates the "
+"component."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:28
+#, no-c-format
+msgid ""
+"The same mechanism is used to configure Seam itself. For example, to set the "
+"conversation timeout, we provide a value for <literal>org.jboss.seam.core."
+"manager.conversationTimeout</literal> in <literal>web.xml</literal> or "
+"<literal>seam.properties</literal>. (There is a built-in Seam component "
+"named <literal>org.jboss.seam.core.manager</literal> with a setter method "
+"named <literal>setConversationTimeout()</literal>.)"
+msgstr ""
+
+#. Tag: title
+#: Xml.xml:38
+#, no-c-format
+msgid "Configuring components via <literal>components.xml</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:40
+#, no-c-format
+msgid ""
+"The <literal>components.xml</literal> file is a bit more powerful than "
+"property settings. It lets you:"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:47
+#, no-c-format
+msgid ""
+"Configure components that have been installed automatically—including "
+"both built-in components, and application components that have been "
+"annotated with the <literal>@Name</literal> annotation and picked up by "
+"Seam's deployment scanner."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:52
+#, no-c-format
+msgid ""
+"Install classes with no <literal>@Name</literal> annotation as Seam "
+"components—this is most useful for certain kinds of infrastructural "
+"components which can be installed multiple times different names (for "
+"example Seam-managed persistence contexts)."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:57
+#, no-c-format
+msgid ""
+"Install components that <emphasis>do</emphasis> have a <literal>@Name</"
+"literal> annotation but are not installed by default because of an "
+"<literal>@Install</literal> annotation that indicates the component should "
+"not be installed."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:62
+#, no-c-format
+msgid "Override the scope of a component."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:66
+#, no-c-format
+msgid ""
+"A <literal>components.xml</literal> file may appear in one of three "
+"different places:"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:72
+#, no-c-format
+msgid "The <literal>WEB-INF</literal> directory of a <literal>war</literal>."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:75
+#, no-c-format
+msgid "The <literal>META-INF</literal> directory of a <literal>jar</literal>."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:78
+#, no-c-format
+msgid ""
+"Any directory of a <literal>jar</literal> that contains classes with an "
+"<literal>@Name</literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:85
+#, no-c-format
+msgid ""
+"Usually, Seam components are installed when the deployment scanner discovers "
+"a class with a <literal>@Name</literal> annotation sitting in an archive "
+"with a <literal>seam.properties</literal> file or a <literal>META-INF/"
+"components.xml</literal> file. (Unless the component has an "
+"<literal>@Install</literal> annotation indicating it should not be installed "
+"by default.) The <literal>components.xml</literal> file lets us handle "
+"special cases where we need to override the annotations."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:94
+#, no-c-format
+msgid ""
+"For example, the following <literal>components.xml</literal> file installs "
+"jBPM:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:98
+#, no-c-format
+msgid ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\" \n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xmlns:bpm=\"http://jboss.com/products/seam/bpm\">\n"
+" <bpm:jbpm/>\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:100
+#, no-c-format
+msgid "This example does the same thing:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:104
+#, no-c-format
+msgid ""
+"<![CDATA[<components>\n"
+" <component class=\"org.jboss.seam.bpm.Jbpm\"/>\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:106
+#, no-c-format
+msgid ""
+"This one installs and configures two different Seam-managed persistence "
+"contexts:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:110
+#, no-c-format
+msgid ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\" \n"
+" xmlns:persistence=\"http://jboss.com/products/seam/persistence"
+"\"\n"
+"\n"
+" <persistence:managed-persistence-context name=\"customerDatabase\"\n"
+" persistence-unit-jndi-name=\"java:/"
+"customerEntityManagerFactory\"/>\n"
+" \n"
+" <persistence:managed-persistence-context name=\"accountingDatabase\"\n"
+" persistence-unit-jndi-name=\"java:/"
+"accountingEntityManagerFactory\"/> \n"
+"\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:112
+#, no-c-format
+msgid "As does this one:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:116
+#, no-c-format
+msgid ""
+"<![CDATA[<components>\n"
+" <component name=\"customerDatabase\" \n"
+" class=\"org.jboss.seam.persistence.ManagedPersistenceContext"
+"\">\n"
+" <property name=\"persistenceUnitJndiName\">java:/"
+"customerEntityManagerFactory</property>\n"
+" </component>\n"
+" \n"
+" <component name=\"accountingDatabase\"\n"
+" class=\"org.jboss.seam.persistence.ManagedPersistenceContext"
+"\">\n"
+" <property name=\"persistenceUnitJndiName\">java:/"
+"accountingEntityManagerFactory</property>\n"
+" </component>\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:118
+#, no-c-format
+msgid ""
+"This example creates a session-scoped Seam-managed persistence context (this "
+"is not recommended in practice):"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:123
+#, no-c-format
+msgid ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\" \n"
+" xmlns:persistence=\"http://jboss.com/products/seam/persistence"
+"\"\n"
+"\n"
+" <persistence:managed-persistence-context name=\"productDatabase\" \n"
+" scope=\"session\"\n"
+" persistence-unit-jndi-name=\"java:/"
+"productEntityManagerFactory\"/> \n"
+"\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:125
+#, no-c-format
+msgid ""
+"<![CDATA[<components>\n"
+" \n"
+" <component name=\"productDatabase\"\n"
+" scope=\"session\"\n"
+" class=\"org.jboss.seam.persistence.ManagedPersistenceContext"
+"\">\n"
+" <property name=\"persistenceUnitJndiName\">java:/"
+"productEntityManagerFactory</property>\n"
+" </component>\n"
+"\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:127
+#, no-c-format
+msgid ""
+"It is common to use the <literal>auto-create</literal> option for "
+"infrastructural objects like persistence contexts, which saves you from "
+"having to explicitly specify <literal>create=true</literal> when you use the "
+"<literal>@In</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:134
+#, no-c-format
+msgid ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\" \n"
+" xmlns:persistence=\"http://jboss.com/products/seam/persistence"
+"\"\n"
+"\n"
+" <persistence:managed-persistence-context name=\"productDatabase\" \n"
+" auto-create=\"true\"\n"
+" persistence-unit-jndi-name=\"java:/"
+"productEntityManagerFactory\"/> \n"
+"\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:136
+#, no-c-format
+msgid ""
+"<![CDATA[<components>\n"
+" \n"
+" <component name=\"productDatabase\"\n"
+" auto-create=\"true\"\n"
+" class=\"org.jboss.seam.persistence.ManagedPersistenceContext"
+"\">\n"
+" <property name=\"persistenceUnitJndiName\">java:/"
+"productEntityManagerFactory</property>\n"
+" </component>\n"
+"\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:138
+#, no-c-format
+msgid ""
+"The <literal><factory></literal> declaration lets you specify a value "
+"or method binding expression that will be evaluated to initialize the value "
+"of a context variable when it is first referenced."
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:144
+#, no-c-format
+msgid ""
+"<![CDATA[<components>\n"
+"\n"
+" <factory name=\"contact\" method=\"#{contactManager.loadContact}\" scope="
+"\"CONVERSATION\"/>\n"
+"\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:146
+#, no-c-format
+msgid ""
+"You can create an \"alias\" (a second name) for a Seam component like so:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:150
+#, no-c-format
+msgid ""
+"<![CDATA[<components>\n"
+"\n"
+" <factory name=\"user\" value=\"#{actor}\" scope=\"STATELESS\"/>\n"
+"\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:152
+#, no-c-format
+msgid "You can even create an \"alias\" for a commonly used expression:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:156
+#, no-c-format
+msgid ""
+"<![CDATA[<components>\n"
+"\n"
+" <factory name=\"contact\" value=\"#{contactManager.contact}\" scope="
+"\"STATELESS\"/>\n"
+"\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:158
+#, no-c-format
+msgid ""
+"It is especially common to see the use of <literal>auto-create=\"true\"</"
+"literal> with the <literal><factory></literal> declaration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:163
+#, no-c-format
+msgid ""
+"<![CDATA[<components>\n"
+"\n"
+" <factory name=\"session\" value=\"#{entityManager.delegate}\" scope="
+"\"STATELESS\" auto-create=\"true\"/>\n"
+"\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:165
+#, no-c-format
+msgid ""
+"Sometimes we want to reuse the same <literal>components.xml</literal> file "
+"with minor changes during both deployment and testing. Seam lets you place "
+"wildcards of the form <literal>@wildcard@</literal> in the "
+"<literal>components.xml</literal> file which can be replaced either by your "
+"Ant build script (at deployment time) or by providing a file named "
+"<literal>components.properties</literal> in the classpath (at development "
+"time). You'll see this approach used in the Seam examples."
+msgstr ""
+
+#. Tag: title
+#: Xml.xml:176
+#, no-c-format
+msgid "Fine-grained configuration files"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:177
+#, no-c-format
+msgid ""
+"If you have a large number of components that need to be configured in XML, "
+"it makes much more sense to split up the information in <literal>components."
+"xml</literal> into many small files. Seam lets you put configuration for a "
+"class named, for example, <literal>com.helloworld.Hello</literal> in a "
+"resource named <literal>com/helloworld/Hello.component.xml</literal>. (You "
+"might be familiar with this pattern, since it is the same one we use in "
+"Hibernate.) The root element of the file may be either a <literal><"
+"components></literal> or <literal><component></literal> element."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:186
+#, no-c-format
+msgid "The first option lets you define multiple components in the file:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:190
+#, no-c-format
+msgid ""
+"<![CDATA[<components>\n"
+" <component class=\"com.helloworld.Hello\" name=\"hello\">\n"
+" <property name=\"name\">#{user.name}</property>\n"
+" </component>\n"
+" <factory name=\"message\" value=\"#{hello.message}\"/>\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:192
+#, no-c-format
+msgid ""
+"The second option only lets you define or configure one component, but is "
+"less noisy:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:196
+#, no-c-format
+msgid ""
+"<![CDATA[<component name=\"hello\">\n"
+" <property name=\"name\">#{user.name}</property>\n"
+"</component>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:198
+#, no-c-format
+msgid ""
+"In the second option, the class name is implied by the file in which the "
+"component definition appears."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:203
+#, no-c-format
+msgid ""
+"Alternatively, you may put configuration for all classes in the <literal>com."
+"helloworld</literal> package in <literal>com/helloworld/components.xml</"
+"literal>."
+msgstr ""
+
+#. Tag: title
+#: Xml.xml:210
+#, no-c-format
+msgid "Configurable property types"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:211
+#, no-c-format
+msgid ""
+"Properties of string, primitive or primitive wrapper type may be configured "
+"just as you would expect:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:215
+#, no-c-format
+msgid "<![CDATA[org.jboss.seam.core.manager.conversationTimeout 60000]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:217
+#, no-c-format
+msgid "<![CDATA[<core:manager conversation-timeout=\"60000\"/>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:219
+#, no-c-format
+msgid ""
+"<![CDATA[<component name=\"org.jboss.seam.core.manager\">\n"
+" <property name=\"conversationTimeout\">60000</property>\n"
+"</component>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:221
+#, no-c-format
+msgid "Arrays, sets and lists of strings or primitives are also supported:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:225
+#, no-c-format
+msgid ""
+"<![CDATA[org.jboss.seam.bpm.jbpm.processDefinitions order.jpdl.xml, return."
+"jpdl.xml, inventory.jpdl.xml]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:227
+#, no-c-format
+msgid ""
+"<![CDATA[<bpm:jbpm>\n"
+" <bpm:process-definitions>\n"
+" <value>order.jpdl.xml</value>\n"
+" <value>return.jpdl.xml</value>\n"
+" <value>inventory.jpdl.xml</value>\n"
+" </bpm:process-definitions>\n"
+"</bpm:jbpm>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:229
+#, no-c-format
+msgid ""
+"<![CDATA[<component name=\"org.jboss.seam.bpm.jbpm\">\n"
+" <property name=\"processDefinitions\">\n"
+" <value>order.jpdl.xml</value>\n"
+" <value>return.jpdl.xml</value>\n"
+" <value>inventory.jpdl.xml</value>\n"
+" </property>\n"
+"</component>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:231
+#, no-c-format
+msgid ""
+"Even maps with String-valued keys and string or primitive values are "
+"supported:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:235
+#, no-c-format
+msgid ""
+"<![CDATA[<component name=\"issueEditor\">\n"
+" <property name=\"issueStatuses\">\n"
+" <key>open</key> <value>open issue</value>\n"
+" <key>resolved</key> <value>issue resolved by developer</value>\n"
+" <key>closed</key> <value>resolution accepted by user</value>\n"
+" </property>\n"
+"</component>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:237
+#, no-c-format
+msgid ""
+"Finally, you may wire together components using a value-binding expression. "
+"Note that this is quite different to injection using <literal>@In</literal>, "
+"since it happens at component instantiation time instead of invocation time. "
+"It is therefore much more similar to the dependency injection facilities "
+"offered by traditional IoC containers like JSF or Spring."
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:245
+#, no-c-format
+msgid ""
+"<![CDATA[<drools:managed-working-memory name=\"policyPricingWorkingMemory\" "
+"rule-base=\"#{policyPricingRules}\"/>]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:247
+#, no-c-format
+msgid ""
+"<![CDATA[<component name=\"policyPricingWorkingMemory\"\n"
+" class=\"org.jboss.seam.drools.ManagedWorkingMemory\">\n"
+" <property name=\"ruleBase\">#{policyPricingRules}</property>\n"
+"</component>]]>"
+msgstr ""
+
+#. Tag: title
+#: Xml.xml:252
+#, no-c-format
+msgid "Using XML Namespaces"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:253
+#, no-c-format
+msgid ""
+"Throughout the examples, there have been two competing ways of declaring "
+"components: with and without the use of XML namespaces. The following shows "
+"a typical <literal>components.xml</literal> file without namespaces:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:259
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+" xsi:schemaLocation=\"http://jboss.com/products/seam/components "
+"http://jboss.com/products/seam/components-2.1.xsd\">\n"
+"\n"
+" <component class=\"org.jboss.seam.core.init\">\n"
+" <property name=\"debug\">true</property>\n"
+" <property name=\"jndiPattern\">@jndiPattern@</property>\n"
+" </component>\n"
+" \n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:261
+#, no-c-format
+msgid ""
+"As you can see, this is somewhat verbose. Even worse, the component and "
+"attribute names cannot be validated at development time."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:266
+#, no-c-format
+msgid "The namespaced version looks like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:268
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+" xmlns:core=\"http://jboss.com/products/seam/core\"\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"
+"\n"
+" <core:init debug=\"true\" jndi-pattern=\"@jndiPattern@\"/>\n"
+"\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:270
+#, no-c-format
+msgid ""
+"Even though the schema declarations are verbose, the actual XML content is "
+"lean and easy to understand. The schemas provide detailed information about "
+"each component and the attributes available, allowing XML editors to offer "
+"intelligent autocomplete. The use of namespaced elements makes generating "
+"and maintaining correct <literal>components.xml</literal> files much simpler."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:277
+#, no-c-format
+msgid ""
+"Now, this works great for the built-in Seam components, but what about user "
+"components? There are two options. First, Seam supports mixing the two "
+"models, allowing the use of the generic <literal><component></literal> "
+"declarations for user components, along with namespaced declarations for "
+"built-in components. But even better, Seam allows you to quickly declare "
+"namespaces for your own components."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:284
+#, no-c-format
+msgid ""
+"Any Java package can be associated with an XML namespace by annotating the "
+"package with the <literal>@Namespace</literal> annotation. (Package-level "
+"annotations are declared in a file named <literal>package-info.java</"
+"literal> in the package directory.) Here is an example from the seampay demo:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:290
+#, no-c-format
+msgid ""
+"@Namespace(value=\"http://jboss.com/products/seam/examples/seampay\")\n"
+"package org.jboss.seam.example.seampay;\n"
+"\n"
+"import org.jboss.seam.annotations.Namespace;"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:292
+#, no-c-format
+msgid ""
+"That is all you need to do to use the namespaced style in "
+"<literal>components.xml</literal>! Now we can write:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:297
+#, no-c-format
+msgid ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+" xmlns:pay=\"http://jboss.com/products/seam/examples/seampay\"\n"
+" ... >\n"
+"\n"
+" <pay:payment-home new-instance=\"#{newPayment}\"\n"
+" created-message=\"Created a new payment to #"
+"{newPayment.payee}\" />\n"
+"\n"
+" <pay:payment name=\"newPayment\"\n"
+" payee=\"Somebody\"\n"
+" account=\"#{selectedAccount}\"\n"
+" payment-date=\"#{currentDatetime}\"\n"
+" created-date=\"#{currentDatetime}\" />\n"
+" ...\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:299
+#, no-c-format
+msgid "<para>Or:</para>"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:301
+#, no-c-format
+msgid ""
+"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+" xmlns:pay=\"http://jboss.com/products/seam/examples/seampay\"\n"
+" ... >\n"
+"\n"
+" <pay:payment-home>\n"
+" <pay:new-instance>\"#{newPayment}\"</pay:new-instance>\n"
+" <pay:created-message>Created a new payment to #{newPayment.payee}</"
+"pay:created-message>\n"
+" </pay:payment-home>\n"
+" \n"
+" <pay:payment name=\"newPayment\">\n"
+" <pay:payee>Somebody\"</pay:payee>\n"
+" <pay:account>#{selectedAccount}</pay:account>\n"
+" <pay:payment-date>#{currentDatetime}</pay:payment-date>\n"
+" <pay:created-date>#{currentDatetime}</pay:created-date>\n"
+" </pay:payment>\n"
+" ...\n"
+"</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:303
+#, no-c-format
+msgid ""
+"These examples illustrate the two usage models of a namespaced element. In "
+"the first declaration, the <literal><pay:payment-home></literal> "
+"references the <literal>paymentHome</literal> component:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:309
+#, no-c-format
+msgid ""
+"<![CDATA[package org.jboss.seam.example.seampay;\n"
+"...\n"
+"@Name(\"paymentHome\")\n"
+"public class PaymentController\n"
+" extends EntityHome<Payment>\n"
+"{\n"
+" ... \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:311
+#, no-c-format
+msgid ""
+"The element name is the hyphenated form of the component name. The "
+"attributes of the element are the hyphenated form of the property names."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:316
+#, no-c-format
+msgid ""
+"In the second declaration, the <literal><pay:payment></literal> "
+"element refers to the <literal>Payment</literal> class in the <literal>org."
+"jboss.seam.example.seampay</literal> package. In this case <literal>Payment</"
+"literal> is an entity that is being declared as a Seam component:"
+msgstr ""
+
+#. Tag: programlisting
+#: Xml.xml:322
+#, no-c-format
+msgid ""
+"<![CDATA[package org.jboss.seam.example.seampay;\n"
+"...\n"
+"@Entity\n"
+"public class Payment\n"
+" implements Serializable\n"
+"{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:324
+#, no-c-format
+msgid ""
+"If we want validation and autocompletion to work for user-defined "
+"components, we will need a schema. Seam does not yet provide a mechanism to "
+"automatically generate a schema for a set of components, so it is necessary "
+"to generate one manually. The schema definitions for the standard Seam "
+"packages can be used for guidance."
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:331
+#, no-c-format
+msgid "The following are the the namespaces used by Seam:"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:335
+#, no-c-format
+msgid ""
+"components — <literal>http://jboss.com/products/seam/components</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:338
+#, no-c-format
+msgid "core — <literal>http://jboss.com/products/seam/core</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:341
+#, no-c-format
+msgid "drools — <literal>http://jboss.com/products/seam/drools</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:344
+#, no-c-format
+msgid ""
+"framework — <literal>http://jboss.com/products/seam/framework</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:347
+#, no-c-format
+msgid "jms — <literal>http://jboss.com/products/seam/jms</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:350
+#, no-c-format
+msgid ""
+"remoting — <literal>http://jboss.com/products/seam/remoting</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:353
+#, no-c-format
+msgid "theme — <literal>http://jboss.com/products/seam/theme</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:356
+#, no-c-format
+msgid ""
+"security — <literal>http://jboss.com/products/seam/security</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:359
+#, no-c-format
+msgid "mail — <literal>http://jboss.com/products/seam/mail</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:362
+#, no-c-format
+msgid "web — <literal>http://jboss.com/products/seam/web</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:365
+#, no-c-format
+msgid "pdf — <literal>http://jboss.com/products/seam/pdf</literal>"
+msgstr ""
+
+#. Tag: para
+#: Xml.xml:368
+#, no-c-format
+msgid "spring — <literal>http://jboss.com/products/seam/spring</literal>"
+msgstr ""
Added: branches/Seam_2_0/doc/Seam_Reference_Guide/sl-SL/master.po
===================================================================
16 years, 7 months
Seam SVN: r7984 - branches/Seam_2_0/ui/src/main/java/org/jboss/seam/ui/converter/entityConverter.
by seam-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-04-20 13:23:43 -0400 (Sun, 20 Apr 2008)
New Revision: 7984
Modified:
branches/Seam_2_0/ui/src/main/java/org/jboss/seam/ui/converter/entityConverter/EntityLoader.java
branches/Seam_2_0/ui/src/main/java/org/jboss/seam/ui/converter/entityConverter/HibernateEntityLoader.java
Log:
Implement isPersistenceContextOpen
Modified: branches/Seam_2_0/ui/src/main/java/org/jboss/seam/ui/converter/entityConverter/EntityLoader.java
===================================================================
--- branches/Seam_2_0/ui/src/main/java/org/jboss/seam/ui/converter/entityConverter/EntityLoader.java 2008-04-19 00:31:21 UTC (rev 7983)
+++ branches/Seam_2_0/ui/src/main/java/org/jboss/seam/ui/converter/entityConverter/EntityLoader.java 2008-04-20 17:23:43 UTC (rev 7984)
@@ -50,4 +50,10 @@
{
return (EntityLoader) Component.getInstance(EntityLoader.class, STATELESS);
}
+
+ @Override
+ protected boolean isPersistenceContextOpen(EntityManager persistenceContext)
+ {
+ return persistenceContext.isOpen();
+ }
}
Modified: branches/Seam_2_0/ui/src/main/java/org/jboss/seam/ui/converter/entityConverter/HibernateEntityLoader.java
===================================================================
--- branches/Seam_2_0/ui/src/main/java/org/jboss/seam/ui/converter/entityConverter/HibernateEntityLoader.java 2008-04-19 00:31:21 UTC (rev 7983)
+++ branches/Seam_2_0/ui/src/main/java/org/jboss/seam/ui/converter/entityConverter/HibernateEntityLoader.java 2008-04-20 17:23:43 UTC (rev 7984)
@@ -49,4 +49,11 @@
{
return (HibernateEntityLoader) Component.getInstance(HibernateEntityLoader.class, STATELESS);
}
+
+ @Override
+ protected boolean isPersistenceContextOpen(Session persistenceContext)
+ {
+ return persistenceContext.isOpen();
+ }
+
}
16 years, 7 months
Seam SVN: r7983 - branches/Seam_2_0/doc/Seam_Reference_Guide/en-US.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2008-04-18 20:31:21 -0400 (Fri, 18 Apr 2008)
New Revision: 7983
Modified:
branches/Seam_2_0/doc/Seam_Reference_Guide/en-US/Security.xml
Log:
removed reference to identityManager
Modified: branches/Seam_2_0/doc/Seam_Reference_Guide/en-US/Security.xml
===================================================================
--- branches/Seam_2_0/doc/Seam_Reference_Guide/en-US/Security.xml 2008-04-18 20:39:24 UTC (rev 7982)
+++ branches/Seam_2_0/doc/Seam_Reference_Guide/en-US/Security.xml 2008-04-19 00:31:21 UTC (rev 7983)
@@ -1561,8 +1561,7 @@
}
public void execute() {
- identityManager.createAccount(username, password);
- identityManager.grantRole(username, "user");
+ executePrivilegedOperation();
}
}.run();]]></programlisting>
16 years, 7 months
Seam SVN: r7982 - branches/Seam_2_0/src/main/org/jboss/seam.
by seam-commits@lists.jboss.org
Author: norman.richards(a)jboss.com
Date: 2008-04-18 16:39:24 -0400 (Fri, 18 Apr 2008)
New Revision: 7982
Modified:
branches/Seam_2_0/src/main/org/jboss/seam/Component.java
Log:
JBSEAM-2908
Modified: branches/Seam_2_0/src/main/org/jboss/seam/Component.java
===================================================================
--- branches/Seam_2_0/src/main/org/jboss/seam/Component.java 2008-04-18 18:54:25 UTC (rev 7981)
+++ branches/Seam_2_0/src/main/org/jboss/seam/Component.java 2008-04-18 20:39:24 UTC (rev 7982)
@@ -1956,30 +1956,37 @@
}
}
- public Object newInstance()
- {
- if ( log.isDebugEnabled() ) log.debug("instantiating Seam component: " + name);
-
- Object instance;
- try
- {
- instance = instantiate();
- }
- catch (Exception e)
- {
- throw new InstantiationException("Could not instantiate Seam component: " + name, e);
- }
-
- if ( getScope()!=STATELESS )
- {
- getScope().getContext().set(name, instance); //put it in the context _before_ calling the create method
- callCreateMethod(instance);
- if ( Events.exists() ) Events.instance().raiseEvent("org.jboss.seam.postCreate." + name, instance);
- }
-
- return instance;
- }
-
+ public Object newInstance()
+ {
+ if (log.isDebugEnabled()) {
+ log.debug("instantiating Seam component: " + name);
+ }
+
+ Object instance;
+ try {
+ instance = instantiate();
+
+ if (getScope()!=STATELESS) {
+ //put it in the context _before_ calling the create method
+ getScope().getContext().set(name, instance);
+
+ callCreateMethod(instance);
+
+ if (Events.exists()) {
+ Events.instance().raiseEvent("org.jboss.seam.postCreate." + name, instance);
+ }
+ }
+ } catch (Exception e) {
+ if (getScope()!=STATELESS) {
+ getScope().getContext().remove(name);
+ }
+ throw new InstantiationException("Could not instantiate Seam component: " + name, e);
+ }
+
+
+ return instance;
+ }
+
private void callDefaultRemoveMethod(Object instance)
{
if ( hasDefaultRemoveMethod() )
16 years, 7 months
Seam SVN: r7981 - trunk/src/main/org/jboss/seam.
by seam-commits@lists.jboss.org
Author: norman.richards(a)jboss.com
Date: 2008-04-18 14:54:25 -0400 (Fri, 18 Apr 2008)
New Revision: 7981
Modified:
trunk/src/main/org/jboss/seam/Component.java
Log:
JBSEAM-2908
Modified: trunk/src/main/org/jboss/seam/Component.java
===================================================================
--- trunk/src/main/org/jboss/seam/Component.java 2008-04-18 18:54:01 UTC (rev 7980)
+++ trunk/src/main/org/jboss/seam/Component.java 2008-04-18 18:54:25 UTC (rev 7981)
@@ -2070,9 +2070,11 @@
}
} catch (Exception e) {
- //getScope().getContext().remove(name);
+ if (getScope()!=STATELESS) {
+ getScope().getContext().remove(name);
+ }
- throw new InstantiationException("Could not instantiate Seam component: " + name, e);
+ throw new InstantiationException("Could not instantiate Seam component: " + name, e);
}
return instance;
16 years, 7 months
Seam SVN: r7980 - trunk/src/main/org/jboss/seam/init.
by seam-commits@lists.jboss.org
Author: norman.richards(a)jboss.com
Date: 2008-04-18 14:54:01 -0400 (Fri, 18 Apr 2008)
New Revision: 7980
Modified:
trunk/src/main/org/jboss/seam/init/Initialization.java
Log:
JBSEAM-2775
Modified: trunk/src/main/org/jboss/seam/init/Initialization.java
===================================================================
--- trunk/src/main/org/jboss/seam/init/Initialization.java 2008-04-18 16:51:55 UTC (rev 7979)
+++ trunk/src/main/org/jboss/seam/init/Initialization.java 2008-04-18 18:54:01 UTC (rev 7980)
@@ -213,8 +213,10 @@
for (Element elem : (List<Element>) rootElement.elements()) {
String ns = elem.getNamespace().getURI();
NamespaceDescriptor nsInfo = resolveNamespace(ns);
- if (nsInfo == null && !ns.equals(COMPONENT_NAMESPACE)) {
- log.warn("namespace declared in components.xml does not resolve to a package: " + ns);
+ if (nsInfo == null) {
+ if (!ns.equals(COMPONENT_NAMESPACE)) {
+ log.warn("namespace declared in components.xml does not resolve to a package: " + ns);
+ }
} else {
String name = elem.attributeValue("name");
String elemName = toCamelCase(elem.getName(), true);
@@ -263,14 +265,14 @@
name = Strings.isEmpty(prefix) ?
componentName : prefix + '.' + componentName;
}
-
+
installComponentFromXmlElement(elem, name, className, replacements);
}
}
}
private NamespaceDescriptor resolveNamespace(String namespace) {
- if (Strings.isEmpty(namespace)) {
+ if (Strings.isEmpty(namespace) || namespace.equals(COMPONENT_NAMESPACE)) {
return null;
}
@@ -358,7 +360,7 @@
@SuppressWarnings("unchecked")
private void installComponentFromXmlElement(Element component, String name, String className,
Properties replacements) throws ClassNotFoundException
- {
+ {
String installText = component.attributeValue("installed");
boolean installed = false;
if (installText == null || "true".equals(replace(installText, replacements)))
@@ -473,6 +475,7 @@
private void addComponentDescriptor(ComponentDescriptor descriptor)
{
String name = descriptor.getName();
+
Set<ComponentDescriptor> set = componentDescriptors.get(name);
if (set==null)
{
16 years, 7 months
Seam SVN: r7979 - branches/Seam_2_0/src/main/org/jboss/seam/drools.
by seam-commits@lists.jboss.org
Author: norman.richards(a)jboss.com
Date: 2008-04-18 12:51:55 -0400 (Fri, 18 Apr 2008)
New Revision: 7979
Modified:
branches/Seam_2_0/src/main/org/jboss/seam/drools/RuleAgent.java
Log:
JBSEAM-2906
Modified: branches/Seam_2_0/src/main/org/jboss/seam/drools/RuleAgent.java
===================================================================
--- branches/Seam_2_0/src/main/org/jboss/seam/drools/RuleAgent.java 2008-04-18 16:49:24 UTC (rev 7978)
+++ branches/Seam_2_0/src/main/org/jboss/seam/drools/RuleAgent.java 2008-04-18 16:51:55 UTC (rev 7979)
@@ -61,7 +61,7 @@
if (poll != null) {
properties.setProperty(org.drools.agent.RuleAgent.POLL_INTERVAL, poll);
}
- if (files != null) {
+ if (configName != null) {
properties.setProperty(org.drools.agent.RuleAgent.CONFIG_NAME, configName);
}
16 years, 7 months
Seam SVN: r7978 - trunk/src/main/org/jboss/seam/drools.
by seam-commits@lists.jboss.org
Author: norman.richards(a)jboss.com
Date: 2008-04-18 12:49:24 -0400 (Fri, 18 Apr 2008)
New Revision: 7978
Modified:
trunk/src/main/org/jboss/seam/drools/RuleAgent.java
Log:
JBSEAM-2906
Modified: trunk/src/main/org/jboss/seam/drools/RuleAgent.java
===================================================================
--- trunk/src/main/org/jboss/seam/drools/RuleAgent.java 2008-04-18 15:41:45 UTC (rev 7977)
+++ trunk/src/main/org/jboss/seam/drools/RuleAgent.java 2008-04-18 16:49:24 UTC (rev 7978)
@@ -61,7 +61,7 @@
if (poll != null) {
properties.setProperty(org.drools.agent.RuleAgent.POLL_INTERVAL, poll);
}
- if (files != null) {
+ if (configName != null) {
properties.setProperty(org.drools.agent.RuleAgent.CONFIG_NAME, configName);
}
16 years, 7 months